Re: constraint exclusion and nulls in IN (..) clause
Amit Langote <langote_amit_f8@lab.ntt.co.jp>
From: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
To: Tom Lane <tgl@sss.pgh.pa.us>, emre@hasegeli.com
Cc: Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>,
Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2018-03-22T10:22:56Z
Lists: pgsql-hackers
On 2018/03/21 23:00, Tom Lane wrote: > Emre Hasegeli <emre@hasegeli.com> writes: >> I am not sure if we are covering the case when clause_const and >> pred_const are both NULL. In this case, we should be able to return >> true only by checking op_strict(pred_op) or maybe even without >> checking that. Am I mistaken? > > Yeah, that's there. We need both operators to be strict, I think; > otherwise we can't really assume anything about what they'd return > for NULL inputs. But if they are, we have NULL => NULL which is > valid for all proof cases. Thank you for closing the CF entry. I too wasn't sure if the patch's modifications to operator_predicate_proof() led to correct handling for the case where both clause_const and pred_const are both NULL consts. ISTM that the result in that case becomes what operator_same_subexprs_proof() would return for the pred_op (possibly commuted) and clause_op pair. But maybe we don't end up in that case much. Regards, Amit
Commits
-
Improve predtest.c's handling of cases with NULL-constant inputs.
- 0f0deb719483 11.0 landed