From 6b8c99c386d318b434829ac0c9ba935fb5e53d18 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Tue, 10 Apr 2012 20:35:39 +0300
Subject: [PATCH] psql: Improve tab completion of WITH

Only match when WITH is the first word, as WITH may appear in many
other contexts.

Josh Kupershmidt
---
 src/bin/psql/tab-complete.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index d113adff033..00df2c6197b 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -2842,7 +2842,10 @@ psql_completion(char *text, int start, int end)
 		COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables, NULL);
 
 /* WITH [RECURSIVE] */
-	else if (pg_strcasecmp(prev_wd, "WITH") == 0)
+	/* Only match when WITH is the first word, as WITH may appear in many other
+	   contexts. */
+	else if (pg_strcasecmp(prev_wd, "WITH") == 0 &&
+			 prev2_wd[0] == '\0')
 		COMPLETE_WITH_CONST("RECURSIVE");
 
 /* ANALYZE */
-- 
GitLab