Jelajahi Sumber

2002-05-03 Daniel Morgan <[email protected]>

	* System.Data.build: removed comments

	* System.Data.SqlClient/PostgresLibrary.cs: changed
	the hard-coded PostgreSQL oid type int's to using an
	enum.  Also, added PostgreSQL bpchar (character) type.

	* Test/TestSqlDataReader.cs: updated test
	to include new bpchar PostgreSQL type

svn path=/trunk/mcs/; revision=4260
Daniel Morgan 24 tahun lalu
induk
melakukan
bf85f10d6b

+ 62 - 18
mcs/class/Mono.Data.PostgreSqlClient/Mono.Data.PostgreSqlClient/PostgresLibrary.cs

@@ -19,8 +19,50 @@ using System.Data;
 using System.Runtime.InteropServices;
 using System.Diagnostics;
 
-namespace System.Data.SqlClient
-{
+namespace System.Data.SqlClient {
+
+	// PostgreSQL Type (oid and typname from pg_type)
+	internal enum PgType {
+		ABSTIME = 702,
+		ACLITEM = 1033,
+		BIT = 1560,
+		BOOL = 16,
+		BOX = 603,
+		BPCHAR = 1042,
+		BYTEA = 17,
+		CHAR = 18,
+		CIDR = 650,
+		CIRCLE = 718,
+		DATE = 1082,
+		FLOAT4 = 700,
+		FLOAT8 = 701,
+		INET = 869,
+		INT2 = 21,
+		INT4 = 23,
+		INT8 = 20,
+		INTERVAL = 1186,
+		LINE = 628,
+		LSEG = 601,
+		MACADDR = 829,
+		MONEY = 790,
+		NAME = 19,
+		NUMERIC = 1700,
+		OID = 26,
+		PATH = 602,
+		POINT = 600,
+		POLYGON = 604,
+		REFCURSOR = 1790,
+		RELTIME = 703,
+		TEXT = 25,
+		TIME = 1083,
+		TIMESTAMP = 1114,
+		TIMESTAMPTZ = 1184,
+		TIMETZ = 1266,
+		TINTERVAL = 704,
+		VARBIT = 1562,
+		VARCHAR = 1043
+	}
+
 	/* IMPORTANT: DO NOT CHANGE ANY OF THESE ENUMS */
 	
 	internal enum ConnStatusType
@@ -71,22 +113,23 @@ namespace System.Data.SqlClient
 			//        from PostgreSQL oid type
 			//        to .NET System.<type>
 
-			switch(oid) {
-			case 1043: // varchar
-			case 25: // text
-			case 18: // char
+			switch((PgType) oid) {
+			case PgType.VARCHAR:
+			case PgType.BPCHAR:
+			case PgType.TEXT:
+			case PgType.CHAR:
 				obj = (object) String.Copy(value); 
 				break;
-			case 16: // bool
+			case PgType.BOOL:
 				obj = (object) Boolean.Parse(value);
 				break;
-			case 21: // int2
+			case PgType.INT2:
 				obj = (object) Int16.Parse(value);
 				break;
-			case 23: // int4
+			case PgType.INT4:
 				obj = (object) Int32.Parse(value);
 				break;
-			case 20: // int8
+			case PgType.INT8:
 				obj = (object) Int64.Parse(value);
 				break;
 			default:
@@ -111,22 +154,23 @@ namespace System.Data.SqlClient
 
 			Type typ = null;
 
-			switch(oid) {
-			case 1043: // varchar
-			case 25: // text
-			case 18: // char
+			switch((PgType) oid) {
+			case PgType.VARCHAR:
+			case PgType.BPCHAR:
+			case PgType.TEXT:
+			case PgType.CHAR:
 				typ = typeof(String);
 				break;
-			case 16: // bool
+			case PgType.BOOL:
 				typ = typeof(Boolean);
 				break;
-			case 21: // int2
+			case PgType.INT2:
 				typ = typeof(Int16);
 				break;
-			case 23: // int4
+			case PgType.INT4:
 				typ = typeof(Int32);
 				break;
-			case 20: // int8
+			case PgType.INT8:
 				typ = typeof(Int64);
 				break;
 			default:

+ 62 - 18
mcs/class/Mono.Data.PostgreSqlClient/PostgresLibrary.cs

@@ -19,8 +19,50 @@ using System.Data;
 using System.Runtime.InteropServices;
 using System.Diagnostics;
 
-namespace System.Data.SqlClient
-{
+namespace System.Data.SqlClient {
+
+	// PostgreSQL Type (oid and typname from pg_type)
+	internal enum PgType {
+		ABSTIME = 702,
+		ACLITEM = 1033,
+		BIT = 1560,
+		BOOL = 16,
+		BOX = 603,
+		BPCHAR = 1042,
+		BYTEA = 17,
+		CHAR = 18,
+		CIDR = 650,
+		CIRCLE = 718,
+		DATE = 1082,
+		FLOAT4 = 700,
+		FLOAT8 = 701,
+		INET = 869,
+		INT2 = 21,
+		INT4 = 23,
+		INT8 = 20,
+		INTERVAL = 1186,
+		LINE = 628,
+		LSEG = 601,
+		MACADDR = 829,
+		MONEY = 790,
+		NAME = 19,
+		NUMERIC = 1700,
+		OID = 26,
+		PATH = 602,
+		POINT = 600,
+		POLYGON = 604,
+		REFCURSOR = 1790,
+		RELTIME = 703,
+		TEXT = 25,
+		TIME = 1083,
+		TIMESTAMP = 1114,
+		TIMESTAMPTZ = 1184,
+		TIMETZ = 1266,
+		TINTERVAL = 704,
+		VARBIT = 1562,
+		VARCHAR = 1043
+	}
+
 	/* IMPORTANT: DO NOT CHANGE ANY OF THESE ENUMS */
 	
 	internal enum ConnStatusType
@@ -71,22 +113,23 @@ namespace System.Data.SqlClient
 			//        from PostgreSQL oid type
 			//        to .NET System.<type>
 
-			switch(oid) {
-			case 1043: // varchar
-			case 25: // text
-			case 18: // char
+			switch((PgType) oid) {
+			case PgType.VARCHAR:
+			case PgType.BPCHAR:
+			case PgType.TEXT:
+			case PgType.CHAR:
 				obj = (object) String.Copy(value); 
 				break;
-			case 16: // bool
+			case PgType.BOOL:
 				obj = (object) Boolean.Parse(value);
 				break;
-			case 21: // int2
+			case PgType.INT2:
 				obj = (object) Int16.Parse(value);
 				break;
-			case 23: // int4
+			case PgType.INT4:
 				obj = (object) Int32.Parse(value);
 				break;
-			case 20: // int8
+			case PgType.INT8:
 				obj = (object) Int64.Parse(value);
 				break;
 			default:
@@ -111,22 +154,23 @@ namespace System.Data.SqlClient
 
 			Type typ = null;
 
-			switch(oid) {
-			case 1043: // varchar
-			case 25: // text
-			case 18: // char
+			switch((PgType) oid) {
+			case PgType.VARCHAR:
+			case PgType.BPCHAR:
+			case PgType.TEXT:
+			case PgType.CHAR:
 				typ = typeof(String);
 				break;
-			case 16: // bool
+			case PgType.BOOL:
 				typ = typeof(Boolean);
 				break;
-			case 21: // int2
+			case PgType.INT2:
 				typ = typeof(Int16);
 				break;
-			case 23: // int4
+			case PgType.INT4:
 				typ = typeof(Int32);
 				break;
-			case 20: // int8
+			case PgType.INT8:
 				typ = typeof(Int64);
 				break;
 			default:

+ 11 - 0
mcs/class/System.Data/ChangeLog

@@ -1,3 +1,14 @@
+2002-05-03  Daniel Morgan <[email protected]>
+
+	* System.Data.build: removed comments
+
+	* System.Data.SqlClient/PostgresLibrary.cs: changed
+	the hard-coded PostgreSQL oid type int's to using an
+	enum.  Also, added PostgreSQL bpchar (character) type.
+	
+	* Test/TestSqlDataReader.cs: updated test
+	to include new bpchar PostgreSQL type
+
 2002-05-03  Rodrigo Moya <[email protected]>
 
 	* System.Data.SqlTypes/SqlBinary.cs:

+ 62 - 18
mcs/class/System.Data/System.Data.SqlClient/PostgresLibrary.cs

@@ -19,8 +19,50 @@ using System.Data;
 using System.Runtime.InteropServices;
 using System.Diagnostics;
 
-namespace System.Data.SqlClient
-{
+namespace System.Data.SqlClient {
+
+	// PostgreSQL Type (oid and typname from pg_type)
+	internal enum PgType {
+		ABSTIME = 702,
+		ACLITEM = 1033,
+		BIT = 1560,
+		BOOL = 16,
+		BOX = 603,
+		BPCHAR = 1042,
+		BYTEA = 17,
+		CHAR = 18,
+		CIDR = 650,
+		CIRCLE = 718,
+		DATE = 1082,
+		FLOAT4 = 700,
+		FLOAT8 = 701,
+		INET = 869,
+		INT2 = 21,
+		INT4 = 23,
+		INT8 = 20,
+		INTERVAL = 1186,
+		LINE = 628,
+		LSEG = 601,
+		MACADDR = 829,
+		MONEY = 790,
+		NAME = 19,
+		NUMERIC = 1700,
+		OID = 26,
+		PATH = 602,
+		POINT = 600,
+		POLYGON = 604,
+		REFCURSOR = 1790,
+		RELTIME = 703,
+		TEXT = 25,
+		TIME = 1083,
+		TIMESTAMP = 1114,
+		TIMESTAMPTZ = 1184,
+		TIMETZ = 1266,
+		TINTERVAL = 704,
+		VARBIT = 1562,
+		VARCHAR = 1043
+	}
+
 	/* IMPORTANT: DO NOT CHANGE ANY OF THESE ENUMS */
 	
 	internal enum ConnStatusType
@@ -71,22 +113,23 @@ namespace System.Data.SqlClient
 			//        from PostgreSQL oid type
 			//        to .NET System.<type>
 
-			switch(oid) {
-			case 1043: // varchar
-			case 25: // text
-			case 18: // char
+			switch((PgType) oid) {
+			case PgType.VARCHAR:
+			case PgType.BPCHAR:
+			case PgType.TEXT:
+			case PgType.CHAR:
 				obj = (object) String.Copy(value); 
 				break;
-			case 16: // bool
+			case PgType.BOOL:
 				obj = (object) Boolean.Parse(value);
 				break;
-			case 21: // int2
+			case PgType.INT2:
 				obj = (object) Int16.Parse(value);
 				break;
-			case 23: // int4
+			case PgType.INT4:
 				obj = (object) Int32.Parse(value);
 				break;
-			case 20: // int8
+			case PgType.INT8:
 				obj = (object) Int64.Parse(value);
 				break;
 			default:
@@ -111,22 +154,23 @@ namespace System.Data.SqlClient
 
 			Type typ = null;
 
-			switch(oid) {
-			case 1043: // varchar
-			case 25: // text
-			case 18: // char
+			switch((PgType) oid) {
+			case PgType.VARCHAR:
+			case PgType.BPCHAR:
+			case PgType.TEXT:
+			case PgType.CHAR:
 				typ = typeof(String);
 				break;
-			case 16: // bool
+			case PgType.BOOL:
 				typ = typeof(Boolean);
 				break;
-			case 21: // int2
+			case PgType.INT2:
 				typ = typeof(Int16);
 				break;
-			case 23: // int4
+			case PgType.INT4:
 				typ = typeof(Int32);
 				break;
-			case 20: // int8
+			case PgType.INT8:
 				typ = typeof(Int64);
 				break;
 			default:

+ 0 - 14
mcs/class/System.Data/System.Data.build

@@ -17,19 +17,6 @@
 				<includes name="**/*.cs"/> 
 				<excludes name="System.Data/DataViewSetting.cs"/>
 				<excludes name="System.Data/DataViewSettingCollection.cs"/>
-				<!--
-				<excludes name="System.Data/Constraint.cs"/>
-				<excludes name="System.Data/ConstraintCollection.cs"/>
-				<excludes name="System.Data/InternalDataCollectionBase.cs"/>
-				<excludes name="System.Data/DataColumn.cs"/>
-				<excludes name="System.Data/DataColumnCollection.cs"/>
-				<excludes name="System.Data/DataRow.cs"/>
-				<excludes name="System.Data/DataRowCollection.cs"/>
-				<excludes name="System.Data/DataRowChangeEventArgs.cs"/>
-				<excludes name="System.Data/DataRelationCollection.cs"/>
-				<excludes name="System.Data/DataTable.cs"/>
-				<excludes name="System.Data/PropertyCollection.cs"/>
-				-->
 				<excludes name="System.Data/DataTableRelationCollection.cs"/>
 				<excludes name="System.Data/DataView.cs"/>
 				<excludes name="System.Data/DataViewManager.cs"/>
@@ -40,7 +27,6 @@
 				<excludes name="Test/**"/>
 				<excludes name="System.Data.Common/*"/>
 				<excludes name="System.Data.SqlClient/SqlDataAdapter.cs"/>
-				<!--<excludes name="System.Data.SqlClient/SqlDataReader.cs"/>-->
 				<excludes name="System.Data.SqlClient/SqlInfoMessageEventArgs.cs"/>
 				<excludes name="System.Data.SqlClient/SqlRowUpdatingEventArgs.cs"/>
 				<excludes name="System.Data.SqlClient/SqlRowUpdatedEventArgs.cs"/>

+ 7 - 5
mcs/class/System.Data/Test/TestSqlDataReader.cs

@@ -35,7 +35,7 @@ namespace TestSystemDataSqlClient
 				"user=danmorg;" +
 				"password=viewsonic";
 
-			sql = 	"select tid, tdesc, aint4 " + 
+			sql = 	"select tid, tdesc, aint4, abpchar " + 
 				"from sometable";
 			
 			con = new SqlConnection(connectionString);
@@ -70,12 +70,14 @@ namespace TestSystemDataSqlClient
 				Console.WriteLine("Row: " +
 					rdr["tid"].ToString() + ", " + 
 					rdr["tdesc"].ToString() + ", " + 
-					rdr["aint4"].ToString()
+					rdr["aint4"].ToString() + ", " + 
+					rdr["abpchar"].ToString()
 					);
 
-				Console.WriteLine("1:" + rdr.GetString(0));
-				Console.WriteLine("1:" + rdr.GetString(1));
-				Console.WriteLine("2:" + rdr.GetInt32(2));
+				Console.WriteLine("1: " + rdr.GetString(0));
+				Console.WriteLine("2: " + rdr.GetString(1));
+				Console.WriteLine("3: " + rdr.GetInt32(2));
+				Console.WriteLine("4: " + rdr.GetString(3));
 			}
 			
 			rdr.Close();