> Hash joins and sort-merge joins have been considered the algorithms of choice for analytical relational queries in most parallel database systems because of their performance robustness and ease of parallelization. On the other hand, nested loop joins have been considered less attractive and are conservatively used. In this paper, we revisit the potential of nested loop joins [...]
Uh, a hash join is basically a nested loop where first you create a hash table index of one side. When I finally realized that I suddenly understood why certain PG queries were slow!
So right off in the abstract I find this paper suspect.