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 1wiAS1-00030Z-19 for pgsql-hackers@arkaria.postgresql.org; Fri, 10 Jul 2026 12:35:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wiARz-000D0o-2c for pgsql-hackers@arkaria.postgresql.org; Fri, 10 Jul 2026 12:35:28 +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 1wiARz-000D0Y-17 for pgsql-hackers@lists.postgresql.org; Fri, 10 Jul 2026 12:35:28 +0000 Received: from mail.postgrespro.ru ([93.174.132.70]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wiARx-000000001yE-0jwH for pgsql-hackers@lists.postgresql.org; Fri, 10 Jul 2026 12:35:27 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1783686920; bh=GrbEdPivWfyNxa3LbV1dHHLlg3YeEilIdEZkgqSmgmw=; h=Message-ID:Date:User-Agent:To:From:Subject:From; b=1afAvyhVtD4jqifj2IFO4XK7WAxLWprgl1PDFz6tsXmv0ii2ypLNRV6QUi3lHngaL 7FlhH1cFwVHCJi0o2VCVIIbHywhWcN81x2HAuFMeeWtV5tCmVxp9Gt2L9l3cefNNxU 5O9/9ZwM2c7WXQKkMvn319D54ncyiy/kLZaol23xsVwR7G/Eljnt9txKnDMO7mSkw0 lAuRoBZonAJiH373n2rzPkL9bbvlybGXtDpdxRrLvx9JXSFjGeO30n0LhC+YYmbXXS djn95YrLWTHYv37yXH2mr9lY+xrgCgNB7oNQV/cfiahDIu++9pU9j8ccNP77qMKjnL f0DYziFkYDf4Q== Received: from [10.3.12.111] (broadband-188-255-38-164.ip.moscow.rt.ru [188.255.38.164]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: a.ratundalov@postgrespro.ru) by mail.postgrespro.ru (Postfix/465) with ESMTPSA id 8FD9A60AF9 for ; Fri, 10 Jul 2026 15:35:20 +0300 (MSK) Content-Type: multipart/mixed; boundary="------------lBl4GHYGWTcjc0Q5q0SZ8lHi" Message-ID: <1987734a-013a-47f1-85c6-9ae19a49dbe3@postgrespro.ru> Date: Fri, 10 Jul 2026 15:35:19 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: pgsql-hackers@lists.postgresql.org From: Anton Ratundalov Subject: Proposal : Retain explainable statement location on ExplainStmt structure. X-KSMG-AntiPhishing: NotDetected X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 3.0.0.9059, bases: 2026/07/10 10:01:00 #28419055 X-KSMG-AntiVirus-Status: NotDetected, skipped X-KSMG-LinksScanning: not scanned, disabled by settings X-KSMG-Message-Action: skipped X-KSMG-Rule-ID: 1 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. --------------lBl4GHYGWTcjc0Q5q0SZ8lHi Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi hackers Let me propose to amend ExplainStmt structure with an new attribute explainable_loc of ParseLoc type with the purpose of separating an EXPLAIN command ( together with it's options ) from the statement to be explained. This, for example, will allow to execute EXPLAIN remotely with a different set of options. Please, find code changes in the patch. Best regards, Anton Ratundalov, Postgres Professional --------------lBl4GHYGWTcjc0Q5q0SZ8lHi Content-Type: text/x-patch; charset=UTF-8; name="retain_explainable_statement_location.patch" Content-Disposition: attachment; filename="retain_explainable_statement_location.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55CmluZGV4IDBmNGU4NjM4YzNkLi5jNDMxZmNlN2FjOSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CkBAIC0xMjc1OCw2ICsxMjc1OCw3IEBAIEV4cGxhaW5TdG10OgogCiAJCQkJCW4t PnF1ZXJ5ID0gJDI7CiAJCQkJCW4tPm9wdGlvbnMgPSBOSUw7CisJCQkJCW4tPmV4cGxhaW5h YmxlX2xvYyA9IEAyOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQogCQl8IEVYUExB SU4gYW5hbHl6ZV9rZXl3b3JkIG9wdF92ZXJib3NlIEV4cGxhaW5hYmxlU3RtdApAQCAtMTI3 NjksNiArMTI3NzAsNyBAQCBFeHBsYWluU3RtdDoKIAkJCQkJaWYgKCQzKQogCQkJCQkJbi0+ b3B0aW9ucyA9IGxhcHBlbmQobi0+b3B0aW9ucywKIAkJCQkJCQkJCQkJIG1ha2VEZWZFbGVt KCJ2ZXJib3NlIiwgTlVMTCwgQDMpKTsKKwkJCQkJbi0+ZXhwbGFpbmFibGVfbG9jID0gQDQ7 CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CiAJCXwgRVhQTEFJTiBWRVJCT1NFIEV4 cGxhaW5hYmxlU3RtdApAQCAtMTI3NzcsNiArMTI3NzksNyBAQCBFeHBsYWluU3RtdDoKIAog CQkJCQluLT5xdWVyeSA9ICQzOwogCQkJCQluLT5vcHRpb25zID0gbGlzdF9tYWtlMShtYWtl RGVmRWxlbSgidmVyYm9zZSIsIE5VTEwsIEAyKSk7CisJCQkJCW4tPmV4cGxhaW5hYmxlX2xv YyA9IEAzOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQogCQl8IEVYUExBSU4gJygn IHV0aWxpdHlfb3B0aW9uX2xpc3QgJyknIEV4cGxhaW5hYmxlU3RtdApAQCAtMTI3ODUsNiAr MTI3ODgsNyBAQCBFeHBsYWluU3RtdDoKIAogCQkJCQluLT5xdWVyeSA9ICQ1OwogCQkJCQlu LT5vcHRpb25zID0gJDM7CisJCQkJCW4tPmV4cGxhaW5hYmxlX2xvYyA9IEA1OwogCQkJCQkk JCA9IChOb2RlICopIG47CiAJCQkJfQogCQk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5k ZXggYTkyZGJkYTA3NzAuLmJhZDkzM2Q0ZjBlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o CkBAIC00MTUyLDQgKzQxNTIsNSBAQCB0eXBlZGVmIHN0cnVjdCBFeHBsYWluU3RtdAogCU5v ZGVUYWcJCXR5cGU7CiAJTm9kZQkgICAqcXVlcnk7CQkJLyogdGhlIHF1ZXJ5IChzZWUgY29t bWVudHMgYWJvdmUpICovCiAJTGlzdAkgICAqb3B0aW9uczsJCS8qIGxpc3Qgb2YgRGVmRWxl bSBub2RlcyAqLworCVBhcnNlTG9jICAgZXhwbGFpbmFibGVfbG9jOwogfSBFeHBsYWluU3Rt dDsK --------------lBl4GHYGWTcjc0Q5q0SZ8lHi--