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 1oYOS3-00042D-1m for pgsql-hackers@arkaria.postgresql.org; Wed, 14 Sep 2022 09:12:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oYOS1-0007xM-Pt for pgsql-hackers@arkaria.postgresql.org; Wed, 14 Sep 2022 09:12:57 +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 1oYOS1-0007xD-Ck for pgsql-hackers@lists.postgresql.org; Wed, 14 Sep 2022 09:12:57 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oYORy-00054E-UM for pgsql-hackers@postgresql.org; Wed, 14 Sep 2022 09:12:56 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTPA id 6DB1960710; Wed, 14 Sep 2022 18:12:52 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.7 at oss.nttdata.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_c04532aca610568ea9fc273b43e1f3c4" Content-Transfer-Encoding: 7bit Date: Wed, 14 Sep 2022 18:12:52 +0900 From: bt22kawamotok To: Fujii Masao Cc: Shinya Kato , pgsql-hackers@postgresql.org Subject: Re: [PATCH]Feature improvement for MERGE tab completion In-Reply-To: <23586a9b-8978-61dc-0531-03acff3a7b90@oss.nttdata.com> References: <9f1ad2a87a58cd5e7d64f3993130958d@oss.nttdata.com> <359a46c295eae938d84552c11818ab62@oss.nttdata.com> <7d7eef0f596e449746766ff4fb7c9061@oss.nttdata.com> <6c943aa7b6064b56e7ebeb901f7c24b4@oss.nttdata.com> <5b2e2880da33f6356931beb5c0d68c84@oss.nttdata.com> <23586a9b-8978-61dc-0531-03acff3a7b90@oss.nttdata.com> User-Agent: Roundcube Webmail/1.4.11 Message-ID: <8f1bd2324f335b27a9a7c84562e2a90b@oss.nttdata.com> X-Sender: bt22kawamotok@oss.nttdata.com List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_c04532aca610568ea9fc273b43e1f3c4 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed > + else if (TailMatches("MERGE", "INTO", MatchAny, "USING") || > + TailMatches("MERGE", "INTO", MatchAny, MatchAny, "USING") || > + TailMatches("MERGE", "INTO", MatchAny, "AS", MatchAny, "USING")) > COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables); > > + else if (TailMatches("MERGE", "INTO", MatchAny, "AS", MatchAny, > "USING") || > + TailMatches("MERGE", "INTO", MatchAny, MatchAny, "USING")) > COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables); > > The latter seems redundant and can be removed. The former seems to > cover all the cases where the latter covers. > + else if (TailMatches("USING", MatchAny, "ON", MatchAny) || > + TailMatches("USING", MatchAny, "ON", MatchAny, > MatchAnyExcept("When"), MatchAnyExcept("When")) || > + TailMatches("USING", MatchAny, "AS", MatchAny, "ON", MatchAny) || > + TailMatches("USING", MatchAny, "AS", MatchAny, "ON", MatchAny, > MatchAnyExcept("When"), MatchAnyExcept("When")) || > + TailMatches("USING", MatchAny, MatchAny, "ON", MatchAny) || > + TailMatches("USING", MatchAny, MatchAny, "ON", MatchAny, > MatchAnyExcept("When"), MatchAnyExcept("When"))) > > "When" should be "WHEN"? > > > Regards, Thanks for reviewing. Sorry for making such a simple mistake. I fixed it in v6. > Not only table but also view, foreign table, etc can be specified after > USING in MERGE command. So ISTM that Query_for_list_of_selectables > should be used at the above tab-completion, instead of > Query_for_list_of_tables. > Thought? That's nice idea! I took that in v6. Regards, Kotaro Kawamoto --=_c04532aca610568ea9fc273b43e1f3c4 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=fix_tab_completion_merge_v6.patch Content-Disposition: attachment; filename=fix_tab_completion_merge_v6.patch; size=4776 ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuYwppbmRleCA2MmEzOTc3OWI5Li43MGFmNWFjZjEyIDEwMDY0NAotLS0gYS9z cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0 ZS5jCkBAIC00MDYzLDIzICs0MDYzLDI1IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0 ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1 ZXJ5X2Zvcl9saXN0X29mX21lcmdldGFyZ2V0cyk7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIk1F UkdFIiwgIklOVE8iLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIlVTSU5HIiwgIkFTIik7 Ci0JZWxzZSBpZiAoVGFpbE1hdGNoZXMoIk1FUkdFIiwgIklOVE8iLCBNYXRjaEFueSwgIlVTSU5H IikpCi0JCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxl cyk7CiAJLyogd2l0aCBbQVNdIGFsaWFzICovCi0JZWxzZSBpZiAoVGFpbE1hdGNoZXMoIk1FUkdF IiwgIklOVE8iLCBNYXRjaEFueSwgIkFTIiwgTWF0Y2hBbnkpKQotCQlDT01QTEVURV9XSVRIKCJV U0lORyIpOwotCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJNRVJHRSIsICJJTlRPIiwgTWF0Y2hBbnks IE1hdGNoQW55KSkKKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiTUVSR0UiLCAiSU5UTyIsIE1hdGNo QW55LCAiQVMiLCBNYXRjaEFueSkgfHwKKwkJCSBUYWlsTWF0Y2hlcygiTUVSR0UiLCAiSU5UTyIs IE1hdGNoQW55LCBNYXRjaEFueUV4Y2VwdCgiQVMiKSkpCiAJCUNPTVBMRVRFX1dJVEgoIlVTSU5H Iik7Ci0JZWxzZSBpZiAoVGFpbE1hdGNoZXMoIk1FUkdFIiwgIklOVE8iLCBNYXRjaEFueSwgIkFT IiwgTWF0Y2hBbnksICJVU0lORyIpKQotCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVy eV9mb3JfbGlzdF9vZl90YWJsZXMpOwotCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJNRVJHRSIsICJJ TlRPIiwgTWF0Y2hBbnksIE1hdGNoQW55LCAiVVNJTkciKSkKLQkJQ09NUExFVEVfV0lUSF9TQ0hF TUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzKTsKKwllbHNlIGlmIChUYWlsTWF0Y2hl cygiTUVSR0UiLCAiSU5UTyIsIE1hdGNoQW55LCAiVVNJTkciKSB8fAorCQkJIFRhaWxNYXRjaGVz KCJNRVJHRSIsICJJTlRPIiwgTWF0Y2hBbnksICJBUyIsIE1hdGNoQW55LCAiVVNJTkciKSB8fAor CQkJIFRhaWxNYXRjaGVzKCJNRVJHRSIsICJJTlRPIiwgTWF0Y2hBbnksIE1hdGNoQW55LCAiVVNJ TkciKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2Zfc2Vs ZWN0YWJsZXMpOworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJNRVJHRSIsICJJTlRPIiwgTWF0Y2hB bnksICJVU0lORyIsIE1hdGNoQW55KSB8fAorCQkJIFRhaWxNYXRjaGVzKCJNRVJHRSIsICJJTlRP IiwgTWF0Y2hBbnksIE1hdGNoQW55LCAiVVNJTkciLCBNYXRjaEFueSkgfHwKKwkJCSBUYWlsTWF0 Y2hlcygiTUVSR0UiLCAiSU5UTyIsIE1hdGNoQW55LCAiQVMiLCBNYXRjaEFueSwgIlVTSU5HIiwg TWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJBUyIsICJPTiIpOwogCS8qIE9OICovCi0JZWxz ZSBpZiAoVGFpbE1hdGNoZXMoIk1FUkdFIiwgIklOVE8iLCBNYXRjaEFueSwgIlVTSU5HIiwgTWF0 Y2hBbnkpKQotCQlDT01QTEVURV9XSVRIKCJPTiIpOwotCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJJ TlRPIiwgTWF0Y2hBbnksICJBUyIsIE1hdGNoQW55LCAiVVNJTkciLCBNYXRjaEFueSwgIkFTIiwg TWF0Y2hBbnkpKQotCQlDT01QTEVURV9XSVRIKCJPTiIpOwotCWVsc2UgaWYgKFRhaWxNYXRjaGVz KCJJTlRPIiwgTWF0Y2hBbnksIE1hdGNoQW55LCAiVVNJTkciLCBNYXRjaEFueSwgTWF0Y2hBbnkp KQorCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJNRVJHRSIsICJJTlRPIiwgTWF0Y2hBbnksICJVU0lO RyIsIE1hdGNoQW55LCBNYXRjaEFueUV4Y2VwdCgiT058QVMiKSkgfHwKKwkJCSBUYWlsTWF0Y2hl cygiTUVSR0UiLCAiSU5UTyIsIE1hdGNoQW55LCAiVVNJTkciLCBNYXRjaEFueSwgIkFTIiwgTWF0 Y2hBbnkpIHx8CisJCQkgVGFpbE1hdGNoZXMoIk1FUkdFIiwgIklOVE8iLCBNYXRjaEFueSwgTWF0 Y2hBbnksICJVU0lORyIsIE1hdGNoQW55LCBNYXRjaEFueUV4Y2VwdCgiT058QVMiKSkgfHwKKwkJ CSBUYWlsTWF0Y2hlcygiTUVSR0UiLCAiSU5UTyIsIE1hdGNoQW55LCBNYXRjaEFueSwgIlVTSU5H IiwgTWF0Y2hBbnksICJBUyIsIE1hdGNoQW55KSB8fAorCQkJIFRhaWxNYXRjaGVzKCJNRVJHRSIs ICJJTlRPIiwgTWF0Y2hBbnksICJBUyIsIE1hdGNoQW55LCAiVVNJTkciLCBNYXRjaEFueSwgTWF0 Y2hBbnlFeGNlcHQoIk9OfEFTIikpIHx8CisJCQkgVGFpbE1hdGNoZXMoIk1FUkdFIiwgIklOVE8i LCBNYXRjaEFueSwgIkFTIiwgTWF0Y2hBbnksICJVU0lORyIsIE1hdGNoQW55LCAiQVMiLCBNYXRj aEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIk9OIik7CiAJLyogT04gY29uZGl0aW9uICovCiAJZWxz ZSBpZiAoVGFpbE1hdGNoZXMoIklOVE8iLCBNYXRjaEFueSwgIlVTSU5HIiwgTWF0Y2hBbnksICJP TiIpKQpAQCAtNDA4OSwxOCArNDA5MSwyNSBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAq dGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJJTlRPIiwg TWF0Y2hBbnksIE1hdGNoQW55LCAiVVNJTkciLCBNYXRjaEFueSwgTWF0Y2hBbnksICJPTiIpKQog CQlDT01QTEVURV9XSVRIX0FUVFIocHJldjZfd2QpOwogCS8qIFdIRU4gW05PVF0gTUFUQ0hFRCAq LwotCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJVU0lORyIsIE1hdGNoQW55LCAiT04iLCBNYXRjaEFu eSkpCi0JCUNPTVBMRVRFX1dJVEgoIldIRU4gTUFUQ0hFRCIsICJXSEVOIE5PVCBNQVRDSEVEIik7 Ci0JZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlVTSU5HIiwgTWF0Y2hBbnksICJBUyIsIE1hdGNoQW55 LCAiT04iLCBNYXRjaEFueSkpCisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlVTSU5HIiwgTWF0Y2hB bnksICJPTiIsIE1hdGNoQW55KSB8fAorCQkJIFRhaWxNYXRjaGVzKCJVU0lORyIsIE1hdGNoQW55 LCAiT04iLCBNYXRjaEFueSwgTWF0Y2hBbnlFeGNlcHQoIldIRU4iKSwgTWF0Y2hBbnlFeGNlcHQo IldIRU4iKSkgfHwKKwkJCSBUYWlsTWF0Y2hlcygiVVNJTkciLCBNYXRjaEFueSwgIkFTIiwgTWF0 Y2hBbnksICJPTiIsIE1hdGNoQW55KSB8fAorCQkJIFRhaWxNYXRjaGVzKCJVU0lORyIsIE1hdGNo QW55LCAiQVMiLCBNYXRjaEFueSwgIk9OIiwgTWF0Y2hBbnksIE1hdGNoQW55RXhjZXB0KCJXSEVO IiksIE1hdGNoQW55RXhjZXB0KCJXSEVOIikpIHx8CisJCQkgVGFpbE1hdGNoZXMoIlVTSU5HIiwg TWF0Y2hBbnksIE1hdGNoQW55LCAiT04iLCBNYXRjaEFueSkgfHwKKwkJCSBUYWlsTWF0Y2hlcygi VVNJTkciLCBNYXRjaEFueSwgTWF0Y2hBbnksICJPTiIsIE1hdGNoQW55LCBNYXRjaEFueUV4Y2Vw dCgiV0hFTiIpLCBNYXRjaEFueUV4Y2VwdCgiV0hFTiIpKSkKIAkJQ09NUExFVEVfV0lUSCgiV0hF TiBNQVRDSEVEIiwgIldIRU4gTk9UIE1BVENIRUQiKTsKLQllbHNlIGlmIChUYWlsTWF0Y2hlcygi VVNJTkciLCBNYXRjaEFueSwgTWF0Y2hBbnksICJPTiIsIE1hdGNoQW55KSkKLQkJQ09NUExFVEVf V0lUSCgiV0hFTiBNQVRDSEVEIiwgIldIRU4gTk9UIE1BVENIRUQiKTsKLQllbHNlIGlmIChUYWls TWF0Y2hlcygiV0hFTiIsICJNQVRDSEVEIikpCi0JCUNPTVBMRVRFX1dJVEgoIlRIRU4iLCAiQU5E Iik7Ci0JZWxzZSBpZiAoVGFpbE1hdGNoZXMoIldIRU4iLCAiTk9UIiwgIk1BVENIRUQiKSkKKwll bHNlIGlmIChUYWlsTWF0Y2hlcygiVVNJTkciLCBNYXRjaEFueSwgIk9OIiwgTWF0Y2hBbnksICJX SEVOIikgfHwKKwkJCSBUYWlsTWF0Y2hlcygiVVNJTkciLCBNYXRjaEFueSwgIk9OIiwgTWF0Y2hB bnksIE1hdGNoQW55LCBNYXRjaEFueSwgIldIRU4iKSB8fAorCQkJIFRhaWxNYXRjaGVzKCJVU0lO RyIsIE1hdGNoQW55LCAiQVMiLCBNYXRjaEFueSwgIk9OIiwgTWF0Y2hBbnksICJXSEVOIikgfHwK KwkJCSBUYWlsTWF0Y2hlcygiVVNJTkciLCBNYXRjaEFueSwgIkFTIiwgTWF0Y2hBbnksICJPTiIs IE1hdGNoQW55LCBNYXRjaEFueSwgTWF0Y2hBbnksICJXSEVOIikgfHwKKwkJCSBUYWlsTWF0Y2hl cygiVVNJTkciLCBNYXRjaEFueSwgTWF0Y2hBbnksICJPTiIsIE1hdGNoQW55LCAiV0hFTiIpIHx8 CisJCQkgVGFpbE1hdGNoZXMoIlVTSU5HIiwgTWF0Y2hBbnksIE1hdGNoQW55LCAiT04iLCBNYXRj aEFueSwgTWF0Y2hBbnksIE1hdGNoQW55LCAiV0hFTiIpKQorCQlDT01QTEVURV9XSVRIKCJNQVRD SEVEIiwgIk5PVCBNQVRDSEVEIik7CisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIldIRU4iLCAiTUFU Q0hFRCIpIHx8CisJCQkgVGFpbE1hdGNoZXMoIldIRU4iLCAiTk9UIiwgIk1BVENIRUQiKSkKIAkJ Q09NUExFVEVfV0lUSCgiVEhFTiIsICJBTkQiKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiV0hF TiIsICJNQVRDSEVEIiwgIlRIRU4iKSkKLQkJQ09NUExFVEVfV0lUSCgiVVBEQVRFIiwgIkRFTEVU RSIpOworCQlDT01QTEVURV9XSVRIKCJVUERBVEUiLCAiREVMRVRFIiwgIkRPIE5PVEhJTkciKTsK IAllbHNlIGlmIChUYWlsTWF0Y2hlcygiV0hFTiIsICJOT1QiLCAiTUFUQ0hFRCIsICJUSEVOIikp CiAJCUNPTVBMRVRFX1dJVEgoIklOU0VSVCIsICJETyBOT1RISU5HIik7CiAK --=_c04532aca610568ea9fc273b43e1f3c4--