Fix BRIN minmax-multi distance for interval type
authorTomas Vondra <[email protected]>
Sun, 4 Apr 2021 17:13:26 +0000 (19:13 +0200)
committerTomas Vondra <[email protected]>
Sun, 4 Apr 2021 17:19:51 +0000 (19:19 +0200)
commit2b10e0e3c2ca14d732521479123e5d5e2094e143
tree4903e8ea7183fb8e75dafa4eb8d25d0e4b2c4989
parent55873a00e3c3349664e7215077dca74ccea08b4d
Fix BRIN minmax-multi distance for interval type

The distance calculation for interval type was treating months as having
31 days, which is inconsistent with the interval comparator (using 30
days). Due to this it was possible to get negative distance (b-a) when
(a<b), trigerring an assert.

Fixed by adopting the same logic as interval_cmp_value.

Reported-by: Jaime Casanova
Discussion: https://postgr.es/m/CAJKUy5jKH0Xhneau2mNftNPtTy-BVgQfXc8zQkEvRvBHfeUThQ%40mail.gmail.com
src/backend/access/brin/brin_minmax_multi.c