]> granicus.if.org Git - postgresql/commit
Fix nbtree high key "continuescan" row compare bug.
authorPeter Geoghegan <pg@bowt.ie>
Mon, 1 Apr 2019 00:24:04 +0000 (17:24 -0700)
committerPeter Geoghegan <pg@bowt.ie>
Mon, 1 Apr 2019 00:24:04 +0000 (17:24 -0700)
commit76a39f2295ecb040f2ea052320941e1eb9b526c0
tree803261b001a5b8f0c12898150d6c7045f65b024f
parent8fba397f0ca7b9a1fd59ab2b676c057dde4f8219
Fix nbtree high key "continuescan" row compare bug.

Commit 29b64d1d mishandled skipping over truncated high key attributes
during row comparisons.  The row comparison key matching loop would loop
forever when a truncated attribute was encountered for a row compare
subkey.  Fix by following the example of other code in the loop: advance
the current subkey, or break out of the loop when the last subkey is
reached.

Add test coverage for the relevant _bt_check_rowcompare() code path.
The new test case is somewhat tied to nbtree implementation details,
which isn't ideal, but seems unavoidable.
src/backend/access/nbtree/nbtutils.c
src/test/regress/expected/index_including.out
src/test/regress/sql/index_including.sql