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.94.2) (envelope-from ) id 1qplpN-006u0x-Px for pgsql-bugs@arkaria.postgresql.org; Mon, 09 Oct 2023 08:41:26 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1qplpL-00BaP5-MG for pgsql-bugs@arkaria.postgresql.org; Mon, 09 Oct 2023 08:41:24 +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.94.2) (envelope-from ) id 1qplpL-00BaOJ-8K for pgsql-bugs@lists.postgresql.org; Mon, 09 Oct 2023 08:41:24 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by makus.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1qplpI-000kuW-My for pgsql-bugs@lists.postgresql.org; Mon, 09 Oct 2023 08:41:23 +0000 Received: from [172.30.8.38] (unknown [172.30.8.38]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: a.lepikhov@postgrespro.ru) by mail.postgrespro.ru (Postfix/587) with ESMTPSA id AAD82E203DD; Mon, 9 Oct 2023 11:41:15 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1696840878; bh=JLU8U/tSS8NAAVd1V/PWtgn/dEFTqvAvUz8hrm4LuVM=; h=Message-ID:Date:User-Agent:Subject:From:To:Cc:References: In-Reply-To:From; b=X/mIwYmdQpTPbRyhwNYDlxO6DkFMiARwsXb/G2aq7GTSC0T/0oSiK2btheYdcFQ5o dbSBns/41kWql7eqB6id/K5eSbjuaPltith9nV44ZjWE1kt8R+w7Pz+ovVkecnZ4cd Hk/priG+QZ0Ujspg4Tm4403l+a1TGBzTsDmV3GJLIoszO2JmIJOqyqXOHkdXsgwEe1 SjUWKGhVkM2BjbF4SeIyVF50idvAqcHM1nlOZZiBt6YlNo356TbN1TWgRiW7yc201F iqtzbXxyRfXz0PJCR6rATkrFc/TgivCfPHAlWScM5s6jEiAUVHsIZVA6duHrjxEQPE l9h6rLLH2ApnA== Content-Type: multipart/mixed; boundary="------------n2sXkwI5wlUDcrDOj5uFUGjX" Message-ID: <0cbbd87e-1b57-4b7e-9825-19a6fb2f8670@postgrespro.ru> Date: Mon, 9 Oct 2023 15:41:09 +0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: EXPLAIN Verbose issue - custom_scan_tlist can directly refer CTE and Subquery Content-Language: en-US From: Andrei Lepikhov To: Richard Guo , Lepikhov Andrei Cc: pgsql-bugs@lists.postgresql.org, =?UTF-8?B?0JDQu9C10L3QsCDQoNGL0LHQsNC60LjQvdCw?= , =?UTF-8?B?0JTQsNC80LjRgCDQkdC10LvRj9C70L7Qsg==?= References: Organization: Postgres Professional In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------n2sXkwI5wlUDcrDOj5uFUGjX Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit After some attempts to resolve this issue, I must admit that we should add a non-trivial method in the CustomScan node interface, which would be called in the ruleutils code. I guess it is too much for such a rare situation. So maybe just add a documentation entry on this thing and set a couple of assertions on early detection of problems?. In the attachment - is an offer on how to change the code. -- regards, Andrey Lepikhov Postgres Professional --------------n2sXkwI5wlUDcrDOj5uFUGjX Content-Type: text/plain; charset=UTF-8; name="0001-Be-careful-allowing-custom-nodes-to-use-CTE-and-Subp.patch" Content-Disposition: attachment; filename*0="0001-Be-careful-allowing-custom-nodes-to-use-CTE-and-Subp.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBkM2I0NzYxYTUzZDg4MTc5MjJiMGE2YTdhYWUwZmMxOWM3MGYyOGRmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmV5IFYuIExlcGlraG92IiA8YS5sZXBpa2hv dkBwb3N0Z3Jlc3Byby5ydT4KRGF0ZTogTW9uLCA5IE9jdCAyMDIzIDE1OjMxOjA0ICswNzAw ClN1YmplY3Q6IFtQQVRDSF0gQmUgY2FyZWZ1bCBhbGxvd2luZyBjdXN0b20gbm9kZXMgdG8g dXNlIENURSBhbmQgU3VicGxhbiBsaW5rcwogaW4gdGhlIHRhcmdldGxpc3QuIEFkZCBhIHBh cmFncmFwaCBpbiBkb2N1bWVudGF0aW9uLCBjb21tZW50IGluIHRoZSBwbGFjZSBvZgogdGhl IGVycm9yIHRyaWdnZXJzIGFuZCBhc3NlcnQgdG8gIHF1aWNrbHkgZGV0ZWN0IHByb2JsZW0g YXQgdGhlIGRldmVsb3BpbmcKIHN0YWdlLgoKLS0tCiBkb2Mvc3JjL3NnbWwvY3VzdG9tLXNj YW4uc2dtbCAgICAgfCAgNCArKysrCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxz LmMgfCAyMCArKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAyNCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2N1c3RvbS1zY2FuLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvY3VzdG9tLXNjYW4uc2dtbAppbmRleCBhMjAwZDUwMmNkLi4wYmM2 NWNiZDA2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY3VzdG9tLXNjYW4uc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvY3VzdG9tLXNjYW4uc2dtbApAQCAtMjA2LDYgKzIwNiwxMCBAQCB0 eXBlZGVmIHN0cnVjdCBDdXN0b21TY2FuCiAgICAgdGhlIGFjdHVhbCBzY2FuIHR1cGxlcy4g IDxzdHJ1Y3RmaWVsZD5jdXN0b21fc2Nhbl90bGlzdDwvc3RydWN0ZmllbGQ+IG11c3QgYmUK ICAgICBwcm92aWRlZCBmb3Igam9pbnMsIGFuZCBjb3VsZCBiZSBwcm92aWRlZCBmb3Igc2Nh bnMgaWYgdGhlIGN1c3RvbSBzY2FuCiAgICAgcHJvdmlkZXIgY2FuIGNvbXB1dGUgc29tZSBu b24tVmFyIGV4cHJlc3Npb25zLgorCURvbid0IGluY2x1ZGUgaW50byA8c3RydWN0ZmllbGQ+ Y3VzdG9tX3NjYW5fdGxpc3Q8L3N0cnVjdGZpZWxkPiByZWZlcmVuY2VzIHRvIENURQorCW9y IFN1YlBsYW4gZW50cmllcyBiZWNhdXNlIGl0IGRpcmVjdGx5IHBvaW50cyB0byB0aGUgbGlz dCBvZiBSYW5nZVRhYmxlRW50cmllcy4KKwlJbiBtb3N0IGNhc2VzIGl0IGRvZXNuJ3QgY2F1 c2UgYW55IGlzc3VlcyBidXQgZHVyaW5nIHRoZSBFWFBMQUlOIEFOQUxZWkUgaXQgY2FuIGZh aWwKKwl0byBmaW5kIHByb3BlciBzdWJwbGFuIGR1cmluZyBwcmVwYXJpbmcgdGV4dHVhbCBy ZXByZXNlbnRhdGlvbiBvZiB0YXJnZXRsaXN0LgogICAgIDxzdHJ1Y3RmaWVsZD5jdXN0b21f cmVsaWRzPC9zdHJ1Y3RmaWVsZD4gaXMgc2V0IGJ5IHRoZSBjb3JlIGNvZGUgdG8gdGhlIHNl dCBvZgogICAgIHJlbGF0aW9ucyAocmFuZ2UgdGFibGUgaW5kZXhlcykgdGhhdCB0aGlzIHNj YW4gbm9kZSBoYW5kbGVzOyBleGNlcHQgd2hlbgogICAgIHRoaXMgc2NhbiBpcyByZXBsYWNp bmcgYSBqb2luLCBpdCB3aWxsIGhhdmUgb25seSBvbmUgbWVtYmVyLgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3J1bGV1dGlscy5jCmluZGV4IDQ0MjIwNTM4MmUuLmE2MDI2OGRjYWMgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTc4NjAsNiArNzg2MCwxNiBAQCBnZXRfbmFt ZV9mb3JfdmFyX2ZpZWxkKFZhciAqdmFyLCBpbnQgZmllbGRubywKIAkJCQkJZGVwYXJzZV9u YW1lc3BhY2Ugc2F2ZV9kcG5zOwogCQkJCQljb25zdCBjaGFyICpyZXN1bHQ7CiAKKwkJCQkJ LyoKKwkJCQkJICogTGltaXRhdGlvbiwgcmVsYXRlZCB0byBDdXN0b21TY2FuIG5vZGVzLgor CQkJCQkgKiBjdXN0b21fc2Nhbl90bGlzdCBwb2ludHMgdG8gdGhlIHJhbmdlIHRhYmxlIGVu dHJpZXMKKwkJCQkJICogZGlyZWN0bHkuIEluIHRoZSBjYXNlIG9mIENURXMgYW5kIHN1YnF1 ZXJpZXMgd2UgaGF2ZSBzb21lCisJCQkJCSAqIHNvcnQgb2YgdW5jZXJ0YWluaXR5IGhlcmU6 IG9ubHkgdGhlIGRldmVsb3BlciBvZiB0aGUKKwkJCQkJICogY3VzdG9tIG5vZGUga25vd3Mg ZnJvbSB3aGljaCBzdWJ0cmVlIHRoZXkgZ2V0IHRoZSBzdWJwbGFuCisJCQkJCSAqIGxpbmsu CisJCQkJCSAqLworCQkJCQlBc3NlcnQoIUlzQShkcG5zLT5wbGFuLCBDdXN0b21TY2FuKSk7 CisKIAkJCQkJaWYgKCFkcG5zLT5pbm5lcl9wbGFuKQogCQkJCQkJZWxvZyhFUlJPUiwgImZh aWxlZCB0byBmaW5kIHBsYW4gZm9yIHN1YnF1ZXJ5ICVzIiwKIAkJCQkJCQkgcnRlLT5lcmVm LT5hbGlhc25hbWUpOwpAQCAtNzk4Miw2ICs3OTkyLDE2IEBAIGdldF9uYW1lX2Zvcl92YXJf ZmllbGQoVmFyICp2YXIsIGludCBmaWVsZG5vLAogCQkJCQlkZXBhcnNlX25hbWVzcGFjZSBz YXZlX2RwbnM7CiAJCQkJCWNvbnN0IGNoYXIgKnJlc3VsdDsKIAorCQkJCQkvKgorCQkJCQkg KiBMaW1pdGF0aW9uLCByZWxhdGVkIHRvIEN1c3RvbVNjYW4gbm9kZXMuCisJCQkJCSAqIGN1 c3RvbV9zY2FuX3RsaXN0IHBvaW50cyB0byB0aGUgcmFuZ2UgdGFibGUgZW50cmllcworCQkJ CQkgKiBkaXJlY3RseS4gSW4gdGhlIGNhc2Ugb2YgQ1RFcyBhbmQgc3VicXVlcmllcyB3ZSBo YXZlIHNvbWUKKwkJCQkJICogc29ydCBvZiB1bmNlcnRhaW5pdHkgaGVyZTogb25seSB0aGUg ZGV2ZWxvcGVyIG9mIHRoZQorCQkJCQkgKiBjdXN0b20gbm9kZSBrbm93cyBmcm9tIHdoaWNo IHN1YnRyZWUgdGhleSBnZXQgdGhlIHN1YnBsYW4KKwkJCQkJICogbGluay4KKwkJCQkJICov CisJCQkJCUFzc2VydCghSXNBKGRwbnMtPnBsYW4sIEN1c3RvbVNjYW4pKTsKKwogCQkJCQlp ZiAoIWRwbnMtPmlubmVyX3BsYW4pCiAJCQkJCQllbG9nKEVSUk9SLCAiZmFpbGVkIHRvIGZp bmQgcGxhbiBmb3IgQ1RFICVzIiwKIAkJCQkJCQkgcnRlLT5lcmVmLT5hbGlhc25hbWUpOwot LSAKMi40Mi4wCgo= --------------n2sXkwI5wlUDcrDOj5uFUGjX--