aboutsummaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2025-04-07 21:33:42 -0400
committerBruce Momjian <bruce@momjian.us>2025-04-07 21:33:42 -0400
commit46b4ba533cee9f64a60714d91607e74362abf67f (patch)
treeda20e7e5a7fa827c9488d57ad51fc837f21032a9 /doc/src
parent039549d70f6aa2daa3714a13752a08fa8ca2fb05 (diff)
downloadpostgresql-46b4ba533cee9f64a60714d91607e74362abf67f.tar.gz
postgresql-46b4ba533cee9f64a60714d91607e74362abf67f.zip
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
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/ref/create_domain.sgml3
1 files changed, 2 insertions, 1 deletions
diff --git a/doc/src/sgml/ref/create_domain.sgml b/doc/src/sgml/ref/create_domain.sgml
index ce555203486..c111285a69c 100644
--- a/doc/src/sgml/ref/create_domain.sgml
+++ b/doc/src/sgml/ref/create_domain.sgml
@@ -283,7 +283,8 @@ CREATE TABLE us_snail_addy (
<para>
The syntax <literal>NOT NULL</literal> in this command is a
<productname>PostgreSQL</productname> extension. (A standard-conforming
- way to write the same would be <literal>CHECK (VALUE IS NOT
+ way to write the same for non-composite data types would be
+ <literal>CHECK (VALUE IS NOT
NULL)</literal>. However, per <xref linkend="sql-createdomain-notes"/>,
such constraints are best avoided in practice anyway.) The
<literal>NULL</literal> <quote>constraint</quote> is a