aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/mb/Unicode/convutils.pm
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2016-11-29 19:32:35 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2016-11-29 19:32:35 -0500
commit41e2b84ce1b89ae0125dd34318c56aa51386e2a2 (patch)
tree70953a903659a8abf7b883d76d16beb6f02f2be3 /src/backend/utils/mb/Unicode/convutils.pm
parentca5f88502096a39f831da74eb02ec9eb3310616d (diff)
downloadpostgresql-41e2b84ce1b89ae0125dd34318c56aa51386e2a2.tar.gz
postgresql-41e2b84ce1b89ae0125dd34318c56aa51386e2a2.zip
Fix bogus handling of JOIN_UNIQUE_OUTER/INNER cases for parallel joins.
consider_parallel_nestloop passed the wrong jointype down to its subroutines for JOIN_UNIQUE_INNER cases (it should pass JOIN_INNER), and it thought that it could pass paths other than innerrel->cheapest_total_path to create_unique_path, which create_unique_path is not on board with. These bugs would lead to assertion failures or other errors, suggesting that this code path hasn't been tested much. hash_inner_and_outer's code for parallel join effectively treated both JOIN_UNIQUE_OUTER and JOIN_UNIQUE_INNER the same as JOIN_INNER (for different reasons :-(), leading to incorrect plans that treated a semijoin as if it were a plain join. Michael Day submitted a test case demonstrating that hash_inner_and_outer failed for JOIN_UNIQUE_OUTER, and I found the other cases through code review. Report: https://postgr.es/m/D0E8A029-D1AC-42E8-979A-5DE4A77E4413@rcmail.com
Diffstat (limited to 'src/backend/utils/mb/Unicode/convutils.pm')
0 files changed, 0 insertions, 0 deletions