|
|
|
|
@ -2971,21 +2971,27 @@ psql_completion(const char *text, int start, int end) |
|
|
|
|
|
|
|
|
|
/* CREATE PUBLICATION */ |
|
|
|
|
else if (Matches("CREATE", "PUBLICATION", MatchAny)) |
|
|
|
|
COMPLETE_WITH("FOR TABLE", "FOR ALL TABLES", "FOR ALL TABLES IN SCHEMA", "WITH ("); |
|
|
|
|
COMPLETE_WITH("FOR TABLE", "FOR ALL TABLES", "FOR ALL TABLES IN SCHEMA", |
|
|
|
|
"FOR SEQUENCE", "FOR ALL SEQUENCES", "FOR ALL SEQUENCES IN SCHEMA", |
|
|
|
|
"WITH ("); |
|
|
|
|
else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR")) |
|
|
|
|
COMPLETE_WITH("TABLE", "ALL TABLES", "ALL TABLES IN SCHEMA"); |
|
|
|
|
COMPLETE_WITH("TABLE", "ALL TABLES", "ALL TABLES IN SCHEMA", |
|
|
|
|
"SEQUENCE", "ALL SEQUENCES", "ALL SEQUENCES IN SCHEMA"); |
|
|
|
|
else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "ALL")) |
|
|
|
|
COMPLETE_WITH("TABLES", "TABLES IN SCHEMA"); |
|
|
|
|
else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "ALL", "TABLES")) |
|
|
|
|
COMPLETE_WITH("TABLES", "TABLES IN SCHEMA", "SEQUENCES", "SEQUENCES IN SCHEMA"); |
|
|
|
|
else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "ALL", "TABLES|SEQUENCES")) |
|
|
|
|
COMPLETE_WITH("IN SCHEMA", "WITH ("); |
|
|
|
|
else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "TABLE", MatchAny) && !ends_with(prev_wd, ',')) |
|
|
|
|
else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "TABLE|SEQUENCE", MatchAny) && !ends_with(prev_wd, ',')) |
|
|
|
|
COMPLETE_WITH("WHERE (", "WITH ("); |
|
|
|
|
/* Complete "CREATE PUBLICATION <name> FOR TABLE" with "<table>, ..." */ |
|
|
|
|
else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "TABLE")) |
|
|
|
|
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables); |
|
|
|
|
/* Complete "CREATE PUBLICATION <name> FOR SEQUENCE" with "<sequence>, ..." */ |
|
|
|
|
else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "SEQUENCE")) |
|
|
|
|
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_sequences); |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* "CREATE PUBLICATION <name> FOR TABLE <name> WHERE (" - complete with |
|
|
|
|
* "CREATE PUBLICATION <name> FOR TABLE|SEQUENCE <name> WHERE (" - complete with |
|
|
|
|
* table attributes |
|
|
|
|
*/ |
|
|
|
|
else if (HeadMatches("CREATE", "PUBLICATION", MatchAny) && TailMatches("WHERE")) |
|
|
|
|
@ -2996,14 +3002,14 @@ psql_completion(const char *text, int start, int end) |
|
|
|
|
COMPLETE_WITH(" WITH ("); |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Complete "CREATE PUBLICATION <name> FOR ALL TABLES IN SCHEMA <schema>, |
|
|
|
|
* Complete "CREATE PUBLICATION <name> FOR ALL TABLES|SEQUENCES IN SCHEMA <schema>, |
|
|
|
|
* ..." |
|
|
|
|
*/ |
|
|
|
|
else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "ALL", "TABLES", "IN", "SCHEMA")) |
|
|
|
|
else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "ALL", "TABLES|SEQUENCES", "IN", "SCHEMA")) |
|
|
|
|
COMPLETE_WITH_QUERY_PLUS(Query_for_list_of_schemas |
|
|
|
|
" AND nspname NOT LIKE E'pg\\\\_%%'", |
|
|
|
|
"CURRENT_SCHEMA"); |
|
|
|
|
else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "ALL", "TABLES", "IN", "SCHEMA", MatchAny) && (!ends_with(prev_wd, ','))) |
|
|
|
|
else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "ALL", "TABLES|SEQUENCES", "IN", "SCHEMA", MatchAny) && (!ends_with(prev_wd, ','))) |
|
|
|
|
COMPLETE_WITH("WITH ("); |
|
|
|
|
/* Complete "CREATE PUBLICATION <name> [...] WITH" */ |
|
|
|
|
else if (HeadMatches("CREATE", "PUBLICATION") && TailMatches("WITH", "(")) |
|
|
|
|
|