Update of /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient
In directory sc8-pr-cvs1:/tmp/cvs-serv31079
Modified Files:
PgDbClient.cs PgOutputPacket.cs PgResponsePacket.cs
Log Message:
- Added support for read/write point values ( as double[2] )
- Added support for read/write circle values ( as double[3] )
Index: PgDbClient.cs
===================================================================
RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgDbClient.cs,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -d -r1.22 -r1.23
*** PgDbClient.cs 17 Oct 2003 18:23:02 -0000 1.22
--- PgDbClient.cs 17 Oct 2003 20:47:55 -0000 1.23
***************
*** 669,673 ****
types.Add(604 , "polygon" , PgDataType.VarChar , Type.GetType("System.String") , 0, 0, -1);
types.Add(628 , "line" , PgDataType.Line , Type.GetType("System.Array") , 701, 1, 32);
! types.Add(718 , "circle" , PgDataType.VarChar , Type.GetType("System.String") , 0, 1, 24);
types.Add(700 , "float4" , PgDataType.Float , Type.GetType("System.Single") , 0, 1, 4);
--- 669,673 ----
types.Add(604 , "polygon" , PgDataType.VarChar , Type.GetType("System.String") , 0, 0, -1);
types.Add(628 , "line" , PgDataType.Line , Type.GetType("System.Array") , 701, 1, 32);
! types.Add(718 , "circle" , PgDataType.Circle , Type.GetType("System.Array") , 0, 1, 24);
types.Add(700 , "float4" , PgDataType.Float , Type.GetType("System.Single") , 0, 1, 4);
Index: PgOutputPacket.cs
===================================================================
RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgOutputPacket.cs,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** PgOutputPacket.cs 17 Oct 2003 18:55:01 -0000 1.9
--- PgOutputPacket.cs 17 Oct 2003 20:47:55 -0000 1.10
***************
*** 282,290 ****
break;
case PgDataType.Box:
case PgDataType.Line:
case PgDataType.LSeg:
case PgDataType.Path:
! case PgDataType.Point:
case PgDataType.Polygon:
break;
--- 282,307 ----
break;
+ case PgDataType.Point:
+ double[] point = (double[])value;
+
+ packet.WriteInt(size);
+ packet.WriteDouble(point[0]); // x
+ packet.WriteDouble(point[1]); // y
+ break;
+
+ case PgDataType.Circle:
+ double[] circle = (double[])value;
+
+ packet.WriteInt(size);
+ packet.WriteDouble(circle[0]); // x
+ packet.WriteDouble(circle[1]); // y
+ packet.WriteDouble(circle[2]); // r
+ break;
+
case PgDataType.Box:
case PgDataType.Line:
case PgDataType.LSeg:
case PgDataType.Path:
!
case PgDataType.Polygon:
break;
Index: PgResponsePacket.cs
===================================================================
RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgResponsePacket.cs,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** PgResponsePacket.cs 17 Oct 2003 18:55:03 -0000 1.8
--- PgResponsePacket.cs 17 Oct 2003 20:47:55 -0000 1.9
***************
*** 291,294 ****
--- 291,296 ----
}
+ // Geometric datatypes methods
+
public double[] ReadPoint()
{
***************
*** 296,300 ****
double y = ReadDouble();
! return new double[]{x,y};
}
--- 298,311 ----
double y = ReadDouble();
! return new double[]{x, y};
! }
!
! public double[] ReadCircle()
! {
! double x = ReadDouble();
! double y = ReadDouble();
! double r = ReadDouble();
!
! return new double[]{x, y, r};
}
***************
*** 363,366 ****
--- 374,380 ----
return ReadPoint();
+ case PgDataType.Circle:
+ return ReadCircle();
+
case PgDataType.Line:
case PgDataType.LSeg:
***************
*** 368,372 ****
case PgDataType.Path:
case PgDataType.Polygon:
- case PgDataType.Circle:
default:
return ReadBytes(length);
--- 382,385 ----
|