BRIN: be more strict about required support procs
authorÁlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 11 Mar 2025 11:50:35 +0000 (12:50 +0100)
committerÁlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 11 Mar 2025 11:50:35 +0000 (12:50 +0100)
commite0d8f49a3fee56264fdc817b534305e7a281d4bf
treeb3f459c1a18a6e8dea237e91db97bbd9e4214056
parent324e0b656b4bc90bf64559cd9610542613211f20
BRIN: be more strict about required support procs

With improperly defined operator classes, it's possible to get a
Postgres crash because we'd try to invoke a procedure that doesn't
exist.  This is because the code is being a bit too trusting that the
opclass is correctly defined.  Add some ereport(ERROR)s for cases where
mandatory support procedures are not defined, transforming the crashes
into errors.

The particular case that was reported is an incomplete opclass in
PostGIS.

Backpatch all the way down to 13.

Reported-by: Tobias Wendorff <tobias.wendorff@tu-dortmund.de>
Diagnosed-by: David Rowley <dgrowleyml@gmail.com>
Reviewed-by: Tomas Vondra <tomas@vondra.me>
Discussion: http://postgr.es/m/fb6d9a35-6c8e-4869-af80-0a4944a793a4@tu-dortmund.de
src/backend/access/brin/brin_bloom.c
src/backend/access/brin/brin_inclusion.c
src/backend/access/brin/brin_minmax_multi.c