]> granicus.if.org Git - postgresql/commit
Fix cost_rescan() to account for multi-batch hashing correctly.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 27 Jul 2016 21:44:34 +0000 (17:44 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 27 Jul 2016 21:45:05 +0000 (17:45 -0400)
commit69995c3b3fd64361bb4d3938315f3e88ccc01e53
treebaa39b2acfd1b67781702c5e0b02be00c65fe1fa
parentb31875b1fe7131ac29f118efd81c9aba7255eced
Fix cost_rescan() to account for multi-batch hashing correctly.

cost_rescan assumed that we don't need to rebuild the hash table when
rescanning a hash join.  However, that's currently only true for
single-batch joins; for a multi-batch join we must charge full freight.

This probably has escaped notice because we'd be unlikely to put a hash
join on the inside of a nestloop anyway.  Nonetheless, it's wrong.
Fix in HEAD, but don't backpatch for fear of destabilizing plans in
stable releases.
src/backend/optimizer/path/costsize.c