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 1uCYRP-00Gjc1-1l for pgsql-hackers@arkaria.postgresql.org; Wed, 07 May 2025 06:39:39 +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 1uCYRO-00C425-0x for pgsql-hackers@arkaria.postgresql.org; Wed, 07 May 2025 06:39:38 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uCYRN-00C41x-NF for pgsql-hackers@lists.postgresql.org; Wed, 07 May 2025 06:39:37 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1uCYRJ-000aF2-20 for pgsql-hackers@postgresql.org; Wed, 07 May 2025 06:39:37 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTPA id D925F61B6C for ; Wed, 7 May 2025 15:39:26 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at oss.nttdata.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_4454c502bc344dba0390c43df3f40126" Content-Transfer-Encoding: 7bit Date: Wed, 07 May 2025 15:39:26 +0900 From: torikoshia To: Pgsql Hackers Subject: Improve tab completion for COPY User-Agent: Roundcube Webmail/1.4.11 Message-ID: <079e7a2c801f252ae8d522b772790ed7@oss.nttdata.com> X-Sender: torikoshia@oss.nttdata.com List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_4454c502bc344dba0390c43df3f40126 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed Hi, I noticed that REJECT_LIMIT, an option available for COPY FROM, is not currently supported in psql's tab completion. Additionally, some options are only valid for COPY FROM or COPY TO, i.e. FREEZE, ON_ERROR, FORCE_QUOTE, but psql currently suggests them for both COPY FROM and COPY TO. As the number of COPY options continues to grow, I feel that having irrelevant suggestions makes tab completion noisier. Attached patch splits the tab completion rules between COPY FROM and COPY TO, so that only the appropriate options are suggested for each. What do you think? Regards, -- Atsushi Torikoshi Seconded from NTT DATA GROUP CORPORATION to SRA OSS K.K. --=_4454c502bc344dba0390c43df3f40126 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v1-0001-Improve-tab-completion-for-COPY-WITH-options.patch Content-Disposition: attachment; filename=v1-0001-Improve-tab-completion-for-COPY-WITH-options.patch; size=2593 RnJvbSA5ZWZlY2YzMGY0YzI1ZjdjMDQ1N2I2NzkzMzhmOWNmNGJiZjAzZWM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpQHNyYW9zcy5j by5qcD4KRGF0ZTogV2VkLCA3IE1heSAyMDI1IDE1OjE0OjE1ICswOTAwClN1YmplY3Q6IFtQQVRD SCB2MV0gSW1wcm92ZSB0YWIgY29tcGxldGlvbiBmb3IgQ09QWSBXSVRIIG9wdGlvbnMKClNwbGl0 IHRhYiBjb21wbGV0aW9uIHJ1bGVzIGZvciBDT1BZIEZST00gYW5kIENPUFkgVE8gdG8gcHJvdmlk ZQphY2N1cmF0ZSBzdWdnZXN0aW9ucy4KQWxzbywgYWRkIGNvbXBsZXRpb24gZm9yIHRoZSBSRUpF Q1RfTElNSVQgb3B0aW9uLCB3aGljaCBpcyB2YWxpZApvbmx5IGZvciBDT1BZIEZST00uCi0tLQog c3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIHwgMTggKysrKysrKysrKystLS0tLS0tCiAx IGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmluLmMKaW5kZXggYzkxNmI5Mjk5YS4uZDgxMmZjYWIxMiAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuaW4uYwpAQCAtMzI3OCwyMyArMzI3OCwyNyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQg cGF0dGVybl9pZCwKIAllbHNlIGlmIChNYXRjaGVzKCJDT1BZfFxcY29weSIsIE1hdGNoQW55LCAi RlJPTSIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiV0lUSCAoIiwgIldIRVJFIik7CiAK LQkvKiBDb21wbGV0ZSBDT1BZIDxzdGg+IEZST018VE8gZmlsZW5hbWUgV0lUSCAoICovCi0JZWxz ZSBpZiAoTWF0Y2hlcygiQ09QWXxcXGNvcHkiLCBNYXRjaEFueSwgIkZST018VE8iLCBNYXRjaEFu eSwgIldJVEgiLCAiKCIpKQotCQlDT01QTEVURV9XSVRIKCJGT1JNQVQiLCAiRlJFRVpFIiwgIkRF TElNSVRFUiIsICJOVUxMIiwKLQkJCQkJICAiSEVBREVSIiwgIlFVT1RFIiwgIkVTQ0FQRSIsICJG T1JDRV9RVU9URSIsCisJLyogQ29tcGxldGUgQ09QWSA8c3RoPiBGUk9NIGZpbGVuYW1lIFdJVEgg KCAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkNPUFl8XFxjb3B5IiwgTWF0Y2hBbnksICJGUk9NIiwg TWF0Y2hBbnksICJXSVRIIiwgIigiKSkKKwkJQ09NUExFVEVfV0lUSCgiRk9STUFUIiwgIkZSRUVa RSIsICJERUxJTUlURVIiLCAiTlVMTCIsICJIRUFERVIiLCAiUVVPVEUiLCAiRVNDQVBFIiwKIAkJ CQkJICAiRk9SQ0VfTk9UX05VTEwiLCAiRk9SQ0VfTlVMTCIsICJFTkNPRElORyIsICJERUZBVUxU IiwKLQkJCQkJICAiT05fRVJST1IiLCAiTE9HX1ZFUkJPU0lUWSIpOworCQkJCQkgICJPTl9FUlJP UiIsICJMT0dfVkVSQk9TSVRZIiwgIlJFSkVDVF9MSU1JVCIpOworCisJLyogQ29tcGxldGUgQ09Q WSA8c3RoPiBUTyBmaWxlbmFtZSBXSVRIICggKi8KKwllbHNlIGlmIChNYXRjaGVzKCJDT1BZfFxc Y29weSIsIE1hdGNoQW55LCAiVE8iLCBNYXRjaEFueSwgIldJVEgiLCAiKCIpKQorCQlDT01QTEVU RV9XSVRIKCJGT1JNQVQiLCAiREVMSU1JVEVSIiwgIk5VTEwiLCAiSEVBREVSIiwgIlFVT1RFIiwg IkVTQ0FQRSIsCisJCQkJCSAgIkZPUkNFX1FVT1RFIiwgIkVOQ09ESU5HIik7CiAKIAkvKiBDb21w bGV0ZSBDT1BZIDxzdGg+IEZST018VE8gZmlsZW5hbWUgV0lUSCAoRk9STUFUICovCiAJZWxzZSBp ZiAoTWF0Y2hlcygiQ09QWXxcXGNvcHkiLCBNYXRjaEFueSwgIkZST018VE8iLCBNYXRjaEFueSwg IldJVEgiLCAiKCIsICJGT1JNQVQiKSkKIAkJQ09NUExFVEVfV0lUSCgiYmluYXJ5IiwgImNzdiIs ICJ0ZXh0Iik7CiAKIAkvKiBDb21wbGV0ZSBDT1BZIDxzdGg+IEZST00gZmlsZW5hbWUgV0lUSCAo T05fRVJST1IgKi8KLQllbHNlIGlmIChNYXRjaGVzKCJDT1BZfFxcY29weSIsIE1hdGNoQW55LCAi RlJPTXxUTyIsIE1hdGNoQW55LCAiV0lUSCIsICIoIiwgIk9OX0VSUk9SIikpCisJZWxzZSBpZiAo TWF0Y2hlcygiQ09QWXxcXGNvcHkiLCBNYXRjaEFueSwgIkZST00iLCBNYXRjaEFueSwgIldJVEgi LCAiKCIsICJPTl9FUlJPUiIpKQogCQlDT01QTEVURV9XSVRIKCJzdG9wIiwgImlnbm9yZSIpOwog CiAJLyogQ29tcGxldGUgQ09QWSA8c3RoPiBGUk9NIGZpbGVuYW1lIFdJVEggKExPR19WRVJCT1NJ VFkgKi8KLQllbHNlIGlmIChNYXRjaGVzKCJDT1BZfFxcY29weSIsIE1hdGNoQW55LCAiRlJPTXxU TyIsIE1hdGNoQW55LCAiV0lUSCIsICIoIiwgIkxPR19WRVJCT1NJVFkiKSkKKwllbHNlIGlmIChN YXRjaGVzKCJDT1BZfFxcY29weSIsIE1hdGNoQW55LCAiRlJPTSIsIE1hdGNoQW55LCAiV0lUSCIs ICIoIiwgIkxPR19WRVJCT1NJVFkiKSkKIAkJQ09NUExFVEVfV0lUSCgic2lsZW50IiwgImRlZmF1 bHQiLCAidmVyYm9zZSIpOwogCiAJLyogQ29tcGxldGUgQ09QWSA8c3RoPiBGUk9NIDxzdGg+IFdJ VEggKDxvcHRpb25zPikgKi8KCmJhc2UtY29tbWl0OiBiNTYwY2U3ODg0YTMyYmE2NDA5YWRhYjM0 MGI5NzMyZGNkMjEwMjg0Ci0tIAoyLjQzLjAKCg== --=_4454c502bc344dba0390c43df3f40126--