aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/tsquery_rewrite.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2009-07-23 17:42:13 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2009-07-23 17:42:13 +0000
commitabe184101ddd5614c635566b7fa14b2d7e2a7097 (patch)
tree42089743f1bf94ac51620317e2316e171efff888 /src/backend/utils/adt/tsquery_rewrite.c
parent51ecc4b10e6ec2df096a66670978e069bf7a26c0 (diff)
downloadpostgresql-abe184101ddd5614c635566b7fa14b2d7e2a7097.tar.gz
postgresql-abe184101ddd5614c635566b7fa14b2d7e2a7097.zip
Fix another thinko in join_is_legal's handling of semijoins: we have to test
for the case that the semijoin was implemented within either input by unique-ifying its RHS before we test to see if it appears to match the current join situation. The previous coding would select semijoin logic in situations where we'd already unique-ified the RHS and joined it to some unrelated relation(s), and then came to join it to the semijoin's LHS. That still gave the right answer as far as the semijoin itself was concerned, but would lead to incorrectly examining only an arbitrary one of the matchable rows from the unrelated relation(s). The cause of this thinko was incorrect unification of the pre-8.4 logic for IN joins and OUTER joins --- the comparable case for outer joins can be handled after making the match test, but that's because there is nothing like the unique-ification escape hatch for outer joins. Per bug #4934 from Benjamin Reed.
Diffstat (limited to 'src/backend/utils/adt/tsquery_rewrite.c')
0 files changed, 0 insertions, 0 deletions