Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nMWCR-0002E1-Mi for pgsql-hackers@arkaria.postgresql.org; Tue, 22 Feb 2022 14:31:32 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nMWCP-0002NU-Em for pgsql-hackers@arkaria.postgresql.org; Tue, 22 Feb 2022 14:31:29 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nMWCN-0002NK-VW for pgsql-hackers@lists.postgresql.org; Tue, 22 Feb 2022 14:31:29 +0000 Received: from out3-smtp.messagingengine.com ([66.111.4.27]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nMWCJ-0007BF-9L for pgsql-hackers@lists.postgresql.org; Tue, 22 Feb 2022 14:31:26 +0000 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 86F755C0241; Tue, 22 Feb 2022 09:31:20 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Tue, 22 Feb 2022 09:31:20 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=ZthDKy8Pqr+9vtRuF CIFwhP104n/LvWy3pYuN42sZNQ=; b=VyC3GfBSGKCw3+KH72p6XpK8bKtnUytPw yDDA3/OJ5+brnUIgddViYwBOgfaYD9Ms087t702UKDqJmxZ1bLz6F537GgF+VFqT XjqbvLTDP5LNSOcWFSaPgFtW7iHwwGVru6opiAgsLryBgrrXY5+YYbFVGcjOP/IG Cz/nXfcsQObFFBiB8UGK+j+H+Bbg8R1DhapzNXRRCX1ysSgU7TZ8162Tbt4ZTXSO nquCPxEBmdQQZXrbn95uxEXl4L8k3J3VWQ8JvWmN64YhHrcPVhdDHWgltBHE34l7 sfqVEczXUHZHePb/zzJCMnUdXnyxuADNhQn6BxLKhl/AFIkmJZgmA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvvddrkeekgdeigecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpegtkfffgggfuffhvfhfjgesmhdtreertdefjeenucfhrhhomheprfgvthgvrhcu gfhishgvnhhtrhgruhhtuceophgvthgvrhdrvghishgvnhhtrhgruhhtsegvnhhtvghrph hrihhsvggusgdrtghomheqnecuggftrfgrthhtvghrnhepkeetteefheevhfdvledtfeeg leeutdekkeekveeifeeuffevjeeujeehffejieejnecuvehluhhsthgvrhfuihiivgeptd enucfrrghrrghmpehmrghilhhfrhhomhepphgvthgvrhdrvghishgvnhhtrhgruhhtsegv nhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 22 Feb 2022 09:31:17 -0500 (EST) Content-Type: multipart/mixed; boundary="------------GjVoOywF0b90zlX0LACwQkLJ" Message-ID: <3199e176-424e-1bef-f180-c1548466c2da@enterprisedb.com> Date: Tue, 22 Feb 2022 15:31:16 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.6.0 Subject: Re: psql - add SHOW_ALL_RESULTS option Content-Language: en-US From: Peter Eisentraut To: Fabien COELHO Cc: "pgsql-hackers@lists.postgresql.org" References: <18c78a01-4a34-9dd4-f78b-6860f1420c8e@enterprisedb.com> <6954328d-96f2-77f7-735f-7ce493a40949@enterprisedb.com> <2570e2ae-fa0f-aac9-f72f-bb59a9983a20@enterprisedb.com> <46259d13-5f90-1475-3c85-d7a597a2b862@enterprisedb.com> <20220113054433.wdjhidtm7gvyhfts@alap3.anarazel.de> <47bcee2e-3e4c-a0ea-daee-9b3e2d65df05@enterprisedb.com> 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. --------------GjVoOywF0b90zlX0LACwQkLJ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit I wrote a few more small tests for psql to address uncovered territory in SendQuery() especially: - \timing - client encoding handling - notifications What's still missing is: - \watch - pagers For \watch, I think one would need something like the current cancel test (since you need to get the psql pid to send a signal to stop the watch). It would work in principle, but it will require more work to refactor the cancel test. For pagers, I don't know. I would be pretty easy to write a simple script that acts as a pass-through pager and check that it is called. There were some discussions earlier in the thread that some version of some patch had broken some use of pagers. Does anyone remember details? Anything worth testing specifically? --------------GjVoOywF0b90zlX0LACwQkLJ Content-Type: text/plain; charset=UTF-8; name="0001-Improve-some-psql-test-code.patch" Content-Disposition: attachment; filename="0001-Improve-some-psql-test-code.patch" Content-Transfer-Encoding: base64 RnJvbSA2ZTc1YzFiZWM3M2YyMTI4Yjk0MTMxMzA1ZTZhMzdiOTcyNTdmN2MzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyMiBGZWIgMjAyMiAxMzo0MjozOCArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMS8yXSBJbXByb3ZlIHNvbWUgcHNxbCB0ZXN0IGNvZGUKClNwbGl0IHBzcWxf bGlrZSgpIGludG8gdHdvIGZ1bmN0aW9ucyBwc3FsX2xpa2UoKSBhbmQgcHNxbF9mYWlsc19s aWtlKCkKYW5kIG1ha2UgdGhlbSBtaXJyb3IgdGhlIGV4aXN0aW5nIGNvbW1hbmRfbGlrZSgp IGFuZApjb21tYW5kX2ZhaWxzX2xpa2UoKSBtb3JlIGNsb3NlbHkuICBJbiBwYXJ0aWN1bGFy LCBmb2xsb3cgdGhlCnVuaXZlcnNhbCBjb252ZW50aW9uIHRoYXQgdGhlIHRlc3QgbmFtZSBp cyB0aGUgbGFzdCBhcmd1bWVudC4KLS0tCiBzcmMvYmluL3BzcWwvdC8wMDFfYmFzaWMucGwg fCA1OSArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wc3FsL3QvMDAxX2Jhc2ljLnBsIGIvc3JjL2Jpbi9wc3FsL3QvMDAxX2Jhc2lj LnBsCmluZGV4IGJhM2RkODQ2YmEuLmY0MTZlMGFiNWUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cHNxbC90LzAwMV9iYXNpYy5wbAorKysgYi9zcmMvYmluL3BzcWwvdC8wMDFfYmFzaWMucGwK QEAgLTEyLDQwICsxMiwzNiBAQAogcHJvZ3JhbV92ZXJzaW9uX29rKCdwc3FsJyk7CiBwcm9n cmFtX29wdGlvbnNfaGFuZGxpbmdfb2soJ3BzcWwnKTsKIAotbXkgKCRzdGRvdXQsICRzdGRl cnIpOwotbXkgJHJlc3VsdDsKLQotIyBFeGVjdXRlIGEgcHNxbCBjb21tYW5kIGFuZCBjaGVj ayBpdHMgcmVzdWx0IHBhdHRlcm5zLgorIyBFeGVjdXRlIGEgcHNxbCBjb21tYW5kIGFuZCBj aGVjayBpdHMgb3V0cHV0Lgogc3ViIHBzcWxfbGlrZQogewogCWxvY2FsICRUZXN0OjpCdWls ZGVyOjpMZXZlbCA9ICRUZXN0OjpCdWlsZGVyOjpMZXZlbCArIDE7CiAKLQlteSAkbm9kZSAg ICAgICAgICAgID0gc2hpZnQ7Ci0JbXkgJHRlc3RfbmFtZSAgICAgICA9IHNoaWZ0OwotCW15 ICRxdWVyeSAgICAgICAgICAgPSBzaGlmdDsKLQlteSAkZXhwZWN0ZWRfc3Rkb3V0ID0gc2hp ZnQ7Ci0JbXkgJGV4cGVjdGVkX3N0ZGVyciA9IHNoaWZ0OworCW15ICgkbm9kZSwgJHNxbCwg JGV4cGVjdGVkX3N0ZG91dCwgJHRlc3RfbmFtZSkgPSBAXzsKKworCW15ICgkcmV0LCAkc3Rk b3V0LCAkc3RkZXJyKSA9ICRub2RlLT5wc3FsKCdwb3N0Z3JlcycsICRzcWwpOworCisJaXMo JHJldCwgICAgMCwgICIkdGVzdF9uYW1lOiBleGl0IGNvZGUgMCIpOworCWlzKCRzdGRlcnIs ICcnLCAiJHRlc3RfbmFtZTogbm8gc3RkZXJyIik7CisJbGlrZSgkc3Rkb3V0LCAkZXhwZWN0 ZWRfc3Rkb3V0LCAiJHRlc3RfbmFtZTogbWF0Y2hlcyIpOworCisJcmV0dXJuOworfQorCisj IEV4ZWN1dGUgYSBwc3FsIGNvbW1hbmQgYW5kIGNoZWNrIHRoYXQgaXQgZmFpbHMgYW5kIGNo ZWNrIHRoZSBzdGRlcnIuCitzdWIgcHNxbF9mYWlsc19saWtlCit7CisJbG9jYWwgJFRlc3Q6 OkJ1aWxkZXI6OkxldmVsID0gJFRlc3Q6OkJ1aWxkZXI6OkxldmVsICsgMTsKIAotCWRpZSAi Y2Fubm90IHNwZWNpZnkgYm90aCBleHBlY3RlZCBzdGRvdXQgYW5kIHN0ZGVyciBoZXJlIgot CSAgaWYgKGRlZmluZWQoJGV4cGVjdGVkX3N0ZG91dCkgJiYgZGVmaW5lZCgkZXhwZWN0ZWRf c3RkZXJyKSk7CisJbXkgKCRub2RlLCAkc3FsLCAkZXhwZWN0ZWRfc3RkZXJyLCAkdGVzdF9u YW1lKSA9IEBfOwogCiAJIyBVc2UgdGhlIGNvbnRleHQgb2YgYSBXQUwgc2VuZGVyLCBzb21l IG9mIHRoZSB0ZXN0cyByZWx5IG9uIHRoYXQuCiAJbXkgKCRyZXQsICRzdGRvdXQsICRzdGRl cnIpID0gJG5vZGUtPnBzcWwoCi0JCSdwb3N0Z3JlcycsICRxdWVyeSwKLQkJb25fZXJyb3Jf ZGllID0+IDAsCisJCSdwb3N0Z3JlcycsICRzcWwsCiAJCXJlcGxpY2F0aW9uICA9PiAnZGF0 YWJhc2UnKTsKIAotCWlmIChkZWZpbmVkKCRleHBlY3RlZF9zdGRvdXQpKQotCXsKLQkJaXMo JHJldCwgICAgMCwgICIkdGVzdF9uYW1lOiBleHBlY3RlZCByZXN1bHQgY29kZSIpOwotCQlp cygkc3RkZXJyLCAnJywgIiR0ZXN0X25hbWU6IG5vIHN0ZGVyciIpOwotCQlsaWtlKCRzdGRv dXQsICRleHBlY3RlZF9zdGRvdXQsICIkdGVzdF9uYW1lOiBzdGRvdXQgbWF0Y2hlcyIpOwot CX0KLQlpZiAoZGVmaW5lZCgkZXhwZWN0ZWRfc3RkZXJyKSkKLQl7Ci0JCWlzbnQoJHJldCwg MCwgIiR0ZXN0X25hbWU6IGV4cGVjdGVkIHJlc3VsdCBjb2RlIik7Ci0JCWxpa2UoJHN0ZGVy ciwgJGV4cGVjdGVkX3N0ZGVyciwgIiR0ZXN0X25hbWU6IHN0ZGVyciBtYXRjaGVzIik7Ci0J fQorCWlzbnQoJHJldCwgMCwgIiR0ZXN0X25hbWU6IGV4aXQgY29kZSBub3QgMCIpOworCWxp a2UoJHN0ZGVyciwgJGV4cGVjdGVkX3N0ZGVyciwgIiR0ZXN0X25hbWU6IG1hdGNoZXMiKTsK IAogCXJldHVybjsKIH0KQEAgLTUzLDYgKzQ5LDkgQEAgc3ViIHBzcWxfbGlrZQogIyB0ZXN0 IC0taGVscD1mb28sIGFuYWxvZ291cyB0byBwcm9ncmFtX2hlbHBfb2soKQogZm9yZWFjaCBt eSAkYXJnIChxdyhjb21tYW5kcyB2YXJpYWJsZXMpKQogeworCW15ICgkc3Rkb3V0LCAkc3Rk ZXJyKTsKKwlteSAkcmVzdWx0OworCiAJJHJlc3VsdCA9IElQQzo6UnVuOjpydW4gWyAncHNx bCcsICItLWhlbHA9JGFyZyIgXSwgJz4nLCBcJHN0ZG91dCwgJzI+JywKIAkgIFwkc3RkZXJy OwogCW9rKCRyZXN1bHQsICJwc3FsIC0taGVscD0kYXJnIGV4aXQgY29kZSAwIik7CkBAIC03 MCwxNSArNjksMTUgQEAgc3ViIHBzcWxfbGlrZQogfSk7CiAkbm9kZS0+c3RhcnQ7CiAKLXBz cWxfbGlrZSgkbm9kZSwgJ1xjb3B5cmlnaHQnLCAnXGNvcHlyaWdodCcsIHFyL0NvcHlyaWdo dC8sIHVuZGVmKTsKLXBzcWxfbGlrZSgkbm9kZSwgJ1xoZWxwIHdpdGhvdXQgYXJndW1lbnRz JywgJ1xoZWxwJywgcXIvQUxURVIvLCB1bmRlZik7Ci1wc3FsX2xpa2UoJG5vZGUsICdcaGVs cCB3aXRoIGFyZ3VtZW50JywgJ1xoZWxwIFNFTEVDVCcsIHFyL1NFTEVDVC8sIHVuZGVmKTsK K3BzcWxfbGlrZSgkbm9kZSwgJ1xjb3B5cmlnaHQnLCBxci9Db3B5cmlnaHQvLCAnXGNvcHly aWdodCcpOworcHNxbF9saWtlKCRub2RlLCAnXGhlbHAnLCBxci9BTFRFUi8sICdcaGVscCB3 aXRob3V0IGFyZ3VtZW50cycpOworcHNxbF9saWtlKCRub2RlLCAnXGhlbHAgU0VMRUNUJywg cXIvU0VMRUNULywgJ1xoZWxwIHdpdGggYXJndW1lbnQnKTsKIAogIyBUZXN0IGNsZWFuIGhh bmRsaW5nIG9mIHVuc3VwcG9ydGVkIHJlcGxpY2F0aW9uIGNvbW1hbmQgcmVzcG9uc2VzCi1w c3FsX2xpa2UoCitwc3FsX2ZhaWxzX2xpa2UoCiAJJG5vZGUsCi0JJ2hhbmRsaW5nIG9mIHVu ZXhwZWN0ZWQgUFFyZXN1bHRTdGF0dXMnLAogCSdTVEFSVF9SRVBMSUNBVElPTiAwLzAnLAot CXVuZGVmLCBxci91bmV4cGVjdGVkIFBRcmVzdWx0U3RhdHVzOiA4JC8pOworCXFyL3VuZXhw ZWN0ZWQgUFFyZXN1bHRTdGF0dXM6IDgkLywKKwknaGFuZGxpbmcgb2YgdW5leHBlY3RlZCBQ UXJlc3VsdFN0YXR1cycpOwogCiBkb25lX3Rlc3RpbmcoKTsKLS0gCjIuMzUuMQoK --------------GjVoOywF0b90zlX0LACwQkLJ Content-Type: text/plain; charset=UTF-8; name="0002-psql-Additional-tests.patch" Content-Disposition: attachment; filename="0002-psql-Additional-tests.patch" Content-Transfer-Encoding: base64 RnJvbSAxODllOTc3ZTQ3YzUwNTIzMDE5NTU1MTgzM2UwYTYxZWM3MWRjZWQzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyMiBGZWIgMjAyMiAxNDoyMDowNSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMi8yXSBwc3FsOiBBZGRpdGlvbmFsIHRlc3RzCgpBZGQgYSBmZXcgVEFQIHRl c3RzIGZvciB0aGluZ3MgdGhhdCBoYXBwZW4gd2hpbGUgYSB1c2VyIHF1ZXJ5IGlzIGJlaW5n IHNlbnQ6CgotIFx0aW1pbmcKLSBjbGllbnQgZW5jb2RpbmcgaGFuZGxpbmcKLSBub3RpZmlj YXRpb25zCi0tLQogc3JjL2Jpbi9wc3FsL3QvMDAxX2Jhc2ljLnBsIHwgMzcgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDM2IGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdC8w MDFfYmFzaWMucGwgYi9zcmMvYmluL3BzcWwvdC8wMDFfYmFzaWMucGwKaW5kZXggZjQxNmUw YWI1ZS4uNDRlY2QwNWFkZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3QvMDAxX2Jhc2lj LnBsCisrKyBiL3NyYy9iaW4vcHNxbC90LzAwMV9iYXNpYy5wbApAQCAtNjAsNyArNjAsNyBA QCBzdWIgcHNxbF9mYWlsc19saWtlCiB9CiAKIG15ICRub2RlID0gUG9zdGdyZVNRTDo6VGVz dDo6Q2x1c3Rlci0+bmV3KCdtYWluJyk7Ci0kbm9kZS0+aW5pdDsKKyRub2RlLT5pbml0KGV4 dHJhID0+IFsgJy0tbG9jYWxlPUMnLCAnLS1lbmNvZGluZz1VVEY4JyBdKTsKICRub2RlLT5h cHBlbmRfY29uZigKIAkncG9zdGdyZXNxbC5jb25mJywgcXsKIHdhbF9sZXZlbCA9ICdsb2dp Y2FsJwpAQCAtODAsNCArODAsMzkgQEAgc3ViIHBzcWxfZmFpbHNfbGlrZQogCXFyL3VuZXhw ZWN0ZWQgUFFyZXN1bHRTdGF0dXM6IDgkLywKIAknaGFuZGxpbmcgb2YgdW5leHBlY3RlZCBQ UXJlc3VsdFN0YXR1cycpOwogCisjIHRlc3QgXHRpbWluZworcHNxbF9saWtlKAorCSRub2Rl LAorCSdcdGltaW5nIG9uCitTRUxFQ1QgMScsCisJcXIvXjEkCiteVGltZTogXGQrLlxkXGRc ZCBtcy9tLAorCSdcdGltaW5nJyk7CisKKyMgdGVzdCB0aGF0IEVOQ09ESU5HIHZhcmlhYmxl IGlzIHNldCBhbmQgdGhhdCBpdCBpcyB1cGRhdGVkIHdoZW4KKyMgY2xpZW50IGVuY29kaW5n IGlzIGNoYW5nZWQKK3BzcWxfbGlrZSgKKwkkbm9kZSwKKwknXGVjaG8gOkVOQ09ESU5HCitz ZXQgY2xpZW50X2VuY29kaW5nID0gTEFUSU4xOworXGVjaG8gOkVOQ09ESU5HJywKKwlxci9e VVRGOCQKK15MQVRJTjEkL20sCisJJ0VOQ09ESU5HIHZhcmlhYmxlIGlzIHNldCBhbmQgdXBk YXRlZCcpOworCisjIHRlc3QgTElTVEVOL05PVElGWQorcHNxbF9saWtlKAorCSRub2RlLAor CSdMSVNURU4gZm9vOworTk9USUZZIGZvbzsnLAorCXFyL15Bc3luY2hyb25vdXMgbm90aWZp Y2F0aW9uICJmb28iIHJlY2VpdmVkIGZyb20gc2VydmVyIHByb2Nlc3Mgd2l0aCBQSUQgXGQr XC4kLywKKwknbm90aWZpY2F0aW9uJyk7CisKK3BzcWxfbGlrZSgKKwkkbm9kZSwKKwkiTElT VEVOIGZvbzsKK05PVElGWSBmb28sICdiYXInOyIsCisJcXIvXkFzeW5jaHJvbm91cyBub3Rp ZmljYXRpb24gImZvbyIgd2l0aCBwYXlsb2FkICJiYXIiIHJlY2VpdmVkIGZyb20gc2VydmVy IHByb2Nlc3Mgd2l0aCBQSUQgXGQrXC4kLywKKwknbm90aWZpY2F0aW9uIHdpdGggcGF5bG9h ZCcpOworCiBkb25lX3Rlc3RpbmcoKTsKLS0gCjIuMzUuMQoK --------------GjVoOywF0b90zlX0LACwQkLJ--