[pgsqlclient-checkins] pgsqlclient/PostgreSql.Data.PGSqlClient/source/DbSchema PGCheckConstraints.cs
Status: Inactive
Brought to you by:
carlosga_fb
Update of /cvsroot/pgsqlclient/pgsqlclient/PostgreSql.Data.PGSqlClient/source/DbSchema In directory sc8-pr-cvs1:/tmp/cvs-serv32070 Modified Files: PGCheckConstraints.cs PGDbSchemaFactory.cs PGFunctionsSchema.cs PGTablePrivilegesSchema.cs PGTablesSchema.cs Log Message: Improved database schema handling. Index: PGCheckConstraints.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient/PostgreSql.Data.PGSqlClient/source/DbSchema/PGCheckConstraints.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** PGCheckConstraints.cs 21 Jul 2003 19:54:22 -0000 1.2 --- PGCheckConstraints.cs 22 Jul 2003 17:20:10 -0000 1.3 *************** *** 54,59 **** public override void AddJoins() { ! AddJoin("left join", "pg_class" , "pg_class.oid = pg_constraint.conrelid"); ! AddJoin("left join", "pg_namespace" , "pg_class.relnamespace = pg_namespace.oid"); AddJoin("left join", "pg_description" , "pg_constraint.oid = pg_description.objoid"); } --- 54,58 ---- public override void AddJoins() { ! AddJoin("left join", "pg_namespace" , "pg_constraint.connamespace = pg_namespace.oid"); AddJoin("left join", "pg_description" , "pg_constraint.oid = pg_description.objoid"); } *************** *** 62,67 **** { AddOrderBy("pg_namespace.nspname"); ! AddOrderBy("pg_class.relname"); ! AddOrderBy("pg_constraint.conname"); } --- 61,65 ---- { AddOrderBy("pg_namespace.nspname"); ! AddOrderBy("pg_constraint.conname"); } Index: PGDbSchemaFactory.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient/PostgreSql.Data.PGSqlClient/source/DbSchema/PGDbSchemaFactory.cs,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** PGDbSchemaFactory.cs 12 Jul 2003 08:11:22 -0000 1.1.1.1 --- PGDbSchemaFactory.cs 22 Jul 2003 17:20:10 -0000 1.2 *************** *** 41,44 **** --- 41,48 ---- break; + case PGDbSchemaType.Check_Constraints_By_Table: + returnSchema = new PGCheckConstraintsByTableSchema(); + break; + case PGDbSchemaType.Columns: returnSchema = new PGColumnsSchema(); *************** *** 69,78 **** break; ! case PGDbSchemaType.Functions: ! returnSchema = new PGFunctionsSchema(); break; ! case PGDbSchemaType.Function_Parameters: ! case PGDbSchemaType.Function_Privileges: break; --- 73,82 ---- break; ! case PGDbSchemaType.Function_Privileges: ! returnSchema = new PGFunctionPrivilegesSchema(); break; ! case PGDbSchemaType.Functions: ! returnSchema = new PGFunctionsSchema(); break; *************** *** 114,118 **** break; ! case PGDbSchemaType.Trigger_Parameters: case PGDbSchemaType.Trigger_Privileges: break; --- 118,124 ---- break; ! case PGDbSchemaType.Trigger_Parameters: ! break; ! case PGDbSchemaType.Trigger_Privileges: break; Index: PGFunctionsSchema.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient/PostgreSql.Data.PGSqlClient/source/DbSchema/PGFunctionsSchema.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** PGFunctionsSchema.cs 21 Jul 2003 19:53:35 -0000 1.2 --- PGFunctionsSchema.cs 22 Jul 2003 17:20:10 -0000 1.3 *************** *** 42,47 **** public override void AddRestrictionColumns() { ! AddRestrictionColumn("pg_namespace.nspname" , "PROCEDURE_SCHEMA", null); ! AddRestrictionColumn("pg_proc.proname" , "PROCEDURE_NAME", null); } --- 42,47 ---- public override void AddRestrictionColumns() { ! AddRestrictionColumn("pg_namespace.nspname" , "FUNCTION_SCHEMA", null); ! AddRestrictionColumn("pg_proc.proname" , "FUNCTION_NAME", null); } *************** *** 52,56 **** --- 52,61 ---- AddDataColumn("pg_proc.prosecdef" , "IS_SECURITY_DEFINER"); AddDataColumn("pg_proc.proisstrict" , "IS_STRICT"); + AddDataColumn(getVolatileExpression("pg_proc.provolatile") , "VOLATILE"); AddDataColumn("pg_proc.proretset" , "RETURNS_SET"); + AddDataColumn("pg_proc.prorettype" , "RETURN_TYPE"); + AddDataColumn("pg_proc.pronargs" , "ARGUMENT_NUMBER"); + AddDataColumn("pg_proc.proargtypes" , "ARGUMENTS"); + AddDataColumn("pg_proc.prosrc" , "SOURCE"); AddDataColumn("pg_description.description", "DESCRIPTION"); } *************** *** 82,85 **** --- 87,107 ---- return parsed; + } + + #endregion + + #region PRIVATE_METHODS + + private string getVolatileExpression(string fieldName) + { + StringBuilder expression = new StringBuilder(); + + expression.AppendFormat(" case {0} ", fieldName); + expression.Append(" when 'i' THEN 'INMUTABLE'"); + expression.Append(" when 's' THEN 'STABLE'"); + expression.Append(" when 'v' THEN 'VOLATILE'"); + expression.Append(" END "); + + return expression.ToString(); } Index: PGTablePrivilegesSchema.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient/PostgreSql.Data.PGSqlClient/source/DbSchema/PGTablePrivilegesSchema.cs,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** PGTablePrivilegesSchema.cs 12 Jul 2003 08:11:22 -0000 1.1.1.1 --- PGTablePrivilegesSchema.cs 22 Jul 2003 17:20:10 -0000 1.2 *************** *** 43,48 **** public override void AddRestrictionColumns() { ! AddRestrictionColumn("pg_namespace.nspname", "TABLE_SCHEMA", null); ! AddRestrictionColumn("pg_class.relname", "TABLE_NAME", null); } --- 43,48 ---- public override void AddRestrictionColumns() { ! AddRestrictionColumn("pg_namespace.nspname" , "TABLE_SCHEMA", null); ! AddRestrictionColumn("pg_class.relname" , "TABLE_NAME", null); } *************** *** 101,105 **** return privileges; } - private DataTable getPrivilegesDataTable() --- 101,104 ---- Index: PGTablesSchema.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient/PostgreSql.Data.PGSqlClient/source/DbSchema/PGTablesSchema.cs,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** PGTablesSchema.cs 12 Jul 2003 08:11:22 -0000 1.1.1.1 --- PGTablesSchema.cs 22 Jul 2003 17:20:10 -0000 1.2 *************** *** 42,47 **** public override void AddRestrictionColumns() { ! AddRestrictionColumn("pg_namespace.nspname", "TABLE_SCHEMA", null); ! AddRestrictionColumn("pg_class.relname", "TABLE_NAME", null); AddRestrictionColumn(getTableTypeExpression("pg_class.relkind"), "TABLE_TYPE", "pg_class.relkind"); } --- 42,47 ---- public override void AddRestrictionColumns() { ! AddRestrictionColumn("pg_namespace.nspname" , "TABLE_SCHEMA", null); ! AddRestrictionColumn("pg_class.relname" , "TABLE_NAME", null); AddRestrictionColumn(getTableTypeExpression("pg_class.relkind"), "TABLE_TYPE", "pg_class.relkind"); } *************** *** 49,59 **** public override void AddDataColumns() { ! AddDataColumn("pg_class.relhasindex", "HAS_INDEXES"); ! AddDataColumn("pg_class.relisshared", "IS_SHARED"); ! AddDataColumn("pg_class.relchecks", "CONSTRAINT_COUNT"); ! AddDataColumn("pg_class.reltriggers", "TRIGGER_COUNT"); ! AddDataColumn("pg_class.relhaspkey", "HAS_PRIMARY"); ! AddDataColumn("pg_class.relhasrules", "HAS_RULES"); ! AddDataColumn("pg_class.relhassubclass", "HAS_SUBCLASS"); AddDataColumn("pg_description.description", "DESCRIPTION"); } --- 49,59 ---- public override void AddDataColumns() { ! AddDataColumn("pg_class.relhasindex" , "HAS_INDEXES"); ! AddDataColumn("pg_class.relisshared" , "IS_SHARED"); ! AddDataColumn("pg_class.relchecks" , "CONSTRAINT_COUNT"); ! AddDataColumn("pg_class.reltriggers" , "TRIGGER_COUNT"); ! AddDataColumn("pg_class.relhaspkey" , "HAS_PRIMARY"); ! AddDataColumn("pg_class.relhasrules" , "HAS_RULES"); ! AddDataColumn("pg_class.relhassubclass" , "HAS_SUBCLASS"); AddDataColumn("pg_description.description", "DESCRIPTION"); } *************** *** 61,66 **** public override void AddJoins() { ! AddJoin("left join", "pg_namespace", "pg_class.relnamespace = pg_namespace.oid"); ! AddJoin("left join", "pg_description", "pg_class.oid = pg_description.objoid"); } --- 61,66 ---- public override void AddJoins() { ! AddJoin("left join", "pg_namespace" , "pg_class.relnamespace = pg_namespace.oid"); ! AddJoin("left join", "pg_description" , "pg_class.oid = pg_description.objoid"); } |