Thread: [pgsqlclient-checkins] SF.net SVN: pgsqlclient: [87] trunk/PostgreSqlClient/source/PostgreSql/Data/S
Status: Inactive
Brought to you by:
carlosga_fb
From: <car...@us...> - 2006-04-11 12:05:24
|
Revision: 87 Author: carlosga_fb Date: 2006-04-11 05:05:09 -0700 (Tue, 11 Apr 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=87&view=rev Log Message: ----------- ?\194?\183 Added new schema implementation for PostgreSQL Sequences Modified Paths: -------------- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml Added Paths: ----------- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSequences.cs Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml 2006-04-09 12:40:05 UTC (rev 86) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml 2006-04-11 12:05:09 UTC (rev 87) @@ -214,7 +214,13 @@ <PopulationMechanism>SQLCommand</PopulationMechanism> <PopulationString>SELECT current_database() AS SCHEMA_CATALOG, pg_namespace.nspname AS SCHEMA_NAME, pg_shadow.usename AS SCHEMA_OWNER, pg_description.description AS DESCRIPTION FROM pg_namespace left join pg_shadow ON pg_namespace.nspowner = pg_shadow.usesysid left join pg_description ON pg_namespace.oid = pg_description.objoid ORDER BY pg_namespace.nspname, pg_shadow.usename</PopulationString> </MetaDataCollections> - <MetaDataCollections> + <MetaDataCollections> + <CollectionName>Sequences</CollectionName> + <NumberOfRestrictions>3</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + <PopulationMechanism>PrepareCollection</PopulationMechanism> + </MetaDataCollections> + <MetaDataCollections> <CollectionName>SqlLanguages</CollectionName> <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> @@ -233,7 +239,13 @@ <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> - <MetaDataCollections> + <MetaDataCollections> + <CollectionName>TableSpaces</CollectionName> + <NumberOfRestrictions>2</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + <PopulationMechanism>PrepareCollection</PopulationMechanism> + </MetaDataCollections> + <MetaDataCollections> <CollectionName>Triggers</CollectionName> <NumberOfRestrictions>4</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> @@ -450,7 +462,25 @@ <RestrictionDefault>table_name</RestrictionDefault> <RestrictionNumber>3</RestrictionNumber> </Restrictions> - <Restrictions> + <Restrictions> + <CollectionName>Sequences</CollectionName> + <RestrictionName>Catalog</RestrictionName> + <RestrictionDefault>sequence_catalog</RestrictionDefault> + <RestrictionNumber>1</RestrictionNumber> + </Restrictions> + <Restrictions> + <CollectionName>Sequences</CollectionName> + <RestrictionName>Schema</RestrictionName> + <RestrictionDefault>sequence_schema</RestrictionDefault> + <RestrictionNumber>2</RestrictionNumber> + </Restrictions> + <Restrictions> + <CollectionName>Sequences</CollectionName> + <RestrictionName>Name</RestrictionName> + <RestrictionDefault>sequence_name</RestrictionDefault> + <RestrictionNumber>3</RestrictionNumber> + </Restrictions> + <Restrictions> <CollectionName>Tables</CollectionName> <RestrictionName>Catalog</RestrictionName> <RestrictionDefault>table_catalog</RestrictionDefault> Added: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSequences.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSequences.cs (rev 0) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSequences.cs 2006-04-11 12:05:09 UTC (rev 87) @@ -0,0 +1,66 @@ +/* + * PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ + * + * The contents of this file are subject to the Initial + * Developer's Public License Version 1.0 (the "License"); + * you may not use this file except in compliance with the + * License. + * + * Software distributed under the License is distributed on + * an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either + * express or implied. See the License for the specific + * language governing rights and limitations under the License. + * + * Copyright (c) 2003, 2006 Carlos Guzman Alvarez + * All Rights Reserved. + */ + +using System; + +namespace PostgreSql.Data.Schema +{ + internal class PgSequences : PgSchema + { + #region \xB7 Protected Methods \xB7 + + protected override string BuildSql(string[] restrictions) + { + string sql = + "SELECT " + + "current_database() AS SEQUENCE_CATALOG, " + + "pg_namespace.nspname AS SEQUENCE_SCHEMA, " + + "pg_class.relname AS SEQUENCE_NAME, " + + "pg_description.description AS DESCRIPTION " + + "FROM pg_class " + + "left join pg_namespace ON pg_class.relnamespace = pg_namespace.oid " + + "left join pg_description ON pg_class.oid = pg_description.objoid " + + "WHERE pg_class.relkind = 'S' "; + + if (restrictions != null && restrictions.Length > 0) + { + // SEQUENCE_CATALOG + if (restrictions.Length > 0 && restrictions[0] != null) + { + } + + // SEQUENCE_SCHEMA + if (restrictions.Length > 1 && restrictions[1] != null) + { + sql += String.Format(" and pg_namespace.nspname = '{0}'", restrictions[1]); + } + + // SEQUENCE_NAME + if (restrictions.Length > 2 && restrictions[2] != null) + { + sql += String.Format(" and pg_class.relname = '{0}'", restrictions[2]); + } + } + + sql += " ORDER BY pg_namespace.nspname, pg_class.relname"; + + return sql; + } + + #endregion + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-04-11 12:43:49
|
Revision: 89 Author: carlosga_fb Date: 2006-04-11 05:43:34 -0700 (Tue, 11 Apr 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=89&view=rev Log Message: ----------- ?\194?\183 Added new schema for PostgreSQL tablespaces Modified Paths: -------------- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchemaFactory.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgTables.cs Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml 2006-04-11 12:05:45 UTC (rev 88) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml 2006-04-11 12:43:34 UTC (rev 89) @@ -229,7 +229,7 @@ </MetaDataCollections> <MetaDataCollections> <CollectionName>Tables</CollectionName> - <NumberOfRestrictions>4</NumberOfRestrictions> + <NumberOfRestrictions>5</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> @@ -241,9 +241,10 @@ </MetaDataCollections> <MetaDataCollections> <CollectionName>TableSpaces</CollectionName> - <NumberOfRestrictions>2</NumberOfRestrictions> + <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> - <PopulationMechanism>PrepareCollection</PopulationMechanism> + <PopulationMechanism>SQLCommand</PopulationMechanism> + <PopulationString>SELECT spcname as TABLESPACE_NAME from pg_tablespace</PopulationString> </MetaDataCollections> <MetaDataCollections> <CollectionName>Triggers</CollectionName> @@ -505,6 +506,12 @@ <RestrictionNumber>4</RestrictionNumber> </Restrictions> <Restrictions> + <CollectionName>Tables</CollectionName> + <RestrictionName>Tablespace</RestrictionName> + <RestrictionDefault>tablespace</RestrictionDefault> + <RestrictionNumber>5</RestrictionNumber> + </Restrictions> + <Restrictions> <CollectionName>Triggers</CollectionName> <RestrictionName>TableCatalog</RestrictionName> <RestrictionDefault>table_catalog</RestrictionDefault> Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchemaFactory.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchemaFactory.cs 2006-04-11 12:05:45 UTC (rev 88) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchemaFactory.cs 2006-04-11 12:43:34 UTC (rev 89) @@ -126,6 +126,10 @@ schema = new PgPrimaryKeys(); break; + case "sequences": + schema = new PgSequences(); + break; + case "tables": schema = new PgTables(); break; Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgTables.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgTables.cs 2006-04-11 12:05:45 UTC (rev 88) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgTables.cs 2006-04-11 12:43:34 UTC (rev 89) @@ -34,6 +34,7 @@ "when 'r' THEN 'TABLE' " + "when 'v' THEN 'VIEW' " + "END AS TABLE_TYPE, " + + "pg_tablespace.spcname AS TABLESPACE, " + "pg_class.relhasindex AS HAS_INDEXES, " + "pg_class.relisshared AS IS_SHARED, " + "pg_class.relchecks AS CONSTRAINT_COUNT, " + @@ -44,6 +45,7 @@ "pg_description.description AS DESCRIPTION " + "FROM pg_class " + "left join pg_namespace ON pg_class.relnamespace = pg_namespace.oid " + + "left join pg_tablespace ON pg_class.reltablespace = pg_tablespace.oid " + "left join pg_description ON pg_class.oid = pg_description.objoid "; if (restrictions != null && restrictions.Length > 0) @@ -70,9 +72,15 @@ { sql += String.Format(" and pg_class.relkind = '{0}'", restrictions[3]); } - } - if (restrictions.Length < 4 || restrictions[3] == null) + // TABLESPACE + if (restrictions.Length > 4 && restrictions[4] != null) + { + sql += String.Format(" and pg_tablespace.spcname = '{0}'", restrictions[4]); + } + } + + if (restrictions != null && (restrictions.Length < 4 || restrictions[3] == null)) { sql += "WHERE pg_class.relkind = 'r' "; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-04-12 14:56:18
|
Revision: 104 Author: carlosga_fb Date: 2006-04-12 07:55:36 -0700 (Wed, 12 Apr 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=104&view=rev Log Message: ----------- ?\194?\183 More changes on schema support NOT FINISHED !!! Modified Paths: -------------- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgPrimaryKeys.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchemaFactory.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgUniqueKeys.cs Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml 2006-04-12 13:41:56 UTC (rev 103) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml 2006-04-12 14:55:36 UTC (rev 104) @@ -161,7 +161,13 @@ <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> - <MetaDataCollections> + <MetaDataCollections> + <CollectionName>FunctionParameters</CollectionName> + <NumberOfRestrictions>3</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + <PopulationMechanism>PrepareCollection</PopulationMechanism> + </MetaDataCollections> + <MetaDataCollections> <CollectionName>Groups</CollectionName> <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> @@ -392,6 +398,24 @@ <RestrictionNumber>3</RestrictionNumber> </Restrictions> <Restrictions> + <CollectionName>FunctionParameters</CollectionName> + <RestrictionName>Catalog</RestrictionName> + <RestrictionDefault>function_catalog</RestrictionDefault> + <RestrictionNumber>1</RestrictionNumber> + </Restrictions> + <Restrictions> + <CollectionName>FunctionParameters</CollectionName> + <RestrictionName>Schema</RestrictionName> + <RestrictionDefault>function_schema</RestrictionDefault> + <RestrictionNumber>2</RestrictionNumber> + </Restrictions> + <Restrictions> + <CollectionName>FunctionParameters</CollectionName> + <RestrictionName>Name</RestrictionName> + <RestrictionDefault>function_name</RestrictionDefault> + <RestrictionNumber>3</RestrictionNumber> + </Restrictions> + <Restrictions> <CollectionName>ForeignKeys</CollectionName> <RestrictionName>ConstraintCatalog</RestrictionName> <RestrictionDefault>constraint_catalog</RestrictionDefault> @@ -615,7 +639,7 @@ <SupportedJoinOperators>15</SupportedJoinOperators> </DataSourceInformation> <DataTypes> - <TypeName>smallint</TypeName> + <TypeName>int2</TypeName> <ProviderDbType>12</ProviderDbType> <ColumnSize>2</ColumnSize> <CreateFormat /> @@ -640,7 +664,7 @@ <DbType>10</DbType> </DataTypes> <DataTypes> - <TypeName>integer</TypeName> + <TypeName>int4</TypeName> <ProviderDbType>13</ProviderDbType> <ColumnSize>4</ColumnSize> <CreateFormat /> @@ -665,7 +689,7 @@ <DbType>11</DbType> </DataTypes> <DataTypes> - <TypeName>bigint</TypeName> + <TypeName>int8</TypeName> <ProviderDbType>14</ProviderDbType> <ColumnSize>8</ColumnSize> <CreateFormat /> @@ -740,7 +764,7 @@ <DbType>7</DbType> </DataTypes> <DataTypes> - <TypeName>real</TypeName> + <TypeName>float4</TypeName> <ProviderDbType>11</ProviderDbType> <ColumnSize>8</ColumnSize> <CreateFormat /> @@ -765,7 +789,7 @@ <DbType>15</DbType> </DataTypes> <DataTypes> - <TypeName>double precision</TypeName> + <TypeName>float8</TypeName> <ProviderDbType>10</ProviderDbType> <ColumnSize>8</ColumnSize> <CreateFormat /> @@ -790,7 +814,7 @@ <DbType>8</DbType> </DataTypes> <DataTypes> - <TypeName>money</TypeName> + <TypeName>currency</TypeName> <ProviderDbType>7</ProviderDbType> <ColumnSize>4</ColumnSize> <CreateFormat /> @@ -840,7 +864,7 @@ <DbType>16</DbType> </DataTypes> <DataTypes> - <TypeName>character varying</TypeName> + <TypeName>varchar</TypeName> <ProviderDbType>27</ProviderDbType> <ColumnSize>2147483647</ColumnSize> <CreateFormat /> @@ -940,7 +964,7 @@ <DbType>6</DbType> </DataTypes> <DataTypes> - <TypeName>timestamp without time zone</TypeName> + <TypeName>timestamp</TypeName> <ProviderDbType>23</ProviderDbType> <ColumnSize>8</ColumnSize> <CreateFormat /> @@ -965,7 +989,7 @@ <DbType>6</DbType> </DataTypes> <DataTypes> - <TypeName>time with time zone</TypeName> + <TypeName>timetz</TypeName> <ProviderDbType>24</ProviderDbType> <ColumnSize>12</ColumnSize> <CreateFormat /> @@ -990,7 +1014,7 @@ <DbType>6</DbType> </DataTypes> <DataTypes> - <TypeName>timestamp without time zone</TypeName> + <TypeName>timestamp</TypeName> <ProviderDbType>25</ProviderDbType> <ColumnSize>8</ColumnSize> <CreateFormat /> @@ -1015,7 +1039,7 @@ <DbType>6</DbType> </DataTypes> <DataTypes> - <TypeName>timestamp with time zone</TypeName> + <TypeName>timestamptz</TypeName> <ProviderDbType>26</ProviderDbType> <ColumnSize>8</ColumnSize> <CreateFormat /> Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs 2006-04-12 13:41:56 UTC (rev 103) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs 2006-04-12 14:55:36 UTC (rev 104) @@ -27,80 +27,82 @@ protected override string BuildSql(string[] restrictions) { - string where = ""; - string sql = - "SELECT " + - "table_catalog, " + - "table_schema, " + - "table_name, " + - "column_name, " + - "data_type, " + - "0 AS COLUMN_SIZE, " + - "numeric_precision, " + - "numeric_scale, " + - "ordinal_position, " + - "case is_nullable " + - "when 'NO' then false " + - "when 'YES' then true " + - "end AS is_nullable, " + - "column_default, " + - "character_maximum_length AS CHARACTER_LENGTH, " + - "character_octet_length, " + - "character_set_catalog, " + - "character_set_schema, " + - "character_set_name, " + - "collation_catalog, " + - "collation_schema, " + - "collation_name, " + - "domain_catalog, " + - "domain_schema, " + - "domain_name " + - "FROM information_schema.columns "; - + string sql = + "SELECT " + + "current_database() AS TABLE_CATALOG, " + + "pg_namespace.nspname AS TABLE_SCHEMA, " + + "pg_class.relname AS TABLE_NAME, " + + "pg_attribute.attname AS COLUMN_NAME, " + + "CASE " + + "WHEN pg_type.typname = 'bpchar' THEN 'char' " + + "WHEN pg_type.typname = '_bpchar' THEN '_char' " + + "ELSE pg_type.typname " + + "END AS DATA_TYPE, " + + "pg_attribute.attlen AS COLUMN_SIZE, " + + "information_schema.columns.character_octet_length AS CHARACTER_OCTET_LENGTH, " + + "information_schema.columns.character_maximum_length AS CHARACTER_LENGTH, " + + "0 AS NUMERIC_PRECISION, " + + "0 AS NUMERIC_SCALE, " + + "CASE " + + "WHEN pg_attribute.attndims > 0 THEN true " + + "ELSE false " + + "END AS IS_ARRAY, " + + "pg_attribute.attndims AS COLUMN_DIMENSIONS, " + + "pg_attribute.attnum AS ORDINAL_POSITION, " + + "pg_attribute.atthasdef AS HAS_DEFAULT, " + + "pg_attrdef.adsrc AS COLUMN_DEFAULT, " + + "CASE pg_attribute.attnotnull " + + "when true then false " + + "when false then true " + + "END AS IS_NULLABLE, " + + "(pg_depend.objid is not null) AS IS_AUTOINCREMENT, " + + "pg_description.description AS DESCRIPTION " + + "FROM " + + "pg_attribute " + + "LEFT JOIN " + + "pg_class on pg_attribute.attrelid = pg_class.oid " + + "LEFT JOIN " + + "pg_namespace on pg_class.relnamespace = pg_namespace.oid " + + "LEFT JOIN " + + "pg_attrdef on (pg_class.oid = pg_attrdef.adrelid AND pg_attribute.attnum = pg_attrdef.adnum) " + + "LEFT JOIN " + + "pg_description on (pg_attribute.attrelid = pg_description.objoid AND pg_attribute.attnum = pg_description.objsubid) " + + "LEFT JOIN " + + "pg_depend on (pg_attribute.attrelid = pg_depend.refobjid AND pg_attribute.attnum = pg_depend.refobjsubid AND pg_depend.deptype = 'i') " + + "LEFT JOIN " + + "pg_type on (pg_type.oid = pg_attribute.atttypid) " + + "LEFT JOIN " + + "information_schema.columns on (table_catalog=current_database() and table_schema=pg_namespace.nspname and table_name=pg_class.relname and ordinal_position=pg_attribute.attnum) " + + "WHERE " + + "pg_attribute.attisdropped = false AND pg_attribute.attnum > 0 "; + if (restrictions != null && restrictions.Length > 0) { // TABLE_CATALOG if (restrictions.Length > 0 && restrictions[0] != null) { - if (where.Length > 0) - { - where += " and "; - } - where += String.Format("table_catalog = '{0}'", restrictions[0]); } // TABLE_SCHEMA if (restrictions.Length > 1 && restrictions[1] != null) { - if (where.Length > 0) - { - where += " and "; - } - where += String.Format("table_schema = '{0}'", restrictions[1]); + sql += String.Format(" and pg_namespace.nspname = '{0}'", restrictions[1]); } // TABLE_NAME if (restrictions.Length > 2 && restrictions[2] != null) { - if (where.Length > 0) - { - where += " and "; - } - where += String.Format("table_name = '{0}'", restrictions[2]); + sql += String.Format("pg_class.relname = '{0}'", restrictions[2]); } // COLUMN_NAME if (restrictions.Length > 3 && restrictions[3] != null) { - if (where.Length > 0) - { - where += " and "; - } - where += String.Format("column_name = '{0}'", restrictions[3]); + sql += String.Format("pg_attribute.attname = '{0}'", restrictions[3]); } } - sql += "WHERE " + where + " ORDER BY table_catalog, table_schema, table_name, ordinal_position"; + sql += " ORDER BY pg_namespace.nspname, pg_class.relname, pg_attribute.attnum"; return sql; } @@ -109,6 +111,8 @@ { DataTable dataTypes = connection.GetSchema("DataTypes"); + schema.BeginLoadData(); + foreach (DataRow column in schema.Rows) { switch (column["DATA_TYPE"].ToString()) @@ -117,8 +121,8 @@ column["COLUMN_SIZE"] = column["CHARACTER_OCTET_LENGTH"]; break; - case "character": - case "character variying": + case "char": + case "varchar": column["COLUMN_SIZE"] = column["CHARACTER_LENGTH"]; break; @@ -133,6 +137,7 @@ } } + schema.EndLoadData(); schema.AcceptChanges(); return schema; Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs 2006-04-12 13:41:56 UTC (rev 103) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs 2006-04-12 14:55:36 UTC (rev 104) @@ -105,6 +105,8 @@ selectColumn.Prepare(); + foreignKeyColumns.BeginLoadData(); + foreach (DataRow row in schema.Rows) { Array tableColumns = (Array)row["CONSTRAINT_TABLE_COLUMNS"]; @@ -145,7 +147,9 @@ } } + foreignKeyColumns.EndLoadData(); foreignKeyColumns.AcceptChanges(); + foreignKeyColumns.Columns.Remove("CONSTRAINT_TABLE_COLUMNS"); foreignKeyColumns.Columns.Remove("REFERENCED_TABLE_COLUMNS"); Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgPrimaryKeys.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgPrimaryKeys.cs 2006-04-12 13:41:56 UTC (rev 103) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgPrimaryKeys.cs 2006-04-12 14:55:36 UTC (rev 104) @@ -89,6 +89,8 @@ try { + primaryKeyColumns.BeginLoadData(); + selectColumn.Prepare(); foreach (DataRow row in schema.Rows) @@ -126,7 +128,9 @@ // CleanUp selectColumn.Dispose(); + primaryKeyColumns.EndLoadData(); primaryKeyColumns.AcceptChanges(); + primaryKeyColumns.Columns.Remove("PK_COLUMNS"); } Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchemaFactory.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchemaFactory.cs 2006-04-12 13:41:56 UTC (rev 103) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchemaFactory.cs 2006-04-12 14:55:36 UTC (rev 104) @@ -114,6 +114,10 @@ schema = new PgFunctions(); break; + case "functionparameters": + schema = new PgFunctionParameters(); + break; + case "foreignkeys": schema = new PgForeignKeys(); break; Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgUniqueKeys.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgUniqueKeys.cs 2006-04-12 13:41:56 UTC (rev 103) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgUniqueKeys.cs 2006-04-12 14:55:36 UTC (rev 104) @@ -89,6 +89,8 @@ try { + uniqueKeyColumns.BeginLoadData(); + selectColumn.Prepare(); foreach (DataRow row in schema.Rows) @@ -126,7 +128,9 @@ // CleanUp selectColumn.Dispose(); + uniqueKeyColumns.EndLoadData(); uniqueKeyColumns.AcceptChanges(); + uniqueKeyColumns.Columns.Remove("UK_COLUMNS"); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-04-11 14:56:15
|
Revision: 90 Author: carlosga_fb Date: 2006-04-11 07:56:02 -0700 (Tue, 11 Apr 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=90&view=rev Log Message: ----------- ?\194?\183 Database Schema Fixes Modified Paths: -------------- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgTables.cs Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs 2006-04-11 12:43:34 UTC (rev 89) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs 2006-04-11 14:56:02 UTC (rev 90) @@ -25,6 +25,7 @@ protected override string BuildSql(string[] restrictions) { + string where = ""; string sql = "SELECT " + "table_catalog, " + @@ -54,29 +55,45 @@ // TABLE_CATALOG if (restrictions.Length > 0 && restrictions[0] != null) { - sql += String.Format(" and table_catalog = '{0}'", restrictions[0]); + if (where.Length > 0) + { + where += " and "; + } + where += String.Format(" and table_catalog = '{0}'", restrictions[0]); } // TABLE_SCHEMA if (restrictions.Length > 1 && restrictions[1] != null) { - sql += String.Format(" and table_schema = '{0}'", restrictions[1]); + if (where.Length > 0) + { + where += " and "; + } + where += String.Format(" and table_schema = '{0}'", restrictions[1]); } // TABLE_NAME if (restrictions.Length > 2 && restrictions[2] != null) { - sql += String.Format(" and table_name = '{0}'", restrictions[2]); + if (where.Length > 0) + { + where += " and "; + } + where += String.Format(" and table_name = '{0}'", restrictions[2]); } // COLUMN_NAME if (restrictions.Length > 3 && restrictions[3] != null) { - sql += String.Format(" and column_name = '{0}'", restrictions[3]); + if (where.Length > 0) + { + where += " and "; + } + where += String.Format(" and column_name = '{0}'", restrictions[3]); } } - sql += " ORDER BY table_catalog, table_schema, table_name, ordinal_position"; + sql += "WHERE " + where + " ORDER BY table_catalog, table_schema, table_name, ordinal_position"; return sql; } Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgTables.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgTables.cs 2006-04-11 12:43:34 UTC (rev 89) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgTables.cs 2006-04-11 14:56:02 UTC (rev 90) @@ -25,6 +25,7 @@ protected override string BuildSql(string[] restrictions) { + string where = ""; string sql = "SELECT " + "current_database() AS TABLE_CATALOG, " + @@ -48,44 +49,69 @@ "left join pg_tablespace ON pg_class.reltablespace = pg_tablespace.oid " + "left join pg_description ON pg_class.oid = pg_description.objoid "; - if (restrictions != null && restrictions.Length > 0) - { - // TABLE_CATALOG - if (restrictions.Length > 0 && restrictions[0] != null) - { - } + sql += "WHERE "; - // TABLE_SCHEMA - if (restrictions.Length > 1 && restrictions[1] != null) - { - sql += String.Format(" and pg_namespace.nspname = '{0}'", restrictions[1]); - } + if (restrictions != null && restrictions.Length > 0) + { + // TABLE_CATALOG + if (restrictions.Length > 0 && restrictions[0] != null) + { + } - // TABLE_NAME - if (restrictions.Length > 2 && restrictions[2] != null) - { - sql += String.Format(" and pg_class.relname = '{0}'", restrictions[2]); - } + // TABLE_SCHEMA + if (restrictions.Length > 1 && restrictions[1] != null) + { + if (where.Length > 0) + { + where += " and "; + } + where += String.Format("pg_namespace.nspname = '{0}'", restrictions[1]); + } - // TABLE_TYPE - if (restrictions.Length > 3 && restrictions[3] != null) - { - sql += String.Format(" and pg_class.relkind = '{0}'", restrictions[3]); - } + // TABLE_NAME + if (restrictions.Length > 2 && restrictions[2] != null) + { + if (where.Length > 0) + { + where += " and "; + } + where += String.Format("pg_class.relname = '{0}'", restrictions[2]); + } + // TABLE_TYPE + if (restrictions.Length > 3 && restrictions[3] != null) + { + if (where.Length > 0) + { + where += " and "; + } + where += String.Format("pg_class.relkind = '{0}'", restrictions[3]); + } + else + { + if (where.Length > 0) + { + where += " and "; + } + where += "pg_class.relkind = 'r'"; + } + // TABLESPACE if (restrictions.Length > 4 && restrictions[4] != null) { - sql += String.Format(" and pg_tablespace.spcname = '{0}'", restrictions[4]); + if (where.Length > 0) + { + where += " and "; + } + where += String.Format("pg_tablespace.spcname = '{0}'", restrictions[4]); } } - - if (restrictions != null && (restrictions.Length < 4 || restrictions[3] == null)) + else { - sql += "WHERE pg_class.relkind = 'r' "; + where += " pg_class.relkind = 'r'"; } - sql += " ORDER BY pg_class.relkind, pg_namespace.nspname, pg_class.relname"; + sql += where + " ORDER BY pg_class.relkind, pg_namespace.nspname, pg_class.relname"; return sql; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-04-11 17:25:23
|
Revision: 95 Author: carlosga_fb Date: 2006-04-11 10:25:08 -0700 (Tue, 11 Apr 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=95&view=rev Log Message: ----------- ?\194?\183 More Database Schema Fixes Modified Paths: -------------- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgPrimaryKeys.cs Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml 2006-04-11 17:24:10 UTC (rev 94) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml 2006-04-11 17:25:08 UTC (rev 95) @@ -797,7 +797,7 @@ <DbType>15</DbType> </DataTypes> <DataTypes> - <TypeName>char</TypeName> + <TypeName>character</TypeName> <ProviderDbType>5</ProviderDbType> <ColumnSize>2147483647</ColumnSize> <CreateFormat /> @@ -822,7 +822,7 @@ <DbType>16</DbType> </DataTypes> <DataTypes> - <TypeName>varchar</TypeName> + <TypeName>character varying</TypeName> <ProviderDbType>27</ProviderDbType> <ColumnSize>2147483647</ColumnSize> <CreateFormat /> @@ -872,7 +872,7 @@ <DbType>16</DbType> </DataTypes> <DataTypes> - <TypeName>binary</TypeName> + <TypeName>bytea</TypeName> <ProviderDbType>1</ProviderDbType> <ColumnSize>2147483647</ColumnSize> <CreateFormat /> @@ -922,7 +922,7 @@ <DbType>6</DbType> </DataTypes> <DataTypes> - <TypeName>time</TypeName> + <TypeName>timestamp without time zone</TypeName> <ProviderDbType>23</ProviderDbType> <ColumnSize>8</ColumnSize> <CreateFormat /> @@ -947,7 +947,7 @@ <DbType>6</DbType> </DataTypes> <DataTypes> - <TypeName>time(tz)</TypeName> + <TypeName>time with time zone</TypeName> <ProviderDbType>24</ProviderDbType> <ColumnSize>12</ColumnSize> <CreateFormat /> @@ -972,7 +972,7 @@ <DbType>6</DbType> </DataTypes> <DataTypes> - <TypeName>timestamp</TypeName> + <TypeName>timestamp without time zone</TypeName> <ProviderDbType>25</ProviderDbType> <ColumnSize>8</ColumnSize> <CreateFormat /> @@ -997,7 +997,7 @@ <DbType>6</DbType> </DataTypes> <DataTypes> - <TypeName>timestamp(tz)</TypeName> + <TypeName>timestamp with time zone</TypeName> <ProviderDbType>26</ProviderDbType> <ColumnSize>8</ColumnSize> <CreateFormat /> Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs 2006-04-11 17:24:10 UTC (rev 94) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs 2006-04-11 17:25:08 UTC (rev 95) @@ -16,6 +16,8 @@ */ using System; +using System.Data; +using PostgreSql.Data.PostgreSqlClient; namespace PostgreSql.Data.Schema { @@ -33,6 +35,7 @@ "table_name, " + "column_name, " + "data_type, " + + "0 AS COLUMN_SIZE, " + "numeric_precision, " + "numeric_scale, " + "ordinal_position, " + @@ -41,14 +44,18 @@ "when 'YES' then true " + "end AS is_nullable, " + "column_default, " + + "character_maximum_length AS CHARACTER_LENGTH, " + "character_octet_length, " + "character_set_catalog, " + "character_set_schema, " + "character_set_name, " + "collation_catalog, " + "collation_schema, " + - "collation_name " + - "FROM information_schema.columns "; + "collation_name, " + + "domain_catalog, " + + "domain_schema, " + + "domain_name " + + "FROM information_schema.columns "; if (restrictions != null && restrictions.Length > 0) { @@ -98,6 +105,37 @@ return sql; } + protected override DataTable ProcessResult(PgConnection connection, DataTable schema) + { + DataTable dataTypes = connection.GetSchema("DataTypes"); + + foreach (DataRow column in schema.Rows) + { + switch (column["DATA_TYPE"].ToString()) + { + case "text": + column["COLUMN_SIZE"] = column["CHARACTER_OCTET_LENGTH"]; + break; + + case "character": + case "character variying": + column["COLUMN_SIZE"] = column["CHARACTER_LENGTH"]; + break; + + default: + dataTypes.DefaultView.RowFilter = String.Format("TypeName='{0}'", column["COLUMN_NAME"]); + + if (dataTypes.DefaultView.Count == 1) + { + column["COLUMN_SIZE"] = dataTypes.DefaultView[0]["ColumnSize"]; + } + break; + } + } + + return schema; + } + #endregion } } Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs 2006-04-11 17:24:10 UTC (rev 94) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs 2006-04-11 17:25:08 UTC (rev 95) @@ -147,6 +147,8 @@ // CleanUp selectColumn.Dispose(); + foreignKeyColumns.Columns.Remove("CONSTRAINT_TABLE_COLUMNS"); + foreignKeyColumns.Columns.Remove("REFERENCED_TABLE_COLUMNS"); return foreignKeyColumns; } Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgPrimaryKeys.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgPrimaryKeys.cs 2006-04-11 17:24:10 UTC (rev 94) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgPrimaryKeys.cs 2006-04-11 17:25:08 UTC (rev 95) @@ -16,7 +16,10 @@ */ using System; +using System.Data; +using PostgreSql.Data.PostgreSqlClient; + namespace PostgreSql.Data.Schema { internal sealed class PgPrimaryKeys : PgSchema @@ -29,8 +32,9 @@ "SELECT " + "current_database() AS TABLE_CATALOG, " + "pg_namespace.nspname AS TABLE_SCHEMA, " + - "pg_class.relname AS TABLE_NAME, " + - "pg_constraint.conname AS PK_NAME, " + + "pg_class.relname AS TABLE_NAME, " + + "null AS COLUMN_NAME, " + + "pg_constraint.conname AS PK_NAME, " + "pg_constraint.conkey AS PK_COLUMNS, " + "pg_description.description AS DESCRIPTION " + "FROM pg_constraint " + @@ -65,6 +69,68 @@ return sql; } + protected override System.Data.DataTable ProcessResult(PostgreSql.Data.PostgreSqlClient.PgConnection connection, System.Data.DataTable schema) + { + DataTable primaryKeyColumns = schema.Clone(); + string sql = + "SELECT " + + "column_name " + + "FROM information_schema.columns " + + "WHERE " + + "table_catalog=current_database() AND " + + "table_schema=@tableSchema AND " + + "table_name=@tableName AND " + + "ordinal_position=@ordinalPosition"; + + PgCommand selectColumn = new PgCommand(sql, connection); + selectColumn.Parameters.Add("@tableSchema", PgDbType.Text); + selectColumn.Parameters.Add("@tableName", PgDbType.Text); + selectColumn.Parameters.Add("@ordinalPosition", PgDbType.Text); + + try + { + selectColumn.Prepare(); + + foreach (DataRow row in schema.Rows) + { + Array pkColumns = (Array)row["PK_COLUMNS"]; + + for (int i = 0; i < pkColumns.Length; i++) + { + DataRow primaryKeyColumn = primaryKeyColumns.NewRow(); + + // Grab the table column name + selectColumn.Parameters["@tableSchema"].Value = row["TABLE_SCHEMA"]; + selectColumn.Parameters["@tableName"].Value = row["TABLE_NAME"]; + selectColumn.Parameters["@ordinalPosition"].Value = Convert.ToInt16(pkColumns.GetValue(i + 1)); + + string pkColumnName = (string)selectColumn.ExecuteScalar(); + + // Create the new primary key column info + primaryKeyColumn["TABLE_CATALOG"] = row["TABLE_CATALOG"]; + primaryKeyColumn["TABLE_SCHEMA"] = row["TABLE_SCHEMA"]; + primaryKeyColumn["TABLE_NAME"] = row["TABLE_NAME"]; + primaryKeyColumn["COLUMN_NAME"] = pkColumnName; + primaryKeyColumn["DESCRIPTION"] = row["DESCRIPTION"]; + + primaryKeyColumns.Rows.Add(primaryKeyColumn); + } + } + } + catch + { + throw; + } + finally + { + // CleanUp + selectColumn.Dispose(); + primaryKeyColumns.Columns.Remove("PK_COLUMNS"); + } + + return primaryKeyColumns; + } + #endregion } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-04-11 19:44:01
|
Revision: 96 Author: carlosga_fb Date: 2006-04-11 12:43:43 -0700 (Tue, 11 Apr 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=96&view=rev Log Message: ----------- ?\194?\183 Tons of Schema changes and bug fixes Modified Paths: -------------- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctions.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgPrimaryKeys.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchema.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchemaFactory.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgViewColumns.cs Added Paths: ----------- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgUniqueKeys.cs Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml 2006-04-11 17:25:08 UTC (rev 95) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml 2006-04-11 19:43:43 UTC (rev 96) @@ -189,7 +189,7 @@ </MetaDataCollections> <MetaDataCollections> <CollectionName>PrimaryKeys</CollectionName> - <NumberOfRestrictions>4</NumberOfRestrictions> + <NumberOfRestrictions>3</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> @@ -212,7 +212,7 @@ <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>SQLCommand</PopulationMechanism> - <PopulationString>SELECT current_database() AS SCHEMA_CATALOG, pg_namespace.nspname AS SCHEMA_NAME, pg_shadow.usename AS SCHEMA_OWNER, pg_description.description AS DESCRIPTION FROM pg_namespace left join pg_shadow ON pg_namespace.nspowner = pg_shadow.usesysid left join pg_description ON pg_namespace.oid = pg_description.objoid ORDER BY pg_namespace.nspname, pg_shadow.usename</PopulationString> + <PopulationString>SELECT current_database() AS SCHEMA_CATALOG, pg_namespace.nspname AS SCHEMA_NAME, pg_shadow.usename AS SCHEMA_OWNER, pg_description.description AS DESCRIPTION, CASE WHEN nspname LIKE 'pg\\_temp\\_%%' THEN 1 WHEN (nspname LIKE 'pg\\_%' OR nspname = 'information_schema') THEN 0 ELSE 3 END AS SCHEMA_TYPE FROM pg_namespace left join pg_shadow ON pg_namespace.nspowner = pg_shadow.usesysid left join pg_description ON pg_namespace.oid = pg_description.objoid ORDER BY pg_namespace.nspname, pg_shadow.usename</PopulationString> </MetaDataCollections> <MetaDataCollections> <CollectionName>Sequences</CollectionName> @@ -252,14 +252,20 @@ <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> - <MetaDataCollections> - <CollectionName>Users</CollectionName> - <NumberOfRestrictions>0</NumberOfRestrictions> - <NumberOfIdentifierParts>0</NumberOfIdentifierParts> - <PopulationMechanism>SQLCommand</PopulationMechanism> - <PopulationString>SELECT pg_shadow.usename AS USER_NAME, pg_shadow.usecreatedb AS CREATE_DATABASE, pg_shadow.usesuper AS IS_SUPERUSER, pg_shadow.usecatupd AS UPDATE_SYSCATALOGS, pg_shadow.passwd AS PASSWORD, pg_shadow.useconfig AS CONFIGURATION FROM pg_shadow ORDER BY pg_shadow.usename</PopulationString> - </MetaDataCollections> - <MetaDataCollections> + <MetaDataCollections> + <CollectionName>UniqueKeys</CollectionName> + <NumberOfRestrictions>3</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + <PopulationMechanism>PrepareCollection</PopulationMechanism> + </MetaDataCollections> + <MetaDataCollections> + <CollectionName>Users</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + <PopulationMechanism>SQLCommand</PopulationMechanism> + <PopulationString>SELECT pg_shadow.usename AS USER_NAME, pg_shadow.usecreatedb AS CREATE_DATABASE, pg_shadow.usesuper AS IS_SUPERUSER, pg_shadow.usecatupd AS UPDATE_SYSCATALOGS, pg_shadow.passwd AS PASSWORD, pg_shadow.useconfig AS CONFIGURATION FROM pg_shadow ORDER BY pg_shadow.usename</PopulationString> + </MetaDataCollections> + <MetaDataCollections> <CollectionName>Views</CollectionName> <NumberOfRestrictions>3</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> @@ -313,12 +319,6 @@ <RestrictionDefault>column_name</RestrictionDefault> <RestrictionNumber>4</RestrictionNumber> </Restrictions> - <Restrictions> - <CollectionName>PrimaryKeys</CollectionName> - <RestrictionName>Catalog</RestrictionName> - <RestrictionDefault>table_catalog</RestrictionDefault> - <RestrictionNumber>1</RestrictionNumber> - </Restrictions> <Restrictions> <CollectionName>Indexes</CollectionName> <RestrictionName>Catalog</RestrictionName> @@ -536,6 +536,24 @@ <RestrictionNumber>4</RestrictionNumber> </Restrictions> <Restrictions> + <CollectionName>UniqueKeys</CollectionName> + <RestrictionName>Schema</RestrictionName> + <RestrictionDefault>table_catalog</RestrictionDefault> + <RestrictionNumber>1</RestrictionNumber> + </Restrictions> + <Restrictions> + <CollectionName>UniqueKeys</CollectionName> + <RestrictionName>Schema</RestrictionName> + <RestrictionDefault>table_schema</RestrictionDefault> + <RestrictionNumber>2</RestrictionNumber> + </Restrictions> + <Restrictions> + <CollectionName>UniqueKeys</CollectionName> + <RestrictionName>Table</RestrictionName> + <RestrictionDefault>table_name</RestrictionDefault> + <RestrictionNumber>3</RestrictionNumber> + </Restrictions> + <Restrictions> <CollectionName>Views</CollectionName> <RestrictionName>Catalog</RestrictionName> <RestrictionDefault>view_catalog</RestrictionDefault> Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs 2006-04-11 17:25:08 UTC (rev 95) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs 2006-04-11 19:43:43 UTC (rev 96) @@ -133,6 +133,8 @@ } } + schema.AcceptChanges(); + return schema; } Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs 2006-04-11 17:25:08 UTC (rev 95) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs 2006-04-11 19:43:43 UTC (rev 96) @@ -145,11 +145,13 @@ } } - // CleanUp - selectColumn.Dispose(); + foreignKeyColumns.AcceptChanges(); foreignKeyColumns.Columns.Remove("CONSTRAINT_TABLE_COLUMNS"); foreignKeyColumns.Columns.Remove("REFERENCED_TABLE_COLUMNS"); + // CleanUp + selectColumn.Dispose(); + return foreignKeyColumns; } Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctions.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctions.cs 2006-04-11 17:25:08 UTC (rev 95) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctions.cs 2006-04-11 19:43:43 UTC (rev 96) @@ -25,6 +25,7 @@ protected override string BuildSql(string[] restrictions) { + string where = ""; string sql = "SELECT " + "current_database() AS FUNCTION_CATALOG, " + @@ -42,7 +43,8 @@ "pg_proc.proretset AS RETURNS_SET, " + "pg_proc.prorettype AS RETURN_TYPE, " + "pg_proc.pronargs AS ARGUMENT_NUMBER, " + - "pg_proc.proargtypes AS ARGUMENTS, " + + "pg_proc.proargtypes AS ARGUMENT_TYPES, " + + "pg_proc.proargtypes AS ARGUMENT_NAMES, " + "pg_proc.prosrc AS SOURCE, " + "pg_description.description AS DESCRIPTION " + "FROM " + @@ -61,17 +63,25 @@ // FUNCTION_SCHEMA if (restrictions.Length > 1 && restrictions[1] != null) { - sql += String.Format(" and pg_namespace.nspname = '{0}'", restrictions[1]); + if (where.Length > 0) + { + where += " and "; + } + where += String.Format("pg_namespace.nspname = '{0}'", restrictions[1]); } // FUNCTION_NAME if (restrictions.Length > 2 && restrictions[2] != null) { - sql += String.Format(" and pg_proc.proname = '{0}'", restrictions[2]); + if (where.Length > 0) + { + where += " and "; + } + where += String.Format(" and pg_proc.proname = '{0}'", restrictions[2]); } } - sql += " ORDER BY pg_namespace.nspname, pg_proc.proname"; + sql += "WHERE " + where + " ORDER BY pg_namespace.nspname, pg_proc.proname"; return sql; } Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgPrimaryKeys.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgPrimaryKeys.cs 2006-04-11 17:25:08 UTC (rev 95) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgPrimaryKeys.cs 2006-04-11 19:43:43 UTC (rev 96) @@ -125,6 +125,8 @@ { // CleanUp selectColumn.Dispose(); + + primaryKeyColumns.AcceptChanges(); primaryKeyColumns.Columns.Remove("PK_COLUMNS"); } Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchema.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchema.cs 2006-04-11 17:25:08 UTC (rev 95) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchema.cs 2006-04-11 19:43:43 UTC (rev 96) @@ -58,7 +58,7 @@ adapter.Fill(dataTable); - this.ProcessResult(connection, dataTable); + dataTable = this.ProcessResult(connection, dataTable); } catch (PgException) { Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchemaFactory.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchemaFactory.cs 2006-04-11 17:25:08 UTC (rev 95) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchemaFactory.cs 2006-04-11 19:43:43 UTC (rev 96) @@ -138,6 +138,10 @@ schema = new PgTriggers(); break; + case "uniquekeys": + schema = new PgUniqueKeys(); + break; + case "views": schema = new PgViews(); break; Added: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgUniqueKeys.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgUniqueKeys.cs (rev 0) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgUniqueKeys.cs 2006-04-11 19:43:43 UTC (rev 96) @@ -0,0 +1,138 @@ +/* + * PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+ + * + * The contents of this file are subject to the Initial + * Developer's Public License Version 1.0 (the "License"); + * you may not use this file except in compliance with the + * License. + * + * Software distributed under the License is distributed on + * an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either + * express or implied. See the License for the specific + * language governing rights and limitations under the License. + * + * Copyright (c) 2003, 2006 Carlos Guzman Alvarez + * All Rights Reserved. + */ + +using System; +using System.Data; + +using PostgreSql.Data.PostgreSqlClient; + +namespace PostgreSql.Data.Schema +{ + internal sealed class PgUniqueKeys : PgSchema + { + #region \xB7 Protected Methods \xB7 + + protected override string BuildSql(string[] restrictions) + { + string sql = + "SELECT " + + "current_database() AS TABLE_CATALOG, " + + "pg_namespace.nspname AS TABLE_SCHEMA, " + + "pg_class.relname AS TABLE_NAME, " + + "null AS COLUMN_NAME, " + + "pg_constraint.conname AS UK_NAME, " + + "pg_constraint.conkey AS UK_COLUMNS, " + + "pg_description.description AS DESCRIPTION " + + "FROM pg_constraint " + + "left join pg_class ON pg_constraint.conrelid = pg_class.oid " + + "left join pg_namespace ON pg_constraint.connamespace = pg_namespace.oid " + + "left join pg_description ON pg_constraint.oid = pg_description.objoid " + + "WHERE " + + "pg_constraint.contype = 'u' "; + + if (restrictions != null && restrictions.Length > 0) + { + // TABLE_CATALOG + if (restrictions.Length > 0 && restrictions[0] != null) + { + } + + // TABLE_SCHEMA + if (restrictions.Length > 1 && restrictions[1] != null) + { + sql += String.Format(" and pg_namespace.nspname = '{0}'", restrictions[1]); + } + + // TABLE_NAME + if (restrictions.Length > 2 && restrictions[2] != null) + { + sql += String.Format(" and pg_class.relname = '{0}'", restrictions[2]); + } + } + + sql += " ORDER BY pg_namespace.nspname, pg_class.relname, pg_constraint.conname"; + + return sql; + } + + protected override System.Data.DataTable ProcessResult(PostgreSql.Data.PostgreSqlClient.PgConnection connection, System.Data.DataTable schema) + { + DataTable uniqueKeyColumns = schema.Clone(); + string sql = + "SELECT " + + "column_name " + + "FROM information_schema.columns " + + "WHERE " + + "table_catalog=current_database() AND " + + "table_schema=@tableSchema AND " + + "table_name=@tableName AND " + + "ordinal_position=@ordinalPosition"; + + PgCommand selectColumn = new PgCommand(sql, connection); + selectColumn.Parameters.Add("@tableSchema", PgDbType.Text); + selectColumn.Parameters.Add("@tableName", PgDbType.Text); + selectColumn.Parameters.Add("@ordinalPosition", PgDbType.Text); + + try + { + selectColumn.Prepare(); + + foreach (DataRow row in schema.Rows) + { + Array pkColumns = (Array)row["UK_COLUMNS"]; + + for (int i = 0; i < pkColumns.Length; i++) + { + DataRow primaryKeyColumn = uniqueKeyColumns.NewRow(); + + // Grab the table column name + selectColumn.Parameters["@tableSchema"].Value = row["TABLE_SCHEMA"]; + selectColumn.Parameters["@tableName"].Value = row["TABLE_NAME"]; + selectColumn.Parameters["@ordinalPosition"].Value = Convert.ToInt16(pkColumns.GetValue(i + 1)); + + string pkColumnName = (string)selectColumn.ExecuteScalar(); + + // Create the new primary key column info + primaryKeyColumn["TABLE_CATALOG"] = row["TABLE_CATALOG"]; + primaryKeyColumn["TABLE_SCHEMA"] = row["TABLE_SCHEMA"]; + primaryKeyColumn["TABLE_NAME"] = row["TABLE_NAME"]; + primaryKeyColumn["COLUMN_NAME"] = pkColumnName; + primaryKeyColumn["DESCRIPTION"] = row["DESCRIPTION"]; + + uniqueKeyColumns.Rows.Add(primaryKeyColumn); + } + } + } + catch + { + throw; + } + finally + { + // CleanUp + selectColumn.Dispose(); + + uniqueKeyColumns.AcceptChanges(); + uniqueKeyColumns.Columns.Remove("UK_COLUMNS"); + } + + return uniqueKeyColumns; + } + + #endregion + } +} Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgViewColumns.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgViewColumns.cs 2006-04-11 17:25:08 UTC (rev 95) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgViewColumns.cs 2006-04-11 19:43:43 UTC (rev 96) @@ -30,7 +30,8 @@ "current_database() AS VIEW_CATALOG, " + "pg_namespace.nspname AS VIEW_SCHEMA, " + "pg_class.relname AS VIEW_NAME, " + - "pg_attribute.attname AS COLUMN_NAME " + + "pg_attribute.attname AS COLUMN_NAME, " + + "pg_attribute.attnum AS ORDINAL_POSITION " + "FROM " + "pg_class " + "left join pg_namespace ON pg_class.relnamespace = pg_namespace.oid " + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-04-12 17:24:06
|
Revision: 109 Author: carlosga_fb Date: 2006-04-12 10:23:52 -0700 (Wed, 12 Apr 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=109&view=rev Log Message: ----------- Fixes over latest commit Modified Paths: -------------- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctions.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgViewColumns.cs Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs 2006-04-12 17:22:52 UTC (rev 108) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs 2006-04-12 17:23:52 UTC (rev 109) @@ -38,11 +38,11 @@ "WHEN pg_type.typname = '_bpchar' THEN '_char' " + "ELSE pg_type.typname " + "END AS DATA_TYPE, " + - "pg_attribute.attlen AS COLUMN_SIZE, " + + "cast(pg_attribute.attlen AS Int4) AS COLUMN_SIZE, " + "information_schema.columns.character_octet_length AS CHARACTER_OCTET_LENGTH, " + "information_schema.columns.character_maximum_length AS CHARACTER_LENGTH, " + - "0 AS NUMERIC_PRECISION, " + - "0 AS NUMERIC_SCALE, " + + "cast (0 AS Int4) AS NUMERIC_PRECISION, " + + "cast (0 AS Int4) AS NUMERIC_SCALE, " + "CASE " + "WHEN pg_attribute.attndims > 0 THEN true " + "ELSE false " + Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctions.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctions.cs 2006-04-12 17:22:52 UTC (rev 108) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctions.cs 2006-04-12 17:23:52 UTC (rev 109) @@ -81,8 +81,13 @@ } } - sql += "WHERE " + where + " ORDER BY pg_namespace.nspname, pg_proc.proname"; + if (where.Length > 0) + { + sql += "WHERE " + where; + } + sql += " ORDER BY pg_namespace.nspname, pg_proc.proname"; + return sql; } Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgViewColumns.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgViewColumns.cs 2006-04-12 17:22:52 UTC (rev 108) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgViewColumns.cs 2006-04-12 17:23:52 UTC (rev 109) @@ -16,28 +16,66 @@ */ using System; +using System.Data; +using PostgreSql.Data.PostgreSqlClient; namespace PostgreSql.Data.Schema { internal class PgViewColumns : PgSchema { - #region \xB7 Protected Methods \xB7 + #region \xB7 Methods \xB7 protected override string BuildSql(string[] restrictions) { string sql = - "SELECT " + + "SELECT " + "current_database() AS VIEW_CATALOG, " + "pg_namespace.nspname AS VIEW_SCHEMA, " + "pg_class.relname AS VIEW_NAME, " + "pg_attribute.attname AS COLUMN_NAME, " + - "pg_attribute.attnum AS ORDINAL_POSITION " + + "CASE " + + "WHEN pg_type.typname = 'bpchar' THEN 'char' " + + "WHEN pg_type.typname = '_bpchar' THEN '_char' " + + "ELSE pg_type.typname " + + "END AS DATA_TYPE, " + + "cast(pg_attribute.attlen AS Int4) AS COLUMN_SIZE, " + + "information_schema.columns.character_octet_length AS CHARACTER_OCTET_LENGTH, " + + "information_schema.columns.character_maximum_length AS CHARACTER_LENGTH, " + + "cast(0 AS Int4) AS NUMERIC_PRECISION, " + + "cast(0 AS Int4) AS NUMERIC_SCALE, " + + "CASE " + + "WHEN pg_attribute.attndims > 0 THEN true " + + "ELSE false " + + "END AS IS_ARRAY, " + + "pg_attribute.attndims AS COLUMN_DIMENSIONS, " + + "pg_attribute.attnum AS ORDINAL_POSITION, " + + "pg_attribute.atthasdef AS HAS_DEFAULT, " + + "pg_attrdef.adsrc AS COLUMN_DEFAULT, " + + "CASE pg_attribute.attnotnull " + + "when true then false " + + "when false then true " + + "END AS IS_NULLABLE, " + + "(pg_depend.objid is not null) AS IS_AUTOINCREMENT, " + + "pg_description.description AS DESCRIPTION " + "FROM " + - "pg_class " + - "left join pg_namespace ON pg_class.relnamespace = pg_namespace.oid " + - "left join pg_attribute ON pg_attribute.attrelid = pg_class.oid " + + "pg_attribute " + + "LEFT JOIN " + + "pg_class on (pg_attribute.attrelid = pg_class.oid)" + + "LEFT JOIN " + + "pg_namespace on pg_class.relnamespace = pg_namespace.oid " + + "LEFT JOIN " + + "pg_attrdef on (pg_class.oid = pg_attrdef.adrelid AND pg_attribute.attnum = pg_attrdef.adnum) " + + "LEFT JOIN " + + "pg_description on (pg_attribute.attrelid = pg_description.objoid AND pg_attribute.attnum = pg_description.objsubid) " + + "LEFT JOIN " + + "pg_depend on (pg_attribute.attrelid = pg_depend.refobjid AND pg_attribute.attnum = pg_depend.refobjsubid AND pg_depend.deptype = 'i') " + + "LEFT JOIN " + + "pg_type on (pg_type.oid = pg_attribute.atttypid) " + + "LEFT JOIN " + + "information_schema.columns on (table_catalog=current_database() and table_schema=pg_namespace.nspname and table_name=pg_class.relname and ordinal_position=pg_attribute.attnum) " + "WHERE " + - "pg_class.relkind = 'v' "; + "pg_class.relkind = 'v' AND " + + "pg_attribute.attisdropped = false AND pg_attribute.attnum > 0 "; if (restrictions != null && restrictions.Length > 0) { @@ -55,21 +93,57 @@ // VIEW_NAME if (restrictions.Length > 2 && restrictions[2] != null) { - sql += String.Format(" and pg_class.relname = '{0}'", restrictions[2]); + sql += String.Format("pg_class.relname = '{0}'", restrictions[2]); } // COLUMN_NAME if (restrictions.Length > 3 && restrictions[3] != null) { - sql += String.Format(" and pg_attribute.attname = '{0}'", restrictions[3]); + sql += String.Format("pg_attribute.attname = '{0}'", restrictions[3]); } } - sql += " ORDER BY pg_namespace.nspname, pg_class.relname"; + sql += " ORDER BY pg_namespace.nspname, pg_class.relname, pg_attribute.attnum"; return sql; } + protected override DataTable ProcessResult(PgConnection connection, DataTable schema) + { + DataTable dataTypes = connection.GetSchema("DataTypes"); + + schema.BeginLoadData(); + + foreach (DataRow column in schema.Rows) + { + switch (column["DATA_TYPE"].ToString()) + { + case "text": + column["COLUMN_SIZE"] = column["CHARACTER_OCTET_LENGTH"]; + break; + + case "char": + case "varchar": + column["COLUMN_SIZE"] = column["CHARACTER_LENGTH"]; + break; + + default: + dataTypes.DefaultView.RowFilter = String.Format("TypeName='{0}'", column["COLUMN_NAME"]); + + if (dataTypes.DefaultView.Count == 1) + { + column["COLUMN_SIZE"] = dataTypes.DefaultView[0]["ColumnSize"]; + } + break; + } + } + + schema.EndLoadData(); + schema.AcceptChanges(); + + return schema; + } + #endregion } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-04-12 18:12:59
|
Revision: 110 Author: carlosga_fb Date: 2006-04-12 11:12:39 -0700 (Wed, 12 Apr 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=110&view=rev Log Message: ----------- Modified Paths: -------------- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctionParameters.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctions.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgTables.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgViewColumns.cs Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml 2006-04-12 17:23:52 UTC (rev 109) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml 2006-04-12 18:12:39 UTC (rev 110) @@ -839,7 +839,7 @@ <DbType>15</DbType> </DataTypes> <DataTypes> - <TypeName>character</TypeName> + <TypeName>char</TypeName> <ProviderDbType>5</ProviderDbType> <ColumnSize>2147483647</ColumnSize> <CreateFormat /> @@ -1089,7 +1089,7 @@ <DbType>6</DbType> </DataTypes> <DataTypes> - <TypeName>boolean</TypeName> + <TypeName>bool</TypeName> <ProviderDbType>2</ProviderDbType> <ColumnSize>1</ColumnSize> <CreateFormat /> Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs 2006-04-12 17:23:52 UTC (rev 109) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs 2006-04-12 18:12:39 UTC (rev 110) @@ -92,13 +92,13 @@ // TABLE_NAME if (restrictions.Length > 2 && restrictions[2] != null) { - sql += String.Format("pg_class.relname = '{0}'", restrictions[2]); + sql += String.Format(" and pg_class.relname = '{0}'", restrictions[2]); } // COLUMN_NAME if (restrictions.Length > 3 && restrictions[3] != null) { - sql += String.Format("pg_attribute.attname = '{0}'", restrictions[3]); + sql += String.Format(" and pg_attribute.attname = '{0}'", restrictions[3]); } } Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctionParameters.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctionParameters.cs 2006-04-12 17:23:52 UTC (rev 109) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctionParameters.cs 2006-04-12 18:12:39 UTC (rev 110) @@ -64,8 +64,13 @@ } } - sql += "WHERE " + where + " ORDER BY pg_namespace.nspname, pg_proc.proname"; + if (where.Length > 0) + { + sql += "WHERE " + where; + } + sql += " ORDER BY pg_namespace.nspname, pg_proc.proname"; + return sql; } Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctions.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctions.cs 2006-04-12 17:23:52 UTC (rev 109) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctions.cs 2006-04-12 18:12:39 UTC (rev 110) @@ -83,7 +83,7 @@ if (where.Length > 0) { - sql += "WHERE " + where; + sql += " WHERE " + where; } sql += " ORDER BY pg_namespace.nspname, pg_proc.proname"; Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgTables.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgTables.cs 2006-04-12 17:23:52 UTC (rev 109) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgTables.cs 2006-04-12 18:12:39 UTC (rev 110) @@ -49,8 +49,6 @@ "left join pg_tablespace ON pg_class.reltablespace = pg_tablespace.oid " + "left join pg_description ON pg_class.oid = pg_description.objoid "; - sql += "WHERE "; - if (restrictions != null && restrictions.Length > 0) { // TABLE_CATALOG @@ -111,8 +109,13 @@ where += " pg_class.relkind = 'r'"; } - sql += where + " ORDER BY pg_class.relkind, pg_namespace.nspname, pg_class.relname"; + if (where.Length > 0) + { + sql += " WHERE " + where; + } + sql += " ORDER BY pg_class.relkind, pg_namespace.nspname, pg_class.relname"; + return sql; } Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgViewColumns.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgViewColumns.cs 2006-04-12 17:23:52 UTC (rev 109) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgViewColumns.cs 2006-04-12 18:12:39 UTC (rev 110) @@ -93,13 +93,13 @@ // VIEW_NAME if (restrictions.Length > 2 && restrictions[2] != null) { - sql += String.Format("pg_class.relname = '{0}'", restrictions[2]); + sql += String.Format(" and pg_class.relname = '{0}'", restrictions[2]); } // COLUMN_NAME if (restrictions.Length > 3 && restrictions[3] != null) { - sql += String.Format("pg_attribute.attname = '{0}'", restrictions[3]); + sql += String.Format(" and pg_attribute.attname = '{0}'", restrictions[3]); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-05-19 09:23:12
|
Revision: 150 Author: carlosga_fb Date: 2006-05-19 02:23:05 -0700 (Fri, 19 May 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=150&view=rev Log Message: ----------- Modified Paths: -------------- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctionParameters.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctions.cs Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs 2006-05-19 09:22:36 UTC (rev 149) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs 2006-05-19 09:23:05 UTC (rev 150) @@ -24,7 +24,7 @@ { internal class PgColumns : PgSchema { - #region \xB7 Methods \xB7 + #region \xB7 Protected Methods \xB7 protected override string BuildSql(string[] restrictions) { Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctionParameters.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctionParameters.cs 2006-05-19 09:22:36 UTC (rev 149) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctionParameters.cs 2006-05-19 09:23:05 UTC (rev 150) @@ -16,6 +16,8 @@ */ using System; +using System.Data; +using PostgreSql.Data.PostgreSqlClient; namespace PostgreSql.Data.Schema { @@ -31,10 +33,16 @@ "current_database() AS FUNCTION_CATALOG, " + "pg_namespace.nspname AS FUNCTION_SCHEMA, " + "pg_proc.proname AS FUNCTION_NAME, " + + "null AS PARAMETER_NAME, " + + "null AS DATA_TYPE, " + + "0 AS PARAMETER_DIRECTION, " + + "pg_proc.pronargs AS ARGUMENT_NUMBER, " + + "pg_proc.proallargtypes AS ARGUMENT_TYPES, " + + "pg_proc.proargmodes AS ARGUMENT_MODES, " + + "pg_proc.proargnames AS ARGUMENT_NAMES " + "FROM " + "pg_proc " + - "left join pg_namespace ON pg_proc.pronamespace = pg_namespace.oid " + - "left join pg_description ON pg_proc.oid = pg_description.objoid "; + "left join pg_namespace ON pg_proc.pronamespace = pg_namespace.oid "; if (restrictions != null && restrictions.Length > 0) { @@ -60,13 +68,13 @@ { where += " and "; } - where += String.Format(" and pg_proc.proname = '{0}'", restrictions[2]); + where += String.Format(" pg_proc.proname = '{0}'", restrictions[2]); } } if (where.Length > 0) { - sql += "WHERE " + where; + sql += " WHERE " + where; } sql += " ORDER BY pg_namespace.nspname, pg_proc.proname"; @@ -74,6 +82,61 @@ return sql; } + protected override DataTable ProcessResult(PgConnection connection, DataTable schema) + { + DataTable functionParameters = schema.Clone(); + + functionParameters.BeginLoadData(); + + foreach (DataRow row in schema.Rows) + { + int argNumber = Convert.ToInt32(row["ARGUMENT_NUMBER"]); + Array argTypes = (Array)row["ARGUMENT_TYPES"]; + Array argNames = (Array)row["ARGUMENT_NAMES"]; + + if (!Convert.ToBoolean(row["RETURNS_SET"])) + { + DataRow functionParameter = functionParameters.NewRow(); + + // Create the new foreign key column info + functionParameter["FUNCTION_CATALOG"] = row["FUNCTION_CATALOG"]; + functionParameter["FUNCTION_SCHEMA"] = row["FUNCTION_SCHEMA"]; + functionParameter["FUNCTION_NAME"] = row["FUNCTION_NAME"]; + functionParameter["PARAMETER_NAME"] = "result"; + functionParameter["DATA_TYPE"] = ""; + functionParameter["PARAMETER_DIRECTION"] = (Int32)ParameterDirection.Output; + + functionParameters.Rows.Add(functionParameter); + } + + for (int i = 0; i < argNumber; i++) + { + DataRow functionParameter = functionParameters.NewRow(); + + // Create the new foreign key column info + functionParameter["FUNCTION_CATALOG"] = row["FUNCTION_CATALOG"]; + functionParameter["FUNCTION_SCHEMA"] = row["FUNCTION_SCHEMA"]; + functionParameter["FUNCTION_NAME"] = row["FUNCTION_NAME"]; + functionParameter["PARAMETER_NAME"] = (string)argNames.GetValue(i + 1); + functionParameter["DATA_TYPE"] = ""; + functionParameter["PARAMETER_DIRECTION"]= (Int32)ParameterDirection.Input; + + functionParameters.Rows.Add(functionParameter); + } + } + + functionParameters.EndLoadData(); + functionParameters.AcceptChanges(); + + functionParameters.Columns.Remove("RETURNS_SET"); + functionParameters.Columns.Remove("ARGUMENT_NUMBER"); + functionParameters.Columns.Remove("ARGUMENT_TYPES"); + functionParameters.Columns.Remove("ARGUMENT_MODES"); + functionParameters.Columns.Remove("ARGUMENT_NAMES"); + + return functionParameters; + } + #endregion } } Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctions.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctions.cs 2006-05-19 09:22:36 UTC (rev 149) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctions.cs 2006-05-19 09:23:05 UTC (rev 150) @@ -41,10 +41,7 @@ "when 'v' THEN 'VOLATILE' " + "END AS VOLATILE, " + "pg_proc.proretset AS RETURNS_SET, " + - "pg_proc.prorettype AS RETURN_TYPE, " + "pg_proc.pronargs AS ARGUMENT_NUMBER, " + - "pg_proc.proargtypes AS ARGUMENT_TYPES, " + - "pg_proc.proargtypes AS ARGUMENT_NAMES, " + "pg_proc.prosrc AS SOURCE, " + "pg_description.description AS DESCRIPTION " + "FROM " + @@ -77,7 +74,7 @@ { where += " and "; } - where += String.Format(" and pg_proc.proname = '{0}'", restrictions[2]); + where += String.Format(" pg_proc.proname = '{0}'", restrictions[2]); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2006-06-19 21:30:54
|
Revision: 173 Author: carlosga_fb Date: 2006-06-19 14:30:30 -0700 (Mon, 19 Jun 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=173&view=rev Log Message: ----------- Changes on internal data type handling ( not finished ) Modified Paths: -------------- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgCheckConstraints.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgForeignKeys.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctionParameters.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctions.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgIndexColumns.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgIndexes.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgPrimaryKeys.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchema.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchemaFactory.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSequences.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgTables.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgTriggers.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgUniqueKeys.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgViewColumns.cs trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgViews.cs Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml 2006-06-19 21:29:24 UTC (rev 172) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/MetaData.xml 2006-06-19 21:30:30 UTC (rev 173) @@ -640,7 +640,7 @@ </DataSourceInformation> <DataTypes> <TypeName>int2</TypeName> - <ProviderDbType>12</ProviderDbType> + <ProviderDbType>14</ProviderDbType> <ColumnSize>2</ColumnSize> <CreateFormat /> <CreateParameters/> @@ -665,7 +665,7 @@ </DataTypes> <DataTypes> <TypeName>int4</TypeName> - <ProviderDbType>13</ProviderDbType> + <ProviderDbType>15</ProviderDbType> <ColumnSize>4</ColumnSize> <CreateFormat /> <CreateParameters/> @@ -690,7 +690,7 @@ </DataTypes> <DataTypes> <TypeName>int8</TypeName> - <ProviderDbType>14</ProviderDbType> + <ProviderDbType>16</ProviderDbType> <ColumnSize>8</ColumnSize> <CreateFormat /> <CreateParameters/> @@ -715,7 +715,7 @@ </DataTypes> <DataTypes> <TypeName>decimal</TypeName> - <ProviderDbType>9</ProviderDbType> + <ProviderDbType>11</ProviderDbType> <ColumnSize>8</ColumnSize> <CreateFormat /> <CreateParameters>precision, scale</CreateParameters> @@ -740,7 +740,7 @@ </DataTypes> <DataTypes> <TypeName>numeric</TypeName> - <ProviderDbType>18</ProviderDbType> + <ProviderDbType>20</ProviderDbType> <ColumnSize>8</ColumnSize> <CreateFormat /> <CreateParameters>precision, scale</CreateParameters> @@ -765,7 +765,7 @@ </DataTypes> <DataTypes> <TypeName>float4</TypeName> - <ProviderDbType>11</ProviderDbType> + <ProviderDbType>13</ProviderDbType> <ColumnSize>8</ColumnSize> <CreateFormat /> <CreateParameters/> @@ -790,7 +790,7 @@ </DataTypes> <DataTypes> <TypeName>float8</TypeName> - <ProviderDbType>10</ProviderDbType> + <ProviderDbType>12</ProviderDbType> <ColumnSize>8</ColumnSize> <CreateFormat /> <CreateParameters/> @@ -815,7 +815,7 @@ </DataTypes> <DataTypes> <TypeName>currency</TypeName> - <ProviderDbType>7</ProviderDbType> + <ProviderDbType>9</ProviderDbType> <ColumnSize>4</ColumnSize> <CreateFormat /> <CreateParameters/> @@ -840,7 +840,7 @@ </DataTypes> <DataTypes> <TypeName>char</TypeName> - <ProviderDbType>5</ProviderDbType> + <ProviderDbType>7</ProviderDbType> <ColumnSize>2147483647</ColumnSize> <CreateFormat /> <CreateParameters>length</CreateParameters> @@ -865,7 +865,7 @@ </DataTypes> <DataTypes> <TypeName>varchar</TypeName> - <ProviderDbType>28</ProviderDbType> + <ProviderDbType>30</ProviderDbType> <ColumnSize>2147483647</ColumnSize> <CreateFormat /> <CreateParameters>length</CreateParameters> @@ -890,7 +890,7 @@ </DataTypes> <DataTypes> <TypeName>refcursor</TypeName> - <ProviderDbType>22</ProviderDbType> + <ProviderDbType>24</ProviderDbType> <ColumnSize>0</ColumnSize> <CreateFormat /> <CreateParameters></CreateParameters> @@ -915,7 +915,7 @@ </DataTypes> <DataTypes> <TypeName>text</TypeName> - <ProviderDbType>23</ProviderDbType> + <ProviderDbType>25</ProviderDbType> <ColumnSize>2147483647</ColumnSize> <CreateFormat /> <CreateParameters>length</CreateParameters> @@ -965,7 +965,7 @@ </DataTypes> <DataTypes> <TypeName>date</TypeName> - <ProviderDbType>8</ProviderDbType> + <ProviderDbType>10</ProviderDbType> <ColumnSize>4</ColumnSize> <CreateFormat /> <CreateParameters/> @@ -990,7 +990,7 @@ </DataTypes> <DataTypes> <TypeName>time</TypeName> - <ProviderDbType>24</ProviderDbType> + <ProviderDbType>26</ProviderDbType> <ColumnSize>8</ColumnSize> <CreateFormat /> <CreateParameters/> @@ -1015,7 +1015,7 @@ </DataTypes> <DataTypes> <TypeName>timetz</TypeName> - <ProviderDbType>25</ProviderDbType> + <ProviderDbType>27</ProviderDbType> <ColumnSize>12</ColumnSize> <CreateFormat /> <CreateParameters/> @@ -1040,7 +1040,7 @@ </DataTypes> <DataTypes> <TypeName>timestamp</TypeName> - <ProviderDbType>26</ProviderDbType> + <ProviderDbType>28</ProviderDbType> <ColumnSize>8</ColumnSize> <CreateFormat /> <CreateParameters/> @@ -1065,7 +1065,7 @@ </DataTypes> <DataTypes> <TypeName>timestamptz</TypeName> - <ProviderDbType>27</ProviderDbType> + <ProviderDbType>29</ProviderDbType> <ColumnSize>8</ColumnSize> <CreateFormat /> <CreateParameters/> @@ -1090,7 +1090,7 @@ </DataTypes> <DataTypes> <TypeName>interval</TypeName> - <ProviderDbType>15</ProviderDbType> + <ProviderDbType>17</ProviderDbType> <ColumnSize>12</ColumnSize> <CreateFormat /> <CreateParameters/> Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgCheckConstraints.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgCheckConstraints.cs 2006-06-19 21:29:24 UTC (rev 172) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgCheckConstraints.cs 2006-06-19 21:30:30 UTC (rev 173) @@ -16,11 +16,21 @@ */ using System; +using PostgreSql.Data.PostgreSqlClient; namespace PostgreSql.Data.Schema { internal class PgCheckConstraints : PgSchema { + #region \xB7 Constructors \xB7 + + public PgCheckConstraints(PgConnection connection) + : base(connection) + { + } + + #endregion + #region \xB7 Protected Methods \xB7 protected override string BuildSql(string[] restrictions) Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs 2006-06-19 21:29:24 UTC (rev 172) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgColumns.cs 2006-06-19 21:30:30 UTC (rev 173) @@ -24,6 +24,15 @@ { internal class PgColumns : PgSchema { + #region \xB7 Constructors \xB7 + + public PgColumns(PgConnection connection) + : base(connection) + { + } + + #endregion + #region \xB7 Protected Methods \xB7 protected override string BuildSql(string[] restrictions) @@ -138,9 +147,9 @@ break; default: - if (PgDatabase.DataTypes.IndexOf(column["DATA_TYPE"].ToString()) != -1) + if (this.Connection.InternalConnection.Database.DataTypes.IndexOf(column["DATA_TYPE"].ToString()) != -1) { - column["COLUMN_SIZE"] = PgDatabase.DataTypes[column["DATA_TYPE"].ToString()].Size; + column["COLUMN_SIZE"] = this.Connection.InternalConnection.Database.DataTypes[column["DATA_TYPE"].ToString()].Size; } break; } Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs 2006-06-19 21:29:24 UTC (rev 172) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs 2006-06-19 21:30:30 UTC (rev 173) @@ -23,6 +23,15 @@ { internal class PgForeignKeyColumns : PgSchema { + #region \xB7 Constructors \xB7 + + public PgForeignKeyColumns(PgConnection connection) + : base(connection) + { + } + + #endregion + #region \xB7 Protected Methods \xB7 protected override string BuildSql(string[] restrictions) Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgForeignKeys.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgForeignKeys.cs 2006-06-19 21:29:24 UTC (rev 172) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgForeignKeys.cs 2006-06-19 21:30:30 UTC (rev 173) @@ -16,11 +16,21 @@ */ using System; +using PostgreSql.Data.PostgreSqlClient; namespace PostgreSql.Data.Schema { internal class PgForeignKeys : PgSchema { + #region \xB7 Constructors \xB7 + + public PgForeignKeys(PgConnection connection) + : base(connection) + { + } + + #endregion + #region \xB7 Protected Methods \xB7 protected override string BuildSql(string[] restrictions) Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctionParameters.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctionParameters.cs 2006-06-19 21:29:24 UTC (rev 172) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctionParameters.cs 2006-06-19 21:30:30 UTC (rev 173) @@ -23,6 +23,15 @@ { internal class PgFunctionParameters : PgSchema { + #region \xB7 Constructors \xB7 + + public PgFunctionParameters(PgConnection connection) + : base(connection) + { + } + + #endregion + #region \xB7 Protected Methods \xB7 protected override string BuildSql(string[] restrictions) Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctions.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctions.cs 2006-06-19 21:29:24 UTC (rev 172) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgFunctions.cs 2006-06-19 21:30:30 UTC (rev 173) @@ -16,11 +16,21 @@ */ using System; +using PostgreSql.Data.PostgreSqlClient; namespace PostgreSql.Data.Schema { internal class PgFunctions : PgSchema { + #region \xB7 Constructors \xB7 + + public PgFunctions(PgConnection connection) + : base(connection) + { + } + + #endregion + #region \xB7 Protected Methods \xB7 protected override string BuildSql(string[] restrictions) Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgIndexColumns.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgIndexColumns.cs 2006-06-19 21:29:24 UTC (rev 172) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgIndexColumns.cs 2006-06-19 21:30:30 UTC (rev 173) @@ -16,11 +16,21 @@ */ using System; +using PostgreSql.Data.PostgreSqlClient; namespace PostgreSql.Data.Schema { internal sealed class PgIndexColumns : PgSchema { + #region \xB7 Constructors \xB7 + + public PgIndexColumns(PgConnection connection) + : base(connection) + { + } + + #endregion + #region \xB7 Protected Methods \xB7 protected override string BuildSql(string[] restrictions) Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgIndexes.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgIndexes.cs 2006-06-19 21:29:24 UTC (rev 172) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgIndexes.cs 2006-06-19 21:30:30 UTC (rev 173) @@ -16,11 +16,21 @@ */ using System; +using PostgreSql.Data.PostgreSqlClient; namespace PostgreSql.Data.Schema { internal sealed class PgIndexes : PgSchema { + #region \xB7 Constructors \xB7 + + public PgIndexes(PgConnection connection) + : base(connection) + { + } + + #endregion + #region \xB7 Protected Methods \xB7 protected override string BuildSql(string[] restrictions) Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgPrimaryKeys.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgPrimaryKeys.cs 2006-06-19 21:29:24 UTC (rev 172) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgPrimaryKeys.cs 2006-06-19 21:30:30 UTC (rev 173) @@ -17,13 +17,21 @@ using System; using System.Data; - using PostgreSql.Data.PostgreSqlClient; namespace PostgreSql.Data.Schema { internal sealed class PgPrimaryKeys : PgSchema { + #region \xB7 Constructors \xB7 + + public PgPrimaryKeys(PgConnection connection) + : base(connection) + { + } + + #endregion + #region \xB7 Protected Methods \xB7 protected override string BuildSql(string[] restrictions) Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchema.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchema.cs 2006-06-19 21:29:24 UTC (rev 172) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchema.cs 2006-06-19 21:30:30 UTC (rev 173) @@ -25,11 +25,27 @@ namespace PostgreSql.Data.Schema { internal abstract class PgSchema - { - #region \xB7 Constructors \xB7 + { + #region \xB7 Fields \xB7 - public PgSchema() + private PgConnection connection; + + #endregion + + #region \xB7 Protected Properties \xB7 + + public PgConnection Connection + { + get { return this.connection; } + } + + #endregion + + #region \xB7 Constructors \xB7 + + public PgSchema(PgConnection connection) { + this.connection = connection; } #endregion @@ -42,7 +58,7 @@ #region \xB7 Methods \xB7 - public DataTable GetSchema(PgConnection connection, string collectionName, string[] restrictions) + public DataTable GetSchema(string collectionName, string[] restrictions) { DataTable dataTable = null; PgDataAdapter adapter = null; Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchemaFactory.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchemaFactory.cs 2006-06-19 21:29:24 UTC (rev 172) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSchemaFactory.cs 2006-06-19 21:30:30 UTC (rev 173) @@ -95,67 +95,67 @@ switch (collectionName.Trim().ToLower()) { case "checkconstraints": - schema = new PgCheckConstraints(); + schema = new PgCheckConstraints(connection); break; case "columns": - schema = new PgColumns(); + schema = new PgColumns(connection); break; case "indexes": - schema = new PgIndexes(); + schema = new PgIndexes(connection); break; case "indexcolumns": - schema = new PgIndexColumns(); + schema = new PgIndexColumns(connection); break; case "functions": - schema = new PgFunctions(); + schema = new PgFunctions(connection); break; case "functionparameters": - schema = new PgFunctionParameters(); + schema = new PgFunctionParameters(connection); break; case "foreignkeys": - schema = new PgForeignKeys(); + schema = new PgForeignKeys(connection); break; case "foreignkeycolumns": - schema = new PgForeignKeyColumns(); + schema = new PgForeignKeyColumns(connection); break; case "primarykeys": - schema = new PgPrimaryKeys(); + schema = new PgPrimaryKeys(connection); break; case "sequences": - schema = new PgSequences(); + schema = new PgSequences(connection); break; case "tables": - schema = new PgTables(); + schema = new PgTables(connection); break; case "triggers": - schema = new PgTriggers(); + schema = new PgTriggers(connection); break; case "uniquekeys": - schema = new PgUniqueKeys(); + schema = new PgUniqueKeys(connection); break; case "views": - schema = new PgViews(); + schema = new PgViews(connection); break; case "viewcolumns": - schema = new PgViewColumns(); + schema = new PgViewColumns(connection); break; } - return schema.GetSchema(connection, collectionName, restrictions); + return schema.GetSchema(collectionName, restrictions); } private static DataTable SqlCommandCollection(PgConnection connection, string collectionName, string sql, string[] restrictions) Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSequences.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSequences.cs 2006-06-19 21:29:24 UTC (rev 172) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgSequences.cs 2006-06-19 21:30:30 UTC (rev 173) @@ -16,11 +16,21 @@ */ using System; +using PostgreSql.Data.PostgreSqlClient; namespace PostgreSql.Data.Schema { internal class PgSequences : PgSchema { + #region \xB7 Constructors \xB7 + + public PgSequences(PgConnection connection) + : base(connection) + { + } + + #endregion + #region \xB7 Protected Methods \xB7 protected override string BuildSql(string[] restrictions) Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgTables.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgTables.cs 2006-06-19 21:29:24 UTC (rev 172) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgTables.cs 2006-06-19 21:30:30 UTC (rev 173) @@ -16,11 +16,21 @@ */ using System; +using PostgreSql.Data.PostgreSqlClient; namespace PostgreSql.Data.Schema { internal class PgTables : PgSchema { + #region \xB7 Constructors \xB7 + + public PgTables(PgConnection connection) + : base(connection) + { + } + + #endregion + #region \xB7 Protected Methods \xB7 protected override string BuildSql(string[] restrictions) Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgTriggers.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgTriggers.cs 2006-06-19 21:29:24 UTC (rev 172) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgTriggers.cs 2006-06-19 21:30:30 UTC (rev 173) @@ -16,11 +16,21 @@ */ using System; +using PostgreSql.Data.PostgreSqlClient; namespace PostgreSql.Data.Schema { internal class PgTriggers : PgSchema { + #region \xB7 Constructors \xB7 + + public PgTriggers(PgConnection connection) + : base(connection) + { + } + + #endregion + #region \xB7 Protected Methods \xB7 protected override string BuildSql(string[] restrictions) Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgUniqueKeys.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgUniqueKeys.cs 2006-06-19 21:29:24 UTC (rev 172) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgUniqueKeys.cs 2006-06-19 21:30:30 UTC (rev 173) @@ -17,13 +17,21 @@ using System; using System.Data; - using PostgreSql.Data.PostgreSqlClient; namespace PostgreSql.Data.Schema { internal sealed class PgUniqueKeys : PgSchema { + #region \xB7 Constructors \xB7 + + public PgUniqueKeys(PgConnection connection) + : base(connection) + { + } + + #endregion + #region \xB7 Protected Methods \xB7 protected override string BuildSql(string[] restrictions) Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgViewColumns.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgViewColumns.cs 2006-06-19 21:29:24 UTC (rev 172) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgViewColumns.cs 2006-06-19 21:30:30 UTC (rev 173) @@ -23,6 +23,15 @@ { internal class PgViewColumns : PgSchema { + #region \xB7 Constructors \xB7 + + public PgViewColumns(PgConnection connection) + : base(connection) + { + } + + #endregion + #region \xB7 Methods \xB7 protected override string BuildSql(string[] restrictions) Modified: trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgViews.cs =================================================================== --- trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgViews.cs 2006-06-19 21:29:24 UTC (rev 172) +++ trunk/PostgreSqlClient/source/PostgreSql/Data/Schema/PgViews.cs 2006-06-19 21:30:30 UTC (rev 173) @@ -16,14 +16,24 @@ */ using System; +using PostgreSql.Data.PostgreSqlClient; namespace PostgreSql.Data.Schema { internal class PgViews : PgSchema - { - #region \xB7 Protected Methods \xB7 + { + #region \xB7 Constructors \xB7 - protected override string BuildSql(string[] restrictions) + public PgViews(PgConnection connection) + : base(connection) + { + } + + #endregion + + #region \xB7 Protected Methods \xB7 + + protected override string BuildSql(string[] restrictions) { string sql = "SELECT " + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |