[pgsqlclient-checkins] SF.net SVN: pgsqlclient: [51] trunk/pgsqlclient/source/PostgreSql/Data/Schema
Status: Inactive
Brought to you by:
carlosga_fb
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. |