Re: Sequence name with capital letters issue

Поиск
Список
Период
Сортировка
От Thibaut BOULDOIRE
Тема Re: Sequence name with capital letters issue
Дата
Msg-id CAJG-3PQ7bhd1vuxmf8Ox9cDvZ+qsX7NNkBpvJMPb-isw=+Fj9A@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Sequence name with capital letters issue  (hubert depesz lubaczewski <depesz@depesz.com>)
Ответы Re: Sequence name with capital letters issue  ("David G. Johnston" <david.g.johnston@gmail.com>)
Re: Sequence name with capital letters issue  ("Daniel Verite" <daniel@manitou-mail.org>)
Список pgsql-bugs
Hello,

Thanks for your reply.
Sorry, yes, I executed SELECT nextval('app_user_SEQ'); with simple quotes, no double quotes.
And the error message is  "  the relation "app_user_seq" does not exist. "

Maybe it's the tool that I'm using ( DBeaver ) that is transforming the capital letters into lowercase ?

Thank you for the link about the "Don't do this" wiki page.

Best regards,
Thibaut

Le ven. 5 avr. 2024 à 13:10, hubert depesz lubaczewski <depesz@depesz.com> a écrit :
On Fri, Apr 05, 2024 at 11:35:45AM +0200, Thibaut BOULDOIRE wrote:
> So now my sequences are like that :
> app_user_seq
> app_address_seq
> And now the SELECT nextval("app_user_seq"); is working.

Are you sure this is what you ran?
Because this causes the same error:

#v+
depesz=# create sequence app_user_seq;
CREATE SEQUENCE

depesz=# select nextval("app_user_seq");
ERROR:  column "app_user_seq" does not exist
LINE 1: select nextval("app_user_seq");
                       ^
depesz=# select nextval('app_user_seq');
 nextval
---------
       1
(1 row)
#v-

There is difference between " and ' :)

You *can* use upper case letters in seq names, but it will not be pretty:

#v+
depesz=# create sequence "app_user_XXX";
CREATE SEQUENCE

depesz=# select nextval('app_user_XXX');
ERROR:  relation "app_user_xxx" does not exist
LINE 1: select nextval('app_user_XXX');
                       ^
depesz=# select nextval('"app_user_XXX"');
 nextval
---------
       1
(1 row)
#v-

> But now, something interesting happened.
> When I call this query : SELECT nextval("app_user_SEQ"); , it's the
> app_user_seq sequence that is incremented and not the app_user_SEQ.

This is most likely some unrelated thing. Especially since calling nextval(X),
where X is in "quotes" is going to fail virtually always.

> I didn't find in the documentation something that mentioned this issue
> regarding sequence names with capital letters.
> Is it a bug ? or is it something that I didn't find in the documentation ?

I can't comment on the "wrong sequence gets incremented", but generally
you didn't read the "Don't do this" wiki page:
https://wiki.postgresql.org/wiki/Don't_Do_This#Don.27t_use_upper_case_table_or_column_names

Best regards,

depesz


В списке pgsql-bugs по дате отправления:

Предыдущее
От: hubert depesz lubaczewski
Дата:
Сообщение: Re: Sequence name with capital letters issue
Следующее
От: Baehler Thomas SBB CFF FFS
Дата:
Сообщение: [MASSMAIL] Detach Partition produces a --> SQL-Fehler [XX000]: ERROR: could not find ON INSERT check triggers of foreign key constraint 76908