Fix PG 17 [NOT] NULL optimization bug for domains
authorBruce Momjian <bruce@momjian.us>
Tue, 8 Apr 2025 01:33:42 +0000 (21:33 -0400)
committerBruce Momjian <bruce@momjian.us>
Tue, 8 Apr 2025 01:33:42 +0000 (21:33 -0400)
commit46b4ba533cee9f64a60714d91607e74362abf67f
treeda20e7e5a7fa827c9488d57ad51fc837f21032a9
parent039549d70f6aa2daa3714a13752a08fa8ca2fb05
Fix PG 17 [NOT] NULL optimization bug for domains

A PG 17 optimization allowed columns with NOT NULL constraints to skip
table scans for IS NULL queries, and to skip IS NOT NULL checks for IS
NOT NULL queries.  This didn't work for domain types, since domain types
don't follow the IS NULL/IS NOT NULL constraint logic.  To fix, disable
this optimization for domains for PG 17+.

Reported-by: Jan Behrens
Diagnosed-by: Tom Lane
Discussion: https://postgr.es/m/Z37p0paENWWUarj-@momjian.us

Backpatch-through: 17
doc/src/sgml/ref/create_domain.sgml
src/backend/optimizer/plan/initsplan.c