Re: BUG #13606: CHECK clause in CREATE TABLE command

Поиск
Список
Период
Сортировка
От Michael Paquier
Тема Re: BUG #13606: CHECK clause in CREATE TABLE command
Дата
Msg-id CAB7nPqQAn0v+dXmSiW-CpMdt=YucJOy0FHkkrciV1hRbmoChgQ@mail.gmail.com
обсуждение исходный текст
Ответ на BUG #13606: CHECK clause in CREATE TABLE command  (p.buongiovanni@net-international.com)
Список pgsql-bugs
On Wed, Sep 2, 2015 at 7:52 PM,  <p.buongiovanni@net-international.com> wrote:
> CREATE TABLE draft.dummy1
> (
>   cflag character(1) NOT NULL DEFAULT 'N'::bpchar,
>   cfield character varying,
>   CONSTRAINT _dummy1_ck1 CHECK (cflag = ANY (ARRAY['Y'::bpchar,
> 'N'::bpchar])),
>   CONSTRAINT _dummy1_ck2 CHECK (cflag = 'N'::bpchar OR cflag = 'Y'::bpchar
> AND cfield IS NOT NULL)
> )
> WITH (
>   OIDS=FALSE
> );
> ALTER TABLE draft.dummy1
>   OWNER TO netdw_owner;
>
> As you can see brackets has been removed from the definition of the
> constraint _Dummy1_CK2. Clearly this doesn't work as I want.

AND has precedence over OR in such expressions, so this definition is
not wrong. In any case this is not a bug, just a matter of style, and
you could as well use pg_get_constraintdef with its pretty format to
get more parenthesis around those expressions, though this would need
modifications at pgadmin level I imagine.
--
Michael

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

Предыдущее
От: p.buongiovanni@net-international.com
Дата:
Сообщение: BUG #13606: CHECK clause in CREATE TABLE command
Следующее
От: thinvalue20@gmail.com
Дата:
Сообщение: BUG #13602: hi