From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: Bogus use of canonicalize_qual |
Date: | 2018-03-10 20:21:06 |
Message-ID: | 4911.1520713266@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
I wrote:
> Whilst fooling about with predtest.c, I noticed a rather embarrassing
> error. Consider the following, rather silly, CHECK constraint:
> ...
> So, what to do? We have a few choices, none ideal:
I'd been assuming that we need to back-patch a fix for this, but after
further reflection, I'm not so sure. The bug is only triggered by fairly
silly CHECK constraints, and given that it's been there a long time (at
least since 9.2 according to my tests) without any field reports, it seems
likely that nobody is writing such silly CHECK constraints.
If we suppose that we only need to fix it in HEAD, the most attractive
answer is to add a parameter distinguishing WHERE and CHECK arguments
to canonicalize_qual. That allows symmetrical simplification of constant-
NULL subexpressions in the two cases, and the fact that the caller now
has to make an explicit choice of WHERE vs CHECK semantics might help
discourage people from applying the function in cases where it's not
clear which one applies. PFA a patch that does it like that.
I'm a little unhappy with what I learned about the PARTITION code while
doing this :-(. It's pretty schizophrenic about whether partition
constraints are implicit-AND or explicit-AND format, and I do not think
that the construction of default-partition constraints is done in a
desirable fashion either. But I mostly resisted the temptation to touch
that logic in this patch.
Comments, objections?
regards, tom lane
Attachment | Content-Type | Size |
---|---|---|
fix-canonicalization-of-check-constraints-1.patch | text/x-diff | 19.7 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Tomas Vondra | 2018-03-10 21:29:47 | Re: [HACKERS] PATCH: multivariate histograms and MCV lists |
Previous Message | Tomas Vondra | 2018-03-10 20:12:11 | Re: [PROPOSAL] timestamp informations to pg_stat_statements |