Thread: [pgsqlclient-checkins] SF.net SVN: pgsqlclient: [45] trunk/pgsqlclient/source/PostgreSql/Data/Schema
Status: Inactive
Brought to you by:
carlosga_fb
[pgsqlclient-checkins] SF.net SVN: pgsqlclient: [45] trunk/pgsqlclient/source/PostgreSql/Data/Schema
From: <car...@us...> - 2006-03-22 12:11:20
|
Revision: 45 Author: carlosga_fb Date: 2006-03-22 04:10:58 -0800 (Wed, 22 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=45&view=rev Log Message: ----------- More changes and bugfixes in teh database schema support Modified Paths: -------------- trunk/pgsqlclient/source/PostgreSql/Data/Schema/MetaData.xml trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgColumns.cs trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgSchemaFactory.cs Added Paths: ----------- trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgForeignKeys.cs trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgViewColumns.cs Modified: trunk/pgsqlclient/source/PostgreSql/Data/Schema/MetaData.xml =================================================================== --- trunk/pgsqlclient/source/PostgreSql/Data/Schema/MetaData.xml 2006-03-22 12:09:12 UTC (rev 44) +++ trunk/pgsqlclient/source/PostgreSql/Data/Schema/MetaData.xml 2006-03-22 12:10:58 UTC (rev 45) @@ -157,7 +157,7 @@ </MetaDataCollections> <MetaDataCollections> <CollectionName>Functions</CollectionName> - <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfRestrictions>3</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> @@ -189,7 +189,7 @@ </MetaDataCollections> <MetaDataCollections> <CollectionName>PrimaryKeys</CollectionName> - <NumberOfRestrictions>3</NumberOfRestrictions> + <NumberOfRestrictions>4</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> @@ -331,6 +331,36 @@ <RestrictionNumber>4</RestrictionNumber> </Restrictions> <Restrictions> + <CollectionName>IndexColumns</CollectionName> + <RestrictionName>Catalog</RestrictionName> + <RestrictionDefault>table_catalog</RestrictionDefault> + <RestrictionNumber>1</RestrictionNumber> + </Restrictions> + <Restrictions> + <CollectionName>IndexColumns</CollectionName> + <RestrictionName>Schema</RestrictionName> + <RestrictionDefault>table_schema</RestrictionDefault> + <RestrictionNumber>2</RestrictionNumber> + </Restrictions> + <Restrictions> + <CollectionName>IndexColumns</CollectionName> + <RestrictionName>TableName</RestrictionName> + <RestrictionDefault>table_name</RestrictionDefault> + <RestrictionNumber>3</RestrictionNumber> + </Restrictions> + <Restrictions> + <CollectionName>IndexColumns</CollectionName> + <RestrictionName>Name</RestrictionName> + <RestrictionDefault>index_name</RestrictionDefault> + <RestrictionNumber>4</RestrictionNumber> + </Restrictions> + <Restrictions> + <CollectionName>IndexColumns</CollectionName> + <RestrictionName>ColumnName</RestrictionName> + <RestrictionDefault>column_name</RestrictionDefault> + <RestrictionNumber>5</RestrictionNumber> + </Restrictions> + <Restrictions> <CollectionName>Functions</CollectionName> <RestrictionName>Catalog</RestrictionName> <RestrictionDefault>function_catalog</RestrictionDefault> Modified: trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgColumns.cs =================================================================== --- trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgColumns.cs 2006-03-22 12:09:12 UTC (rev 44) +++ trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgColumns.cs 2006-03-22 12:10:58 UTC (rev 45) @@ -36,9 +36,9 @@ "numeric_scale, " + "ordinal_position, " + "case is_nullable " + - "when true then false " + - "when false then true " + - "end AS is_not_null, " + + "when 'NO' then false " + + "when 'YES' then true " + + "end AS is_nullable, " + "column_default, " + "character_octet_length, " + "character_set_catalog, " + Added: trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs =================================================================== --- trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs (rev 0) +++ trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs 2006-03-22 12:10:58 UTC (rev 45) @@ -0,0 +1,33 @@ +/* + * 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 PgForeignKeyColumns : PgSchema + { + #region \xB7 Protected Methods \xB7 + + protected override string BuildSql(string[] restrictions) + { + throw new NotImplementedException(); + } + + #endregion + } +} Added: trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgForeignKeys.cs =================================================================== --- trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgForeignKeys.cs (rev 0) +++ trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgForeignKeys.cs 2006-03-22 12:10:58 UTC (rev 45) @@ -0,0 +1,33 @@ +/* + * 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 PgForeignKeys : PgSchema + { + #region \xB7 Protected Methods \xB7 + + protected override string BuildSql(string[] restrictions) + { + throw new NotImplementedException(); + } + + #endregion + } +} Modified: trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgSchemaFactory.cs =================================================================== --- trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgSchemaFactory.cs 2006-03-22 12:09:12 UTC (rev 44) +++ trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgSchemaFactory.cs 2006-03-22 12:10:58 UTC (rev 45) @@ -106,10 +106,22 @@ schema = new PgIndexes(); break; + case "indexcolumns": + schema = new PgIndexColumns(); + break; + case "functions": schema = new PgFunctions(); break; + case "foreignkeys": + schema = new PgForeignKeys(); + break; + + case "foreignkeycolumns": + schema = new PgForeignKeyColumns(); + break; + case "primarykeys": schema = new PgPrimaryKeys(); break; @@ -125,6 +137,10 @@ case "views": schema = new PgViews(); break; + + case "viewcolumns": + schema = new PgViewColumns(); + break; } return schema.GetSchema(connection, collectionName, restrictions); Added: trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgViewColumns.cs =================================================================== --- trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgViewColumns.cs (rev 0) +++ trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgViewColumns.cs 2006-03-22 12:10:58 UTC (rev 45) @@ -0,0 +1,33 @@ +/* + * 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 PgViewColumns : PgSchema + { + #region \xB7 Protected Methods \xB7 + + protected override string BuildSql(string[] restrictions) + { + throw new NotImplementedException(); + } + + #endregion + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
[pgsqlclient-checkins] SF.net SVN: pgsqlclient: [51] trunk/pgsqlclient/source/PostgreSql/Data/Schema
From: <car...@us...> - 2006-03-23 13:57:17
|
Revision: 51 Author: carlosga_fb Date: 2006-03-23 05:56:54 -0800 (Thu, 23 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=51&view=rev Log Message: ----------- ?\194?\183 Fixed SqlLanguages schema definition ?\194?\183 Changed am incorrect column name in ForeignKeys schema ?\194?\183 Added current_database() as catalog ?\194?\183 More changes ( but not finished ) in the FireignKeyColumns schema Modified Paths: -------------- trunk/pgsqlclient/source/PostgreSql/Data/Schema/MetaData.xml trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgCheckConstraints.cs trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgForeignKeys.cs trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgFunctions.cs trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgIndexes.cs trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgPrimaryKeys.cs trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgSchema.cs trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgTables.cs trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgTriggers.cs trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgViews.cs Modified: trunk/pgsqlclient/source/PostgreSql/Data/Schema/MetaData.xml =================================================================== --- trunk/pgsqlclient/source/PostgreSql/Data/Schema/MetaData.xml 2006-03-23 13:53:26 UTC (rev 50) +++ trunk/pgsqlclient/source/PostgreSql/Data/Schema/MetaData.xml 2006-03-23 13:56:54 UTC (rev 51) @@ -212,11 +212,11 @@ <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>SQLCommand</PopulationMechanism> - <PopulationString>SELECT 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 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>SQL Languages</CollectionName> - <NumberOfRestrictions>4</NumberOfRestrictions> + <CollectionName>SqlLanguages</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>SQLCommand</PopulationMechanism> <PopulationString>SELECT pg_language.lanname AS LANGUAGE_NAME, pg_language.lanispl AS IS_USER_DEFINED, pg_proc.proname AS CALL_FUNCTION, pg_procv.proname AS VALIDATOR, pg_description.description AS DESCRIPTION FROM pg_language left join pg_proc ON pg_language.lanplcallfoid = pg_proc.oid left join pg_proc as pg_procv ON pg_language.lanvalidator = pg_procv.oid left join pg_description ON pg_language.oid = pg_description.objoid ORDER BY pg_language.lanname</PopulationString> @@ -403,6 +403,36 @@ <RestrictionNumber>4</RestrictionNumber> </Restrictions> <Restrictions> + <CollectionName>ForeignKeyColumns</CollectionName> + <RestrictionName>ConstraintCatalog</RestrictionName> + <RestrictionDefault>constraint_catalog</RestrictionDefault> + <RestrictionNumber>1</RestrictionNumber> + </Restrictions> + <Restrictions> + <CollectionName>ForeignKeyColumns</CollectionName> + <RestrictionName>ConstraintSchema</RestrictionName> + <RestrictionDefault>constraint_schema</RestrictionDefault> + <RestrictionNumber>2</RestrictionNumber> + </Restrictions> + <Restrictions> + <CollectionName>ForeignKeyColumns</CollectionName> + <RestrictionName>TableName</RestrictionName> + <RestrictionDefault>table_name</RestrictionDefault> + <RestrictionNumber>3</RestrictionNumber> + </Restrictions> + <Restrictions> + <CollectionName>ForeignKeyColumns</CollectionName> + <RestrictionName>ConstraintName</RestrictionName> + <RestrictionDefault>constraint_name</RestrictionDefault> + <RestrictionNumber>4</RestrictionNumber> + </Restrictions> + <Restrictions> + <CollectionName>ForeignKeyColumns</CollectionName> + <RestrictionName>ColumnName</RestrictionName> + <RestrictionDefault>column_name</RestrictionDefault> + <RestrictionNumber>5</RestrictionNumber> + </Restrictions> + <Restrictions> <CollectionName>PrimaryKeys</CollectionName> <RestrictionName>Schema</RestrictionName> <RestrictionDefault>table_catalog</RestrictionDefault> Modified: trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgCheckConstraints.cs =================================================================== --- trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgCheckConstraints.cs 2006-03-23 13:53:26 UTC (rev 50) +++ trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgCheckConstraints.cs 2006-03-23 13:56:54 UTC (rev 51) @@ -26,11 +26,11 @@ protected override string BuildSql(string[] restrictions) { string sql = - "SELECT " + - "null AS CONSTRAINT_CATALOG, " + + "SELECT " + + "current_database() AS CONSTRAINT_CATALOG, " + "pg_namespace.nspname AS CONSTRAINT_SCHEMA, " + "pg_constraint.conname AS CONSTRAINT_NAME, " + - "null AS TABLE_CATALOG, " + + "current_database() AS TABLE_CATALOG, " + "tbn.nspname AS TABLE_SCHEMA, " + "pg_class.relname AS TABLE_NAME, " + "pg_get_constraintdef(pg_constraint.oid) AS CHECK_CLAUSULE, " + Modified: trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs =================================================================== --- trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs 2006-03-23 13:53:26 UTC (rev 50) +++ trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgForeignKeyColumns.cs 2006-03-23 13:56:54 UTC (rev 51) @@ -16,6 +16,8 @@ */ using System; +using System.Data; +using PostgreSql.Data.PostgreSqlClient; namespace PostgreSql.Data.Schema { @@ -25,9 +27,96 @@ protected override string BuildSql(string[] restrictions) { - throw new NotImplementedException(); + string sql = + "SELECT " + + "current_database() AS CONSTRAINT_CATALOG, " + + "pg_namespace.nspname AS CONSTRAINT_SCHEMA, " + + "pg_constraint.conname AS CONSTRAINT_NAME, " + + "current_database() AS TABLE_CATALOG, " + + "constraint_table_namespace.nspname AS TABLE_SCHEMA, " + + "constraint_table.relname AS TABLE_NAME, " + + "null AS COLUMN_NAME, " + + "current_database() AS REFERENCED_TABLE_CATALOG, " + + "referenced_table_namespace.nspname AS REFERENCED_TABLE_SCHEMA, " + + "referenced_table.relname AS REFERENCED_TABLE_NAME, " + + "null AS REFERENCED_COLUMN_NAME, " + + "pg_constraint.conkey as CONSTRAINT_TABLE_COLUMNS, " + + "pg_constraint.confkey as REFERENCED_TABLE_COLUMNS " + + "FROM " + + "pg_constraint " + + "left join pg_namespace ON pg_constraint.connamespace = pg_namespace.oid " + + "left join pg_class as constraint_table ON pg_constraint.conrelid = constraint_table.oid " + + "left join pg_namespace as constraint_table_namespace ON constraint_table.relnamespace = constraint_table_namespace.oid " + + "right join pg_class as referenced_table ON pg_constraint.confrelid = referenced_table.oid " + + "left join pg_namespace as referenced_table_namespace ON referenced_table.relnamespace = referenced_table_namespace.oid " + + "left join pg_description ON pg_constraint.oid = pg_description.objoid " + + "WHERE " + + "pg_constraint.contype = 'f' "; + + if (restrictions != null && restrictions.Length > 0) + { + + /* CONSTRAINT_CATALOG */ + if (restrictions.Length > 0 && restrictions[0] != null) + { + } + + /* CONSTRAINT_SCHEMA */ + if (restrictions.Length > 1 && restrictions[1] != null) + { + sql += String.Format(" and pg_namespace.nspname = '{0}'", restrictions[1]); + } + + /* TABLE_NAME */ + if (restrictions.Length >= 3 && restrictions[2] != null) + { + sql += String.Format(" and constraint_table.relname = '{0}'", restrictions[2]); + } + + /* CONSTRAINT_NAME */ + if (restrictions.Length >= 4 && restrictions[3] != null) + { + sql += String.Format(" and pg_constraint.conname = '{0}'", restrictions[3]); + } + } + + sql += "ORDER BY pg_namespace.nspname, constraint_table.relname, pg_constraint.conname"; + + return sql; } + protected override DataTable ProcessResult(PgConnection connection, DataTable schema) + { + DataTable foreignKeyColumns = schema.Clone(); + + foreach (DataRow row in schema.Rows) + { + Array tableColumns = (Array)row["CONSTRAINT_TABLE_COLUMNS"]; + Array referencedTableColumns = (Array)row["REFERENCED_TABLE_COLUMNS"]; + + for (int i = 0; i < tableColumns.Length; i++) + { + DataRow foreignKeyColumn = foreignKeyColumns.NewRow(); + + foreignKeyColumn["CONSTRAINT_CATALOG"] = row["CONSTRAINT_CATALOG"]; + foreignKeyColumn["CONSTRAINT_SCHEMA"] = row["CONSTRAINT_SCHEMA"]; + foreignKeyColumn["CONSTRAINT_NAME"] = row["CONSTRAINT_NAME"]; + foreignKeyColumn["TABLE_CATALOG"] = row["TABLE_CATALOG"]; + foreignKeyColumn["TABLE_SCHEMA"] = row["TABLE_SCHEMA"]; + foreignKeyColumn["TABLE_NAME"] = row["TABLE_NAME"]; + foreignKeyColumn["COLUMN_NAME"] = ""; + foreignKeyColumn["REFERENCED_TABLE_CATALOG"] = row["REFERENCED_TABLE_CATALOG"]; + foreignKeyColumn["REFERENCED_TABLE_SCHEMA"] = row["REFERENCED_TABLE_SCHEMA"]; + foreignKeyColumn["REFERENCED_TABLE_NAME"] = row["REFERENCED_TABLE_NAME"]; + foreignKeyColumn["REFERENCED_COLUMN_NAME"] = ""; + + foreignKeyColumns.Rows.Add(foreignKeyColumn); + } + } + + return foreignKeyColumns; + } + #endregion } } Modified: trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgForeignKeys.cs =================================================================== --- trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgForeignKeys.cs 2006-03-23 13:53:26 UTC (rev 50) +++ trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgForeignKeys.cs 2006-03-23 13:56:54 UTC (rev 51) @@ -27,13 +27,13 @@ { string sql = "SELECT " + - "null AS CONSTRAINT_CATALOG, " + + "current_database() AS CONSTRAINT_CATALOG, " + "pg_namespace.nspname AS CONSTRAINT_SCHEMA, " + - "pg_constraint.conname AS CONSTAINT_NAME, " + - "null AS TABLE_CATALOG, " + + "pg_constraint.conname AS CONSTRAINT_NAME, " + + "current_database() AS TABLE_CATALOG, " + "constraint_table_namespace.nspname AS TABLE_SCHEMA, " + "constraint_table.relname AS TABLE_NAME, " + - "null AS REFERENCED_TABLE_CATALOG, " + + "current_database() AS REFERENCED_TABLE_CATALOG, " + "referenced_table_namespace.nspname AS REFERENCED_TABLE_SCHEMA, " + "referenced_table.relname AS REFERENCED_TABLE_NAME, " + "case pg_constraint.confupdtype " + Modified: trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgFunctions.cs =================================================================== --- trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgFunctions.cs 2006-03-23 13:53:26 UTC (rev 50) +++ trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgFunctions.cs 2006-03-23 13:56:54 UTC (rev 51) @@ -27,7 +27,7 @@ { string sql = "SELECT " + - "null AS FUNCTION_CATALOG, " + + "current_database() AS FUNCTION_CATALOG, " + "pg_namespace.nspname AS FUNCTION_SCHEMA, " + "pg_proc.proname AS FUNCTION_NAME, " + "pg_language.lanname AS PROCEDURE_LANGUAGE, " + Modified: trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgIndexes.cs =================================================================== --- trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgIndexes.cs 2006-03-23 13:53:26 UTC (rev 50) +++ trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgIndexes.cs 2006-03-23 13:56:54 UTC (rev 51) @@ -26,11 +26,11 @@ protected override string BuildSql(string[] restrictions) { string sql = - "SELECT " + - "null AS TABLE_CATALOG, " + + "SELECT " + + "current_database() AS TABLE_CATALOG, " + "pg_namespace.nspname AS TABLE_SCHEMA, " + "pg_class.relname AS TABLE_NAME, " + - "null AS INDEX_CATALOG, " + + "current_database() AS INDEX_CATALOG, " + "pg_namespidx.nspname AS INDEX_SCHEMA, " + "pg_classidx.relname AS INDEX_NAME, " + "pg_am.amname AS TYPE, " + Modified: trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgPrimaryKeys.cs =================================================================== --- trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgPrimaryKeys.cs 2006-03-23 13:53:26 UTC (rev 50) +++ trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgPrimaryKeys.cs 2006-03-23 13:56:54 UTC (rev 51) @@ -26,8 +26,8 @@ protected override string BuildSql(string[] restrictions) { string sql = - "SELECT " + - "null AS TABLE_CATALOG, " + + "SELECT " + + "current_database() AS TABLE_CATALOG, " + "pg_namespace.nspname AS TABLE_SCHEMA, " + "pg_class.relname AS TABLE_NAME, " + "pg_constraint.conname AS PK_NAME, " + Modified: trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgSchema.cs =================================================================== --- trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgSchema.cs 2006-03-23 13:53:26 UTC (rev 50) +++ trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgSchema.cs 2006-03-23 13:56:54 UTC (rev 51) @@ -57,6 +57,8 @@ dataTable = new DataTable(collectionName); adapter.Fill(dataTable); + + this.ProcessResult(connection, dataTable); } catch (PgException) { @@ -84,6 +86,11 @@ return restrictions; } + protected virtual DataTable ProcessResult(PgConnection connection, DataTable schema) + { + return schema; + } + #endregion } } Modified: trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgTables.cs =================================================================== --- trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgTables.cs 2006-03-23 13:53:26 UTC (rev 50) +++ trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgTables.cs 2006-03-23 13:56:54 UTC (rev 51) @@ -27,7 +27,7 @@ { string sql = "SELECT " + - "null AS TABLE_CATALOG, " + + "current_database() AS TABLE_CATALOG, " + "pg_namespace.nspname AS TABLE_SCHEMA, " + "pg_class.relname AS TABLE_NAME, " + "case pg_class.relkind " + Modified: trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgTriggers.cs =================================================================== --- trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgTriggers.cs 2006-03-23 13:53:26 UTC (rev 50) +++ trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgTriggers.cs 2006-03-23 13:56:54 UTC (rev 51) @@ -27,10 +27,10 @@ { string sql = "SELECT " + - "null AS TABLE_CATALOG, " + + "current_database() AS TABLE_CATALOG, " + "pg_class.relnamespace AS TABLE_SCHEMA, " + "pg_class.relname AS TABLE_NAME, " + - "null AS TRIGGER_CATALOG, " + + "current_database() AS TRIGGER_CATALOG, " + "pg_namespace.nspname AS TRIGGER_SCHEMA, " + "pg_proc.proname AS TRIGGER_NAME, " + "pg_language.lanname AS PROCEDURE_LANGUAGE, " + Modified: trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgViews.cs =================================================================== --- trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgViews.cs 2006-03-23 13:53:26 UTC (rev 50) +++ trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgViews.cs 2006-03-23 13:56:54 UTC (rev 51) @@ -27,7 +27,7 @@ { string sql = "SELECT " + - "null AS VIEW_CATALOG, " + + "current_database() AS VIEW_CATALOG, " + "pg_namespace.nspname AS VIEW_SCHEMA, " + "pg_class.relname AS VIEW_NAME, " + "pg_get_ruledef(pg_rewrite.oid) AS DEFINITION, " + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
[pgsqlclient-checkins] SF.net SVN: pgsqlclient: [56] trunk/pgsqlclient/source/PostgreSql/Data/Schema
From: <car...@us...> - 2006-03-27 12:45:28
|
Revision: 56 Author: carlosga_fb Date: 2006-03-27 04:45:14 -0800 (Mon, 27 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=56&view=rev Log Message: ----------- ?\194?\183 Implemented Index Columns database schema Modified Paths: -------------- trunk/pgsqlclient/source/PostgreSql/Data/Schema/MetaData.xml trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgIndexColumns.cs Modified: trunk/pgsqlclient/source/PostgreSql/Data/Schema/MetaData.xml =================================================================== --- trunk/pgsqlclient/source/PostgreSql/Data/Schema/MetaData.xml 2006-03-27 12:13:59 UTC (rev 55) +++ trunk/pgsqlclient/source/PostgreSql/Data/Schema/MetaData.xml 2006-03-27 12:45:14 UTC (rev 56) @@ -176,7 +176,7 @@ </MetaDataCollections> <MetaDataCollections> <CollectionName>IndexColumns</CollectionName> - <NumberOfRestrictions>4</NumberOfRestrictions> + <NumberOfRestrictions>5</NumberOfRestrictions> <NumberOfIdentifierParts>0</NumberOfIdentifierParts> <PopulationMechanism>PrepareCollection</PopulationMechanism> </MetaDataCollections> Modified: trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgIndexColumns.cs =================================================================== --- trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgIndexColumns.cs 2006-03-27 12:13:59 UTC (rev 55) +++ trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgIndexColumns.cs 2006-03-27 12:45:14 UTC (rev 56) @@ -25,9 +25,60 @@ protected override string BuildSql(string[] restrictions) { - throw new Exception("The method or operation is not implemented."); - } + string sql = + "SELECT " + + "current_database() AS TABLE_CATALOG, " + + "pg_namespace.nspname AS TABLE_SCHEMA, " + + "pg_class.relname AS TABLE_NAME, " + + "current_database() AS INDEX_CATALOG, " + + "pg_namespidx.nspname AS INDEX_SCHEMA, " + + "pg_classidx.relname AS INDEX_NAME, " + + "pg_attribute.attname AS COLUMN_NAME, " + + "pg_attribute.attnum AS ORDINAL_POSITION " + + "FROM pg_index " + + "left join pg_class ON pg_index.indrelid = pg_class.oid " + + "left join pg_class as pg_classidx ON pg_index.indexrelid = pg_classidx.oid " + + "left join pg_namespace ON pg_classidx.relnamespace = pg_namespace.oid " + + "left join pg_namespace as pg_namespidx ON pg_classidx.relnamespace = pg_namespidx.oid " + + "left join pg_attribute ON pg_index.indexrelid = pg_attribute.attrelid "; + + 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]); + } + + // INDEX_NAME + if (restrictions.Length > 3 && restrictions[3] != null) + { + sql += String.Format(" and pg_classidx.relname = '{0}'", restrictions[3]); + } + + // COLUMN_NAME + if (restrictions.Length > 4 && restrictions[4] != null) + { + sql += String.Format(" and pg_attribute.attname = '{0}'", restrictions[4]); + } + } + + sql += "ORDER BY pg_namespace.nspname, pg_class.relname, pg_classidx.relname, pg_attribute.attnum"; + + return sql; + } + #endregion } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
[pgsqlclient-checkins] SF.net SVN: pgsqlclient: [57] trunk/pgsqlclient/source/PostgreSql/Data/Schema
From: <car...@us...> - 2006-03-27 13:04:17
|
Revision: 57 Author: carlosga_fb Date: 2006-03-27 05:04:09 -0800 (Mon, 27 Mar 2006) ViewCVS: http://svn.sourceforge.net/pgsqlclient/?rev=57&view=rev Log Message: ----------- ?\194?\183 Added implementation of ViewColumns schema Modified Paths: -------------- trunk/pgsqlclient/source/PostgreSql/Data/Schema/MetaData.xml trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgViewColumns.cs Modified: trunk/pgsqlclient/source/PostgreSql/Data/Schema/MetaData.xml =================================================================== --- trunk/pgsqlclient/source/PostgreSql/Data/Schema/MetaData.xml 2006-03-27 12:45:14 UTC (rev 56) +++ trunk/pgsqlclient/source/PostgreSql/Data/Schema/MetaData.xml 2006-03-27 13:04:09 UTC (rev 57) @@ -516,6 +516,30 @@ <RestrictionDefault>view_name</RestrictionDefault> <RestrictionNumber>3</RestrictionNumber> </Restrictions> + <Restrictions> + <CollectionName>ViewColumns</CollectionName> + <RestrictionName>ViewCatalog</RestrictionName> + <RestrictionDefault>view_catalog</RestrictionDefault> + <RestrictionNumber>1</RestrictionNumber> + </Restrictions> + <Restrictions> + <CollectionName>ViewColumns</CollectionName> + <RestrictionName>ViewSchema</RestrictionName> + <RestrictionDefault>view_schema</RestrictionDefault> + <RestrictionNumber>2</RestrictionNumber> + </Restrictions> + <Restrictions> + <CollectionName>ViewColumns</CollectionName> + <RestrictionName>ViewName</RestrictionName> + <RestrictionDefault>view_name</RestrictionDefault> + <RestrictionNumber>3</RestrictionNumber> + </Restrictions> + <Restrictions> + <CollectionName>ViewColumns</CollectionName> + <RestrictionName>ColumnName</RestrictionName> + <RestrictionDefault>column_name</RestrictionDefault> + <RestrictionNumber>4</RestrictionNumber> + </Restrictions> <DataSourceInformation> <CompositeIdentifierSeparatorPattern>.</CompositeIdentifierSeparatorPattern> <DataSourceProductName>PostgreSQL</DataSourceProductName> Modified: trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgViewColumns.cs =================================================================== --- trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgViewColumns.cs 2006-03-27 12:45:14 UTC (rev 56) +++ trunk/pgsqlclient/source/PostgreSql/Data/Schema/PgViewColumns.cs 2006-03-27 13:04:09 UTC (rev 57) @@ -25,7 +25,48 @@ protected override string BuildSql(string[] restrictions) { - throw new NotImplementedException(); + string sql = + "SELECT " + + "current_database() AS VIEW_CATALOG, " + + "pg_namespace.nspname AS VIEW_SCHEMA, " + + "pg_class.relname AS VIEW_NAME, " + + "pg_attribute.attname AS COLUMN_NAME " + + "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 " + + "WHERE " + + "pg_class.relkind = 'v' "; + + if (restrictions != null && restrictions.Length > 0) + { + // VIEW_CATALOG + if (restrictions.Length > 0 && restrictions[0] != null) + { + } + + // VIEW_SCHEMA + if (restrictions.Length > 1 && restrictions[1] != null) + { + sql += String.Format(" and pg_namespace.nspname = '{0}'", restrictions[1]); + } + + // VIEW_NAME + if (restrictions.Length > 2 && restrictions[2] != null) + { + sql += String.Format(" and 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 += " 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. |