postgresql/src/test/regress
Tom Lane 0f0deb7194 Improve predtest.c's handling of cases with NULL-constant inputs.
Currently, if operator_predicate_proof() is given an operator clause like
"something op NULL", it just throws up its hands and reports it can't prove
anything.  But we can often do better than that, if the operator is strict,
because then we know that the clause returns NULL overall.  Depending on
whether we're trying to prove or refute something, and whether we need
weak or strong semantics for NULL, this may be enough to prove the
implication, especially when we rely on the standard rule that "false
implies anything".  In particular, this lets us do something useful with
questions like "does X IN (1,3,5,NULL) imply X <= 5?"  The null entry
in the IN list can effectively be ignored for this purpose, but the
proof rules were not previously smart enough to deduce that.

This patch is by me, but it owes something to previous work by
Amit Langote to try to solve problems of the form mentioned.
Thanks also to Emre Hasegeli and Ashutosh Bapat for review.

Discussion: https://postgr.es/m/3bad48fc-f257-c445-feeb-8a2b2fb622ba@lab.ntt.co.jp
2018-03-21 18:30:46 -04:00
..
data Improve key representation for GIN jsonb_ops, and fix existence-search bug. 2014-05-09 08:41:26 -04:00
expected Improve predtest.c's handling of cases with NULL-constant inputs. 2018-03-21 18:30:46 -04:00
input Revert renaming of int44in/int44out. 2018-02-27 15:15:35 -05:00
output Revert renaming of int44in/int44out. 2018-02-27 15:15:35 -05:00
sql Repair crash with unsortable grouping sets. 2018-03-21 11:39:28 +00:00
.gitignore Update .gitignore for config.cache. 2014-12-18 19:56:42 +09:00
GNUmakefile Update copyright for 2018 2018-01-02 23:30:12 -05:00
Makefile Fix non-GNU makefiles for AIX make. 2017-11-30 00:57:22 -08:00
README
parallel_schedule Local partitioned indexes 2018-01-19 11:49:22 -03:00
pg_regress.c pg_regress: Increase space available for test names. 2018-03-01 02:48:33 -08:00
pg_regress.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
pg_regress_main.c Update copyright for 2018 2018-01-02 23:30:12 -05:00
regress.c Revert renaming of int44in/int44out. 2018-02-27 15:15:35 -05:00
regressplans.sh
resultmap
serial_schedule Local partitioned indexes 2018-01-19 11:49:22 -03:00
standby_schedule

README

Documentation concerning how to run these regression tests and interpret
the results can be found in the PostgreSQL manual, in the chapter
"Regression Tests".