=== Applying patches on top of PostgreSQL commit ID 03480907e9ff5d9bb3296b56c9b49db3df756e0f === /etc/rc.d/jail: WARNING: Per-jail configuration via jail_* variables is obsolete. Please consider migrating to /etc/jail.conf. Fri Jul 17 10:23:25 UTC 2026 On branch cf/5768 nothing to commit, working tree clean === using 'git am' to apply patch ./v6-0001-ALTER-DOMAIN-ADD-NOT-NULL-NOT-VALID.patch === Applying: ALTER DOMAIN ADD NOT NULL NOT VALID Using index info to reconstruct a base tree... M doc/src/sgml/catalogs.sgml M src/backend/commands/typecmds.c M src/backend/parser/gram.y M src/bin/pg_dump/t/002_pg_dump.pl M src/bin/psql/describe.c Falling back to patching base and 3-way merge... Auto-merging src/bin/psql/describe.c Auto-merging src/bin/pg_dump/t/002_pg_dump.pl Auto-merging src/backend/parser/gram.y Auto-merging src/backend/commands/typecmds.c CONFLICT (content): Merge conflict in src/backend/commands/typecmds.c Auto-merging doc/src/sgml/catalogs.sgml error: Failed to merge in the changes. hint: Use 'git am --show-current-patch=diff' to see the failed patch Patch failed at 0001 ALTER DOMAIN ADD NOT NULL NOT VALID When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort". === using patch(1) to apply patch ./v6-0001-ALTER-DOMAIN-ADD-NOT-NULL-NOT-VALID.patch === patching file doc/src/sgml/catalogs.sgml Hunk #1 succeeded at 10183 (offset 551 lines). patching file doc/src/sgml/ref/alter_domain.sgml patching file src/backend/catalog/pg_constraint.c patching file src/backend/commands/typecmds.c Hunk #1 FAILED at 129. Hunk #2 succeeded at 2796 (offset 6 lines). Hunk #3 succeeded at 2876 (offset 6 lines). Hunk #4 succeeded at 3090 (offset 6 lines). Hunk #5 succeeded at 3142 (offset 6 lines). Hunk #6 FAILED at 3219. Hunk #7 succeeded at 3265 (offset 1 line). Hunk #8 succeeded at 3282 (offset 1 line). 2 out of 8 hunks FAILED -- saving rejects to file src/backend/commands/typecmds.c.rej patching file src/backend/parser/gram.y Hunk #1 succeeded at 4580 (offset 68 lines). patching file src/bin/pg_dump/t/002_pg_dump.pl Hunk #1 succeeded at 1076 (offset 50 lines). patching file src/bin/psql/describe.c Hunk #1 succeeded at 4637 (offset 44 lines). patching file src/test/regress/expected/domain.out patching file src/test/regress/sql/domain.sql Unstaged changes after reset: M doc/src/sgml/catalogs.sgml M doc/src/sgml/ref/alter_domain.sgml M src/backend/catalog/pg_constraint.c M src/backend/commands/typecmds.c M src/backend/parser/gram.y M src/bin/pg_dump/t/002_pg_dump.pl M src/bin/psql/describe.c M src/test/regress/expected/domain.out M src/test/regress/sql/domain.sql Removing src/backend/commands/typecmds.c.rej === using 'git apply' to apply patch ./v6-0001-ALTER-DOMAIN-ADD-NOT-NULL-NOT-VALID.patch === Applied patch to 'doc/src/sgml/catalogs.sgml' cleanly. Applied patch to 'doc/src/sgml/ref/alter_domain.sgml' cleanly. Applied patch to 'src/backend/catalog/pg_constraint.c' cleanly. Applied patch to 'src/backend/commands/typecmds.c' with conflicts. Applied patch to 'src/backend/parser/gram.y' cleanly. Applied patch to 'src/bin/pg_dump/t/002_pg_dump.pl' cleanly. Applied patch to 'src/bin/psql/describe.c' cleanly. Applied patch to 'src/test/regress/expected/domain.out' cleanly. Applied patch to 'src/test/regress/sql/domain.sql' cleanly. U src/backend/commands/typecmds.c diff --cc src/backend/commands/typecmds.c index 871da5af40e,2137f68a70f..00000000000 --- a/src/backend/commands/typecmds.c +++ b/src/backend/commands/typecmds.c @@@ -128,8 -128,8 +128,13 @@@ static Oid findTypeSubscriptingFunction static Oid findRangeSubOpclass(List *opcname, Oid subtype); static Oid findRangeCanonicalFunction(List *procname, Oid typeOid); static Oid findRangeSubtypeDiffFunction(List *procname, Oid subtype); ++<<<<<<< ours +static void validateDomainCheckConstraint(Oid domainoid, const char *ccbin); +static void validateDomainNotNullConstraint(Oid domainoid); ++======= + static void validateDomainCheckConstraint(Oid domainoid, const char *ccbin, LOCKMODE lockmode); + static void validateDomainNotNullConstraint(Oid domainoid, LOCKMODE lockmode); ++>>>>>>> theirs static List *get_rels_with_domain(Oid domainOid, LOCKMODE lockmode); static void checkEnumOwner(HeapTuple tup); static char *domainAddCheckConstraint(Oid domainOid, Oid domainNamespace, @@@ -3131,10 -3227,20 +3238,24 @@@ AlterDomainValidateConstraint(List *nam if (!con->convalidated) { - val = SysCacheGetAttrNotNull(CONSTROID, tuple, Anum_pg_constraint_conbin); - conbin = TextDatumGetCString(val); + if (con->contype == CONSTRAINT_CHECK) + { + val = SysCacheGetAttrNotNull(CONSTROID, tuple, Anum_pg_constraint_conbin); + conbin = TextDatumGetCString(val); ++<<<<<<< ours + validateDomainCheckConstraint(domainoid, conbin); ++======= + /* + * Locking related relations with ShareUpdateExclusiveLock is ok + * because not-yet-valid constraints are still enforced against + * concurrent inserts or updates. + */ + validateDomainCheckConstraint(domainoid, conbin, ShareUpdateExclusiveLock); + } + else + validateDomainNotNullConstraint(domainoid, ShareUpdateExclusiveLock); ++>>>>>>> theirs /* * Now update the catalog, while we have the door open.