Re: Crash in BRIN minmax-multi indexes

Tomas Vondra <tomas.vondra@enterprisedb.com>

From: Tomas Vondra <tomas.vondra@enterprisedb.com>
To: Jaime Casanova <jcasanov@systemguards.com.ec>
Cc: Zhihong Yu <zyu@yugabyte.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-04-04T18:01:52Z
Lists: pgsql-hackers
BTW, for the inet data type, I considered simply calling the "minus"
function, but that does not work because of this strange behavior:


int4=# select '10.1.1.102/32'::inet > '10.1.1.142/24'::inet;
 ?column?
----------
 t
(1 row)

int4=# select '10.1.1.102/32'::inet - '10.1.1.142/24'::inet;
 ?column?
----------
      -40
(1 row)


That is, (a>b) but then (a-b) < 0. AFAICS it's due to comparator
considering the mask, while the minus ignores it. I find it a bit
strange, but I assume it's intentional.


regards

-- 
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



Commits

  1. Fix assert in BRIN build_distances

  2. Fix bug in brin_minmax_multi_union

  3. Fix order of parameters in BRIN minmax-multi calls

  4. Fix BRIN minmax-multi distance for inet type

  5. Fix BRIN minmax-multi distance for timetz type

  6. Fix BRIN minmax-multi distance for interval type