aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/gist/gistxlog.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2006-03-17 19:38:12 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2006-03-17 19:38:12 +0000
commitb3358e2642d397e5e1d25ceade09c0749623e3a1 (patch)
treeddf4beb24a86fcc9e1a6409078f85e8d6fb23752 /src/backend/access/gist/gistxlog.c
parent5094f998304c260dd81dc931f6d2c52a36e572e4 (diff)
downloadpostgresql-b3358e2642d397e5e1d25ceade09c0749623e3a1.tar.gz
postgresql-b3358e2642d397e5e1d25ceade09c0749623e3a1.zip
Fix bug introduced into mergejoin logic by performance improvement patch of
2005-05-13. When we find that a new inner tuple can't possibly match any outer tuple (because it contains a NULL), we can't immediately skip the tuple when we are in NEXTINNER state. Doing so can lead to emitting multiple copies of the tuple in FillInner mode, because we may rescan the tuple after returning to a previous marked tuple. Instead, proceed to NEXTOUTER state the same as we used to do. After we've found that there's no need to return to the marked position, we can go to SKIPINNER_ADVANCE state instead of SKIP_TEST when the inner tuple is unmatchable; this preserves the performance improvement. Per bug report from Bruce. I also made a couple of cosmetic code rearrangements and added a regression test for the problem.
Diffstat (limited to 'src/backend/access/gist/gistxlog.c')
0 files changed, 0 insertions, 0 deletions