postgresql/src
Tom Lane 5d8aa8bced Fix missed optimization in relation_excluded_by_constraints().
In commit 3fc6e2d7f, I (tgl) argued that we only need to check for
a constant-FALSE restriction clause when there's exactly one
restriction clause, on the grounds that const-folding would have
thrown away anything ANDed with a Const FALSE.  That's true just after
const-folding has been applied, but subsequent processing such as
equivalence class expansion could result in cases where a Const FALSE
is ANDed with some other stuff.  (Compare for instance joinrels.c's
restriction_is_constant_false.)  Hence, tweak this logic to check all
the elements of the baserestrictinfo list, not just one; that's cheap
enough to not be worth worrying about.

There is one existing test case where this visibly improves the plan.
There would not be any savings in runtime, but the planner effort and
executor startup effort will be reduced, and anyway it's odd that
we can detect related cases but not this one.

Richard Guo (independently discovered by David Rowley)

Discussion: https://postgr.es/m/CAMbWs4_x3-CnVVrCboS1LkEhB5V+W7sLSCabsRiG+n7+5_kqbg@mail.gmail.com
2023-10-11 12:51:38 -04:00
..
backend Fix missed optimization in relation_excluded_by_constraints(). 2023-10-11 12:51:38 -04:00
bin Improve some wording in pg_upgrade/IMPLEMENTATION 2023-10-11 13:54:33 +09:00
common Restore proper linkage of pg_char_to_encoding() and friends. 2023-10-07 12:08:10 -04:00
fe_utils Allow using syncfs() in frontend utilities. 2023-09-06 16:27:16 -07:00
include Refactor InitPostgres() to use bitwise option flags 2023-10-11 12:31:49 +09:00
interfaces Add some const qualifiers 2023-09-26 11:28:57 +01:00
makefiles Remove --disable-thread-safety and related code. 2023-07-12 08:20:43 +12:00
pl Remove environment sensitivity in pl/tcl regression test. 2023-09-29 20:21:10 -04:00
port Meson: check for pg_config_paths.h left over from make 2023-08-24 10:33:53 +12:00
template Use unnamed POSIX semaphores on Cygwin. 2023-01-06 10:33:28 +13:00
test Fix missed optimization in relation_excluded_by_constraints(). 2023-10-11 12:51:38 -04:00
timezone Pre-beta mechanical code beautification. 2023-05-19 17:24:48 -04:00
tools Return data from heap_page_prune via a struct. 2023-09-28 10:36:34 -04:00
tutorial Pre-beta mechanical code beautification. 2023-05-19 17:24:48 -04:00
.gitignore
DEVELOPERS
Makefile Integrate pg_bsd_indent into our build/test infrastructure. 2023-02-12 12:22:21 -05:00
Makefile.global.in Suppress macOS warnings about duplicate libraries in link commands. 2023-09-29 14:07:30 -04:00
Makefile.shlib Stop using "-multiply_defined suppress" on macOS. 2023-09-26 21:06:21 -04:00
meson.build Integrate pg_bsd_indent into our build/test infrastructure. 2023-02-12 12:22:21 -05:00
nls-global.mk Fix for make unportability 2022-07-13 09:15:01 +02:00