mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	psql: Improve completion of FDW DDL commands
Add - ALTER FOREIGN DATA WRAPPER -> RENAME TO - ALTER SERVER -> RENAME TO - ALTER SERVER ... VERSION ... -> OPTIONS - CREATE FOREIGN DATA WRAPPER -> OPTIONS - CREATE SERVER -> OPTIONS - CREATE|ALTER USER MAPPING -> OPTIONS From: Andreas Karlsson <andreas@proxel.se>
This commit is contained in:
		@@ -1417,7 +1417,7 @@ psql_completion(const char *text, int start, int end)
 | 
			
		||||
 | 
			
		||||
	/* ALTER FOREIGN DATA WRAPPER <name> */
 | 
			
		||||
	else if (Matches5("ALTER", "FOREIGN", "DATA", "WRAPPER", MatchAny))
 | 
			
		||||
		COMPLETE_WITH_LIST4("HANDLER", "VALIDATOR", "OPTIONS", "OWNER TO");
 | 
			
		||||
		COMPLETE_WITH_LIST5("HANDLER", "VALIDATOR", "OPTIONS", "OWNER TO", "RENAME TO");
 | 
			
		||||
 | 
			
		||||
	/* ALTER FOREIGN TABLE <name> */
 | 
			
		||||
	else if (Matches4("ALTER", "FOREIGN", "TABLE", MatchAny))
 | 
			
		||||
@@ -1544,7 +1544,10 @@ psql_completion(const char *text, int start, int end)
 | 
			
		||||
		COMPLETE_WITH_LIST3("MINVALUE", "MAXVALUE", "CYCLE");
 | 
			
		||||
	/* ALTER SERVER <name> */
 | 
			
		||||
	else if (Matches3("ALTER", "SERVER", MatchAny))
 | 
			
		||||
		COMPLETE_WITH_LIST3("VERSION", "OPTIONS", "OWNER TO");
 | 
			
		||||
		COMPLETE_WITH_LIST4("VERSION", "OPTIONS", "OWNER TO", "RENAME TO");
 | 
			
		||||
	/* ALTER SERVER <name> VERSION <version>*/
 | 
			
		||||
	else if (Matches5("ALTER", "SERVER", MatchAny, "VERSION", MatchAny))
 | 
			
		||||
		COMPLETE_WITH_CONST("OPTIONS");
 | 
			
		||||
	/* ALTER SYSTEM SET, RESET, RESET ALL */
 | 
			
		||||
	else if (Matches2("ALTER", "SYSTEM"))
 | 
			
		||||
		COMPLETE_WITH_LIST2("SET", "RESET");
 | 
			
		||||
@@ -2000,7 +2003,7 @@ psql_completion(const char *text, int start, int end)
 | 
			
		||||
 | 
			
		||||
	/* CREATE FOREIGN DATA WRAPPER */
 | 
			
		||||
	else if (Matches5("CREATE", "FOREIGN", "DATA", "WRAPPER", MatchAny))
 | 
			
		||||
		COMPLETE_WITH_LIST2("HANDLER", "VALIDATOR");
 | 
			
		||||
		COMPLETE_WITH_LIST3("HANDLER", "VALIDATOR", "OPTIONS");
 | 
			
		||||
 | 
			
		||||
	/* CREATE INDEX --- is allowed inside CREATE SCHEMA, so use TailMatches */
 | 
			
		||||
	/* First off we complete CREATE UNIQUE with "INDEX" */
 | 
			
		||||
@@ -2379,6 +2382,10 @@ psql_completion(const char *text, int start, int end)
 | 
			
		||||
	else if (TailMatches3("FOREIGN", "DATA", "WRAPPER") &&
 | 
			
		||||
			 !TailMatches4("CREATE", MatchAny, MatchAny, MatchAny))
 | 
			
		||||
		COMPLETE_WITH_QUERY(Query_for_list_of_fdws);
 | 
			
		||||
	/* applies in CREATE SERVER */
 | 
			
		||||
	else if (TailMatches4("FOREIGN", "DATA", "WRAPPER", MatchAny) &&
 | 
			
		||||
			 HeadMatches2("CREATE", "SERVER"))
 | 
			
		||||
		COMPLETE_WITH_CONST("OPTIONS");
 | 
			
		||||
 | 
			
		||||
/* FOREIGN TABLE */
 | 
			
		||||
	else if (TailMatches2("FOREIGN", "TABLE") &&
 | 
			
		||||
@@ -2823,6 +2830,8 @@ psql_completion(const char *text, int start, int end)
 | 
			
		||||
		COMPLETE_WITH_QUERY(Query_for_list_of_user_mappings);
 | 
			
		||||
	else if (Matches5("CREATE|ALTER|DROP", "USER", "MAPPING", "FOR", MatchAny))
 | 
			
		||||
		COMPLETE_WITH_CONST("SERVER");
 | 
			
		||||
	else if (Matches7("CREATE|ALTER", "USER", "MAPPING", "FOR", MatchAny, "SERVER", MatchAny))
 | 
			
		||||
		COMPLETE_WITH_CONST("OPTIONS");
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * VACUUM [ FULL | FREEZE ] [ VERBOSE ] [ table ]
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user