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 1w4PRp-002AUa-1r for pgsql-hackers@arkaria.postgresql.org; Sun, 22 Mar 2026 20:30:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w4PRm-00EAlL-1I for pgsql-hackers@arkaria.postgresql.org; Sun, 22 Mar 2026 20:30:54 +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.96) (envelope-from ) id 1w4PRm-00EAlC-0G for pgsql-hackers@lists.postgresql.org; Sun, 22 Mar 2026 20:30:54 +0000 Received: from mail-lj1-x231.google.com ([2a00:1450:4864:20::231]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w4PRj-00000000XtY-3Ofi for pgsql-hackers@lists.postgresql.org; Sun, 22 Mar 2026 20:30:54 +0000 Received: by mail-lj1-x231.google.com with SMTP id 38308e7fff4ca-38bf132993dso25844731fa.0 for ; Sun, 22 Mar 2026 13:30:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774211444; cv=none; d=google.com; s=arc-20240605; b=Zp8M9ED5j0R2jQeAkBZv09Km3xnkkW1y4yl3G0333xHwmhzK3G3uEybKXDr+elPowJ PwxVMtdeo9z8y62+kjoYki1Jjvb4fNu3bvNtrwyuHPC71Oqp4T8fFdqRtcPkjcpMIO38 LTPM5keXCzPC3ruFKVnGL24blWz9GlsOuJTaKRPVV1Ydxt8WFEW0MaPDzMPjDcwaovTU 1xvai0ccyZ+JOKb6+gAGOLHpEILT55mdLdsm4XH5X+Z3uTo6p2dKlNA5xM0REtQHjL4h VLtuXVYswpJcqHO9FSuR/bnQzfw4NSmb0teMgXRbZzpULRrCIHpQspHnBue1KxXzVBxA PmLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=U1sBfWniocrWjOGf13OlfiF54nck3p56mMCVU7ChnC4=; fh=nwNxTtLLPTU0ewfLM7SSbrjMajMl+wwnFkCY/fi90vE=; b=ljjXqSuUB8SgBRlrkyzsftGh6gOEyb8m1REaeTnA0s+v6jW8rMFHmcfwHb5PeFFnbz pbk56jel8+hPcPhTyIvC1c5Rd45at4NdBvWln3Lqktl9wPBfI8VFw82/frH4oVslUSHR nPRpWoNW4qo6yv2Ts6VxusGKSghbQd57l4aEVCc+u2Z+NC3VInUrvOmnBzH9yReqH6tu u1ltgqg2O214ADvDXujIy9qvBKDd1LonWycmXOMp8zTaVv3mACV+C/lOoU1xJ0Z9z00J 9sLGSd3jhNNRal7xjZiUsYTfpTW4c/iYlU9qTxQ3WfYmIbGyGziiAMDbAuU2Lr+otJzR qkCg==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1774211444; x=1774816244; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=U1sBfWniocrWjOGf13OlfiF54nck3p56mMCVU7ChnC4=; b=MrqP7oC7vq+SKYyl/f8SnT6vQ1LLG55Jn4cknX8YLf+wAAi558lTP2p1CW/q8NQAMi znoh8ptdi8U6JVhOmD4chbk1SSEKG4jsVKpnfXWCiccdVrgptvUWR08JqKIhv2xeMOzg IHAj5+560vVRN6EClahvagU6pqYzOW2L09v4M33C6PYCRDc4Xa6nltiRC3dib2uufCjM C5yVIYweJh8Zk+flxbnz3T4Y4IdYck4miCIo5ejGGD62uEc/6yo3EDV6IUZx+MXniuQ3 KrZBwSMvhuWp65Dz40rOg9S41ibdVlxfZ4F2C65pZhgjuwlxlOyAJdHXWS82qvfGDqwH XxQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774211444; x=1774816244; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=U1sBfWniocrWjOGf13OlfiF54nck3p56mMCVU7ChnC4=; b=bYFVG3TTU+k33Q8Rn0kHii9PdP7hlpP1RV+EJhngB1XKFvIe03grhRlVp1Q9EAsEAX Jusw3ON+9XLQ4tddZBWhJ5fr4xhXVS2kdQLujZg3EOt+qJLMY/djTFV1CEnFpcxvRJ0s b6ZDBMeCpx2ATDV1UHRMx3Rb1fFBVSVxONJ2if0qqyAtyeAq5zxbT/S2xxvxLcXtxoHg c878cGwainwU/t735LI1bXgxfiLglNniKyd2YPnHp69M/ZUSFKV4bG4rQ0wIBQCwMty3 cMNLwwSMwBLn60L4RuzltctNKM93NDLXItBiLxvsvToAbZmVkaQ7ZTRbWGFNXg/scbFW pBaw== X-Gm-Message-State: AOJu0Yy7h7D6esGzlMGaIBX5Ld7qqVqDUAQ79qPpfVjJiR5G0pO0Rb0V Sfuwg7dYSr4mdF6PYVyXj4lBo3BLzgKx8oblgqTV9+jNHsY1nwOdMMgv/uLOX5DJaoCmXbjrIxx Y+N5XFRtW4XGGLcwXan3ENnz2/f5tXN0vg6XvIrQ= X-Gm-Gg: ATEYQzy6NBW/KQvDy668KRXZqF3doWnUEfaBSg6sI4L8QeBUvr1xIlEfmt7e2p9pX8K WJoeH75nWh+mbcQ6qUyfX7Kspi199IqKFnk60RgyGYGzH4MRev3UFvJ2UvOh6vCbtfi9mN7zYmL dMOpLAomlq/p1FGg0fWehsMO2WeA30nZQkThKKPGkH1lSStudQDxcNuP4hZ4bapiK9K1iPJlqyV c44oM8T/r2buxn9WDDLNI9C7hSKEz7pxJTiEtTksW+jMF8PH4hYDBOOHy1gveRHI0Y5SL7j7NNz Cqj0/Pu+ X-Received: by 2002:a2e:90d6:0:b0:385:fbff:ab2f with SMTP id 38308e7fff4ca-38bf96e6f46mr28310371fa.17.1774211444107; Sun, 22 Mar 2026 13:30:44 -0700 (PDT) MIME-Version: 1.0 From: Yamaguchi Atsuo Date: Sun, 22 Mar 2026 13:30:30 -0700 X-Gm-Features: AaiRm53cIbwtE07HFbXmVEGQL_q-KTOLH0JGUAl_vMprOXvo7mJgLBEb3R-dwtQ Message-ID: Subject: Add tab completion for SERVER and CONNECTION keywords in psql To: pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000e20dc9064da2cad1" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000e20dc9064da2cad1 Content-Type: multipart/alternative; boundary="000000000000e20dc8064da2cacf" --000000000000e20dc8064da2cacf Content-Type: text/plain; charset="UTF-8" Hi, This patch adds missing tab completion support in psql for: - SERVER keyword after ALTER/CREATE SUBSCRIPTION - CONNECTION keyword after ALTER/CREATE FOREIGN DATA WRAPPER Currently, typing "ALTER SUBSCRIPTION sub1 SERVER" and pressing Tab does not complete server names, even though the SERVER keyword itself is already suggested. Similarly, CONNECTION is not suggested as a completion candidate for FOREIGN DATA WRAPPER commands, despite being a valid option. The patch is generated against the current master branch. Regards, Atsuo Yamaguchi --000000000000e20dc8064da2cacf Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

This patch adds missing tab completion support = in psql for:

- SERVER keyword after ALTER/CREATE SUBSCRIPTION <na= me>
- CONNECTION keyword after ALTER/CREATE FOREIGN DATA WRAPPER <= name>

Currently, typing "ALTER SUBSCRIPTION sub1 SERVER"= ; and pressing Tab
does not complete server names, even though the SERVE= R keyword itself
is already suggested. Similarly, CONNECTION is not sugg= ested as a
completion candidate for FOREIGN DATA WRAPPER commands, despi= te being
a valid option.

The patch is generated against the curre= nt master branch.

Regards,
Atsuo Yamaguchi
--000000000000e20dc8064da2cacf-- --000000000000e20dc9064da2cad1 Content-Type: application/octet-stream; name="0001-Add-tab-completion-for-SERVER-and-CONNECTION-keyword.patch" Content-Disposition: attachment; filename="0001-Add-tab-completion-for-SERVER-and-CONNECTION-keyword.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn27n4dc0 RnJvbSA1NDQ3NjdkZDRhZmRkZWJjZjA1MzMzMjM3M2IxZjBjZDE1YTNhY2RmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQXRzdW8gKEpvcmdlKSBZYW1hZ3VjaGkiIDxhY3JvYmF0Y29k ZXJAZ21haWwuY29tPgpEYXRlOiBTdW4sIDIyIE1hciAyMDI2IDIwOjE0OjU1ICswMDAwClN1Ympl Y3Q6IFtQQVRDSF0gQWRkIHRhYiBjb21wbGV0aW9uIGZvciBTRVJWRVIgYW5kIENPTk5FQ1RJT04g a2V5d29yZHMgaW4gcHNxbAoKVGhlIFNFUlZFUiBrZXl3b3JkIGluIEFMVEVSL0NSRUFURSBTVUJT Q1JJUFRJT04gYW5kIHRoZSBDT05ORUNUSU9OCmtleXdvcmQgaW4gQUxURVIvQ1JFQVRFIEZPUkVJ R04gREFUQSBXUkFQUEVSIHdlcmUgbWlzc2luZyBmcm9tCnBzcWwncyB0YWIgY29tcGxldGlvbiBz dXBwb3J0LiBUaGlzIHBhdGNoIGFkZHMgdGhlbS4KLS0tCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmluLmMgfCAxMCArKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCsp LCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUu aW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCA1YmRiZjE1MzBhMi4u NzRkYzFjOTg3Y2YgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwor KysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTIzNDIsNiArMjM0Miw4IEBA IG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQlDT01QTEVURV9XSVRIKCJD T05ORUNUSU9OIiwgIkVOQUJMRSIsICJESVNBQkxFIiwgIk9XTkVSIFRPIiwKIAkJCQkJICAiUkVO QU1FIFRPIiwgIlJFRlJFU0ggUFVCTElDQVRJT04iLCAiUkVGUkVTSCBTRVFVRU5DRVMiLAogCQkJ CQkgICJTRVJWRVIiLCAiU0VUIiwgIlNLSVAgKCIsICJBREQgUFVCTElDQVRJT04iLCAiRFJPUCBQ VUJMSUNBVElPTiIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlNVQlNDUklQVElPTiIs IE1hdGNoQW55LCAiU0VSVkVSIikpCisJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xp c3Rfb2Zfc2VydmVycyk7CiAJLyogQUxURVIgU1VCU0NSSVBUSU9OIDxuYW1lPiBSRUZSRVNIICov CiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiU1VCU0NSSVBUSU9OIiwgTWF0Y2hBbnksIE1h dGNoQW55TiwgIlJFRlJFU0giKSkKIAkJQ09NUExFVEVfV0lUSCgiUFVCTElDQVRJT04iLCAiU0VR VUVOQ0VTIik7CkBAIC0yNDU5LDkgKzI0NjEsOSBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQg cGF0dGVybl9pZCwKIAkvKiBBTFRFUiBGT1JFSUdOIERBVEEgV1JBUFBFUiA8bmFtZT4gKi8KIAll bHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJGT1JFSUdOIiwgIkRBVEEiLCAiV1JBUFBFUiIsIE1h dGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiSEFORExFUiIsICJWQUxJREFUT1IiLCAiTk8iLAot CQkJCQkgICJPUFRJT05TIiwgIk9XTkVSIFRPIiwgIlJFTkFNRSBUTyIpOworCQkJCQkgICJPUFRJ T05TIiwgIk9XTkVSIFRPIiwgIlJFTkFNRSBUTyIsICJDT05ORUNUSU9OIik7CiAJZWxzZSBpZiAo TWF0Y2hlcygiQUxURVIiLCAiRk9SRUlHTiIsICJEQVRBIiwgIldSQVBQRVIiLCBNYXRjaEFueSwg Ik5PIikpCi0JCUNPTVBMRVRFX1dJVEgoIkhBTkRMRVIiLCAiVkFMSURBVE9SIik7CisJCUNPTVBM RVRFX1dJVEgoIkhBTkRMRVIiLCAiVkFMSURBVE9SIiwgIkNPTk5FQ1RJT04iKTsKIAogCS8qIEFM VEVSIEZPUkVJR04gVEFCTEUgPG5hbWU+ICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAi Rk9SRUlHTiIsICJUQUJMRSIsIE1hdGNoQW55KSkKQEAgLTM1NDgsNyArMzU1MCw3IEBAIG1hdGNo X3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCiAJLyogQ1JFQVRFIEZPUkVJR04gREFU QSBXUkFQUEVSICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIkZPUkVJR04iLCAiREFU QSIsICJXUkFQUEVSIiwgTWF0Y2hBbnkpKQotCQlDT01QTEVURV9XSVRIKCJIQU5ETEVSIiwgIlZB TElEQVRPUiIsICJPUFRJT05TIik7CisJCUNPTVBMRVRFX1dJVEgoIkhBTkRMRVIiLCAiVkFMSURB VE9SIiwgIk9QVElPTlMiLCAiQ09OTkVDVElPTiIpOwogCiAJLyogQ1JFQVRFIEZPUkVJR04gVEFC TEUgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiRk9SRUlHTiIsICJUQUJMRSIsIE1h dGNoQW55KSkKQEAgLTM5MTUsNiArMzkxNyw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogLyogQ1JFQVRFIFNVQlNDUklQVElPTiAqLwogCWVsc2UgaWYgKE1hdGNoZXMo IkNSRUFURSIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIlNF UlZFUiIsICJDT05ORUNUSU9OIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlNVQlND UklQVElPTiIsIE1hdGNoQW55LCAiU0VSVkVSIikpCisJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVl cnlfZm9yX2xpc3Rfb2Zfc2VydmVycyk7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlNV QlNDUklQVElPTiIsIE1hdGNoQW55LCAiU0VSVkVSIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9X SVRIKCJQVUJMSUNBVElPTiIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJTVUJTQ1JJ UFRJT04iLCBNYXRjaEFueSwgIkNPTk5FQ1RJT04iLCBNYXRjaEFueSkpCi0tIAoyLjQ3LjMKCg== --000000000000e20dc9064da2cad1--