Fix PG 17 [NOT] NULL optimization bug for domains
authorBruce Momjian <bruce@momjian.us>
Tue, 8 Apr 2025 01:33:41 +0000 (21:33 -0400)
committerBruce Momjian <bruce@momjian.us>
Tue, 8 Apr 2025 01:33:41 +0000 (21:33 -0400)
commitb8b1e87b70aab380a4270926f49c06a07f00e14a
tree958118fbc42378365f2abc2dd68ecb36cd097a91
parent5cbbe70a9cc6a9d8b7ed583cf66657be8ace0eaa
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