btree_gin: Fix calculation of leftmost interval value.
authorDean Rasheed <[email protected]>
Sun, 29 Oct 2023 11:14:34 +0000 (11:14 +0000)
committerDean Rasheed <[email protected]>
Sun, 29 Oct 2023 11:14:34 +0000 (11:14 +0000)
commit35e6a5c20d453921efa24342effb648cad3573ec
treed58825f91da3ab57f5b212847bfb8109a90f778f
parentb7684473d74a7555e3fb7d1a492ef50d24bfce31
btree_gin: Fix calculation of leftmost interval value.

Formerly, the value computed by leftmostvalue_interval() was a long
way short of the minimum possible interval value.  As a result, an
index scan on a GIN index on an interval column with < or <= operators
would miss large negative interval values.

Fix by setting all fields of the leftmost interval to their minimum
values, ensuring that the result is less than any other possible
interval.  Since this only affects index searches, no index rebuild is
necessary.

Back-patch to all supported branches.

Dean Rasheed, reviewed by Heikki Linnakangas.

Discussion: https://postgr.es/m/CAEZATCV80%2BgOfF8ehNUUfaKBZgZMDfCfL-g1HhWGb6kC3rpDfw%40mail.gmail.com
contrib/btree_gin/btree_gin.c
contrib/btree_gin/expected/interval.out
contrib/btree_gin/sql/interval.sql