postgresql/src
Alvaro Herrera 9fdb675fc5 Faster partition pruning
Add a new module backend/partitioning/partprune.c, implementing a more
sophisticated algorithm for partition pruning.  The new module uses each
partition's "boundinfo" for pruning instead of constraint exclusion,
based on an idea proposed by Robert Haas of a "pruning program": a list
of steps generated from the query quals which are run iteratively to
obtain a list of partitions that must be scanned in order to satisfy
those quals.

At present, this targets planner-time partition pruning, but there exist
further patches to apply partition pruning at execution time as well.

This commit also moves some definitions from include/catalog/partition.h
to a new file include/partitioning/partbounds.h, in an attempt to
rationalize partitioning related code.

Authors: Amit Langote, David Rowley, Dilip Kumar
Reviewers: Robert Haas, Kyotaro Horiguchi, Ashutosh Bapat, Jesper Pedersen.
Discussion: https://postgr.es/m/098b9c71-1915-1a2a-8d52-1a7a50ce79e8@lab.ntt.co.jp
2018-04-06 16:44:05 -03:00
..
backend Faster partition pruning 2018-04-06 16:44:05 -03:00
bin Fix compiler warning about format truncation 2018-04-06 08:43:50 -04:00
common Prevent accidental linking of system-supplied copies of libpq.so etc. 2018-04-03 16:26:05 -04:00
fe_utils Add \if support to pgbench 2018-03-22 17:42:03 +03:00
include Faster partition pruning 2018-04-06 16:44:05 -03:00
interfaces Prevent accidental linking of system-supplied copies of libpq.so etc. 2018-04-03 16:26:05 -04:00
makefiles Prevent accidental linking of system-supplied copies of libpq.so etc. 2018-04-03 16:26:05 -04:00
pl PL/pgSQL: Add support for SET TRANSACTION 2018-04-05 15:30:24 -04:00
port Fix the new ARMv8 CRC code for short and unaligned input. 2018-04-04 14:40:39 +03:00
template
test Faster partition pruning 2018-04-06 16:44:05 -03:00
timezone Update time zone data files to tzdata release 2018c. 2018-01-27 16:42:28 -05:00
tools Install errcodes.txt for use by extensions. 2018-04-05 04:05:40 +01:00
tutorial
.gitignore
DEVELOPERS
Makefile Basic JIT provider and error handling infrastructure. 2018-03-21 19:28:28 -07:00
Makefile.global.in Use ARMv8 CRC instructions where available. 2018-04-04 12:22:45 +03:00
Makefile.shlib Prevent accidental linking of system-supplied copies of libpq.so etc. 2018-04-03 16:26:05 -04:00
nls-global.mk