• Alvaro Herrera's avatar
    Faster partition pruning · 9fdb675f
    Alvaro Herrera authored
    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
    9fdb675f
partition.h 2.63 KB