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 1wFk52-005UqV-2Y for pgsql-hackers@arkaria.postgresql.org; Thu, 23 Apr 2026 02:46: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 1wFk51-00G7ga-2A for pgsql-hackers@arkaria.postgresql.org; Thu, 23 Apr 2026 02:46: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 1wFk51-00G7gS-19 for pgsql-hackers@lists.postgresql.org; Thu, 23 Apr 2026 02:46:15 +0000 Received: from mail-oa1-x32.google.com ([2001:4860:4864:20::32]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wFk4z-00000002Zcb-1a0D for pgsql-hackers@lists.postgresql.org; Thu, 23 Apr 2026 02:46:15 +0000 Received: by mail-oa1-x32.google.com with SMTP id 586e51a60fabf-415c8a4d2e6so2418894fac.0 for ; Wed, 22 Apr 2026 19:46:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776912371; cv=none; d=google.com; s=arc-20240605; b=jgTZy4/S86hJRjxkebxgzfz0rXEQrzbHbyeBPwpU7OIN3brmcOG2zmwTZTILGQ05oQ lhQNCJ79jX9Z5y9ZD1GYMqjv2VLLa7/NhcSdhp4hjcmdaLpmSbiJh57XYbYTnbXLo35u ScRdQHhoml7BvRYsrjk8DqMbC4uhfv9lUxL5ALffNPxAC0lAcKbN8aK/D3Xn5dgxqRbx JGCvEc7eRFTO8e59CcDfraWXil9022EpllzoCrAOy2XMqnHMVBgqjyZwx5zxWKIkjYCx glmPT4u0dsM/MaDatzN4aoLBnULHZNfTD/XrzIxRer9NCB8hTfNGObRQcYq5m4k6eSt5 GAag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=W5gSDAl6Q384pkFG+SUgkx/VorYjafvkubnPiWdn2zc=; fh=pmBMntjmyx6XYOkmIq7jCPL8+6Ex8nEv6KGKxj4+8uc=; b=ChpYuVkdERHx5g7YACKy4u1AFInRxR9GRHv/xLfKqPM3v/KF9iJfNjYhsTqKuWW05Q zFoJPuVGkUR4frc6u/NITa/VknV7KUtmpxFv3xrEEasajBRHr2TZyQHkXHp0OZRPXmZm JOh8OzwhPmqghd4MxtAYmJEhQFnl3YCIyYAPee9gPDMQcfv/GhA4kVthMwF0mBmW4dN4 pFgXG2teSIUklYgaN5yVpWdMTZvCXeEoyBh7dG9DpM9YXt8AYMGbbB+Fl2+vUKR0vEFV 5vLxG4Lct+JV8dEWzJwYTQpIkgCUvegIk3iwJ2ZdT7zMc8TD/X+Var/OW8k+SjyzRTCV 03PQ==; 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=1776912371; x=1777517171; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=W5gSDAl6Q384pkFG+SUgkx/VorYjafvkubnPiWdn2zc=; b=MsrPvFKTalG43fqHhtVG7QP5EUVX/6a9sjme6eK0ux1J6OFdw3mrvtJgiDoCxiSSDX qW2AEfqWFSqR2V48vSdAzBHXIQaq/1q++4fhvs3aWz8tDi49a2LR32vvwg//KvQXFhzW mUOGA2z+WlbZEWvFOPl2Vm02zRX1QYlKlnb9pZlb6WTsMvW/QQsZHdZHZxLfPPvYKfe6 AHBp2RfgxJjF0V/GnDzyFWMsTT/jhuIn9Gyqogr7Tkdw4n3sFcIfLRIy0DUjAzVxvw4J ee8zauzEa4B0dO32G5ElNNU2TSbtQsYlstSDtuwI2Yxd9js/Y851BtoJSdcIlTZ5W4TX qdQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776912371; x=1777517171; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=W5gSDAl6Q384pkFG+SUgkx/VorYjafvkubnPiWdn2zc=; b=AoT9HdsMON6p/neDoCMGDuM9cdki0Qzkf34JEDOY2nBOxcM2rwCLElWpPxe+9oO3Y+ 00jlNU02MW8446NudzmfCaNur24fWLj11rKP+WYbi2iuELHl7so9EoAbBCm6/6IKQEox JR15tH/tFqUj3S1WcTI4Io06NP+/Z4zqOmJ4DRq8bwbjTZErjiLGivThyO4VUot0aj7B nnu3zLQED8EI/XEzm5e9GT1oLtlEC8iNgiR3S1+hfASwC1KbRj+MvYaeJFjdXaDTOO3+ iqfXojS+h5+0aWr3rOVItm0nirvCw3t85D9AGkTSc9ZGLJMTREsnxR77DAFzhcrwAaXt ZR8Q== X-Gm-Message-State: AOJu0YyQxq/I7/VnyO3Jr9NaXJzoTup54wjTljcqxLHtbO6/KLL5o+2q 95mfV2qxEP4j1LTTvcnkzWwaZA5wVRKuF0jV5tl88G3tH5FJks1lcU5U3Nk6gfT1E9hy1PfQ2BL NQrwoVuFavh9uZN67oiXcGeZh2e2c797vQfc+ X-Gm-Gg: AeBDiev63TOneh/wdAPAVI+kZYXUI/mP7fGjkDtejEQdRT4Ow3L2tNB9zni6UePQ+TD U6KPNK8Nj32ync9tz74gcALZDgbcRsoKQq8A8wa+ZJP2QZAT+StBbmqYFJ2Td1+/BvOtOP1NyQy 6T0ncSjOF5Hin90TGyUMOIIrA93WFl0mqUzhJqSiQxMAwHXxiWGxRYzf+eB+S5khDRrctrsZ5LD ejbusd2SijCXIUIDFpAX+M7zEo3e70uv7XfJO2WcnkN6WLfa6WKm4JO/rs6Sk1jhYDIXLYU2++7 n8Q0wuRMnHK5FnQ1q7SH50rTKDOdjw== X-Received: by 2002:a4a:e908:0:b0:694:9cb9:ace9 with SMTP id 006d021491bc7-6949cb9b04amr4824478eaf.52.1776912370518; Wed, 22 Apr 2026 19:46:10 -0700 (PDT) MIME-Version: 1.0 From: Richard Guo Date: Thu, 23 Apr 2026 11:45:59 +0900 X-Gm-Features: AQROBzDzlxhf4YKvaRJ3k3KOSR-IT2MZKhyLIY0MikFPT--iQmYigaQwXhD0cB4 Message-ID: Subject: The bogus calls in remove_self_join_rel() To: Pg Hackers Content-Type: multipart/mixed; boundary="000000000000a46a86065017a691" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000a46a86065017a691 Content-Type: text/plain; charset="UTF-8" I noticed these two calls in remove_self_join_rel(): adjust_relid_set(root->all_result_relids, toRemove->relid, toKeep->relid); adjust_relid_set(root->leaf_result_relids, toRemove->relid, toKeep->relid); There's no comment explaining them, and as far as I can tell they do nothing: adjust_relid_set returns a Relids and does not modify the input in place. Rather than make the calls do the cleanup they pretend to do, I think a better way is to replace them with assertions: toRemove->relid is not a member of either set. This is true as these two sets contain only parse->resultRelation (rejected as an SJE candidate to preserve EvalPlanQual) and inheritance children of the target, which never appear in the joinlist that SJE scans for candidates. Thoughts? - Richard --000000000000a46a86065017a691 Content-Type: application/octet-stream; name="v1-0001-Fix-bogus-calls-in-remove_self_join_rel.patch" Content-Disposition: attachment; filename="v1-0001-Fix-bogus-calls-in-remove_self_join_rel.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_moavqcld0 RnJvbSBkMDZmYzEwZmMzYTUzMTdhODhhMDU3NmQ5YTJjZmVkMWMxMGE0NzYyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoYXJkIEd1byA8Z3VvZmVuZ2xpbnV4QGdtYWlsLmNvbT4K RGF0ZTogVGh1LCAyMyBBcHIgMjAyNiAxMToxOToyNSArMDkwMApTdWJqZWN0OiBbUEFUQ0ggdjFd IEZpeCBib2d1cyBjYWxscyBpbiByZW1vdmVfc2VsZl9qb2luX3JlbCgpCgpyZW1vdmVfc2VsZl9q b2luX3JlbCgpIGNhbGxlZCBhZGp1c3RfcmVsaWRfc2V0KCkgb24gYWxsX3Jlc3VsdF9yZWxpZHMK YW5kIGxlYWZfcmVzdWx0X3JlbGlkcyBidXQgdGhyZXcgYXdheSB0aGUgcmV0dXJuIHZhbHVlLiAg U2luY2UKYWRqdXN0X3JlbGlkX3NldCgpIHJldHVybnMgYSBmcmVzaGx5LWJ1aWx0IFJlbGlkcyBh bmQgZG9lcyBub3QgbW9kaWZ5CnRoZSBpbnB1dCBpbiBwbGFjZSwgdGhlIGNhbGxzIGRpZCBub3Ro aW5nLiAgVGhpcyBoYXMgYmVlbiB0aGUgY2FzZQpzaW5jZSB0aGUgU0pFIGZlYXR1cmUgd2VudCBp biAoY29tbWl0IGZjMDY5YTNhNikuCgpUaGVyZSBoYXMgYmVlbiBubyBvYnNlcnZhYmxlIG1pc2Jl aGF2aW9yLCBiZWNhdXNlIHRoZSByZWxpZCBiZWluZwpwYXNzZWQgaXMgZ3VhcmFudGVlZCBub3Qg dG8gYmUgYSBtZW1iZXIgb2YgZWl0aGVyIHNldDogdGhvc2Ugc2V0cwpjb250YWluIG9ubHkgdGhl IHF1ZXJ5J3MgdG9wLWxldmVsIHRhcmdldCByZWxhdGlvbiwgd2hpY2gKcmVtb3ZlX3NlbGZfam9p bnNfcmVjdXJzZSgpIHJlamVjdHMgYXMgYW4gU0pFIGNhbmRpZGF0ZSB0byBwcmVzZXJ2ZQp0aGUg RXZhbFBsYW5RdWFsIG1lY2hhbmlzbSwgcGx1cyBpbmhlcml0YW5jZSBjaGlsZHJlbiBvZiB0aGUg dGFyZ2V0CnJlbGF0aW9uLCB3aGljaCBhcmUgUkVMT1BUX09USEVSX01FTUJFUl9SRUxzIGFuZCBz byBuZXZlciBhcHBlYXIgaW4KdGhlIGpvaW5saXN0IHRoYXQgU0pFIHNjYW5zIGZvciBjYW5kaWRh dGVzLiAgRXZlbiB3aXRoIHRoZSByZXN1bHQKYXNzaWduZWQsIHRoZSBjYWxscyB3b3VsZCBiZSBu by1vcHMgaW4gcHJhY3RpY2UuCgpSYXRoZXIgdGhhbiBtYWtlIHRoZSBjYWxscyBkbyB0aGUgY2xl YW51cCB0aGV5IHByZXRlbmQgdG8gZG8sIHJlcGxhY2UKdGhlbSB3aXRoIGFzc2VydGlvbnMgb2Yg dGhlIGludmFyaWFudC4gIEFueSBmdXR1cmUgbG9vc2VuaW5nIG9mIHRoZQpTSkUgY2FuZGlkYXRl IGZpbHRlciAtLSBmb3IgaW5zdGFuY2UgdG8gYWxsb3cgZWxpbWluYXRpbmcgYSByZXN1bHQKcmVs YXRpb24gdW5kZXIgcHJvdmFibGUgY29uZGl0aW9ucyAtLSB3aWxsIHRyaXAgdGhlIGFzc2VydGlv biBhbmQKZm9yY2Ugd2hvZXZlciBkb2VzIGl0IHRvIHJldmlzaXQgdGhpcyBjb2RlLgotLS0KIHNy Yy9iYWNrZW5kL29wdGltaXplci9wbGFuL2FuYWx5emVqb2lucy5jIHwgMTIgKysrKysrKysrKy0t CiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9hbmFseXplam9pbnMuYyBiL3NyYy9i YWNrZW5kL29wdGltaXplci9wbGFuL2FuYWx5emVqb2lucy5jCmluZGV4IDAzMDU2YmRmM2UwLi40 OTRiOWVlMDcxNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vYW5hbHl6 ZWpvaW5zLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vYW5hbHl6ZWpvaW5zLmMK QEAgLTE5OTQsOCArMTk5NCwxNiBAQCByZW1vdmVfc2VsZl9qb2luX3JlbChQbGFubmVySW5mbyAq cm9vdCwgUGxhblJvd01hcmsgKmttYXJrLCBQbGFuUm93TWFyayAqcm1hcmssCiAJQ2hhbmdlVmFy Tm9kZXNFeHRlbmRlZCgoTm9kZSAqKSByb290LT5wcm9jZXNzZWRfdGxpc3QsIHRvUmVtb3ZlLT5y ZWxpZCwKIAkJCQkJCSAgIHRvS2VlcC0+cmVsaWQsIDAsIHJlcGxhY2VfcmVsaWRfY2FsbGJhY2sp OwogCi0JYWRqdXN0X3JlbGlkX3NldChyb290LT5hbGxfcmVzdWx0X3JlbGlkcywgdG9SZW1vdmUt PnJlbGlkLCB0b0tlZXAtPnJlbGlkKTsKLQlhZGp1c3RfcmVsaWRfc2V0KHJvb3QtPmxlYWZfcmVz dWx0X3JlbGlkcywgdG9SZW1vdmUtPnJlbGlkLCB0b0tlZXAtPnJlbGlkKTsKKwkvKgorCSAqIE5v IG5lZWQgdG8gdG91Y2ggYWxsX3Jlc3VsdF9yZWxpZHMgb3IgbGVhZl9yZXN1bHRfcmVsaWRzOiBl dmVyeSByZWxpZAorCSAqIGluIHRob3NlIHNldHMgaXMgZWl0aGVyIHRoZSBxdWVyeSdzIHRvcC1s ZXZlbCB0YXJnZXQgcmVsYXRpb24sIHdoaWNoCisJICogcmVtb3ZlX3NlbGZfam9pbnNfcmVjdXJz ZSgpIHJlamVjdHMgYXMgYW4gU0pFIGNhbmRpZGF0ZSAodGhlIEVQUQorCSAqIG1lY2hhbmlzbSBy ZXF1aXJlcyB0aGUgdGFyZ2V0IHJlbCB0byBzdXJ2aXZlKSwgb3IgYW4gaW5oZXJpdGFuY2UgY2hp bGQKKwkgKiBvZiBpdCwgd2hpY2ggaXMgYSBSRUxPUFRfT1RIRVJfTUVNQkVSX1JFTCBhbmQgc28g bmV2ZXIgYXBwZWFycyBpbiB0aGUKKwkgKiBqb2lubGlzdCB0aGF0IFNKRSBzY2Fucy4gIHRvUmVt b3ZlLT5yZWxpZCB0aGVyZWZvcmUgY2Fubm90IGJlIGEgbWVtYmVyLgorCSAqLworCUFzc2VydCgh Ym1zX2lzX21lbWJlcih0b1JlbW92ZS0+cmVsaWQsIHJvb3QtPmFsbF9yZXN1bHRfcmVsaWRzKSk7 CisJQXNzZXJ0KCFibXNfaXNfbWVtYmVyKHRvUmVtb3ZlLT5yZWxpZCwgcm9vdC0+bGVhZl9yZXN1 bHRfcmVsaWRzKSk7CiAKIAkvKgogCSAqIFRoZXJlIG1heSBiZSByZWZlcmVuY2VzIHRvIHRoZSBy ZWwgaW4gcm9vdC0+ZmtleV9saXN0LCBidXQgaWYgc28sCi0tIAoyLjM5LjUgKEFwcGxlIEdpdC0x NTQpCgo= --000000000000a46a86065017a691--