[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");
}
|