Log Message:
-----------
The original patch to avoid building a hash join's hashtable when the
outer relation is empty did not work, per test case from Patrick Welche.
It tried to use nodeHashjoin.c's high-level mechanisms for fetching an
outer-relation tuple, but that code expected the hash table to be filled
already. As patched, the code failed in corner cases such as having no
outer-relation tuples for the first hash batch. Revert and rewrite.
Modified Files:
--------------
pgsql/src/backend/executor:
nodeHash.c (r1.94 -> r1.95)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeHash.c.diff?r1=1.94&r2=1.95)
nodeHashjoin.c (r1.72 -> r1.73)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeHashjoin.c.diff?r1=1.72&r2=1.73)
pgsql/src/include/nodes:
execnodes.h (r1.137 -> r1.138)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/execnodes.h.diff?r1=1.137&r2=1.138)
---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend