]> granicus.if.org Git - postgresql/commitdiff
Add psql tab completion for DO blocks.
authorItagaki Takahiro <itagaki.takahiro@gmail.com>
Mon, 15 Feb 2010 02:55:01 +0000 (02:55 +0000)
committerItagaki Takahiro <itagaki.takahiro@gmail.com>
Mon, 15 Feb 2010 02:55:01 +0000 (02:55 +0000)
Also adjust documentation of DO.

Patch from David Fetter and subsequent discussion.

doc/src/sgml/ref/do.sgml
src/bin/psql/tab-complete.c

index a85d598c6a3356c107c54edf85178de0bf4225a2..f9e06ca092b53f23e155ed4ed1c302fa17f47b4c 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/do.sgml,v 1.3 2010/01/26 16:33:40 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/do.sgml,v 1.4 2010/02/15 02:55:01 itagaki Exp $
 PostgreSQL documentation
 -->
 
@@ -25,7 +25,7 @@ PostgreSQL documentation
 
  <refsynopsisdiv>
 <synopsis>
-DO <replaceable class="PARAMETER">code</replaceable> [ LANGUAGE <replaceable class="PARAMETER">lang_name</replaceable> ]
+DO { [ LANGUAGE <replaceable class="PARAMETER">lang_name</replaceable> ] | <replaceable class="PARAMETER">code</replaceable> } ...
 </synopsis>
  </refsynopsisdiv>
 
index cecd88d522ad6bcc13e3ea460611963328e8a03e..19b9b1f3ef5b82f81bb69a2a423fc23d8eba859e 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2010, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/tab-complete.c,v 1.192 2010/01/25 18:23:09 heikki Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/tab-complete.c,v 1.193 2010/02/15 02:55:01 itagaki Exp $
  */
 
 /*----------------------------------------------------------------------
@@ -618,7 +618,7 @@ psql_completion(char *text, int start, int end)
        static const char *const sql_commands[] = {
                "ABORT", "ALTER", "ANALYZE", "BEGIN", "CHECKPOINT", "CLOSE", "CLUSTER",
                "COMMENT", "COMMIT", "COPY", "CREATE", "DEALLOCATE", "DECLARE",
-               "DELETE FROM", "DISCARD", "DROP", "END", "EXECUTE", "EXPLAIN", "FETCH",
+               "DELETE FROM", "DISCARD", "DO", "DROP", "END", "EXECUTE", "EXPLAIN", "FETCH",
                "GRANT", "INSERT", "LISTEN", "LOAD", "LOCK", "MOVE", "NOTIFY", "PREPARE",
                "REASSIGN", "REINDEX", "RELEASE", "RESET", "REVOKE", "ROLLBACK",
                "SAVEPOINT", "SELECT", "SET", "SHOW", "START", "TABLE", "TRUNCATE", "UNLISTEN",
@@ -1532,6 +1532,18 @@ psql_completion(char *text, int start, int end)
                COMPLETE_WITH_LIST(list_DISCARD);
        }
 
+/* DO */
+       /*
+        * Complete DO with LANGUAGE.
+        */
+       else if (pg_strcasecmp(prev_wd, "DO") == 0)
+       {
+               static const char *const list_DO[] =
+               {"LANGUAGE", NULL};
+
+               COMPLETE_WITH_LIST(list_DO);
+       }
+
 /* DROP (when not the previous word) */
        /* DROP AGGREGATE */
        else if (pg_strcasecmp(prev3_wd, "DROP") == 0 &&