Thread: pgsql: Improve nbtree unsatisfiable RowCompare detection.
Improve nbtree unsatisfiable RowCompare detection. Move nbtree's detection of RowCompare quals that are unsatisfiable due to having a NULL in their first row element: rather than detecting these cases at the point where _bt_first builds its insertion scan key, do so earlier, during preprocessing proper. This brings the RowCompare case in line every other case involving an unsatisfiable-due-to-NULL qual. nbtree now consistently detects such unsatisfiable quals -- even when they happen to involve a key that isn't examined by _bt_first at all. Affected cases thereby avoid useless full index scans that cannot possibly return any matching rows. Author: Peter Geoghegan <pg@bowt.ie> Reviewed-By: Matthias van de Meent <boekewurm+postgres@gmail.com> Discussion: https://postgr.es/m/CAH2-WzmySVXst2hFrOATC-zw1Byg1XC-jYUS314=mzuqsNwk+Q@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/ec986020decff322723cf7b3a2696803d082ad17 Modified Files -------------- src/backend/access/nbtree/nbtsearch.c | 26 +++--- src/backend/access/nbtree/nbtutils.c | 14 +++- src/test/regress/expected/btree_index.out | 127 +++++++++++++++++++++++++++++ src/test/regress/expected/create_index.out | 13 +++ src/test/regress/sql/btree_index.sql | 79 ++++++++++++++++++ src/test/regress/sql/create_index.sql | 5 ++ 6 files changed, 248 insertions(+), 16 deletions(-)