=== Applying patches on top of PostgreSQL commit ID 901ed9b352b41f034e17bc540725082a488fce31 === /etc/rc.d/jail: WARNING: Per-jail configuration via jail_* variables is obsolete. Please consider migrating to /etc/jail.conf. Sun May 10 01:34:21 UTC 2026 On branch cf/6281 nothing to commit, working tree clean === using 'git am' to apply patch ./v5-0001-Add-support-for-domain-types-in-WITHOUT-OVERLAPS.patch === Applying: Add support for domain types in WITHOUT OVERLAPS Using index info to reconstruct a base tree... M src/backend/executor/execIndexing.c M src/backend/parser/parse_utilcmd.c M src/backend/utils/cache/typcache.c M src/include/utils/typcache.h M src/test/regress/expected/without_overlaps.out M src/test/regress/sql/without_overlaps.sql Falling back to patching base and 3-way merge... Auto-merging src/test/regress/sql/without_overlaps.sql Auto-merging src/test/regress/expected/without_overlaps.out Auto-merging src/include/utils/typcache.h Auto-merging src/backend/utils/cache/typcache.c Auto-merging src/backend/parser/parse_utilcmd.c CONFLICT (content): Merge conflict in src/backend/parser/parse_utilcmd.c Auto-merging src/backend/executor/execIndexing.c CONFLICT (content): Merge conflict in src/backend/executor/execIndexing.c error: Failed to merge in the changes. hint: Use 'git am --show-current-patch=diff' to see the failed patch Patch failed at 0001 Add support for domain types in WITHOUT OVERLAPS 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 ./v5-0001-Add-support-for-domain-types-in-WITHOUT-OVERLAPS.patch === patching file src/backend/executor/execIndexing.c Hunk #1 FAILED at 751. 1 out of 1 hunk FAILED -- saving rejects to file src/backend/executor/execIndexing.c.rej patching file src/backend/parser/parse_utilcmd.c Hunk #1 FAILED at 2764. Hunk #2 FAILED at 2799. 2 out of 2 hunks FAILED -- saving rejects to file src/backend/parser/parse_utilcmd.c.rej patching file src/backend/utils/cache/typcache.c patching file src/include/utils/typcache.h patching file src/test/regress/expected/without_overlaps.out Hunk #1 succeeded at 165 (offset 3 lines). Hunk #2 succeeded at 476 (offset 3 lines). Hunk #3 succeeded at 483 with fuzz 1 (offset 3 lines). patching file src/test/regress/sql/without_overlaps.sql Unstaged changes after reset: M src/backend/utils/cache/typcache.c M src/include/utils/typcache.h M src/test/regress/expected/without_overlaps.out M src/test/regress/sql/without_overlaps.sql Removing src/backend/executor/execIndexing.c.rej Removing src/backend/parser/parse_utilcmd.c.rej === using 'git apply' to apply patch ./v5-0001-Add-support-for-domain-types-in-WITHOUT-OVERLAPS.patch === Applied patch to 'src/backend/executor/execIndexing.c' with conflicts. Applied patch to 'src/backend/parser/parse_utilcmd.c' with conflicts. Applied patch to 'src/backend/utils/cache/typcache.c' cleanly. Applied patch to 'src/include/utils/typcache.h' cleanly. Applied patch to 'src/test/regress/expected/without_overlaps.out' cleanly. Applied patch to 'src/test/regress/sql/without_overlaps.sql' cleanly. U src/backend/executor/execIndexing.c U src/backend/parser/parse_utilcmd.c diff --cc src/backend/executor/execIndexing.c index eb383812901,984b859c76f..00000000000 --- a/src/backend/executor/execIndexing.c +++ b/src/backend/executor/execIndexing.c @@@ -752,14 -751,13 +752,22 @@@ check_exclusion_or_unique_constraint(Re if (!isnull[indnkeyatts - 1]) { + char typtype; TupleDesc tupdesc = RelationGetDescr(heap); Form_pg_attribute att = TupleDescAttr(tupdesc, attno - 1); ++<<<<<<< ours + TypeCacheEntry *typcache = lookup_type_cache(att->atttypid, + TYPECACHE_DOMAIN_BASE_INFO); + char typtype; + + if (OidIsValid(typcache->domainBaseType)) + typtype = get_typtype(typcache->domainBaseType); ++======= + TypeCacheEntry *typcache = lookup_type_cache(att->atttypid, TYPECACHE_DOMAIN_BASE_INFO); + + if (OidIsValid(typcache->domainBaseType)) + typtype = typcache->domainBaseTyptype; ++>>>>>>> theirs else typtype = typcache->typtype; diff --cc src/backend/parser/parse_utilcmd.c index a049cc67ed6,43c49b85ed5..00000000000 --- a/src/backend/parser/parse_utilcmd.c +++ b/src/backend/parser/parse_utilcmd.c @@@ -2763,8 -2764,8 +2763,13 @@@ transformIndexConstraint(Constraint *co } /* ++<<<<<<< ours + * The WITHOUT OVERLAPS part (if any) must be a range or + * multirange type, or a domain over such a type. ++======= + * The WITHOUT OVERLAPS part (if any) base type must be a range or + * multirange type. ++>>>>>>> theirs */ if (constraint->without_overlaps && lc == list_last_cell(constraint->keys)) { @@@ -2794,16 -2796,12 +2799,24 @@@ } if (found) { + /* Look up column type if we didn't already */ if (!OidIsValid(typid) && column) ++<<<<<<< ours + typid = typenameTypeId(cxt->pstate, + column->typeName); + /* Look through any domain */ + if (OidIsValid(typid)) + typid = getBaseType(typid); + /* Complain if not range/multirange */ + if (!OidIsValid(typid) || + !(type_is_range(typid) || type_is_multirange(typid))) ++======= + typid = typenameTypeId(NULL, column->typeName); + + typid = getBaseType(typid); + + if (!OidIsValid(typid) || !(type_is_range(typid) || type_is_multirange(typid))) ++>>>>>>> theirs ereport(ERROR, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("column \"%s\" in WITHOUT OVERLAPS is not a range or multirange type", key),