summaryrefslogtreecommitdiff
path: root/src/bin/psql/tab-complete.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/psql/tab-complete.c')
-rw-r--r--src/bin/psql/tab-complete.c44
1 files changed, 30 insertions, 14 deletions
diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index 2e45278426c..e6972537536 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -3,7 +3,7 @@
*
* Copyright 2000-2002 by PostgreSQL Global Development Group
*
- * $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.c,v 1.70 2002/12/13 05:36:24 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.c,v 1.71 2003/01/10 22:03:30 petere Exp $
*/
/*----------------------------------------------------------------------
@@ -212,13 +212,7 @@ psql_completion(char *text, int start, int end)
"CONSTRAINTS",
"NAMES",
"SESSION",
- "TRANSACTION ISOLATION LEVEL",
- /* these are treated in backend/commands/variable.c */
- "DateStyle",
- "TimeZone",
- "client_encoding",
- "server_encoding",
- "seed",
+ "TRANSACTION",
/*
* the rest should match USERSET entries in
@@ -229,12 +223,14 @@ psql_completion(char *text, int start, int end)
"autocommit",
"checkpoint_segments",
"checkpoint_timeout",
+ "client_encoding",
"client_min_messages",
"commit_delay",
"commit_siblings",
"cpu_index_tuple_cost",
"cpu_operator_cost",
"cpu_tuple_cost",
+ "DateStyle",
"db_user_namespace",
"deadlock_timeout",
"debug_pretty_print",
@@ -269,7 +265,7 @@ psql_completion(char *text, int start, int end)
"lc_messages",
"lc_monetary",
"lc_numeric",
- "lc_timeC",
+ "lc_time",
"log_connections",
"log_duration",
"log_min_error_statement",
@@ -294,6 +290,8 @@ psql_completion(char *text, int start, int end)
"log_planner_stats",
"log_source_port",
"log_statement_stats",
+ "seed",
+ "server_encoding",
"silent_mode",
"sort_mem",
"sql_inheritance",
@@ -309,6 +307,7 @@ psql_completion(char *text, int start, int end)
"syslog_facility",
"syslog_ident",
"tcpip_socket",
+ "TimeZone",
"trace_notify",
"transform_null_equals",
"unix_socket_directory",
@@ -817,10 +816,18 @@ psql_completion(char *text, int start, int end)
strcasecmp(prev_wd, "RESET") == 0 ||
strcasecmp(prev_wd, "SHOW") == 0)
COMPLETE_WITH_LIST(pgsql_variables);
- /* Complete "SET TRANSACTION ISOLOLATION LEVEL" */
- else if (strcasecmp(prev2_wd, "SET") == 0 &&
- strcasecmp(prev_wd, "TRANSACTION") == 0)
- COMPLETE_WITH_CONST("ISOLATION");
+ /* Complete "SET TRANSACTION" */
+ else if ((strcasecmp(prev2_wd, "SET") == 0 &&
+ strcasecmp(prev_wd, "TRANSACTION") == 0) ||
+ (strcasecmp(prev4_wd, "SESSION") == 0 &&
+ strcasecmp(prev3_wd, "CHARACTERISTICS") == 0 &&
+ strcasecmp(prev2_wd, "AS") == 0 &&
+ strcasecmp(prev_wd, "TRANSACTION") == 0))
+ {
+ char *my_list[] = {"ISOLATION", "READ", NULL};
+
+ COMPLETE_WITH_LIST(my_list);
+ }
else if (strcasecmp(prev3_wd, "SET") == 0 &&
strcasecmp(prev2_wd, "TRANSACTION") == 0 &&
strcasecmp(prev_wd, "ISOLATION") == 0)
@@ -840,6 +847,15 @@ psql_completion(char *text, int start, int end)
strcasecmp(prev2_wd, "LEVEL") == 0 &&
strcasecmp(prev_wd, "READ") == 0)
COMPLETE_WITH_CONST("COMMITTED");
+ else if ((strcasecmp(prev3_wd, "SET") == 0 ||
+ strcasecmp(prev3_wd, "AS") == 0) &&
+ strcasecmp(prev2_wd, "TRANSACTION") == 0 &&
+ strcasecmp(prev_wd, "READ") == 0)
+ {
+ char *my_list[] = {"ONLY", "WRITE", NULL};
+
+ COMPLETE_WITH_LIST(my_list);
+ }
/* Complete SET CONSTRAINTS <foo> with DEFERRED|IMMEDIATE */
else if (strcasecmp(prev3_wd, "SET") == 0 &&
strcasecmp(prev2_wd, "CONSTRAINTS") == 0)
@@ -853,7 +869,7 @@ psql_completion(char *text, int start, int end)
strcasecmp(prev_wd, "SESSION") == 0)
{
char *my_list[] = {"AUTHORIZATION",
- "CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL",
+ "CHARACTERISTICS AS TRANSACTION",
NULL};
COMPLETE_WITH_LIST(my_list);