diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/catalog/catversion.h | 4 | ||||
-rw-r--r-- | src/include/catalog/heap.h | 18 | ||||
-rw-r--r-- | src/include/catalog/pg_constraint.h | 30 | ||||
-rw-r--r-- | src/include/nodes/parsenodes.h | 6 |
4 files changed, 35 insertions, 23 deletions
diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h index 9b0cb80e174..fcc9c6c2340 100644 --- a/src/include/catalog/catversion.h +++ b/src/include/catalog/catversion.h @@ -37,7 +37,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/catversion.h,v 1.457 2008/05/08 08:58:59 mha Exp $ + * $PostgreSQL: pgsql/src/include/catalog/catversion.h,v 1.458 2008/05/09 23:32:04 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -53,6 +53,6 @@ */ /* yyyymmddN */ -#define CATALOG_VERSION_NO 200805081 +#define CATALOG_VERSION_NO 200805091 #endif diff --git a/src/include/catalog/heap.h b/src/include/catalog/heap.h index 727af295c76..52347a65522 100644 --- a/src/include/catalog/heap.h +++ b/src/include/catalog/heap.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/heap.h,v 1.87 2008/01/01 19:45:56 momjian Exp $ + * $PostgreSQL: pgsql/src/include/catalog/heap.h,v 1.88 2008/05/09 23:32:04 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -29,6 +29,8 @@ typedef struct CookedConstraint char *name; /* name, or NULL if none */ AttrNumber attnum; /* which attr (only for DEFAULT) */ Node *expr; /* transformed default or check expr */ + bool is_local; /* constraint has local (non-inherited) def */ + int inhcount; /* number of times constraint is inherited */ } CookedConstraint; extern Relation heap_create(const char *relname, @@ -46,6 +48,7 @@ extern Oid heap_create_with_catalog(const char *relname, Oid relid, Oid ownerid, TupleDesc tupdesc, + List *cooked_constraints, char relkind, bool shared_relation, bool oidislocal, @@ -67,11 +70,13 @@ extern void InsertPgClassTuple(Relation pg_class_desc, Oid new_rel_oid, Datum reloptions); -extern List *AddRelationRawConstraints(Relation rel, - List *rawColDefaults, - List *rawConstraints); +extern List *AddRelationNewConstraints(Relation rel, + List *newColDefaults, + List *newConstraints, + bool allow_merge, + bool is_local); -extern void StoreAttrDefault(Relation rel, AttrNumber attnum, char *adbin); +extern void StoreAttrDefault(Relation rel, AttrNumber attnum, Node *expr); extern Node *cookDefault(ParseState *pstate, Node *raw_default, @@ -79,9 +84,6 @@ extern Node *cookDefault(ParseState *pstate, int32 atttypmod, char *attname); -extern int RemoveRelConstraints(Relation rel, const char *constrName, - DropBehavior behavior); - extern void DeleteRelationTuple(Oid relid); extern void DeleteAttributeTuples(Oid relid); extern void RemoveAttributeById(Oid relid, AttrNumber attnum); diff --git a/src/include/catalog/pg_constraint.h b/src/include/catalog/pg_constraint.h index a05e2a4a40e..e94067ae953 100644 --- a/src/include/catalog/pg_constraint.h +++ b/src/include/catalog/pg_constraint.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/catalog/pg_constraint.h,v 1.28 2008/03/27 03:57:34 tgl Exp $ + * $PostgreSQL: pgsql/src/include/catalog/pg_constraint.h,v 1.29 2008/05/09 23:32:04 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -71,6 +71,12 @@ CATALOG(pg_constraint,2606) char confdeltype; /* foreign key's ON DELETE action */ char confmatchtype; /* foreign key's match type */ + /* Has a local definition (hence, do not drop when coninhcount is 0) */ + bool conislocal; + + /* Number of times inherited from direct parent relation(s) */ + int4 coninhcount; + /* * VARIABLE LENGTH FIELDS start here. These fields may be NULL, too. */ @@ -125,7 +131,7 @@ typedef FormData_pg_constraint *Form_pg_constraint; * compiler constants for pg_constraint * ---------------- */ -#define Natts_pg_constraint 18 +#define Natts_pg_constraint 20 #define Anum_pg_constraint_conname 1 #define Anum_pg_constraint_connamespace 2 #define Anum_pg_constraint_contype 3 @@ -137,13 +143,15 @@ typedef FormData_pg_constraint *Form_pg_constraint; #define Anum_pg_constraint_confupdtype 9 #define Anum_pg_constraint_confdeltype 10 #define Anum_pg_constraint_confmatchtype 11 -#define Anum_pg_constraint_conkey 12 -#define Anum_pg_constraint_confkey 13 -#define Anum_pg_constraint_conpfeqop 14 -#define Anum_pg_constraint_conppeqop 15 -#define Anum_pg_constraint_conffeqop 16 -#define Anum_pg_constraint_conbin 17 -#define Anum_pg_constraint_consrc 18 +#define Anum_pg_constraint_conislocal 12 +#define Anum_pg_constraint_coninhcount 13 +#define Anum_pg_constraint_conkey 14 +#define Anum_pg_constraint_confkey 15 +#define Anum_pg_constraint_conpfeqop 16 +#define Anum_pg_constraint_conppeqop 17 +#define Anum_pg_constraint_conffeqop 18 +#define Anum_pg_constraint_conbin 19 +#define Anum_pg_constraint_consrc 20 /* Valid values for contype */ @@ -192,7 +200,9 @@ extern Oid CreateConstraintEntry(const char *constraintName, Oid indexRelId, Node *conExpr, const char *conBin, - const char *conSrc); + const char *conSrc, + bool conIsLocal, + int conInhCount); extern void RemoveConstraintById(Oid conId); extern void RenameConstraintById(Oid conId, const char *newname); diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index 61c3df53913..0875b99a224 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/nodes/parsenodes.h,v 1.364 2008/04/29 20:44:49 tgl Exp $ + * $PostgreSQL: pgsql/src/include/nodes/parsenodes.h,v 1.365 2008/05/09 23:32:04 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -892,11 +892,11 @@ typedef enum AlterTableType AT_AddIndex, /* add index */ AT_ReAddIndex, /* internal to commands/tablecmds.c */ AT_AddConstraint, /* add constraint */ + AT_AddConstraintRecurse, /* internal to commands/tablecmds.c */ AT_ProcessedConstraint, /* pre-processed add constraint (local in * parser/parse_utilcmd.c) */ AT_DropConstraint, /* drop constraint */ - AT_DropConstraintQuietly, /* drop constraint, no error/warning (local in - * commands/tablecmds.c) */ + AT_DropConstraintRecurse, /* internal to commands/tablecmds.c */ AT_AlterColumnType, /* alter column type */ AT_ChangeOwner, /* change owner */ AT_ClusterOn, /* CLUSTER ON */ |