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 1w4lfi-002XLD-07 for pgsql-hackers@arkaria.postgresql.org; Mon, 23 Mar 2026 20:14:46 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w4lfg-002DPJ-1v for pgsql-hackers@arkaria.postgresql.org; Mon, 23 Mar 2026 20:14:45 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w4lfg-002DPB-12 for pgsql-hackers@lists.postgresql.org; Mon, 23 Mar 2026 20:14:44 +0000 Received: from mail-lf1-x12d.google.com ([2a00:1450:4864:20::12d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w4lfe-00000000g7T-2xhh for pgsql-hackers@lists.postgresql.org; Mon, 23 Mar 2026 20:14:43 +0000 Received: by mail-lf1-x12d.google.com with SMTP id 2adb3069b0e04-5a159c1e65aso2786181e87.0 for ; Mon, 23 Mar 2026 13:14:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774296881; cv=none; d=google.com; s=arc-20240605; b=hr4QWwPw1V3v4sjP+Mat8xwcsgHLuXS/D7NInqa57/Rp7V4qB4mrAANnYvgK8K6ztz DCkbSizX9XK06aO5gjbjYAgW4sbWZBcm7Pvomv6tAh9WFg8IS8IAzHY+NJK6UIAhv6Lz /SVf7o/L+hyvakJhxz684OIj+l2RlmdpfzD7oTr21fpLXtREZkDIUGMTWZ5GQMOMXc3G 0RzaS/T3Tq6slsUFGro1cgpsxOfGrp80wkHHF2ODUAU7/5TsISZCVFfZJWvNrXKRiZ0X GT8xktxT3N6wW+U6l3DhJu3VILqF1Y2WUSzXRl8VSVqos51mO+04IeMK0SmmdGTet8qz +qqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=9nb2pQAUuE9iwB+HHgUXHJtGeBn2+uWHSlDcLRx+VBI=; fh=4P2uKqFrH/UDOUWeImZ/W4yDXFpa15FqyO7c1WF/fhk=; b=czsme59qvaeL7qebR3Obeo2uNYaBfKmpS2JAAW+CjqQHrEMcFdr799NEBs4ycBmaLi KOBAGQ+xDqZt+QxRrLENkxQVMXAY9IcSHGd0gG1U8paj4rJ1PhbTr0EQJzfmQAWnrggl D58fZV6vrtlcQjffsyHFfXpt/6fGm6rjt45xYSrutvVwKye1/aA+0O8tjfCyZUyCGNXW CEiPHmq+RqfSv7hPpCHkm5wmqmQTThTPGY1Af4a/l3D34HWTqFEseA9Bo0rJkp7ChEOp X1gDiNqEzOLTmsUnwZUkc83u10kinfhDFUDydfnoMVIStOM3QG6Ay168ilcgB2f2Dcyl U/eg==; 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=20251104; t=1774296881; x=1774901681; darn=lists.postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=9nb2pQAUuE9iwB+HHgUXHJtGeBn2+uWHSlDcLRx+VBI=; b=VYjUYr4EcbhKlRK8BggBse3RoU+Ee97W6afNYzC1sX7r2N4mKW2YwTUEIMHVGEzkqh v6lUeZE6PI2HlNBBmxjEEJpDbhvk/mDEVzkJF7JS5NQNGa9yGh7elrvwhaS/xYg6aUSi YTn9oxl/L9pLhW97N8ZIEODVoMv8UfbbSU2avALQ8h977F8TLb+otnMs7OZws2QZZ/4G we2SuY+OAm4qsfa1ZIzu1ubyCaGL38Asoqzh2ihPtmiX296KNaPd/+ilWXDiMKQcvVwH J7aH/cR/G8+zTdRZ/RqByvfunkS/0ejNwmXT0nzM5WCOe7C3j92Prd5sqnWQQUvrYNeK jtbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774296881; x=1774901681; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=9nb2pQAUuE9iwB+HHgUXHJtGeBn2+uWHSlDcLRx+VBI=; b=XJGJFImc15OCzOK7mx2kf5PguzPB6SrN6wdSOd9HlDdoyf6ydNM4AmHNVhOXR9XXbC wzs4TXO5H6mMVyJshQU2I5lHstYDbnxwByMmffB9AtJbyTPJbdJxa2Fa9ZAKuPooV8kT V2CVnwrTnMiJWAmSGwnmfg3OnnDtrusQnzMfEc+ERI6XRaSzGmiXwCCF//e6ZIOPAQy5 M8YWzfe792jfLCEc3WxWlxzLJ3v7rfn12pJy3hZV1jLzdPRm8hDntA+z2FroFaDMucnX OJOdI5ZcT+PzZye+olo4v2f0CQZlW6+VDjr7RkqF5yRxmmV6h1CNaIuRpscQhdo1Kk1B 5NGw== X-Gm-Message-State: AOJu0Yw9SPFfK1R3I3/o8n0smdWpmyFCQJ0xhj0w72C9gssbJZIiiAhD I4JMvfGeJpuPH2lmjXSufg5X2qwtXwlp9DSFNb5DGj8uKxlMfrEQLXHanrh0+zJGGSb/DFBiGe7 DJtuv6OISZ+nqnaROXskYeQtxoaGEKgw= X-Gm-Gg: ATEYQzxpeTH8p8aIU8HqpeHxOPrGgMKnRUz+664OloVcq4ja7i6zMkDhPpeypKSZEkd sE4hjCJEmRQEHbqzpyGrIYcuPTaWlRkgnJeNhI6wWtTnEz2AS0IXsE82SxxTYvFog2VaTdpaiKn og+pmjO70HbBuAPxfdqqt5NKQ/Hj8Yrrt9j4xiwEt38JZgXMa6J4crrF8jYdl/VAkoq1ghPX6bI t0gkJjNRiAlFpeBJMk4xR/giMs/PxW4nGhJW5U92Y/PCtFci12uDhlr9juowbOGWjcHBElE0ALA f1SSYE7U X-Received: by 2002:a05:6512:601:20b0:5a2:86a6:4adf with SMTP id 2adb3069b0e04-5a286a64b0fmr2898459e87.7.1774296880852; Mon, 23 Mar 2026 13:14:40 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Masahiko Sawada Date: Mon, 23 Mar 2026 13:14:04 -0700 X-Gm-Features: AQROBzAKWP5GU3lZSX5mkBAqeLFPKic75FJ7LWrAqzbPN3NKhRmW1w8F8OIDMGs Message-ID: Subject: Re: Add tab completion for SERVER and CONNECTION keywords in psql To: Yamaguchi Atsuo Cc: pgsql-hackers@lists.postgresql.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi, On Sun, Mar 22, 2026 at 1:30=E2=80=AFPM Yamaguchi Atsuo wrote: > > 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. It's a fix for an oversight of commit 8185bb5347 rather than proposing a new tab-completion. Good catch. Regarding the patch, I have one comment: /* ALTER FOREIGN DATA WRAPPER */ else if (Matches("ALTER", "FOREIGN", "DATA", "WRAPPER", MatchAny)) COMPLETE_WITH("HANDLER", "VALIDATOR", "NO", - "OPTIONS", "OWNER TO", "RENAME TO"); + "OPTIONS", "OWNER TO", "RENAME TO", "CONNECTION"); I think it's better to maintain the keywords in the list in alphabetical or= der. Regards, --=20 Masahiko Sawada Amazon Web Services: https://aws.amazon.com