pgsql: Fix handling of NULLs when merging BRIN summaries
От | Tomas Vondra |
---|---|
Тема | pgsql: Fix handling of NULLs when merging BRIN summaries |
Дата | |
Msg-id | E1pzlHB-000Yq5-SU@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Fix handling of NULLs when merging BRIN summaries When merging BRIN summaries, union_tuples() did not correctly update the target hasnulls/allnulls flags. When merging all-NULL summary into a summary without any NULL values, the result had both flags set to false (instead of having hasnulls=true). This happened because the code only considered the hasnulls flags, ignoring the possibility the source summary has allnulls=true. Discovered while investigating issues with handling empty BRIN ranges and handling of NULL values, but it's a separate problem (has nothing to do with empty ranges). Fixed by considering both flags on the source summary, and updating the hasnulls flag on the target summary. Backpatch to 11. The bug exists since 9.5 (where BRIN indexes were introduced), but those releases are EOL already. Discussion: https://postgr.es/m/9d993d0d-e431-2196-9ccc-0554d0e60154%40enterprisedb.com Branch ------ REL_12_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/d42ffda685f5dbd123df59c2f8050e8fb09164c7 Modified Files -------------- src/backend/access/brin/brin_inclusion.c | 10 +++++++++- src/backend/access/brin/brin_minmax.c | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-)
В списке pgsql-committers по дате отправления: