Attached find a patch that does (mostly) two things. First, it allows the optimizer to generate plans where a Nested Loop or Hash Join appears below a Gather node. This is a big improvement on what we have today, where only a sequential scan can be parallelized; with this patch, entire join problems can be parallelized, as long as they don't need a Merge Join (see below for more on this).
Sounds like good progress.
This gives us multiple copies of the hash table, which means we must either use N * work_mem, or we must limit the hash table to work_mem / N per partial plan.
How can the partial paths share a hash table?
--
Simon Riggs http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services