mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-10 11:19:40 +02:00
The code expands a varbit gist leaf key to a node key by copying the bit data twice in a varlen datum, as both the lower and upper key. The lower key was expanded to INTALIGN size, but the padding bytes were not initialized. That's a problem because when the lower/upper keys are compared, the padding bytes are used compared too, when the values are otherwise equal. That could lead to incorrect query results. REINDEX is advised for any btree_gist indexes on bit or bit varying data type, to fix any garbage padding bytes on disk. Per Valgrind, reported by Andres Freund. Backpatch to all supported versions. |
||
---|---|---|
.. | ||
data | ||
expected | ||
sql | ||
.gitignore | ||
btree_bit.c | ||
btree_bytea.c | ||
btree_cash.c | ||
btree_date.c | ||
btree_float4.c | ||
btree_float8.c | ||
btree_gist--1.0.sql | ||
btree_gist--unpackaged--1.0.sql | ||
btree_gist.c | ||
btree_gist.control | ||
btree_gist.h | ||
btree_inet.c | ||
btree_int2.c | ||
btree_int4.c | ||
btree_int8.c | ||
btree_interval.c | ||
btree_macaddr.c | ||
btree_numeric.c | ||
btree_oid.c | ||
btree_text.c | ||
btree_time.c | ||
btree_ts.c | ||
btree_utils_num.c | ||
btree_utils_num.h | ||
btree_utils_var.c | ||
btree_utils_var.h | ||
Makefile |