pgsql: Fix calculation in brin_minmax_multi_distance_date
От | Tomas Vondra |
---|---|
Тема | pgsql: Fix calculation in brin_minmax_multi_distance_date |
Дата | |
Msg-id | E1qwQ9Z-002dHM-N2@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Fix calculation in brin_minmax_multi_distance_date When calculating the distance between date values, make sure to subtract them in the right order, i.e. (larger - smaller). The distance is used to determine which values to merge, and is expected to be a positive value. The code unfortunately did the subtraction in the opposite order, i.e. (smaller - larger), thus producing negative values and merging values the most distant values first. The resulting index is correct (i.e. produces correct results), but may be significantly less efficient. This affects all minmax-multi indexes on date columns. Backpatch to 14, where minmax-multi indexes were introduced. Reported-by: Ashutosh Bapat Reviewed-by: Ashutosh Bapat, Dean Rasheed Backpatch-through: 14 Discussion: https://postgr.es/m/eef0ea8c-4aaa-8d0d-027f-58b1f35dd170@enterprisedb.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/394d51731495794655f95b5580adb757d7a9bbe2 Modified Files -------------- src/backend/access/brin/brin_minmax_multi.c | 7 ++++++- src/test/regress/expected/brin_multi.out | 20 ++++++++++++++++++++ src/test/regress/sql/brin_multi.sql | 18 ++++++++++++++++++ 3 files changed, 44 insertions(+), 1 deletion(-)
В списке pgsql-committers по дате отправления: