Re: Fully documenting the design of nbtree row comparison scan keys
Victor Yegorov <vyegorov@gmail.com>
From: Victor Yegorov <vyegorov@gmail.com>
To: Peter Geoghegan <pg@bowt.ie>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-10-31T09:06:45Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Document nbtree row comparison design.
- b8f1c62807a5 19 (unreleased) landed
- 6c3b1df878a6 18.1 landed
-
Make row compares robust during nbtree array scans.
- bd3f59fdb717 19 (unreleased) cited
-
Fix incorrect handling of NULL index entries in indexed ROW() comparisons.
- a298a1e06fb0 9.6.0 cited
пт, 31 окт. 2025 г. в 00:35, Peter Geoghegan <pg@bowt.ie>: > I didn't understand every nuance of row compare inequalities myself > until quite recently. The rules with NULLs are particularly tricky. > > It seems worthwhile to clear things up now in large part due to the > recent addition of code in places like _bt_advance_array_keys -- code > that wants to to treat row compare keys as if they were just a simple > scalar inequality on the row compare's most significant column. That > general behavior isn't new (e.g., _bt_first has long ignored row > compare scan key markings when deducing a NOT NULL constraint), but > it's not easy to see why it's correct. > Greetings. I took a look at the patch. Proposed comments look highly valuable, especially around NULLs, doesn't look immediately obvious, so definitely requires a comment. Looks good to commit. Wouldn't it be good to add such information also into the user documentation, say into https://www.postgresql.org/docs/current/functions-comparisons.html#ROW-WISE-COMPARISON ? -- Victor Yegorov