ilussier(at)accovia(dot)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