Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vXt2A-008OP9-1R for pgsql-hackers@arkaria.postgresql.org; Tue, 23 Dec 2025 03:26:03 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vXt28-00HANP-3B for pgsql-hackers@arkaria.postgresql.org; Tue, 23 Dec 2025 03:26:01 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vXt28-00HANG-1I for pgsql-hackers@lists.postgresql.org; Tue, 23 Dec 2025 03:26:01 +0000 Received: from mail-ot1-x32c.google.com ([2607:f8b0:4864:20::32c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vXt26-0027Rf-2Q for pgsql-hackers@postgresql.org; Tue, 23 Dec 2025 03:25:59 +0000 Received: by mail-ot1-x32c.google.com with SMTP id 46e09a7af769-7cae2330765so3493953a34.0 for ; Mon, 22 Dec 2025 19:25:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=illuminatedcomputing-com.20230601.gappssmtp.com; s=20230601; t=1766460357; x=1767065157; darn=postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=3h9QpXuQ/Xhv6EBjKpsDebMggilpeYhANd03HJmpTI4=; b=rc8s/65M18Whbrtj9NVpFhVwtk4kAxaRbtYMoOypeed+tVqncmnYv9FOksJTtMjGwS /WQBdejxmJ38SLu4n3gLWWRKITXqQoO7/HiN6fNE2kPqUYEdF7ovgrSp+Z8QfioTL8/F 5oWLXmZ4p+24Uy+P33vL9vJrgdombcbamkg5B4FISHYvY6kXMWDgtmFRkXfZ87DIkrjs PQvi2EAwA9MGVq8vbDlPe+bNqhU7lh8klRYtegrflD8v3euNKFvTYa81BHi+6AfOp/Dq FcG4xVZjIJk/8SrZJhQyxvXXv93YTRKA19FYrMAe68Tdc00rsfsDe+lREGS7k41qhB8m XtVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766460357; x=1767065157; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=3h9QpXuQ/Xhv6EBjKpsDebMggilpeYhANd03HJmpTI4=; b=BL9ZZTDgDIGR6uDHP71NHk0zETv0vwxuOoV6yFJs2CdMBQNnOqROO8NWm91LoHzfr2 x5uCXBGuMvDD9QC89wS3WOnpcmi77k2j2t9D5SJnd61ETT5/gG3WL7gF4Q8LHtYgrZLj 4ctzVBk+MsTnHmnKb64s9I12TqJD5eye+mLzvx7CsiPrIVVyww1mKe/d0pEHDz+VUklo iUBjxMZ+We5IpmsRxspNYYQXxaQgsS8U/F9PlVokWCIFQM55J3rrpcEAnU1CmmQqlqBi TiWHdWSs5dKBoDqexeWDdpr80HislzHv1a3WEgKPP9BSR/Kp1dM1ExzMtSCg8PcgwBqk MD9w== X-Gm-Message-State: AOJu0YzeiDUMsiczV0KYVAiCLdvNtpaeg6tYoI4++DDadOn5BEZPC5T1 lsoEIIBOl/W+E5Vy6P29bje2c1rSLtRLUfys8YAFqKs+ifWNLIA3xvyqCg8nQkH+FnFDvvSnNfX QJQqS4+Qei9UMwErk9Ju9SuPL6XLXZBgS1/G2bu9KKA== X-Gm-Gg: AY/fxX6gp7vBQxRZg0OuwZ35NLbeHNxT/Vn5bbZMbRRL/enfBKLgDVOlSY9MbWIzR6X vRie0NBj39lEW4DSnfsxCOrhZNyKm9hHZK1hb5OKaHXqOQ7NVCmorlaiXOSYN1Z23Ge3I9TPuf3 JgF6WiJyV0Tcj90H5RZ0yuj26jaAGW4c0oyhYm7ZV7E2+m0CyS22ZsRmGPUjkEkrlvKcGXFozWc I7C0R2k1Wtgb0FcI89mqExq0aEvJrPz4KlBQGzhoFg4MZbs8+rk3CW21SgXHxD36XLx X-Google-Smtp-Source: AGHT+IG+uiN6l5HgE45LpwM+d0smFBaKzSwWRpfW2cv3XElbkLukOV5wlQyTLnFXa8jlGwXvYaoZc17p96I42w/cqLk= X-Received: by 2002:a4a:e655:0:b0:65b:8181:e18d with SMTP id 006d021491bc7-65cfe76e69amr5966794eaf.28.1766460357281; Mon, 22 Dec 2025 19:25:57 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Paul A Jungwirth Date: Mon, 22 Dec 2025 19:25:46 -0800 X-Gm-Features: AQt7F2prY4nJpsERagzcdOKJO-TsDVXegC3l1jap7dSXn7kxwNNX9oNevCNYGkQ Message-ID: Subject: Re: domain for WITHOUT OVERLAPS To: jian he Cc: PostgreSQL-development Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Wed, Dec 10, 2025 at 8:23=E2=80=AFPM jian he wrote: > polished tests for > > - WITHOUT OVERLAPS on a rangetype whose subtype has a domain > > - WITHOUT OVERLAPS on a rangetype with a domain on itself > > - WITHOUT OVERLAPS on a multirangetype whose subtype has a domain > > - WITHOUT OVERLAPS on a multirangetype whose rangetype has a domain > > - WITHOUT OVERLAPS on a multirangetype with a domain on itself > > no tests for > > - WITHOUT OVERLAPS on a multirangetype whose rangetype has a domain > now. > > because the expected behavior assumes that CREATE DOMAIN also generates a > corresponding multirange type for the domain range type, which is not tru= e. > > --example, we expect create domain also create a multirange type for xxin= t4 > CREATE DOMAIN xxint4 AS int4range CHECK (VALUE <> '[10,11)'); > SELECT typname FROM pg_type WHERE typname ~* 'xxint4'; I'm not sure whether creating a domain on a range should create a multirange or not. I asked the list on another thread. Since it does not create a new range constructor either (or an entry in pg_range), maybe not creating a new multirange is correct. Anyway I think we can fix the WITHOUT OVERLAPS issue without dealing with that. > diff --git a/src/backend/utils/cache/typcache.c b/src/backend/utils/cache= /typcache.c > index 6a347698edf..e27ca1466f2 100644 > --- a/src/backend/utils/cache/typcache.c > +++ b/src/backend/utils/cache/typcache.c > @@ -944,6 +944,8 @@ lookup_type_cache(Oid type_id, int flags) > typentry->domainBaseTypmod =3D -1; > typentry->domainBaseType =3D > getBaseTypeAndTypmod(type_id, &typentry->domainBaseTypmod); > + typentry->domainBaseTyptype =3D > + get_typtype(typentry->domainBaseType); > } > if ((flags & TYPECACHE_DOMAIN_CONSTR_INFO) && > (typentry->flags & TCFLAGS_CHECKED_DOMAIN_CONSTRAINTS) =3D=3D 0 = && Is there any performance concern about adding this lookup?