From 3075709eb2dde7c8a533cbd7547ecc2de5375df6 Mon Sep 17 00:00:00 2001 From: Taiki Koshino Date: Mon, 2 Nov 2026 17:23:31 +0900 Subject: [PATCH v1] psql: Do not complete HEADER MATCH for COPY TO HEADER MATCH is valid only for COPY FROM, but tab completion offered "MATCH" for both COPY directions. For example, psql previously produced: COPY t1 TO STDOUT WITH (HEADER false MATCH true However, selecting MATCH results in: COPY t1 TO STDOUT WITH (HEADER MATCH); ERROR: cannot use "match" with HEADER in COPY TO Check the COPY direction and offer "MATCH" only for COPY FROM. --- src/bin/psql/tab-complete.in.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/bin/psql/tab-complete.in.c b/src/bin/psql/tab-complete.in.c index cab52f5ba08..a04373f0497 100644 --- a/src/bin/psql/tab-complete.in.c +++ b/src/bin/psql/tab-complete.in.c @@ -3444,7 +3444,12 @@ match_previous_words(int pattern_id, /* Complete COPY FROM|TO filename WITH (HEADER */ else if (TailMatches("HEADER")) - COMPLETE_WITH("true", "false", "MATCH"); + { + if (HeadMatches("COPY|\\copy", MatchAny, "FROM")) + COMPLETE_WITH("true", "false", "MATCH"); + else + COMPLETE_WITH("true", "false"); + } /* Complete COPY FROM filename WITH (ON_ERROR */ else if (TailMatches("ON_ERROR")) -- 2.52.0