pgsql: Fix nbtree high key "continuescan" row compare bug.

From: Peter Geoghegan <pg(at)bowt(dot)ie>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix nbtree high key "continuescan" row compare bug.
Date: 2019-04-01 00:27:29
Message-ID: E1hAknR-0000PU-Tu@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

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.

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/76a39f2295ecb040f2ea052320941e1eb9b526c0

Modified Files
--------------
src/backend/access/nbtree/nbtutils.c | 3 +++
src/test/regress/expected/index_including.out | 21 ++++++++++++++++++++-
src/test/regress/sql/index_including.sql | 8 +++++++-
3 files changed, 30 insertions(+), 2 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Andres Freund 2019-04-01 01:42:13 pgsql: tableam: bitmap table scan.
Previous Message Tom Lane 2019-03-31 19:49:12 pgsql: Add test case exercising formerly-unreached code in inheritance_