diff --git a/src/backend/commands/command.c b/src/backend/commands/command.c index cf8b136bd0600d06bacd428f48d475d62163858c..376bd3ae5fae8f59025b0bfd6089677094f14e96 100644 --- a/src/backend/commands/command.c +++ b/src/backend/commands/command.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.12 1997/08/21 03:01:27 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.13 1997/08/22 14:22:07 vadim Exp $ * * NOTES * The PortalExecutorHeapMemory crap needs to be eliminated @@ -283,7 +283,9 @@ PerformAddAttribute(char *relationName, * we can't add a not null attribute */ if (colDef->is_not_null) - elog(WARN,"Can't add a not null attribute to a existent relation"); + elog(WARN,"Can't add a not null attribute to a existent relation"); + if (colDef->defval) + elog(WARN,"ADD ATTRIBUTE: DEFAULT is not implemented, yet"); /* * if the first element in the 'schema' list is a "*" then we are * supposed to add this attribute to all classes that inherit from diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c index ee7948ac425c3a1a7bb1a7e851ddb35cbdc851b6..5fb94874256c17ed3ec49d5572f0d425c26c34a5 100644 --- a/src/backend/commands/copy.c +++ b/src/backend/commands/copy.c @@ -6,7 +6,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.26 1997/08/19 04:43:28 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.27 1997/08/22 14:22:09 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -608,15 +608,18 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim) * ---------------- */ - if (rel->rd_att->constr && rel->rd_att->constr->has_not_null) - { - int attrChk; - for (attrChk = 1; attrChk <= rel->rd_att->natts; attrChk++) { - if (rel->rd_att->attrs[attrChk-1]->attnotnull && heap_attisnull(tuple,attrChk)) - elog(WARN,"CopyFrom: Fail to add null value in not null attribute %s", - rel->rd_att->attrs[attrChk-1]->attname.data); - } - } + if ( rel->rd_att->constr ) + { + HeapTuple newtuple; + + newtuple = ExecConstraints ("CopyFrom", rel, tuple); + + if ( newtuple != tuple ) + { + pfree (tuple); + tuple = newtuple; + } + } heap_insert(rel, tuple); diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c index d737a8ca06db2c441f06b01044a47a57bcb183f3..5d35f7b60f53d895f88f3bfd6b5a2f1e6e725704 100644 --- a/src/backend/commands/sequence.c +++ b/src/backend/commands/sequence.c @@ -97,6 +97,8 @@ DefineSequence (CreateSeqStmt *seq) typnam->arrayBounds = NULL; coldef = makeNode(ColumnDef); coldef->typename = typnam; + coldef->defval = NULL; + coldef->is_not_null = false; null[i-1] = ' '; switch (i) @@ -149,6 +151,7 @@ DefineSequence (CreateSeqStmt *seq) stmt->archiveLoc = -1; /* default */ stmt->archiveType = ARCH_NONE; stmt->inhRelnames = NIL; + stmt->constraints = NIL; ItsSequenceCreation = true; /* hack */ diff --git a/src/backend/commands/view.c b/src/backend/commands/view.c index 6bbd80cc19c19e6d48e5f07ef43c8a772e73264c..3cd011ace255c0a744c8f906ba5cb2a2a8bf7577 100644 --- a/src/backend/commands/view.c +++ b/src/backend/commands/view.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/view.c,v 1.7 1997/01/10 20:17:20 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/view.c,v 1.8 1997/08/22 14:22:14 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -77,6 +77,9 @@ DefineVirtualRelation(char *relname, List *tlist) def->colname = pstrdup(resname); def->typename = typename; + + def->is_not_null = false; + def->defval = (char*) NULL; attrList = lappend(attrList, def); } @@ -95,6 +98,7 @@ DefineVirtualRelation(char *relname, List *tlist) createStmt.archiveType = ARCH_NONE; createStmt.location = -1; createStmt.archiveLoc = -1; + createStmt.constraints = NIL; /* * finally create the relation...