diff options
Diffstat (limited to 'src/backend/parser/analyze.c')
| -rw-r--r-- | src/backend/parser/analyze.c | 23 | 
1 files changed, 16 insertions, 7 deletions
| diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c index 2d2ab420145..dc29f347cf4 100644 --- a/src/backend/parser/analyze.c +++ b/src/backend/parser/analyze.c @@ -7,7 +7,7 @@   *   *   * IDENTIFICATION - *	  $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.86 1998/09/03 14:21:06 thomas Exp $ + *	  $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.87 1998/09/16 14:25:37 thomas Exp $   *   *-------------------------------------------------------------------------   */ @@ -530,11 +530,26 @@ transformCreateStmt(ParseState *pstate, CreateStmt *stmt)  					constraint->def = cstring;  					constraint->keys = NULL; +					/* The parser only allows PRIMARY KEY as a constraint for the SERIAL type. +					 * So, if there is a constraint of any kind, assume it is that. +					 * If PRIMARY KEY is specified, then don't need to gin up a UNIQUE constraint +					 * since that will be covered already. +					 * - thomas 1998-09-15 +					 */  					if (column->constraints != NIL) +					{  						column->constraints = lappend(column->constraints, constraint); +					}  					else +					{  						column->constraints = lcons(constraint, NIL); +						constraint = makeNode(Constraint); +						constraint->contype = CONSTR_UNIQUE; +						constraint->name = makeTableName(stmt->relname, column->colname, "key", NULL); +						column->constraints = lappend(column->constraints, constraint); +					} +  					sequence = makeNode(CreateSeqStmt);  					sequence->seqname = pstrdup(constraint->name);  					sequence->options = NIL; @@ -543,12 +558,6 @@ transformCreateStmt(ParseState *pstate, CreateStmt *stmt)  					  sequence->seqname, stmt->relname, column->colname);  					ilist = lcons(sequence, NIL); - -					constraint = makeNode(Constraint); -					constraint->contype = CONSTR_UNIQUE; -					constraint->name = makeTableName(stmt->relname, column->colname, "key", NULL); - -					column->constraints = lappend(column->constraints, constraint);  				}  				if (column->constraints != NIL) | 
