mirror of
https://github.com/postgres/postgres.git
synced 2025-08-28 18:48:04 +03:00
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.
This commit is contained in:
@@ -1543,6 +1543,9 @@ _bt_check_rowcompare(ScanKey skey, IndexTuple tuple, int tupnatts,
|
||||
*/
|
||||
Assert(ScanDirectionIsForward(dir));
|
||||
cmpresult = 0;
|
||||
if (subkey->sk_flags & SK_ROW_END)
|
||||
break;
|
||||
subkey++;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user