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 по дате отправления: