[pgsqlclient-checkins] pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient PgOutputPacket.cs
Status: Inactive
Brought to you by:
carlosga_fb
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient In directory sc8-pr-cvs1:/tmp/cvs-serv6711 Modified Files: PgOutputPacket.cs PgResponsePacket.cs PgType.cs PgTypeCollection.cs Log Message: - Added changes for better handling of postgres datatypes at protocol implementation layer - Added support for read point values ( returned as double[2] ) Index: PgOutputPacket.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgOutputPacket.cs,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** PgOutputPacket.cs 17 Oct 2003 18:23:02 -0000 1.8 --- PgOutputPacket.cs 17 Oct 2003 18:55:01 -0000 1.9 *************** *** 162,166 **** // Get array elements type info ! PgType elementType = PgDbClient.Types[parameter.DataType.ArrayType]; size = elementType.Size; --- 162,166 ---- // Get array elements type info ! PgType elementType = PgDbClient.Types[parameter.DataType.ElementType]; size = elementType.Size; *************** *** 175,179 **** // Write base type of the array elements ! packet.WriteInt(parameter.DataType.ArrayType); // Write lengths and lower bounds --- 175,179 ---- // Write base type of the array elements ! packet.WriteInt(parameter.DataType.ElementType); // Write lengths and lower bounds Index: PgResponsePacket.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgResponsePacket.cs,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** PgResponsePacket.cs 17 Oct 2003 18:23:02 -0000 1.7 --- PgResponsePacket.cs 17 Oct 2003 18:55:03 -0000 1.8 *************** *** 257,261 **** public Array ReadStringArray(PgType type, int length) { ! PgType elementType = PgDbClient.Types[type.ArrayType]; Array data = null; --- 257,261 ---- public Array ReadStringArray(PgType type, int length) { ! PgType elementType = PgDbClient.Types[type.ElementType]; Array data = null; *************** *** 277,281 **** public Array ReadVector(PgType type, int length) { ! PgType elementType = PgDbClient.Types[type.ArrayType]; Array data = null; --- 277,281 ---- public Array ReadVector(PgType type, int length) { ! PgType elementType = PgDbClient.Types[type.ElementType]; Array data = null; *************** *** 291,294 **** --- 291,302 ---- } + public double[] ReadPoint() + { + double x = ReadDouble(); + double y = ReadDouble(); + + return new double[]{x,y}; + } + public object ReadValue(PgType type, int length) { *************** *** 352,361 **** return ReadTimestamp(); - case PgDataType.Box: - case PgDataType.Path: case PgDataType.Point: ! case PgDataType.Polygon: case PgDataType.Line: case PgDataType.LSeg: default: return ReadBytes(length); --- 360,372 ---- return ReadTimestamp(); case PgDataType.Point: ! return ReadPoint(); ! case PgDataType.Line: case PgDataType.LSeg: + case PgDataType.Box: + case PgDataType.Path: + case PgDataType.Polygon: + case PgDataType.Circle: default: return ReadBytes(length); Index: PgType.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgType.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** PgType.cs 17 Oct 2003 18:23:02 -0000 1.4 --- PgType.cs 17 Oct 2003 18:55:04 -0000 1.5 *************** *** 30,34 **** private PgDataType dataType; private Type systemType; ! private int arrayType; private short formatCode; private int size; --- 30,34 ---- private PgDataType dataType; private Type systemType; ! private int elementType; private short formatCode; private int size; *************** *** 58,70 **** } ! public int ArrayType { get { ! int type = arrayType; while (PgDbClient.Types[type].DataType == PgDataType.Array) { ! type = PgDbClient.Types[type].Oid; } --- 58,70 ---- } ! public int ElementType { get { ! int type = elementType; while (PgDbClient.Types[type].DataType == PgDataType.Array) { ! type = PgDbClient.Types[type].ElementType; } *************** *** 87,96 **** #region CONSTRUCTORS ! public PgType(int oid, string name, PgDataType providerType, Type systemType, int arrayType, short formatCode, int size) { this.oid = oid; this.name = name; this.systemType = systemType; ! this.arrayType = arrayType; this.formatCode = formatCode; this.size = size; --- 87,97 ---- #region CONSTRUCTORS ! public PgType(int oid, string name, PgDataType dataType, Type systemType, int elementType, short formatCode, int size) { this.oid = oid; this.name = name; + this.dataType = dataType; this.systemType = systemType; ! this.elementType = elementType; this.formatCode = formatCode; this.size = size; Index: PgTypeCollection.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgTypeCollection.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** PgTypeCollection.cs 17 Oct 2003 18:23:02 -0000 1.4 --- PgTypeCollection.cs 17 Oct 2003 18:55:04 -0000 1.5 *************** *** 95,101 **** } ! public PgType Add(int oid, string name, PgDataType dataType, Type systemType, int arrayType, short formatCode, int size) { ! PgType type = new PgType(oid, name, dataType, systemType, arrayType, formatCode, size); base.Add(type); --- 95,101 ---- } ! public PgType Add(int oid, string name, PgDataType dataType, Type systemType, int elementType, short formatCode, int size) { ! PgType type = new PgType(oid, name, dataType, systemType, elementType, formatCode, size); base.Add(type); |