Обсуждение: Bug #755: Error on create a new sequence by using the create table command.

Поиск
Список
Период
Сортировка

Bug #755: Error on create a new sequence by using the create table command.

От
pgsql-bugs@postgresql.org
Дата:
Søren Laursen (sl@scrooge.dk) reports a bug with a severity of 2
The lower the number the more severe it is.

Short Description
Error on create a new sequence by using the create table command.

Long Description
In postgresql 7.1 and 7.2.1:

Then using a statement like:
CREATE TABLE longtablename(
longtablenamenr serial NOT NULL UNIQUE PRIMARY KEY,....

)

and later a
CREATE TABLE longtablenamestep(
longtablenamestepnr serial NOT NULL UNIQUE PRIMARY KEY,....

)

I get an error on creating the last table. This is because the new sequence is named with the same name as the one used
bythe first table. The create statement is then terminated and no table is created. I would have to create the sequence
myself and then create the table using statements like: 
 not null default nextval('"longtablename_longtablename_sq1"'::text).

Regards,

Soeren Laursen


Sample Code


No file was uploaded with this report

Re: Bug #755: Error on create a new sequence by using the create

От
Bruce Momjian
Дата:
7.3 will have 64 byte indentifiers, which should make this less likely.

We could randomly pick non-conflicting names, but then the serial names
would not be predicable, and because those are used by nextval(), etc,
it would be bad.

---------------------------------------------------------------------------

pgsql-bugs@postgresql.org wrote:
> Søren Laursen (sl@scrooge.dk) reports a bug with a severity of 2
> The lower the number the more severe it is.
>
> Short Description
> Error on create a new sequence by using the create table command.
>
> Long Description
> In postgresql 7.1 and 7.2.1:
>
> Then using a statement like:
> CREATE TABLE longtablename(
> longtablenamenr serial NOT NULL UNIQUE PRIMARY KEY,....
>
> )
>
> and later a
> CREATE TABLE longtablenamestep(
> longtablenamestepnr serial NOT NULL UNIQUE PRIMARY KEY,....
>
> )
>
> I get an error on creating the last table. This is because the new sequence is named with the same name as the one
usedby the first table. The create statement is then terminated and no table is created. I would have to create the
sequencemy self and then create the table using statements like: 
>  not null default nextval('"longtablename_longtablename_sq1"'::text).
>
> Regards,
>
> Soeren Laursen
>
>
> Sample Code
>
>
> No file was uploaded with this report
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/users-lounge/docs/faq.html
>

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Re: Bug #755: Error on create a new sequence by using the

От
Rod Taylor
Дата:
7.3 will partially fix this issue by extending the length of the NAME
data type.

Ie.  You won't hit it until you have large (32+ character) length names.

On Tue, 2002-09-03 at 16:31, pgsql-bugs@postgresql.org wrote:
> S=F8ren Laursen (sl@scrooge.dk) reports a bug with a severity of 2
> The lower the number the more severe it is.
>=20
> Short Description
> Error on create a new sequence by using the create table command.
>=20
> Long Description
> In postgresql 7.1 and 7.2.1:
>=20
> Then using a statement like:
> CREATE TABLE longtablename(
> longtablenamenr serial NOT NULL UNIQUE PRIMARY KEY,....
>=20
> )
>=20
> and later a=20
> CREATE TABLE longtablenamestep(
> longtablenamestepnr serial NOT NULL UNIQUE PRIMARY KEY,....
>=20
> )
>=20
> I get an error on creating the last table. This is because the new sequen=
ce is named with the same name as the one used by the first table. The crea=
te statement is then terminated and no table is created. I would have to cr=
eate the sequence my self and then create the table using statements like:
>  not null default nextval('"longtablename_longtablename_sq1"'::text).
>=20
> Regards,
>=20
> Soeren Laursen
>=20
>=20
> Sample Code
>=20
>=20
> No file was uploaded with this report
>=20
>=20
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>=20
> http://www.postgresql.org/users-lounge/docs/faq.html
>=20