> > ERROR: Cannot create index: 'bar_id_key' already exists
> > -- This is bad. Sorry.
postgres=> CREATE TABLE bar (
postgres-> id serial,
postgres-> name varchar(32)
postgres-> );
NOTICE: CREATE TABLE will create implicit sequence bar_id_seq for
SERIAL column bar.id
NOTICE: CREATE TABLE/UNIQUE will create implicit index bar_id_key for
table bar
CREATE
I hadn't noticed that there was a positional dependency in the code I
had moved around to implement the SERIAL PRIMARY KEY feature. Sorry
about that.
Patch enclosed. Will commit to source tree soon...
- Tom
*** analyze.c.orig Wed Sep 16 14:59:22 1998
--- analyze.c Mon Sep 21 05:18:07 1998
***************
*** 517,528 ****
if (column->is_sequence)
{
! char *cstring;
CreateSeqStmt *sequence;
constraint = makeNode(Constraint);
constraint->contype = CONSTR_DEFAULT;
! constraint->name = makeTableName(stmt->relname, column->colname, "seq", NULL);
cstring = palloc(9 + strlen(constraint->name) + 2 + 1);
strcpy(cstring, "nextval('");
strcat(cstring, constraint->name);
--- 517,529 ----
if (column->is_sequence)
{
! char *sname;
! char *cstring;
CreateSeqStmt *sequence;
constraint = makeNode(Constraint);
constraint->contype = CONSTR_DEFAULT;
! constraint->name = sname = makeTableName(stmt->relname, column->colname, "seq", NULL);
cstring = palloc(9 + strlen(constraint->name) + 2 + 1);
strcpy(cstring, "nextval('");
strcat(cstring, constraint->name);
***************
*** 551,557 ****
}
sequence = makeNode(CreateSeqStmt);
! sequence->seqname = pstrdup(constraint->name);
sequence->options = NIL;
elog(NOTICE, "CREATE TABLE will create implicit sequence %s for SERIAL column %s.%s",
--- 552,558 ----
}
sequence = makeNode(CreateSeqStmt);
! sequence->seqname = pstrdup(sname);
sequence->options = NIL;
elog(NOTICE, "CREATE TABLE will create implicit sequence %s for SERIAL column %s.%s",