From: | "Thomas G(dot) Lockhart" <lockhart(at)alumni(dot)caltech(dot)edu> |
---|---|
To: | Peter T Mount <peter(at)retep(dot)org(dot)uk> |
Cc: | Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us>, hackers(at)postgreSQL(dot)org |
Subject: | Re: [HACKERS] Open 6.4 items |
Date: | 1998-08-30 18:40:52 |
Message-ID: | 35E99CB4.A8375D91@alumni.caltech.edu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Works fine _if_ the user has database creation privileges:
tgl=> create table test (x text, s serial);
NOTICE: CREATE TABLE will create implicit sequence test_s_seq for SERIAL
column test.s
NOTICE: CREATE TABLE/UNIQUE will create implicit index test_s_key for
table test
CREATE
This statement internally expands to roughly the following:
create table test (x text, s int4 default nextval('test_s_seq'));
create unique index test_s_key on test (s);
create sequence test_s_seq;
If the user has no database creation privileges, then apparently there
is some checking which insists that the sequence referenced in the
implicit default clause actually exists:
tgl=> create table test (x text, i int default nextval('test_s_seq'));
ERROR: pg_aclcheck: class "test_s_seq" not found
So, it looks like the sequence should internally be created before the
table, though in some cases it doesn't matter. I was concerned that this
might be the case, and the parser is not at the moment configured to
allow this. Should be able to fix it up, or have just limited SERIAL
support for the v6.4 release :(
- Tom
From | Date | Subject | |
---|---|---|---|
Next Message | The Hermit Hacker | 1998-08-30 19:15:15 | Re: [HACKERS] Release 6.4 |
Previous Message | Peter T Mount | 1998-08-30 17:44:40 | Re: [HACKERS] pgindent for Monday |