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 1wBNCq-000zVT-2v for pgsql-hackers@arkaria.postgresql.org; Sat, 11 Apr 2026 01:32:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wBNCo-00F67F-2z for pgsql-hackers@arkaria.postgresql.org; Sat, 11 Apr 2026 01:32:15 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wBNCo-00F676-1w for pgsql-hackers@lists.postgresql.org; Sat, 11 Apr 2026 01:32:15 +0000 Received: from mail-ej1-x62e.google.com ([2a00:1450:4864:20::62e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wBNCn-00000000Rn0-2B0t for pgsql-hackers@lists.postgresql.org; Sat, 11 Apr 2026 01:32:15 +0000 Received: by mail-ej1-x62e.google.com with SMTP id a640c23a62f3a-b936331786dso315758166b.3 for ; Fri, 10 Apr 2026 18:32:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775871131; cv=none; d=google.com; s=arc-20240605; b=XRmGZK+fCMjdHucDVsIOAXy2x6Qn8zVOeMxGRdgxd1zY9aav3/SorRXq9qBlh+Wb+E nwYqdFVk+VR42Kb93KJGhCHClFXAdStOVhY/+hBVx5Gj9RnXT2o/KQGL6cqUfkmxowFt 67j4N/8LjkrOFOfAWRrcvweiCakIiWf+DGKJfFVYw12awjp9DmbNDkgkig1HYl3+W0hV 85iW3gJvDQi3hd2sfGIb9IVzzBoaApzdmgOTDY5Hj9dDFF8bA8zuzHnDe/RpnW6d7cCC 80A/q7wZqCSrg7D6RCK9Qi5bzcNU2DJ7AtS3u2xSlaO8TeZMKwG8u3FulARcYQSpNNtT IxJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=3SDiDiO5Cj0Axmk1kY7Bi4IlqH7p28dTeA2019Q6CU0=; fh=W24tSpU5EWZhq52R32k44e9+E0JqYUJKvOJHftVjWrw=; b=jLTWDydxYT2Tt40qbqqFyFbKyDpCEdIBhpPGsNP/YqRFXGHHFqthKclh1bSdUI8DFi Las0QfhSknnhGuA4F9CtsbzmE1tk+W0X5t1iY2/2TA6NAYfuV0GQUQ1TcwWx2CZDKfUT Vktn/YmPi6GC/E46Jt/dHNM6nVxCJ1L+ExqbDINVPEUQqyY1IW18AHrp1ZrWKHAKhJfe eojBSldcgrMDYFBxmmO1fRkrBJwYPxy+JbkBD2pk2xkLWy9ONKVZZlkW4pfIAK+nudBn 5sUiRLi98Qxt3naipHVKVc64vDWcxLcNiuVuAEhPx4COZDc8Ljg0yA4q9zq8kZH38Mqk HYNA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775871131; x=1776475931; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=3SDiDiO5Cj0Axmk1kY7Bi4IlqH7p28dTeA2019Q6CU0=; b=qN3yExvlD1QABGiMskHknEg/azCf9MrG/79Sl44afruNsDfu8R2JskegnGV0bqfoYy g8G2tu0G1WI8AwEg6uFb8VA9mQxOIipnhULixBWzHB/syyoBdRcD1aeKsOqGRIaGXotr YLEqgh7ZskBMWzm9RMPV4JBxca+3sZ664/hU++KVdfZII3WTiY709p5VQ5vEK+yIzjRH d49n+2CwuJz6RJPv1/U5kivx0cestGOJf35VDZdetNyUr+o5fsdwM8PvrSgzkwy9217A 5D4/OF2F+AIIucUHdudwEY0zgBkSLCoDQBpSTLjyb9z2lYJcXUXEW06LxqtsPA9VsFlq /2Ng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775871131; x=1776475931; h=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=3SDiDiO5Cj0Axmk1kY7Bi4IlqH7p28dTeA2019Q6CU0=; b=tBCMGe6o809KVI5aHICju/Sj1k8nNLC+ohPWPHDIWwhb/LzO2KVqnS0cPNU0OugRyB ZskHU3TA+L1zpYHcyHGdTCwUuDcE0ouAUALYOLm4XJ4/6k97T4WG/kNetPzwoDink2Za VVP1fKH7rucVkfGSXPwQX0uqZK2AXjfXo5AfYxdlgqDBDThW7093fuXo934UzbrK6tN4 y9ywWn1CLfRv6pm0fc21RBZSSbZofvy8btmbeksSBOR+KCcHXYGiM+iHmPYUBiz0Bq00 y2rKpfIjN4I5cnEK7BhxZle2zucsFqfqQstvObZF/F8Iyccc/+yMi1NITmIbnmzdwott tgiw== X-Forwarded-Encrypted: i=1; AJvYcCV9vdFRyr9DFdWPCz5DBqqXke7XE6w+hds69qyqhCyJjR2b3jKE+/9xwa1SvcdjWPCkE6D8LW9FVINE4UE6@lists.postgresql.org X-Gm-Message-State: AOJu0YwTtcpUO4wPZI4oYbC2RInh6rrrmPxm8+AFAmyeRX2YyJWLLpFp sWbRJ2joiy0jraxBIkV39V6HEwQvoJoVTPbeO0m5J7fQ7jETofw/bQHQ6gUPxAoEPHgdGZiaHDh GWJcmx9vWFdhE6arQbbokMAVNB1YiPd0= X-Gm-Gg: AeBDieuuK2hCvIwl2bpdZvrf7iDtyT/xFCX6QEDil1morJ/HvSeOAi3UKbhF5Vk+xVq N9n7rBYQPc/y+q7cWu5J58GfAaLuvGsOhykPk70mZd7WSgXkw26Sav2FPlNfr/bq/sPxoTBsKn3 Vj1q0fhbzslgepGrtgvUKuRQ1C2iUfGshRIPFPP3kLFROV/rxZ3e/VgvxbIabGLmCGERGiCdByJ pcUqGxivOJGz8g7L+1iJ210ZB6kkpix0pBMpz3m4nkafCettgvoBDm3BnRee/L/nbfdpj13aBqr Sy66Wc22 X-Received: by 2002:a17:907:1b10:b0:b9c:9da7:910e with SMTP id a640c23a62f3a-b9d724da4f2mr308456866b.18.1775871131036; Fri, 10 Apr 2026 18:32:11 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Tender Wang Date: Sat, 11 Apr 2026 09:31:59 +0800 X-Gm-Features: AQROBzBBzrDI6rLI43CtRREOmHoMMknDJwjfd9J8lXc9mfUUl1yBdo_yPi3ur_Y Message-ID: Subject: Re: pg17: XX000: no relation entry for relid 0 To: Richard Guo Cc: Justin Pryzby , pgsql-hackers@lists.postgresql.org, Paul Jungwirth , Tom Lane , Michael Paquier Content-Type: multipart/mixed; boundary="000000000000eee6c8064f253746" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000eee6c8064f253746 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Richard Guo =E4=BA=8E2026=E5=B9=B44=E6=9C=8810=E6= =97=A5=E5=91=A8=E4=BA=94 22:39=E5=86=99=E9=81=93=EF=BC=9A > > On Fri, Apr 10, 2026 at 9:49=E2=80=AFPM Tender Wang = wrote: > > Justin Pryzby =E4=BA=8E2026=E5=B9=B44=E6=9C=8810= =E6=97=A5=E5=91=A8=E4=BA=94 18:54=E5=86=99=E9=81=93=EF=BC=9A > > > CREATE VIEW x AS SELECT NULL::int[] > > > UNION ALL SELECT NULL::int[] > > > UNION ALL SELECT ARRAY[NULL::bigint]; > > > > > > SELECT FROM x; > > > ERROR: XX000: no relation entry for relid 0 > > Nice catch. It seems that we need at least three branches to > reproduce this, so that there's a nested UNION ALL whose output type > doesn't match the parent's expected type. At the outer branch maybe > we can use NULL::bigint[] instead to be a little simpler. > > SELECT NULL::int[] UNION ALL SELECT NULL::int[] UNION ALL SELECT NULL::bi= gint[]; > ERROR: no relation entry for relid 0 Yes, add it to the test case. > > > I didn't think too much at now, a quick fix as below: > > diff --git a/src/backend/utils/adt/selfuncs.c b/src/backend/utils/adt/s= elfuncs.c > > index 4160d2d6e24..ff93fc3ac8a 100644 > > --- a/src/backend/utils/adt/selfuncs.c > > +++ b/src/backend/utils/adt/selfuncs.c > > @@ -2265,6 +2265,9 @@ estimate_array_length(PlannerInfo *root, Node *ar= rayexpr) > > AttStatsSlot sslot; > > double nelem =3D 0; > > > > + if (IsA(arrayexpr, Var) && ((Var *) arrayexpr)->varno = =3D=3D 0) > > + return 10; > > + > > examine_variable(root, arrayexpr, 0, &vardata); > > if (HeapTupleIsValid(vardata.statsTuple)) > > { > > > > Any thoughts? > > This looks like the right fix to me. We can use some comment here. comments added. Please see the attached patch. --=20 Thanks, Tender Wang --000000000000eee6c8064f253746 Content-Type: application/octet-stream; name="0001-Fix-no-relation-entry-for-relid-0-in-nested-UNION-AL.patch" Content-Disposition: attachment; filename="0001-Fix-no-relation-entry-for-relid-0-in-nested-UNION-AL.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mntnqjtv0 RnJvbSAwOWNhZTk1ZTI0OTk2ZTM0Y2ExMmUzODEzMzE1MGU3MWUzNTFlZGNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUZW5kZXIgV2FuZyA8dG5kcndhbmdAZ21haWwuY29tPgpEYXRl OiBTYXQsIDExIEFwciAyMDI2IDA5OjI1OjUwICswODAwClN1YmplY3Q6IFtQQVRDSF0gRml4ICJu byByZWxhdGlvbiBlbnRyeSBmb3IgcmVsaWQgMCIgaW4gbmVzdGVkIFVOSU9OIEFMTCB3aXRoCiBh cnJheSBjb2VyY2lvbi4KClRoaXMgcGF0Y2ggYWRkcmVzc2VzIGFuIGlzc3VlIHdoZXJlIGEgdGhy ZWUtYnJhbmNoIChvciBtb3JlKSBVTklPTiBBTEwKZmFpbHMgZHVyaW5nIHRoZSBwbGFubmluZy9j b3N0aW5nIHN0YWdlIGlmIGl0IGludm9sdmVzIGFycmF5IHR5cGUKcHJvbW90aW9uLgoKVGhlIGVy cm9yICJubyByZWxhdGlvbiBlbnRyeSBmb3IgcmVsaWQgMCIgb2NjdXJzIGJlY2F1c2Ugd2hlbiBV TklPTiBBTEwKYnJhbmNoZXMgYXJlIG5lc3RlZCwgdGhlIHBsYW5uZXIgbWF5IGdlbmVyYXRlIGEg VmFyIG5vZGUgd2l0aCB2YXJubyAwCnRvIHJlcHJlc2VudCBhIGNvZXJjZWQgc3ViLXRyZWUgKGUu Zy4sIHByb21vdGluZyBpbnRbXSB0byBiaWdpbnRbXSkuClByZXZpb3VzbHksIHRoZSBjb3N0aW5n IGxvZ2ljIGZvciBhcnJheSBleHByZXNzaW9ucyBkaWQgbm90IGFjY291bnQKZm9yIHRoZXNlIFZh cnMgd2l0aCB2YXJubyA9IDAsIGxlYWRpbmcgdG8gYSBsb29rdXAgZmFpbHVyZS4KCkV4YW1wbGUg b2YgZmFpbGluZyBxdWVyeToKICAgIFNFTEVDVCBOVUxMOjppbnRbXSBVTklPTiBBTEwKICAgIFNF TEVDVCBOVUxMOjppbnRbXSBVTklPTiBBTEwKICAgIFNFTEVDVCBOVUxMOjpiaWdpbnRbXTsKClRo ZSBmaXggZW5zdXJlcyB0aGF0IHN1Y2ggVmFyIG5vZGVzIGFyZSByZWNvZ25pemVkIGFuZCBhc3Np Z25lZCBhCmRlZmF1bHQgY29zdCwgYWxsb3dpbmcgdGhlIHBsYW5uZXIgdG8gcHJvY2VlZCBjb3Jy ZWN0bHkuCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3NlbGZ1bmNzLmMgICAgfCAgOSArKysr KysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0IHwgMTEgKysrKysrKysr KysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3VuaW9uLnNxbCAgICAgIHwgIDUgKysrKysKIDMgZmls ZXMgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9zZWxmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3NlbGZ1bmNzLmMKaW5k ZXggNDE2MGQyZDZlMjQuLmFkY2NiMTNkZDBkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvc2VsZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvc2VsZnVuY3MuYwpA QCAtMjI2NSw2ICsyMjY1LDE1IEBAIGVzdGltYXRlX2FycmF5X2xlbmd0aChQbGFubmVySW5mbyAq cm9vdCwgTm9kZSAqYXJyYXlleHByKQogCQlBdHRTdGF0c1Nsb3Qgc3Nsb3Q7CiAJCWRvdWJsZQkJ bmVsZW0gPSAwOwogCisJCS8qCisJCSAqIEhhbmRsZSBWYXIgbm9kZXMgd2l0aCB2YXJubyAwOgor CQkgKiBpbiBjYXNlcyBsaWtlIChpbnRbXSBVTklPTiBBTEwgaW50W10pIFVOSU9OIEFMTCBiaWdp bnRbXS4KKwkJICogVGhlIHBsYW5uZXIgbWF5IGdlbmVyYXRlIGEgVmFyIG5vZGUgd2l0aCB2YXJu byAwIHdoZW4gY29lcmNpbmcKKwkJICogdGhlIHJlc3VsdCBvZiBuZXN0ZWQgc2V0IG9wZXJhdGlv bnMuICBTZWUgcmVjdXJzZV9zZXRfb3BlcmF0aW9ucygpLgorCQkgKi8KKwkJaWYgKElzQShhcnJh eWV4cHIsIFZhcikgJiYgKChWYXIgKikgYXJyYXlleHByKS0+dmFybm8gPT0gMCApCisJCQlyZXR1 cm4gMTA7CisKIAkJZXhhbWluZV92YXJpYWJsZShyb290LCBhcnJheWV4cHIsIDAsICZ2YXJkYXRh KTsKIAkJaWYgKEhlYXBUdXBsZUlzVmFsaWQodmFyZGF0YS5zdGF0c1R1cGxlKSkKIAkJewpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91bmlvbi5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3VuaW9uLm91dAppbmRleCA3MDljODVmMjI5NC4uMmM3NjQzYjUyODkg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0CkBAIC0xNjYxLDMgKzE2NjEsMTQgQEAg b24gdHJ1ZSBsaW1pdCAxOwogICAgICAgICAgICAgICAgLT4gIFJlc3VsdAogKDYgcm93cykKIAor LS0KKy0tIFRlc3QgbmVzdGVkIFVOSU9OIEFMTCB3aXRoIHR5cGUgY29lcmNpb24KKy0tCitTRUxF Q1QgTlVMTDo6aW50W10gVU5JT04gQUxMIFNFTEVDVCBOVUxMOjppbnRbXSBVTklPTiBBTEwgU0VM RUNUIE5VTEw6OmJpZ2ludFtdOworIGludDQgCistLS0tLS0KKyAKKyAKKyAKKygzIHJvd3MpCisK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3VuaW9uLnNxbCBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3VuaW9uLnNxbAppbmRleCBkMGM3MGZhZmJlYS4uY2M1ZmQwMjlmYTMgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3VuaW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC91bmlvbi5zcWwKQEAgLTY2NCwzICs2NjQsOCBAQCBzZWxlY3QgKiBmcm9tIHRlbmsx IHQxCiBsZWZ0IGpvaW4gbGF0ZXJhbAogICAoc2VsZWN0IHQxLnRlbnRob3VzIGZyb20gdGVuazIg dDIgdW5pb24gYWxsICh2YWx1ZXMoMSkpKQogb24gdHJ1ZSBsaW1pdCAxOworCistLQorLS0gVGVz dCBuZXN0ZWQgVU5JT04gQUxMIHdpdGggdHlwZSBjb2VyY2lvbgorLS0KK1NFTEVDVCBOVUxMOjpp bnRbXSBVTklPTiBBTEwgU0VMRUNUIE5VTEw6OmludFtdIFVOSU9OIEFMTCBTRUxFQ1QgTlVMTDo6 YmlnaW50W107ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotLSAKMi4zNC4xCgo= --000000000000eee6c8064f253746--