diff options
| author | Robert Haas <rhaas@postgresql.org> | 2015-10-20 10:27:20 -0400 | 
|---|---|---|
| committer | Robert Haas <rhaas@postgresql.org> | 2015-10-20 10:27:20 -0400 | 
| commit | 7c0b49cd03fdb6bbedada6c5e6439cb4cd6872c3 (patch) | |
| tree | 75cef1093d3022a9864fd62792d6a34b62234084 /src/bin/psql/tab-complete.c | |
| parent | 84ef9c596e0ef7476cd995349767204022610466 (diff) | |
Tab complete CREATE EXTENSION .. VERSION.
Jeff Janes
Diffstat (limited to 'src/bin/psql/tab-complete.c')
| -rw-r--r-- | src/bin/psql/tab-complete.c | 17 | 
1 files changed, 16 insertions, 1 deletions
| diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index 1619de52aea..4eb5058416c 100644 --- a/src/bin/psql/tab-complete.c +++ b/src/bin/psql/tab-complete.c @@ -729,6 +729,13 @@ static const SchemaQuery Query_for_list_of_matviews = {  "   FROM pg_catalog.pg_available_extensions "\  "  WHERE substring(pg_catalog.quote_ident(name),1,%d)='%s' AND installed_version IS NULL" +/* the silly-looking length condition is just to eat up the current word */ +#define Query_for_list_of_available_extension_versions \ +" SELECT pg_catalog.quote_ident(version) "\ +"   FROM pg_catalog.pg_available_extension_versions "\ +"  WHERE (%d = pg_catalog.length('%s'))"\ +"    AND pg_catalog.quote_ident(name)='%s'" +  #define Query_for_list_of_prepared_statements \  " SELECT pg_catalog.quote_ident(name) "\  "   FROM pg_catalog.pg_prepared_statements "\ @@ -2266,10 +2273,18 @@ psql_completion(const char *text, int start, int end)  			 pg_strcasecmp(prev2_wd, "EXTENSION") == 0)  	{  		static const char *const list_CREATE_EXTENSION[] = -		{"WITH SCHEMA", "CASCADE", NULL}; +		{"WITH SCHEMA", "CASCADE", "VERSION", NULL};  		COMPLETE_WITH_LIST(list_CREATE_EXTENSION);  	} +	/* CREATE EXTENSION <name> VERSION */ +	else if (pg_strcasecmp(prev4_wd, "CREATE") == 0 && +			 pg_strcasecmp(prev3_wd, "EXTENSION") == 0 && +			 pg_strcasecmp(prev_wd, "VERSION") == 0) +	{ +		completion_info_charp = prev2_wd; +		COMPLETE_WITH_QUERY(Query_for_list_of_available_extension_versions); +	}  	/* CREATE FOREIGN */  	else if (pg_strcasecmp(prev2_wd, "CREATE") == 0 && | 
