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. |