|
3 | 3 | * |
4 | 4 | * Copyright (c) 2000-2010, PostgreSQL Global Development Group |
5 | 5 | * |
6 | | - * $PostgreSQL: pgsql/src/bin/psql/tab-complete.c,v 1.197 2010/04/05 05:33:24 itagaki Exp $ |
| 6 | + * $PostgreSQL: pgsql/src/bin/psql/tab-complete.c,v 1.198 2010/04/07 03:51:19 itagaki Exp $ |
7 | 7 | */ |
8 | 8 |
|
9 | 9 | /*---------------------------------------------------------------------- |
@@ -700,7 +700,7 @@ psql_completion(char *text, int start, int end) |
700 | 700 | pg_strcasecmp(prev3_wd,"TABLE")!=0) |
701 | 701 | { |
702 | 702 | staticconstchar*constlist_ALTER[]= |
703 | | -{"AGGREGATE","CONVERSION","DATABASE","DOMAIN","FOREIGN DATA WRAPPER","FUNCTION", |
| 703 | +{"AGGREGATE","CONVERSION","DATABASE","DEFAULT PRIVILEGES","DOMAIN","FOREIGN DATA WRAPPER","FUNCTION", |
704 | 704 | "GROUP","INDEX","LANGUAGE","LARGE OBJECT","OPERATOR","ROLE","SCHEMA","SERVER","SEQUENCE","TABLE", |
705 | 705 | "TABLESPACE","TEXT SEARCH","TRIGGER","TYPE","USER","USER MAPPING FOR","VIEW",NULL}; |
706 | 706 |
|
@@ -846,6 +846,38 @@ psql_completion(char *text, int start, int end) |
846 | 846 | { |
847 | 847 | COMPLETE_WITH_CONST("PASSWORD"); |
848 | 848 | } |
| 849 | +/* ALTER DEFAULT PRIVILEGES */ |
| 850 | +elseif (pg_strcasecmp(prev3_wd,"ALTER")==0&& |
| 851 | +pg_strcasecmp(prev2_wd,"DEFAULT")==0&& |
| 852 | +pg_strcasecmp(prev_wd,"PRIVILEGES")==0) |
| 853 | +{ |
| 854 | +staticconstchar*constlist_ALTER_DEFAULT_PRIVILEGES[]= |
| 855 | +{"FOR ROLE","FOR USER","IN SCHEMA",NULL}; |
| 856 | + |
| 857 | +COMPLETE_WITH_LIST(list_ALTER_DEFAULT_PRIVILEGES); |
| 858 | +} |
| 859 | +/* ALTER DEFAULT PRIVILEGES FOR */ |
| 860 | +elseif (pg_strcasecmp(prev4_wd,"ALTER")==0&& |
| 861 | +pg_strcasecmp(prev3_wd,"DEFAULT")==0&& |
| 862 | +pg_strcasecmp(prev2_wd,"PRIVILEGES")==0&& |
| 863 | +pg_strcasecmp(prev_wd,"FOR")==0) |
| 864 | +{ |
| 865 | +staticconstchar*constlist_ALTER_DEFAULT_PRIVILEGES_FOR[]= |
| 866 | +{"ROLE","USER",NULL}; |
| 867 | + |
| 868 | +COMPLETE_WITH_LIST(list_ALTER_DEFAULT_PRIVILEGES_FOR); |
| 869 | +} |
| 870 | +/* ALTER DEFAULT PRIVILEGES { FOR ROLE ... | IN SCHEMA ... } */ |
| 871 | +elseif (pg_strcasecmp(prev5_wd,"DEFAULT")==0&& |
| 872 | +pg_strcasecmp(prev4_wd,"PRIVILEGES")==0&& |
| 873 | + (pg_strcasecmp(prev3_wd,"FOR")==0|| |
| 874 | +pg_strcasecmp(prev3_wd,"IN")==0)) |
| 875 | +{ |
| 876 | +staticconstchar*constlist_ALTER_DEFAULT_PRIVILEGES_REST[]= |
| 877 | +{"GRANT","REVOKE",NULL}; |
| 878 | + |
| 879 | +COMPLETE_WITH_LIST(list_ALTER_DEFAULT_PRIVILEGES_REST); |
| 880 | +} |
849 | 881 | /* ALTER DOMAIN <name> */ |
850 | 882 | elseif (pg_strcasecmp(prev3_wd,"ALTER")==0&& |
851 | 883 | pg_strcasecmp(prev2_wd,"DOMAIN")==0) |
@@ -2336,7 +2368,10 @@ psql_completion(char *text, int start, int end) |
2336 | 2368 | pg_strcasecmp(prev3_wd,"USER")==0&& |
2337 | 2369 | pg_strcasecmp(prev2_wd,"MAPPING")==0&& |
2338 | 2370 | pg_strcasecmp(prev_wd,"FOR")==0) |
2339 | | -COMPLETE_WITH_QUERY(Query_for_list_of_roles); |
| 2371 | +COMPLETE_WITH_QUERY(Query_for_list_of_roles |
| 2372 | +" UNION SELECT 'CURRENT_USER'" |
| 2373 | +" UNION SELECT 'PUBLIC'" |
| 2374 | +" UNION SELECT 'USER'"); |
2340 | 2375 | elseif ((pg_strcasecmp(prev4_wd,"ALTER")==0|| |
2341 | 2376 | pg_strcasecmp(prev4_wd,"DROP")==0)&& |
2342 | 2377 | pg_strcasecmp(prev3_wd,"USER")==0&& |
|