Fix cost_rescan() to account for multi-batch hashing correctly.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: 69995c3b3fd64361bb4d3938315f3e88ccc01e53
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2016-07-27T21:45:05Z
Releases: 9.6.0
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.

Files

PathChange+/−
src/backend/optimizer/path/costsize.c modified +14 −4