Various fixes to REFRESH MATERIALIZED VIEW tab completion.
authorKevin Grittner <kgrittn@postgresql.org>
Tue, 26 Jan 2016 14:45:08 +0000 (08:45 -0600)
committerKevin Grittner <kgrittn@postgresql.org>
Tue, 26 Jan 2016 14:45:08 +0000 (08:45 -0600)
Masahiko Sawada, Fujii Masao, Kevin Grittner

src/bin/psql/tab-complete.c

index ff6f7d1b6be67b0f6805a812203c707c710f2112..008f3cbf46ed25da57ac05a8f7228d541a0c9244 100644 (file)
@@ -899,7 +899,7 @@ static const pgsql_thing_t words_after_create[] = {
    {"GROUP", Query_for_list_of_roles},
    {"LANGUAGE", Query_for_list_of_languages},
    {"INDEX", NULL, &Query_for_list_of_indexes},
-   {"MATERIALIZED VIEW", NULL, NULL},
+   {"MATERIALIZED VIEW", NULL, &Query_for_list_of_matviews},
    {"OPERATOR", NULL, NULL},   /* Querying for this is probably not such a
                                 * good idea. */
    {"OWNED", NULL, NULL, THING_NO_CREATE},     /* for DROP OWNED BY ... */
@@ -1264,7 +1264,8 @@ psql_completion(const char *text, int start, int end)
        "DELETE FROM", "DISCARD", "DO", "DROP", "END", "EXECUTE", "EXPLAIN",
        "FETCH", "GRANT", "IMPORT", "INSERT", "LISTEN", "LOAD", "LOCK",
        "MOVE", "NOTIFY", "PREPARE",
-       "REASSIGN", "REFRESH", "REINDEX", "RELEASE", "RESET", "REVOKE", "ROLLBACK",
+       "REASSIGN", "REFRESH MATERIALIZED VIEW", "REINDEX", "RELEASE",
+       "RESET", "REVOKE", "ROLLBACK",
        "SAVEPOINT", "SECURITY LABEL", "SELECT", "SET", "SHOW", "START",
        "TABLE", "TRUNCATE", "UNLISTEN", "UPDATE", "VACUUM", "VALUES", "WITH",
        NULL
@@ -2653,13 +2654,15 @@ psql_completion(const char *text, int start, int end)
    else if (Matches4("REFRESH", "MATERIALIZED", "VIEW", MatchAny))
        COMPLETE_WITH_CONST("WITH");
    else if (Matches5("REFRESH", "MATERIALIZED", "VIEW", "CONCURRENTLY", MatchAny))
-       COMPLETE_WITH_CONST("WITH DATA");
+       COMPLETE_WITH_CONST("WITH");
    else if (Matches5("REFRESH", "MATERIALIZED", "VIEW", MatchAny, "WITH"))
        COMPLETE_WITH_LIST2("NO DATA", "DATA");
    else if (Matches6("REFRESH", "MATERIALIZED", "VIEW", "CONCURRENTLY", MatchAny, "WITH"))
-       COMPLETE_WITH_CONST("DATA");
+       COMPLETE_WITH_LIST2("NO DATA", "DATA");
    else if (Matches6("REFRESH", "MATERIALIZED", "VIEW", MatchAny, "WITH", "NO"))
        COMPLETE_WITH_CONST("DATA");
+   else if (Matches7("REFRESH", "MATERIALIZED", "VIEW", "CONCURRENTLY", MatchAny, "WITH", "NO"))
+       COMPLETE_WITH_CONST("DATA");
 
 /* REINDEX */
    else if (Matches1("REINDEX"))