Having just had to add serial columns to 3 columns, and found it moderately painful, I have had these thoughts:
. We need "alter table foo add column bar serial" - wasn't someone working on that?
. What about a rowid type? Wouldn't have to be in any order, just unique. Could be an existing OID value, or something similar with no wraparound? That would account for what I suspect is 90% of the cases where serial fields are needed.


cheers

andrew

Tom Lane wrote:

=?ISO-8859-1?Q?Dennis_Bj=F6rklund?= <[EMAIL PROTECTED]> writes:


I don't understand why the serial columns sequence should be visible as
other sequences.



Backwards compatibility, if nothing else. Are you prepared to break every existing dump file that has CREATE TABLE ser (f1 serial); SELECT pg_catalog.setval('ser_f1_seq', 1, false);




create table foo (x serial);
select nextval('foo.x');



This conflicts with the existing provisions for accessing sequences using ordinary schema-qualified names ('schema.sequence').

The work I would actually like to see getting done in this area is
the existing TODO item about using Oracle-compatible syntax for nextval
et al, namely that you can write
        sequence.nextval
or
        schema.sequence.nextval
rather than nextval('sequence') or nextval('schema.sequence').  The
internal representation of such a thing could use the sequence OID to
refer to the sequence, and would thereby be inherently rename-proof
(not to mention visible to the dependency tracker, so's you couldn't
accidentally drop a sequence that's still mentioned in some default
expression).  There is speculation in the archives about how we might
implement this and even arrange to auto-migrate existing schemas during
dump/reload.

regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend





---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Reply via email to