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

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/849172ff4883d44168f96f39d3fde96d0aa34c99

Modified Files
--------------
contrib/btree_gin/btree_gin.c           |  6 +++---
contrib/btree_gin/expected/interval.out | 16 +++++++++++-----
contrib/btree_gin/sql/interval.sql      |  4 +++-
3 files changed, 17 insertions(+), 9 deletions(-)

Reply via email to