]> granicus.if.org Git - postgresql/commit
Speed up match_eclasses_to_foreign_key_col() when there are many ECs.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 21 Feb 2019 01:53:08 +0000 (20:53 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 21 Feb 2019 01:53:08 +0000 (20:53 -0500)
commit09c9dd39efeae4820b2f6343a5caf4d527bf1603
treeb9fcf4438dfd8a01cbd70ffcb072d0ea4aba73c1
parente4542ca9610c9f32c5048835e62b2538467c415a
Speed up match_eclasses_to_foreign_key_col() when there are many ECs.

Check ec_relids before bothering to iterate through the EC members.
On a perhaps extreme, but still real-world, query in which
match_eclasses_to_foreign_key_col() accounts for the bulk of the
planner's runtime, this saves nearly 40% of the runtime.  It's a bit
of a stopgap fix, but it's simple enough to be back-patched to 9.6
where this code came in; so let's do that.

David Rowley

Discussion: https://postgr.es/m/6970.1545327857@sss.pgh.pa.us
src/backend/optimizer/path/equivclass.c