Move IS [NOT] NULL handling from BRIN support functions
authorTomas Vondra <tomas.vondra@postgresql.org>
Mon, 22 Mar 2021 23:45:33 +0000 (00:45 +0100)
committerTomas Vondra <tomas.vondra@postgresql.org>
Mon, 22 Mar 2021 23:45:42 +0000 (00:45 +0100)
commit72ccf55cb99c6450dfb77f2f8f4a28b5c049ef7a
tree916d75116b384d2f60b8b19a56d2bd73f8edc780
parenta1c649d889bdf6e74e9382e1e28574d7071568de
Move IS [NOT] NULL handling from BRIN support functions

The handling of IS [NOT] NULL clauses is independent of an opclass, and
most of the code was exactly the same in both minmax and inclusion. So
instead move the code from support procedures to the AM.

This simplifies the code - especially the support procedures - quite a
bit, as they don't need to care about NULL values and flags at all. It
also means the IS [NOT] NULL clauses can be evaluated without invoking
the support procedure.

Author: Tomas Vondra <tomas.vondra@postgresql.org>
Author: Nikita Glukhov <n.gluhov@postgrespro.ru>
Reviewed-by: Nikita Glukhov <n.gluhov@postgrespro.ru>
Reviewed-by: Mark Dilger <hornschnorter@gmail.com>
Reviewed-by: Alexander Korotkov <aekorotkov@gmail.com>
Reviewed-by: Masahiko Sawada <masahiko.sawada@enterprisedb.com>
Reviewed-by: John Naylor <john.naylor@enterprisedb.com>
Discussion: https://postgr.es/m/c1138ead-7668-f0e1-0638-c3be3237e812@2ndquadrant.com
src/backend/access/brin/brin.c
src/backend/access/brin/brin_inclusion.c
src/backend/access/brin/brin_minmax.c
src/include/access/brin_internal.h