Re: BUG #15198: nextval() accepts tables/indexes when adding adefault to a column

Поиск
Список
Период
Сортировка
От David G. Johnston
Тема Re: BUG #15198: nextval() accepts tables/indexes when adding adefault to a column
Дата
Msg-id CAKFQuwY2NUO92XrF7Sdg7-2kFJ3AjgcuF+VUkTSpVOa60kBdag@mail.gmail.com
обсуждение исходный текст
Ответ на Re: BUG #15198: nextval() accepts tables/indexes when adding adefault to a column  (Peter Eisentraut <peter.eisentraut@2ndquadrant.com>)
Список pgsql-bugs
On Wed, May 16, 2018 at 7:00 AM, Peter Eisentraut <peter.eisentraut@2ndquadrant.com> wrote:
> bugtest=# INSERT INTO demo (i, j) VALUES (1,1);
> INSERT 0 1
> bugtest=# INSERT INTO demo (i, j) VALUES (DEFAULT, DEFAULT);
> ERROR:  42809: "demo" is not a sequence
> LOCATION:  init_sequence, sequence.c:1139

You are right that this is not optimal behavior.  I'm not sure if it's
worth fixing, however.  (Introduce a regsequence type to use in place of
regclass?)

​There is a big note on the functions-sequence page in the docs covering late binding and text.  A addition like below is an acceptable solution for me:

Additionally, since pg_class contains objects other than sequences it is possible to specify a default that, at runtime, points to a non-sequence object and provokes an error. (i.e., the type of the pointed to pg_class record is not checked during the cast but during function evaluation).

David J.

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

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: issue with updatable cursors
Следующее
От: Tom Lane
Дата:
Сообщение: Re: BUG #15198: nextval() accepts tables/indexes when adding a default to a column