[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);
|