From de1e29885730851787b467449f525ff6fc7d69fa Mon Sep 17 00:00:00 2001 From: Tomas Vondra Date: Mon, 16 Dec 2024 16:46:56 +0100 Subject: [PATCH] psql: Tab completion for CREATE MATERIALIZED VIEW ... USING The tab completion didn't offer USING for CREATE MATERIALIZED VIEW, so add it, and offer a list of access methods, followed by SELECT. Author: Kirill Reshke Reviewed-By: Karina Litskevich Discussion: https://postgr.es/m/CALdSSPhVELkvutquqrDB=Ujfq_Pjz=6jn-kzh+291KPNViLTfw@mail.gmail.com --- src/bin/psql/tab-complete.in.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/bin/psql/tab-complete.in.c b/src/bin/psql/tab-complete.in.c index d1cd7c54f6e..9e23272fc0e 100644 --- a/src/bin/psql/tab-complete.in.c +++ b/src/bin/psql/tab-complete.in.c @@ -3981,11 +3981,26 @@ match_previous_words(int pattern_id, /* CREATE MATERIALIZED VIEW */ else if (Matches("CREATE", "MATERIALIZED")) COMPLETE_WITH("VIEW"); - /* Complete CREATE MATERIALIZED VIEW with AS */ + /* Complete CREATE MATERIALIZED VIEW with AS or USING */ else if (Matches("CREATE", "MATERIALIZED", "VIEW", MatchAny)) + COMPLETE_WITH("AS", "USING"); + + /* + * Complete CREATE MATERIALIZED VIEW USING with list of access + * methods + */ + else if (Matches("CREATE", "MATERIALIZED", "VIEW", MatchAny, "USING")) + COMPLETE_WITH_QUERY(Query_for_list_of_table_access_methods); + /* Complete CREATE MATERIALIZED VIEW USING with AS */ + else if (Matches("CREATE", "MATERIALIZED", "VIEW", MatchAny, "USING", MatchAny)) COMPLETE_WITH("AS"); - /* Complete "CREATE MATERIALIZED VIEW AS with "SELECT" */ - else if (Matches("CREATE", "MATERIALIZED", "VIEW", MatchAny, "AS")) + + /* + * Complete CREATE MATERIALIZED VIEW [USING ] AS + * with "SELECT" + */ + else if (Matches("CREATE", "MATERIALIZED", "VIEW", MatchAny, "AS") || + Matches("CREATE", "MATERIALIZED", "VIEW", MatchAny, "USING", MatchAny, "AS")) COMPLETE_WITH("SELECT"); /* CREATE EVENT TRIGGER */ -- 2.39.5