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 1mnbnh-0005Av-QI for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Nov 2021 07:25:41 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mnbng-0002zM-FD for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Nov 2021 07:25:40 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mnbng-0002zD-4m for pgsql-hackers@lists.postgresql.org; Thu, 18 Nov 2021 07:25:40 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mnbnc-0000XE-GF for pgsql-hackers@lists.postgresql.org; Thu, 18 Nov 2021 07:25:39 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTPA id CCBEE60983; Thu, 18 Nov 2021 16:25:30 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.4 at oss.nttdata.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_3cb39153e9863d04254d332d90e9334c" Content-Transfer-Encoding: 7bit Date: Thu, 18 Nov 2021 16:25:30 +0900 From: Ken Kato To: Michael Paquier Cc: pgsql-hackers@lists.postgresql.org Subject: Re: CREATE tab completion In-Reply-To: References: <8d370135aef066659eef8e8fbfa6315b@oss.nttdata.com> User-Agent: Roundcube Webmail/1.4.11 Message-ID: <1e16d01ba570efea94d6d82e4254dc88@oss.nttdata.com> X-Sender: katouknl@oss.nttdata.com List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_3cb39153e9863d04254d332d90e9334c Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed > + else if (Matches("CREATE", "TRANSFORM", "FOR", MatchAny) > + COMPLETE_WITH("LANGUAGE") > + else if (Matches("CREATE", "TRANSFORM", "FOR", MatchAny, > "LANGUAGE") > > Those three lines are wrong, for two different reasons and three > mistakes. You may want to compile your code before sending it :) > > + COMPLETE_WITH_QUERY(Query_for_list_of_schemas > + " UNION SELECT > 'AUTORIZATION'"); > Incorrect completion here, s/AUTORIZATION/AUTHORIZATION/. Thank you for the comments. I am sorry for the compile error and a typo. I will make sure to compile before sending it and double check typos. > "CREATE [TEMP|TEMPORARY] SEQUENCE name AS" could be completed with the > supported types. There are three of them. For this part, I did the following: + else if (TailMatches("CREATE", "SEQUENCE", MatchAny, "AS") || + TailMatches("CREATE", "TEMP|TEMPORARY", "SEQUENCE", MatchAny, "AS")) + COMPLETE_WITH("smallint", "integer", "bigint"); Am I doing this right? or Are there better ways to do it? Best wishes, -- Ken Kato Advanced Computing Technology Center Research and Development Headquarters NTT DATA CORPORATION --=_3cb39153e9863d04254d332d90e9334c Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=create_tab_completion.patch Content-Disposition: attachment; filename=create_tab_completion.patch; size=5168 ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuYwppbmRleCA0ZjcyNGU0NDI4Li5lZmE3YmIxZjVmIDEwMDY0NAotLS0gYS9z cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0 ZS5jCkBAIC0yNTcyLDYgKzI1NzIsMjYgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRl eHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJCUNPTVBMRVRFX1dJVEgoInRydWUiLCAiZmFsc2Ui KTsKIAl9CiAKKwkvKiBDUkVBVEUgQ09OVkVSU0lPTiAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkNS RUFURSIsICJDT05WRVJTSU9OIiwgTWF0Y2hBbnkpIHx8CisJCQkgTWF0Y2hlcygiQ1JFQVRFIiwg IkRFRkFVTFQiLCAiQ09OVkVSU0lPTiIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiRk9S Iik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIkNPTlZFUlNJT04iLCBNYXRjaEFueSwg IkZPUiIpIHx8CisJCQkgTWF0Y2hlcygiQ1JFQVRFIiwgIkRFRkFVTFQiLCAiQ09OVkVSU0lPTiIs IE1hdGNoQW55LCAiRk9SIikpCisJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rf b2ZfZW5jb2RpbmdzKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiQ09OVkVSU0lPTiIs IE1hdGNoQW55LCAiRk9SIiwgTWF0Y2hBbnkpIHx8CisJCQkgTWF0Y2hlcygiQ1JFQVRFIiwgIkRF RkFVTFQiLCAiQ09OVkVSU0lPTiIsIE1hdGNoQW55LCAiRk9SIiwgTWF0Y2hBbnkpKQorCQlDT01Q TEVURV9XSVRIKCJUTyIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJDT05WRVJTSU9O IiwgTWF0Y2hBbnksICJGT1IiLCBNYXRjaEFueSwgIlRPIikgfHwKKwkJCSBNYXRjaGVzKCJDUkVB VEUiLCAiREVGQVVMVCIsICJDT05WRVJTSU9OIiwgTWF0Y2hBbnksICJGT1IiLCBNYXRjaEFueSwg IlRPIikpCisJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfZW5jb2Rpbmdz KTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiQ09OVkVSU0lPTiIsIE1hdGNoQW55LCAi Rk9SIiwgTWF0Y2hBbnksICJUTyIsIE1hdGNoQW55KSB8fAorCQkJIE1hdGNoZXMoIkNSRUFURSIs ICJERUZBVUxUIiwgIkNPTlZFUlNJT04iLCBNYXRjaEFueSwgIkZPUiIsIE1hdGNoQW55LCAiVE8i LCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIkZST00iKTsKKwllbHNlIGlmIChNYXRjaGVz KCJDUkVBVEUiLCAiQ09OVkVSU0lPTiIsIE1hdGNoQW55LCAiRk9SIiwgTWF0Y2hBbnksICJUTyIs IE1hdGNoQW55LCAiRlJPTSIpIHx8CisJCQkgTWF0Y2hlcygiQ1JFQVRFIiwgIkRFRkFVTFQiLCAi Q09OVkVSU0lPTiIsIE1hdGNoQW55LCAiRk9SIiwgTWF0Y2hBbnksICJUTyIsIE1hdGNoQW55LCAi RlJPTSIpKQorCQlDT01QTEVURV9XSVRIX1ZFUlNJT05FRF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9y X2xpc3Rfb2ZfZnVuY3Rpb25zLCBOVUxMKTsKKwogCS8qIENSRUFURSBEQVRBQkFTRSAqLwogCWVs c2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJEQVRBQkFTRSIsIE1hdGNoQW55KSkKIAkJQ09NUExF VEVfV0lUSCgiT1dORVIiLCAiVEVNUExBVEUiLCAiRU5DT0RJTkciLCAiVEFCTEVTUEFDRSIsCkBA IC0yNTgyLDYgKzI2MDIsMTcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGlu dCBzdGFydCwgaW50IGVuZCkKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiREFUQUJBU0Ui LCBNYXRjaEFueSwgIlRFTVBMQVRFIikpCiAJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9y X2xpc3Rfb2ZfdGVtcGxhdGVfZGF0YWJhc2VzKTsKIAorCS8qIENSRUFURSBET01BSU4gKi8KKwll bHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiRE9NQUlOIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVU RV9XSVRIKCJBUyIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJET01BSU4iLCBNYXRj aEFueSwgIkFTIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0 X29mX2RhdGF0eXBlcywgTlVMTCk7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIkRPTUFJ TiIsIE1hdGNoQW55LCAiQVMiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIkNPTExBVEUi LCAiREVGQVVMVCIsICJDT05TVFJBSU5UIiwKKwkJCQkJICAiTk9UIE5VTEwiLCAiTlVMTCIsICJD SEVDSyAoIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIkRPTUFJTiIsIE1hdGNoQW55 LCAiQ09MTEFURSIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlz dF9vZl9jb2xsYXRpb25zLCBOVUxMKTsKKwogCS8qIENSRUFURSBFWFRFTlNJT04gKi8KIAkvKiBD b21wbGV0ZSB3aXRoIGF2YWlsYWJsZSBleHRlbnNpb25zIHJhdGhlciB0aGFuIGluc3RhbGxlZCBv bmVzLiAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJFWFRFTlNJT04iKSkKQEAgLTI2 NjEsNiArMjY5MiwxNCBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0 YXJ0LCBpbnQgZW5kKQogCQkJICFUYWlsTWF0Y2hlcygiRk9SIiwgTWF0Y2hBbnksIE1hdGNoQW55 LCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIigiKTsKIAorCS8qIENSRUFURSBMQU5HVUFH RSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJMQU5HVUFHRSIsIE1hdGNoQW55KSB8 fAorCQkJIE1hdGNoZXMoIkNSRUFURSIsICJPUiIsICJSRVBMQUNFIiwgIkxBTkdVQUdFIiwgTWF0 Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJIQU5ETEVSIik7CisJZWxzZSBpZiAoTWF0Y2hlcygi Q1JFQVRFIiwgIkxBTkdVQUdFIiwgTWF0Y2hBbnksICJIQU5ETEVSIiwgTWF0Y2hBbnkpIHx8CisJ CQkgTWF0Y2hlcygiQ1JFQVRFIiwgIk9SIiwgIlJFUExBQ0UiLCAiTEFOR1VBR0UiLCBNYXRjaEFu eSwgIkhBTkRMRVIiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIklOTElORSIsICJWQUxJ REFUT1IiKTsKKwogCS8qIENSRUFURSBPUiBSRVBMQUNFICovCiAJZWxzZSBpZiAoTWF0Y2hlcygi Q1JFQVRFIiwgIk9SIikpCiAJCUNPTVBMRVRFX1dJVEgoIlJFUExBQ0UiKTsKQEAgLTI4MDIsMTEg KzI4NDEsMjAgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwg aW50IGVuZCkKIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQVMiLCAiT04iLCAiU0VMRUNUfFVQREFU RXxJTlNFUlR8REVMRVRFIiwgIlRPIikpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1 ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcywgTlVMTCk7CiAKKy8qIENSRUFURSBTQ0hFTUEgKi8KKwll bHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiU0NIRU1BIikpCisJCUNPTVBMRVRFX1dJVEgoIkFV VEhPUklaQVRJT04iKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiU0NIRU1BIikgJiYg VGFpbE1hdGNoZXMoIkFVVEhPUklaQVRJT04iKSkKKwkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVy eV9mb3JfbGlzdF9vZl9yb2xlcyk7CisKIC8qIENSRUFURSBTRVFVRU5DRSAtLS0gaXMgYWxsb3dl ZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxNYXRjaGVzICovCiAJZWxzZSBpZiAo VGFpbE1hdGNoZXMoIkNSRUFURSIsICJTRVFVRU5DRSIsIE1hdGNoQW55KSB8fAogCQkJIFRhaWxN YXRjaGVzKCJDUkVBVEUiLCAiVEVNUHxURU1QT1JBUlkiLCAiU0VRVUVOQ0UiLCBNYXRjaEFueSkp Ci0JCUNPTVBMRVRFX1dJVEgoIklOQ1JFTUVOVCBCWSIsICJNSU5WQUxVRSIsICJNQVhWQUxVRSIs ICJOTyIsICJDQUNIRSIsCi0JCQkJCSAgIkNZQ0xFIiwgIk9XTkVEIEJZIiwgIlNUQVJUIFdJVEgi KTsKKwkJQ09NUExFVEVfV0lUSCgiQVMiLCAiSU5DUkVNRU5UIEJZIiwgIk1JTlZBTFVFIiwgIk1B WFZBTFVFIiwgIk5PIiwKKwkJCQkJICAiQ0FDSEUiLCAiQ1lDTEUiLCAiT1dORUQgQlkiLCAiU1RB UlQgV0lUSCIpOworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiU0VRVUVOQ0UiLCBN YXRjaEFueSwgIkFTIikgfHwKKwkJCSBUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlRFTVB8VEVNUE9S QVJZIiwgIlNFUVVFTkNFIiwgTWF0Y2hBbnksICJBUyIpKQorCQlDT01QTEVURV9XSVRIKCJzbWFs bGludCIsICJpbnRlZ2VyIiwgImJpZ2ludCIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVB VEUiLCAiU0VRVUVOQ0UiLCBNYXRjaEFueSwgIk5PIikgfHwKIAkJCSBUYWlsTWF0Y2hlcygiQ1JF QVRFIiwgIlRFTVB8VEVNUE9SQVJZIiwgIlNFUVVFTkNFIiwgTWF0Y2hBbnksICJOTyIpKQogCQlD T01QTEVURV9XSVRIKCJNSU5WQUxVRSIsICJNQVhWQUxVRSIsICJDWUNMRSIpOwpAQCAtMjg4Miw2 ICsyOTMwLDE5IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQs IGludCBlbmQpCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlRFWFQiLCAiU0VBUkNIIiwg IkNPTkZJR1VSQVRJT058RElDVElPTkFSWXxQQVJTRVJ8VEVNUExBVEUiLCBNYXRjaEFueSkpCiAJ CUNPTVBMRVRFX1dJVEgoIigiKTsKIAorLyogQ1JFQVRFIFRSQU5TRk9STSAqLworCWVsc2UgaWYg KE1hdGNoZXMoIkNSRUFURSIsICJUUkFOU0ZPUk0iKSkKKwkJQ09NUExFVEVfV0lUSCgiRk9SIik7 CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlRSQU5TRk9STSIsICJGT1IiKSkKKwkJQ09N UExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfZGF0YXR5cGVzLCBOVUxM KTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiVFJBTlNGT1JNIiwgIkZPUiIsIE1hdGNo QW55KSkKKwkJQ09NUExFVEVfV0lUSCgiTEFOR1VBR0UiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJD UkVBVEUiLCAiVFJBTlNGT1JNIiwgIkZPUiIsIE1hdGNoQW55LCAiTEFOR1VBR0UiKSkKKwl7CisJ CWNvbXBsZXRpb25faW5mb19jaGFycCA9IHByZXYyX3dkOworCQlDT01QTEVURV9XSVRIX1FVRVJZ KFF1ZXJ5X2Zvcl9saXN0X29mX2xhbmd1YWdlcyk7CisJfQorCiAvKiBDUkVBVEUgU1VCU0NSSVBU SU9OICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlNVQlNDUklQVElPTiIsIE1hdGNo QW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQ09OTkVDVElPTiIpOwo= --=_3cb39153e9863d04254d332d90e9334c--