• Etsuro Fujita's avatar
    Postpone generating tlists and EC members for inheritance dummy children. · 8d8dcead
    Etsuro Fujita authored
    Previously, in set_append_rel_size(), we generated tlists and EC members
    for dummy children for possible use by partition-wise join, even if
    partition-wise join was disabled or the top parent was not a partitioned
    table, but adding such EC members causes noticeable planning speed
    degradation for queries with certain kinds of join quals like
    "(foo.x + bar.y) = constant" where foo and bar are partitioned tables in
    cases where there are lots of dummy children, as the EC members lists
    grow huge, especially for the ECs derived from such join quals, which
    makes the search for the parent EC members in add_child_rel_equivalences()
    very time-consuming.  Postpone the work until such children are actually
    involved in a partition-wise join.
    
    Reported-by: Sanyo Capobiango
    Analyzed-by: Justin Pryzby and Alvaro Herrera
    Author: Amit Langote, with a few additional changes by me
    Reviewed-by: Ashutosh Bapat
    Backpatch-through: v11 where partition-wise join was added
    Discussion: https://postgr.es/m/CAO698qZnrxoZu7MEtfiJmpmUtz3AVYFVnwzR%2BpqjF%3DrmKBTgpw%40mail.gmail.com
    8d8dcead
allpaths.c 120 KB