Reverse-engineer some documentation for btree_gist's varlena modules.
Tom Lane <tgl@sss.pgh.pa.us>
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@sss.pgh.pa.us> Reviewed-by: Ayush Tiwari <ayushtiwari.slg01@gmail.com> Discussion: https://postgr.es/m/AH*AvQCYKhQGVvPWi1GiU4oY.8.1781609375063.Hmail.3020001251@tju.edu.cn
Files
| Path | Change | +/− |
|---|---|---|
| contrib/btree_gist/btree_bit.c | modified | +39 −11 |
| contrib/btree_gist/btree_bytea.c | modified | +3 −1 |
| contrib/btree_gist/btree_numeric.c | modified | +8 −1 |
| contrib/btree_gist/btree_text.c | modified | +10 −2 |
| contrib/btree_gist/btree_utils_var.c | modified | +39 −16 |
| contrib/btree_gist/btree_utils_var.h | modified | +36 −2 |