Re: BUG #9820: Parentheses removed in chech constraint

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: BUG #9820: Parentheses removed in chech constraint
Дата
Msg-id 24144.1396377661@sss.pgh.pa.us
обсуждение исходный текст
Ответ на BUG #9820: Parentheses removed in chech constraint  (ilussier@accovia.com)
Список pgsql-bugs
ilussier@accovia.com writes:
> alter table table_name add constraint c1 CHECK ( (type = 0 AND field1 IS NOT
> NULL AND field2 IS NOT NULL AND field3 IS NOT NULL) OR (type_id = 1 AND
> field1 IS NULL AND field2 IS NULL AND field3 IS NULL) )

> At the execution of the query, the parentheses that defines condition 1 and
> condition 2 are removed.  By removing the parentheses, the expression does
> not means the same thing.

Sure it does.  AND binds more tightly than OR.

You did not state what your actual problem is, but whether or not the
constraint-printer adds logically redundant parentheses isn't it...

            regards, tom lane

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

Предыдущее
От: ilussier@accovia.com
Дата:
Сообщение: BUG #9820: Parentheses removed in chech constraint
Следующее
От: Kjetil Nygård
Дата:
Сообщение: Timezone error when casting. Maybe daylight saving