Re: Fw: postgresql experts please help

From: Kris Jurka <books(at)ejurka(dot)com>
To: Andrei Ilitchev <andrei(dot)ilitchev(at)oracle(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org, Marina Vatkina <Marina(dot)Vatkina(at)Sun(dot)COM>
Subject: Re: Fw: postgresql experts please help
Date: 2007-10-18 23:34:36
Message-ID: Pine.BSO.4.64.0710181927161.5403@leary.csoft.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

On Thu, 18 Oct 2007, Andrei Ilitchev wrote:

> IMO this behaviour (if there's existing sequence create another one with the
> same name but in some other place) is very wrong - be predictible, throw
> exception.

This is not true, but it can be confusing. A serial's sequence will
always be put in the same schema as the table it's attached to. If
another sequence exists with the same name in that schema, it will choose
another name for the serial sequence:

jurka=# create sequence t2_a_seq;
CREATE SEQUENCE
jurka=# create table t2 (a serial);
NOTICE: CREATE TABLE will create implicit sequence "t2_a_seq1" for serial
column "t2.a"
CREATE TABLE

Notice that it created "t2_a_seq1" to avoid the conflict with the existing
"t2_a_seq" sequence. If you've got another sequence with the same name in
another schema it does not conflict, but depending on your search_path you
can get them mixed up. Both of these problems are solved by using
pg_get_serial_sequence, which should perhaps be mentioned more prominently
in the documentation. There is definitely a use for keeping multiple
tables/sequences with identical names in different schemas and not having
them conflict. In fact that's the primary use case for having schemas at
all.

Kris Jurka

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Oliver Jowett 2007-10-19 00:09:49 Re: Fw: postgresql experts please help
Previous Message Kris Jurka 2007-10-18 22:19:43 Re: postgresql experts please help