Re: [HACKERS] Open 6.4 items

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

In response to

Responses

Browse pgsql-hackers by date

  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