[pgsqlclient-checkins] pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient PgDbClient.cs,1.1
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-serv18477
Modified Files:
PgDbClient.cs PgOutputPacket.cs PgResponsePacket.cs PgType.cs
Log Message:
Added some changes to Array datatype handling
Index: PgDbClient.cs
===================================================================
RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgDbClient.cs,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -d -r1.17 -r1.18
*** PgDbClient.cs 21 Sep 2003 22:35:21 -0000 1.17
--- PgDbClient.cs 29 Sep 2003 14:33:01 -0000 1.18
***************
*** 652,678 ****
types.Add(16 , "bool" , DbType.Boolean , Type.GetType("System.Boolean") , 0, 1, 1, false);
types.Add(17 , "bytea" , DbType.Binary , Type.GetType("System.Array") , 0, 1, 0, false);
! types.Add(18 , "char" , DbType.String , Type.GetType("System.String") , 0, 0, 0, false);
types.Add(19 , "name" , DbType.String , Type.GetType("System.String") , 0, 0, 0, false);
types.Add(20 , "int8" , DbType.Int64 , Type.GetType("System.Int64") , 0, 1, 8, false);
types.Add(21 , "int2" , DbType.Int16 , Type.GetType("System.Int16") , 0, 1, 2, false);
! types.Add(22 , "int2vector", DbType.Object , Type.GetType("System.Array") , 21, 1, 2, true);
types.Add(23 , "int4" , DbType.Int32 , Type.GetType("System.Int32") , 0, 1, 4, false);
types.Add(24 , "regproc" , DbType.String , Type.GetType("System.String") , 0, 0, 0, false);
types.Add(25 , "text" , DbType.String , Type.GetType("System.String") , 0, 0, 0, false);
types.Add(26 , "oid" , DbType.Int32 , Type.GetType("System.Int32") , 0, 1, 4, false);
! types.Add(30 , "oidvector", DbType.Object , Type.GetType("System.Array") , 26, 1, 4, true);
types.Add(700 , "float4" , DbType.Single , Type.GetType("System.Single") , 0, 1, 4, false);
types.Add(701 , "float8" , DbType.Double , Type.GetType("System.Double") , 0, 1, 8, false);
! types.Add(705 , "unknown" , DbType.Object , Type.GetType("System.Object") , 0, 0, 0, false);
types.Add(790 , "money" , DbType.Currency , Type.GetType("System.Decimal") , 0, 1, 4, false);
types.Add(829 , "macaddr" , DbType.String , Type.GetType("System.String") , 0, 0, 6, false);
types.Add(869 , "inet" , DbType.String , Type.GetType("System.String") , 0, 0, 0, false);
! types.Add(1005 , "_int2" , DbType.Object , Type.GetType("System.Array") , 21, 1, 2, false);
! types.Add(1007 , "_int4" , DbType.Object , Type.GetType("System.Array") , 23, 1, 4, false);
! types.Add(1016 , "_int8" , DbType.Object , Type.GetType("System.Array") , 20, 1, 8, false);
! types.Add(1009 , "_text" , DbType.Object , Type.GetType("System.Array") , 25, 1, 0, false);
! types.Add(1021 , "_float4" , DbType.Object , Type.GetType("System.Array") , 700, 1, 4, false);
types.Add(1033 , "aclitem" , DbType.String , Type.GetType("System.String") , 0, 0, 12, false);
! types.Add(1034 , "_aclitem", DbType.Object , Type.GetType("System.Array") , 1033, 0, 0, false);
types.Add(1042 , "bpchar" , DbType.String , Type.GetType("System.String") , 0, 0, 0, false);
types.Add(1043 , "varchar" , DbType.String , Type.GetType("System.String") , 0, 0, 0, false);
--- 652,678 ----
types.Add(16 , "bool" , DbType.Boolean , Type.GetType("System.Boolean") , 0, 1, 1, false);
types.Add(17 , "bytea" , DbType.Binary , Type.GetType("System.Array") , 0, 1, 0, false);
! types.Add(18 , "char" , DbType.StringFixedLength, Type.GetType("System.String"), 0, 0, 0, false);
types.Add(19 , "name" , DbType.String , Type.GetType("System.String") , 0, 0, 0, false);
types.Add(20 , "int8" , DbType.Int64 , Type.GetType("System.Int64") , 0, 1, 8, false);
types.Add(21 , "int2" , DbType.Int16 , Type.GetType("System.Int16") , 0, 1, 2, false);
! types.Add(22 , "int2vector", DbType.Binary , Type.GetType("System.Array") , 21, 1, 2, true);
types.Add(23 , "int4" , DbType.Int32 , Type.GetType("System.Int32") , 0, 1, 4, false);
types.Add(24 , "regproc" , DbType.String , Type.GetType("System.String") , 0, 0, 0, false);
types.Add(25 , "text" , DbType.String , Type.GetType("System.String") , 0, 0, 0, false);
types.Add(26 , "oid" , DbType.Int32 , Type.GetType("System.Int32") , 0, 1, 4, false);
! types.Add(30 , "oidvector", DbType.Binary , Type.GetType("System.Array") , 26, 1, 4, true);
types.Add(700 , "float4" , DbType.Single , Type.GetType("System.Single") , 0, 1, 4, false);
types.Add(701 , "float8" , DbType.Double , Type.GetType("System.Double") , 0, 1, 8, false);
! // types.Add(705 , "unknown" , DbType.Object , Type.GetType("System.Object") , 0, 0, 0, false);
types.Add(790 , "money" , DbType.Currency , Type.GetType("System.Decimal") , 0, 1, 4, false);
types.Add(829 , "macaddr" , DbType.String , Type.GetType("System.String") , 0, 0, 6, false);
types.Add(869 , "inet" , DbType.String , Type.GetType("System.String") , 0, 0, 0, false);
! types.Add(1005 , "_int2" , DbType.Binary , Type.GetType("System.Array") , 21, 1, 2, false);
! types.Add(1007 , "_int4" , DbType.Binary , Type.GetType("System.Array") , 23, 1, 4, false);
! types.Add(1016 , "_int8" , DbType.Binary , Type.GetType("System.Array") , 20, 1, 8, false);
! types.Add(1009 , "_text" , DbType.Binary , Type.GetType("System.Array") , 25, 1, 0, false);
! types.Add(1021 , "_float4" , DbType.Binary , Type.GetType("System.Array") , 700, 1, 4, false);
types.Add(1033 , "aclitem" , DbType.String , Type.GetType("System.String") , 0, 0, 12, false);
! types.Add(1034 , "_aclitem", DbType.Binary , Type.GetType("System.Array") , 1033, 0, 0, false);
types.Add(1042 , "bpchar" , DbType.String , Type.GetType("System.String") , 0, 0, 0, false);
types.Add(1043 , "varchar" , DbType.String , Type.GetType("System.String") , 0, 0, 0, false);
***************
*** 683,687 ****
types.Add(1562 , "varbit" , DbType.Byte , Type.GetType("System.Byte") , 0, 1, 0, false);
types.Add(1700 , "numeric" , DbType.Decimal , Type.GetType("System.Decimal") , 0, 0, 8, false);
! types.Add(2277 , "anyarray", DbType.Object , Type.GetType("System.Array") , 0, 1, 8, false);
}
--- 683,687 ----
types.Add(1562 , "varbit" , DbType.Byte , Type.GetType("System.Byte") , 0, 1, 0, false);
types.Add(1700 , "numeric" , DbType.Decimal , Type.GetType("System.Decimal") , 0, 0, 8, false);
! types.Add(2277 , "anyarray", DbType.Binary , Type.GetType("System.Array") , 0, 1, 8, false);
}
Index: PgOutputPacket.cs
===================================================================
RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgOutputPacket.cs,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** PgOutputPacket.cs 19 Sep 2003 17:04:39 -0000 1.4
--- PgOutputPacket.cs 29 Sep 2003 14:33:01 -0000 1.5
***************
*** 154,158 ****
else
{
! if (parameter.DataType.DbType == DbType.Object)
{
// Handle this type as Array values
--- 154,159 ----
else
{
! if (parameter.DataType.DbType == DbType.Binary &&
! parameter.DataType.ArrayType != 0)
{
// Handle this type as Array values
Index: PgResponsePacket.cs
===================================================================
RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgResponsePacket.cs,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** PgResponsePacket.cs 19 Sep 2003 17:04:39 -0000 1.5
--- PgResponsePacket.cs 29 Sep 2003 14:33:01 -0000 1.6
***************
*** 296,300 ****
{
case DbType.Binary:
! return ReadBytes(length);
case DbType.String:
--- 296,323 ----
{
case DbType.Binary:
! {
! if (type.ArrayType != 0)
! {
! if (type.FormatCode == 0)
! {
! return ReadStringArray(type, length);
! }
! else
! {
! if (type.IsVector)
! {
! return ReadVector(type, length);
! }
! else
! {
! return ReadPrimitiveArray(type, length);
! }
! }
! }
! else
! {
! return ReadBytes(length);
! }
! }
case DbType.String:
***************
*** 337,366 ****
case DbType.DateTime:
return ReadTimestamp();
-
- case DbType.Object:
- {
- if (type.SystemType == Type.GetType("System.Array"))
- {
- if (type.FormatCode == 0)
- {
- return ReadStringArray(type, length);
- }
- else
- {
- if (type.IsVector)
- {
- return ReadVector(type, length);
- }
- else
- {
- return ReadPrimitiveArray(type, length);
- }
- }
- }
- else
- {
- throw new NotSupportedException("Unknown data type");
- }
- }
default:
--- 360,363 ----
Index: PgType.cs
===================================================================
RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgType.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** PgType.cs 2 Aug 2003 21:12:16 -0000 1.2
--- PgType.cs 29 Sep 2003 14:33:01 -0000 1.3
***************
*** 120,137 ****
break;
- case DbType.AnsiString:
- case DbType.String:
- providerType = PgDbType.VarChar;
- break;
-
case DbType.AnsiStringFixedLength:
case DbType.StringFixedLength:
providerType = PgDbType.Char;
break;
case DbType.Binary:
! case DbType.Object:
! providerType = PgDbType.Binary;
! break;
case DbType.Date:
--- 120,145 ----
break;
case DbType.AnsiStringFixedLength:
case DbType.StringFixedLength:
providerType = PgDbType.Char;
break;
+
+ case DbType.AnsiString:
+ case DbType.String:
+ providerType = PgDbType.VarChar;
+ break;
case DbType.Binary:
! {
! if (arrayType != 0)
! {
! providerType = PgDbType.Array;
! }
! else
! {
! providerType = PgDbType.Binary;
! }
! }
! break;
case DbType.Date:
|