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 1wDDtY-002kcg-2y for pgsql-hackers@arkaria.postgresql.org; Thu, 16 Apr 2026 04:00:01 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wDDtW-003bqZ-1Y for pgsql-hackers@arkaria.postgresql.org; Thu, 16 Apr 2026 03:59:58 +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 1wDDtW-003bqR-0d for pgsql-hackers@lists.postgresql.org; Thu, 16 Apr 2026 03:59:58 +0000 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wDDtT-00000001LOI-0nrQ for pgsql-hackers@lists.postgresql.org; Thu, 16 Apr 2026 03:59:57 +0000 Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-35fb7f51171so3584706a91.1 for ; Wed, 15 Apr 2026 20:59:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776311993; cv=none; d=google.com; s=arc-20240605; b=Ky6//bun/BUFICOxGNJFb9gqAwSAKf43Sl1THqcf0DE6hg+wEhYxvaTvLVd9C68JrA WTmQ96UZMahr0p8VEI5MmhSGWq+zxXjfLHNF1PeDktEFn9F9KcYxnmPoKZfcD2UqfS6h ioQcFLHUS0Gf85b1CDQe3gnx/OKAHNTQ5PVmP9wjmmNiuTY0BC7Fuv7n1XiDkXHVMVDA 9ljFTK429iMnjxhaYm8KXCQncb1zlrHJdFyH2AoVnDiwXjU6ULSEnDRXpEZKtp5exbp1 EYfw/v98pAQTFvyXXuEodrFVCSR8nkGS4MY0oOd3edSGRRYq+ltZxWbFOi45d46Tnbb6 ZtfQ== 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=+u/CXOEvBHpRNXT4iJEOWczDbnW6PMdDFph4uX3jb2o=; fh=H3PFlF1CK0118qRV4FxPFpfN7ePVzXFgwyPE/JBE8Uc=; b=DOBHljnpXJZaHQ95gMQMXJ0oa3yDqBcbp194UedgCzzzTS2xrww4VOiaCLEBwin1VB quo/mmQfRJgcuCNcnnksRYMXepXzCZSqogqHn0p0OUfQPpG1nrzR5geEPukt4Lg3wmEk qcTOWTbVbKb08E2rjIVlNVRwd0qw/nFRx4WeJBu+DfetZzPHbqjpk3b8eLT7L7mZ6hW8 rnTajFeT508B30gARCLe5ibOT1cGuWaRVCYWQLDC5rVdkZnieNsD4uLGrFIiZEbwS2Qp nO/HOZecsbj9dsAAph3MvLkykaVAxByg7ORg6fpPOaBPOY2J1LLsUcQHeusXCmTm/Mzx bOzA==; 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=1776311993; x=1776916793; 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=+u/CXOEvBHpRNXT4iJEOWczDbnW6PMdDFph4uX3jb2o=; b=cWwryOkSUBO9flMbG/hkh65xZWbHiv/9apVfjX81lRW+NjDm6IisUwTNRic4RMvlsE 4CAMfVRoOJK7hOAOg9tcS+XG4NF2uhpsSSO7w1nw7YKeA8U2ZtYcCK1F3MlXXiXHhxRB /9VMjKDB5rbuMDA1YRu+bJJDo6eqf7rhGv2N6e9A7+zPzuj20TLg5UswWxPHYRw4q+pn b+Qr13XzEV/fZsApaEPl2HZmnrku6+ok4zxZgPfq2yJR3DSimSWaUDV8Uq6KwnyZTL1E 0W6NVDYeiULjdXF39VJsjqO5hMFH+jTL2HccH/deaZ29Cbf3heWe/FTcs0MY+Ig2Cb6b B8jA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776311993; x=1776916793; 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=+u/CXOEvBHpRNXT4iJEOWczDbnW6PMdDFph4uX3jb2o=; b=S5Gt3311QvexabQ4CygqVqnKASJ1/auItVDAD3v7bDn5njSHUQ4Vtm4u3a127ysXfU YZXkqaG5j0lVPI5sonIRziViuqer2yogCtiuar2PG8bVmAULl7LMCfNNaeGBsSFudh6a f4LpxE8GL96vZF5GXjKUEbZHib10dmuFzQfV5i7wrRKgCef5MHIrujZ+92E1qzWmVhHW +ycHQPhIi1+AJnEHZUfoF6FbAaecnb7QiUjg+R4VdGBD47FSIEHQJ7YcKIZsvZJX8MoN cx8ERhrngQo1zHnvGWnnG7r/SN09BWG9lvGbJYItGW2TUwPBLrL8AizDel8XwGPsFlVe uHsQ== X-Gm-Message-State: AOJu0YwAlPFw4Hz7WjoBYlErnkEUn4/DviyHDLG84v2BlRyC1P6F5YH9 Qa9VvuqdchBmZefZhTiykH/WF3Jms+XjJWYektCigPZ0ibLV7VuEQAfPNk0KcyKNaR1rZx8dDoT LdwxHI4H/kKHezpaK9iBwE3ho82FAxF4= X-Gm-Gg: AeBDieuh6i6FFEf5u+pGZ3+H50o0HSDzIe/kPSaqfLLe0cYg1HcMKDn7frP62B88ES5 RRpSnG9wQNczL1Vs4fG4raWOWWqinOJwX1j6okX4m6ALGFJ63J2VlIbvSZT6Mj02uYdEeO1W/HP 34oCyTT9aFUlV/ocICc/Vu6D+Oae1whvv5Qkzu2yLAg4oBZK56kGt9MgMJoZPv8byrQP+tRbwVU 0+uE8Ce2hZpwqX4TI2A+FOdvY20V4e5h91MQRFYqWzLsWIuL5qhpQ730r+iLQV66Tkl+e3iiQNL N43PA4ggPywLfe9LwHt0i2ph4STBI+xp4hBErzvgVG/xPZad4MpvbkLdxgBFbiA= X-Received: by 2002:a17:90b:5288:b0:35e:3b08:8fc4 with SMTP id 98e67ed59e1d1-35e4276a002mr23860091a91.5.1776311993076; Wed, 15 Apr 2026 20:59:53 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: shveta malik Date: Thu, 16 Apr 2026 09:29:41 +0530 X-Gm-Features: AQROBzDd8vlPZKk5RgexI-IOcSHRr4uk0e4N323atEYjVPdZnGaF3gSoBQYLd74 Message-ID: Subject: Re: Fix tab completion after EXCEPT (...) in IMPORT FOREIGN SCHEMA To: vignesh C Cc: PostgreSQL Hackers , shveta malik 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 On Wed, Apr 15, 2026 at 8:45=E2=80=AFPM vignesh C wro= te: > > Hi all, > > While reviewing tab completion behavior, I noticed an issue after > EXCEPT (...) support was added to CREATE PUBLICATION. > Currently, after typing: > IMPORT FOREIGN SCHEMA public EXCEPT (t1) > > psql correctly suggests FROM SERVER. However, the existing completion > rule uses a generic: > TailMatches("EXCEPT", "(*)") > > Previously this was safe because no other command used EXCEPT (...). > Now that CREATE PUBLICATION also supports EXCEPT (...), the same rule > can incorrectly match publication commands and suggest FROM SERVER > there as well. > > The attached patch fixes this by restricting the EXCEPT (...) path to > IMPORT FOREIGN SCHEMA using HeadMatches(), while preserving the > existing LIMIT TO (...) behavior. > I can reproduce the problem without the patch. The patch looks good to me. thanks Shveta