]> granicus.if.org Git - postgresql/commitdiff
psql: Add some tab completion for TABLESAMPLE.
authorRobert Haas <rhaas@postgresql.org>
Mon, 22 Jun 2015 18:13:56 +0000 (14:13 -0400)
committerRobert Haas <rhaas@postgresql.org>
Mon, 22 Jun 2015 18:15:32 +0000 (14:15 -0400)
Petr Jelinek, reviewed by Brendan Jurd

src/bin/psql/tab-complete.c

index 5c74ae19ec26998421cb0d109d87a7c5efd112ae..5b32fdeb6ee15bcd43db586531e722ea3f2347bc 100644 (file)
@@ -737,6 +737,11 @@ static const SchemaQuery Query_for_list_of_matviews = {
 "   FROM pg_catalog.pg_event_trigger "\
 "  WHERE substring(pg_catalog.quote_ident(evtname),1,%d)='%s'"
 
+#define Query_for_list_of_tablesample_methods \
+" SELECT pg_catalog.quote_ident(tsmname) "\
+"   FROM pg_catalog.pg_tablesample_method "\
+"  WHERE substring(pg_catalog.quote_ident(tsmname),1,%d)='%s'"
+
 /*
  * This is a list of all "things" in Pgsql, which can show up after CREATE or
  * DROP; and there is also a query to get a list of them.
@@ -3580,6 +3585,13 @@ psql_completion(const char *text, int start, int end)
                         prev2_wd[0] == '\0')
                COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_relations, NULL);
 
+/* TABLESAMPLE */
+       else if (pg_strcasecmp(prev_wd, "TABLESAMPLE") == 0)
+               COMPLETE_WITH_QUERY(Query_for_list_of_tablesample_methods);
+
+       else if (pg_strcasecmp(prev2_wd, "TABLESAMPLE") == 0)
+               COMPLETE_WITH_CONST("(");
+
 /* TRUNCATE */
        else if (pg_strcasecmp(prev_wd, "TRUNCATE") == 0)
                COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables, NULL);