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 1wBBIs-000oi1-0D for pgsql-hackers@arkaria.postgresql.org; Fri, 10 Apr 2026 12:49:42 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wBBIq-00BoHL-1I for pgsql-hackers@arkaria.postgresql.org; Fri, 10 Apr 2026 12:49:41 +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 1wBBIq-00BoHC-0N for pgsql-hackers@lists.postgresql.org; Fri, 10 Apr 2026 12:49:41 +0000 Received: from mail-ed1-x529.google.com ([2a00:1450:4864:20::529]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wBBIp-00000000KfX-0F1P for pgsql-hackers@lists.postgresql.org; Fri, 10 Apr 2026 12:49:40 +0000 Received: by mail-ed1-x529.google.com with SMTP id 4fb4d7f45d1cf-66c05fb27e4so3517124a12.2 for ; Fri, 10 Apr 2026 05:49:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775825377; cv=none; d=google.com; s=arc-20240605; b=jrUmaQF3KFHoIlH4MzwvdnVkGP/JBjt5DgfI9Y97b1emge8ddGG1bwC+YyiQuGbT7v FNwnNNnuCML3Xr7bboZ5mhHzdWQrMGeZbe4lsG7gtPF2qySq2zXMIrcCJ3FfHL2Q9M9x znPbNGYr5UTfA4ifHo3QZAZckfIU88nqA0dUwVmDEODXO2wEq5dYpOyB8Fl/cpHvLtmh I0TJ7stWVUSUAholCLZPGvcLINkWKsHZqIpt3xp1iGZX9cWoWU1eXlzMkNceZYIpatn2 KggtuK01KrpTPpJmc7Y3Z8OJwdAJ0H2TTdzaQ4RrJ/eLsqrzMKawBIuGuGHLA40IBqyi gehA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=9pNySDt51Aq3dRvMD8RnDqrXWP2Ia/Hdo9ztk2RtXm8=; fh=4GmBguIkv870IMc0NPMy/21iQM3A7qo1U6V27ImuYC8=; b=MAVnWV4sCuH9iCLatVAe80jhil7pOX4BJBykxlvkLqXYBbv3oKPz8QQc1jSQC5CsIv m0SgOecgS2hhkHXqZfDx52eUoPjtWBrkkqYg8H+t90K+8ts4am88K5kd/p1Sn9Walk0Y j5DaLEoWXgMkzGvWO/OmJ/ONalIGS25pawFea7qUDHWjDGT8uR9WC1i7pyiv3jZkYXxd 8khWtOOp4Guo6LHGEqQZJ2y9X3GhDVJvqObBiYe0ekfnhZSJOEfnUpWXEIssnad8yk8g mRZkot69Q6rs/cQsjy4ce1NCoJRYzvTVmtdexHJAI25QYAondgrXkia9U2ztJl0qMxn7 bI4Q==; 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=1775825377; x=1776430177; darn=lists.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=9pNySDt51Aq3dRvMD8RnDqrXWP2Ia/Hdo9ztk2RtXm8=; b=hF7oYMAAtJraEuMBFkfXW8JrrhVVIeE9rBMKSkCviH8xKjGPyKJaMZAitLRvyVvrlO nGafRYZtKKkISd5rC9qttwikaambhR4RN8l0Lt/ZB0mXADDJ85YrbigSIl/sSCjgIlT7 ut64/Q4A/n2gtLFrHMnsqRMWcKZ0b0YO3sox7XabbCeCJNV5VG9tPI/FeYv95G1jpi+S ROcvSDswjcOp8Xyn06fr+wF9IPPUi8zePfG3v46p34y+pId7rRColay6pwzdGMch6Rfs fA3eXK1+sEI9saJ0p+G8TlS+vJmZAzuVGUIFS0Z3Uoj5J6pvymR8gwZ4mKNJRFcrpE5L aF6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775825377; x=1776430177; 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=9pNySDt51Aq3dRvMD8RnDqrXWP2Ia/Hdo9ztk2RtXm8=; b=Pd4dnVsO59cSSdEljHHS5syXXxhH4yfdYKU/S/iP6UN4QTIMViwM+W2rYdZTQyNnT/ Sq8x0nUdF2ysMXTiOPOoPdTY5H0sk94gA/C6XUinerTddrxx9rGPrGvDh0GbD9QWaH5J jxA2PHRwKrMmO2wqA06WHGwBPPHb5fbbB/jBlt2pXAt+UXvSF2Ue0yTGbNBS1gV5aunr gYQK5wMR4evlfNwYiCcapWwN2+nN3vHihpa6EJpITeIRF6wERYreSX/KMJwa2D+YW99b gjQDQbJopWzW+QOXv5CZ3VGdJYSJtTkgJWh6oWaL6ehOQGi2PjY/lwMHzjPcTZMea3rS AB3Q== X-Gm-Message-State: AOJu0YwKf0tupjwC9WQrd3H2olFocYfTM5NeUeHO+dMhQBDv0S8OfTqq YJOFUzUYEA7LM32bOOjShk/pOd26MYU38z4scZNHwU4SAFz5IIukfn/HyIjNxIcUkO1A/sDNMb8 wjR32yFnXXsVfuAjIpJD8vck4VdiHLuo= X-Gm-Gg: AeBDiev6qR4h77ytHYSCl6ZUvyUQN3FFmo8F0ePLukmRxPZcnnkkAi0zCtJIKLX9muU X0Trjd7we40MuNFdLB/OU3MwOUcBEP9oIRqO+Cb6zmDr5S8JBs9jgoY4ug4jaUwXBtZWiXC9S6b PaZhIfIMxhmVz3Q4XFmfm1H7HK5MFzSeObDfhED81KbhJqGkKezzuY4gkfHSNsNFfxFb8qKpgmv XKQsbyRUco4MpdPyBgOuvGiXe1Xfmn3gOG5J96mipIYneptc8kX7ioP3KSFwwoXYE9YNrI8KNHf G0Ru2n9I X-Received: by 2002:a17:907:1c9c:b0:b98:6926:13a5 with SMTP id a640c23a62f3a-b9d72ad9e26mr198817066b.46.1775825376161; Fri, 10 Apr 2026 05:49:36 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Tender Wang Date: Fri, 10 Apr 2026 20:49:24 +0800 X-Gm-Features: AQROBzBZLS67PXWQeCPBb9qTXxwVF0H_s-lx2CVqcQyfKZgrSGSKjDANwVEmcWc Message-ID: Subject: Re: pg17: XX000: no relation entry for relid 0 To: Justin Pryzby Cc: pgsql-hackers@lists.postgresql.org, Paul Jungwirth , Tom Lane 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 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 > > Since 9391f7152. The varno =3D 0 is from below code: *pTargetList =3D generate_setop_tlist(colTypes, colCollations, 0, false, *pTargetList, refnames_tlist, &trivial_tlist); *istrivial_tlist =3D trivial_tlist; target =3D create_pathtarget(root, *pTargetList); in recurse_set_operations(). When calling set_pathtarget_cost_width(), we estimate the length of the array that would enter estimate_array_length(). Before 9391f7152, we returned 10 directly. But now, we see if we can find any statistics about it. In examine_variable(), try to find base_rel in find_base_rel(), error reported. Because the varno of the Var is 0. 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/selfu= ncs.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 *arraye= xpr) 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? --=20 Thanks, Tender Wang