pgsql: Reverse-engineer some documentation for btree_gist's varlena mod

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Reverse-engineer some documentation for btree_gist's varlena mod
Date: 2026-07-03 17:18:20
Message-ID: E1wfhWu-001C2m-2f@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Reverse-engineer some documentation for btree_gist's varlena modules.

There are a number of rather subtle points about the behavior of
this code, which its original authors did not deign to document.
Try to improve that. In particular, explain how internal and leaf
keys can differ and what the restrictions are on that.

This work arose from trying to fix some bugs, and in the process
I believe I've identified some more, but this patch does not attempt
to fix anything, only document it. I did make a few purely cosmetic
code changes, such as removing dead (and confusing!) initializations
of variables and choosing more appropriate types for some pointers.

Author: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Reviewed-by: Ayush Tiwari <ayushtiwari(dot)slg01(at)gmail(dot)com>
Discussion: https://postgr.es/m/AH*AvQCYKhQGVvPWi1GiU4oY.8.1781609375063.Hmail.3020001251@tju.edu.cn

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/d6284bbd152c1ea9e73bc77d6cb26bbf636d569b

Modified Files
--------------
contrib/btree_gist/btree_bit.c | 50 ++++++++++++++++++++++++--------
contrib/btree_gist/btree_bytea.c | 4 ++-
contrib/btree_gist/btree_numeric.c | 9 +++++-
contrib/btree_gist/btree_text.c | 12 ++++++--
contrib/btree_gist/btree_utils_var.c | 55 +++++++++++++++++++++++++-----------
contrib/btree_gist/btree_utils_var.h | 38 +++++++++++++++++++++++--
6 files changed, 135 insertions(+), 33 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2026-07-03 17:50:22 pgsql: Fix btree_gist's NotEqual strategy on internal index pages.
Previous Message Tom Lane 2026-07-03 17:11:24 pgsql: Use the proper comparator in gbt_bit_ssup_cmp.