Thread
-
[PATCH] psql: Add tab completion for \copy pstdin and pstdout
Yugo Nagata <nagata@sraoss.co.jp> — 2025-12-31T09:27:46Z
--- src/bin/psql/tab-complete.in.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/bin/psql/tab-complete.in.c b/src/bin/psql/tab-complete.in.c index 75a101c6ab5..5edb9ad4d77 100644 --- a/src/bin/psql/tab-complete.in.c +++ b/src/bin/psql/tab-complete.in.c @@ -3357,13 +3357,22 @@ match_previous_words(int pattern_id, /* Complete COPY|\copy <sth> FROM|TO with filename or STDIN/STDOUT/PROGRAM */ else if (Matches("COPY|\\copy", MatchAny, "FROM|TO")) { - /* COPY requires quoted filename */ - bool force_quote = HeadMatches("COPY"); - - if (TailMatches("FROM")) - COMPLETE_WITH_FILES_PLUS("", force_quote, "STDIN", "PROGRAM"); + if (HeadMatches("COPY")) + { + /* COPY requires quoted filename */ + if (TailMatches("FROM")) + COMPLETE_WITH_FILES_PLUS("", true, "STDIN", "PROGRAM"); + else + COMPLETE_WITH_FILES_PLUS("", true, "STDOUT", "PROGRAM"); + } else - COMPLETE_WITH_FILES_PLUS("", force_quote, "STDOUT", "PROGRAM"); + { + /* \copy supports pstdin and pstdout */ + if (TailMatches("FROM")) + COMPLETE_WITH_FILES_PLUS("", false, "STDIN", "PSTDIN", "PROGRAM"); + else + COMPLETE_WITH_FILES_PLUS("", false, "STDOUT", "PSTDOUT", "PROGRAM"); + } } /* Complete COPY|\copy <sth> FROM|TO PROGRAM */ -- 2.43.0 --Multipart=_Wed__31_Dec_2025_18_39_53_+0900_MoOLGgwBwcE6QY1.--