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 1w2UL4-000Kl8-0a for pgsql-bugs@arkaria.postgresql.org; Tue, 17 Mar 2026 13:20:02 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w2UL2-001Ukq-1h for pgsql-bugs@arkaria.postgresql.org; Tue, 17 Mar 2026 13:20:00 +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 1w2UL2-001Uki-0u for pgsql-bugs@lists.postgresql.org; Tue, 17 Mar 2026 13:20:00 +0000 Received: from mail-ej1-x62a.google.com ([2a00:1450:4864:20::62a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w2UKz-00000000Blg-0IHy for pgsql-bugs@lists.postgresql.org; Tue, 17 Mar 2026 13:19:59 +0000 Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-b97e5956208so57982366b.2 for ; Tue, 17 Mar 2026 06:19:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773753597; cv=none; d=google.com; s=arc-20240605; b=bW17QP5/Yag3lPAFRQZlF3E0KgF690L/wkiwxxiXbNZmwQ3J8zFHvSTKN62lFjbtEp YpIBHTPoyXXMTOT+TharPghX3oMA67Q5ToAcpocJfK+KhdYxwpZlXgNbTRK+EUOjuBGY neVktbfxmqXBF3nZdl+lg9SyunVbj9TQjK7t4BGPX8XCsKaBtsBqbCFn4vfb8WMndK/h woi2gJ5I+8PMsHA21uNt/Gi8H51SaAyzrHOzzHlwCKMT49v25lantw/nqFR2DHeDyjSJ IKUd+aILsm7EllfcwkO0L3LdLmtnWZCrFEGttvocx0hB4evwBVKYBc4J+wZV3PxavhDY lSrg== 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=fAgTpr3jcvsse2/foeSb7xgOseyCPW9zI/MlrdTRHvA=; fh=xLSusZaeHDLjXcgKBdkPbdbSqcBwbvJJVPXolvxlDAI=; b=Mu3+opxK63o1LHpARbIeSWEj+GNQJE2zFvvkcWjAhXGc1IZ3ymLyICcpBheVC1FYJi CGkfs2dUpT8hEOEIMkTQ+xWhLu/UVLEEJCBsRlmJShqZmrCuCJX3Ag8v/dmYU3Jmy5sH k5+y9FbS5Wh+kV/nKeNdUSN8OUkep6L5AdS0MohuNasHjPPfdWaxu5HGr9AHx6CJcjf/ bzC5FdmaUrxtmkvJbLNPyEFz3qYsh+3mvbWAZn4uAVUP/erajg5k+hYIlbljG24vCS2c REJjZkBUXw5oaWjVt538225cJwpP3MhzGp0IUKVh8XIhb/Dx36ywMHhFraOlqu1iVar/ 7QIw==; 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=20230601; t=1773753597; x=1774358397; 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=fAgTpr3jcvsse2/foeSb7xgOseyCPW9zI/MlrdTRHvA=; b=iTMSpU1VE396qgyuaNczg3cVU2MOWiDycebDt107lwx+DPD5WLQrJ/cEu8Z6a0H2Cm wdEgn4eY2XNKWOXubmXQ77VAdyk+2j4/c/aQ0PRcoa6m6Up5opoi4X+D6wP0tBR+YbZp 2G7PMk0hxIlu6MMPk8fL8tD0bt7OcgP2wRxWt8NcT3Y/le9pbkyxM44kOFrnULryNmHA jnHNB509ITQv9pedIjCQnmyyC7zwEnz4EaWHUCWjywbnU6uW16laiNrGKECymHfBD17D YDjrFXvl2UkO3jM3kBuWSf3FKCslq4JLZLRh23j++31JdS7hPhJy+dT7ApBLhJEAS3eA uctQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773753597; x=1774358397; 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=fAgTpr3jcvsse2/foeSb7xgOseyCPW9zI/MlrdTRHvA=; b=NLK68SVu5sK7etDB1k3fv1v/Zgttuvef6sKRk8cQAKEl6Z1tQ2VHPJSi1qpejtN7Fv cdlC+NxB9qufll7pWq2Fq6wsnjIaQxig0hLCQGW+107CXjlYR7ckaWychhNcKD15D92I oXbMhjlenwdBne3WEQ9X9qlyimWw4Ho86SmTTPn5jxOLFerRzlUxWsSR/3BUz8rntnBc uDb3U0l8KqooazqFzq0DrLcv5cysXYC9Qog3YiFSBfy/NL2jCaPkOA47H3+dj8Y++ZVZ HnOTkzpOQwNmW/2BLJxbfLQawgakn73/3/PrCDHO0hQgOJ7Rqt0nfZ2pGFMCF1vfg/j7 QUzg== X-Forwarded-Encrypted: i=1; AJvYcCXiiqfp0MhaaCqwdBpHSk0gLogN7jH10LLFbpboFYyAPXNj8zx7dZCEeA56cSPjBcuqbic7jVR2dE86@lists.postgresql.org X-Gm-Message-State: AOJu0Yx7orGq5JsryAkWgepF0gU7eR8LvGWoojm1VeiowZs/ZQD9d2de 0RHHyoH/62OA0eL/TgHKCUTGI7y+Roe+MC509KL4v1VDvylCyD11+WJeOxuNW67acGyj8/v7Det CEV+iDpB7qlGDWXXaPZ4FyIuaT9KJ1vU= X-Gm-Gg: ATEYQzwzpaWzIgyYr4qCNFO9vGVFDndVyrtd/5n42tQCrd8fhYuZ8y4any7ZdPWlVOW opljAy2yB86U12kmmLuPC+VUJcDkiT7fxfMrZfjBIo7y5gUqWQFtKRLMm69n9jwVpsJELt6G5CC oioh53C4qdjE67J0bJxCjOtseNcoctjVK6Oga0xNzW0AEA+BGitLKHL0W8tDkojKVrSfd5aKC/b jZ3pjpJ6XazhkDycUMvxk7A3SxHVw5zI3VvL76ihZoiAKUDCv9MFnHwCAuvD2zBH6QjCmrfz8e0 SXDT8Iwzj8Z3DNS4dHI= X-Received: by 2002:a17:907:9717:b0:b97:698d:1e with SMTP id a640c23a62f3a-b97698d0b87mr984197466b.35.1773753596756; Tue, 17 Mar 2026 06:19:56 -0700 (PDT) MIME-Version: 1.0 References: <19435-3cc1a87f291129f1@postgresql.org> In-Reply-To: From: Tender Wang Date: Tue, 17 Mar 2026 21:19:45 +0800 X-Gm-Features: AaiRm50GVOOECXEf9nuuFamraJhRmjqmVVS7lgHLLE_IeoyKDVCjyS8P-mXpKdI Message-ID: Subject: Re: BUG #19435: Error: "No relation entry for relid 2" Triggered by Complex Join with Self-Referencing Tables To: Alexander Korotkov Cc: Fujii Masao , ammmkilo@163.com, pgsql-bugs@lists.postgresql.org 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 Tender Wang =E4=BA=8E2026=E5=B9=B43=E6=9C=8817=E6=97= =A5=E5=91=A8=E4=BA=8C 20:59=E5=86=99=E9=81=93=EF=BC=9A > > The error was reported in rebuild_joinclause_attr_needed() when > processing Relid =3D 1(rtindex =3D1), > When processing its joininfo" ON tom1.col_bool IS NOT NULL", > (gdb) pgprint rinfo->clause > Var [varno=3D2 varattno=3D2 vartype=3D16 > varreturningtype=3DVAR_RETURNING_DEFAULT varnosyn=3D2 varattnosyn=3D2] > > The varno=3D2, rtindex=3D2(tom1) has been removed. In > add_vars_to_attr_needed(), to find the base_rel, but the > root->simple_rel_array[2] is NULL. > So the error is reporting. > It seems the joininfo should be replaced by rtindex =3D 3, because the > rtindex=3D2 would be removed. > -- (gdb) pgprint rinfo RestrictInfo [is_pushed_down=3Dfalse can_join=3Dfalse pseudoconstant=3Dfals= e has_clone=3Dtrue is_clone=3Dfalse leakproof=3Dfalse has_volatile=3DVOLATILITY_UNKNOWN security_level=3D0 num_base_rels=3D1 rinfo_serial=3D4 eval_cost=3D{startup =3D -= 1, per_tuple =3D 0} norm_selec=3D-1 outer_selec=3D-1 outer_is_left=3Dfalse hashjoinoperator=3D0 left_bucketsize=3D-1 right_bucketsize=3D-1 left_mcvfreq=3D-1 right_mcvfreq=3D-1 left_hasheqoperator=3D0 right_hasheqoperator=3D0] [clause] Var [varno=3D2 varattno=3D2 vartype=3D16 varreturningtype=3DVAR_RETURNING_DEFAULT varnosyn=3D2 varattnosyn=3D2] [clause_relids] Bitmapset [3] [required_relids] Bitmapset [3 1] [incompatible_relids] Bitmapset [7 6] [outer_relids] Bitmapset [6 5 3] The above is the joininfo of the rtindex=3D1(tom0), we can see that the required_relids is changed to [3 1], but the clause is still rtindex=3D2(varno=3D2). I guess the current logic in remove_self_join_rel() may forget to process the rinfo->clause. --=20 Thanks, Tender Wang