Update tab-completion for CREATE PUBLICATION with sequences
Commit 75b1521dae
added support for sequences to built-in replication,
but the tab-completion was updated only for ALTER PUBLICATION, not for
CREATE PUBLICATION.
Report and patch by Masahiko Sawada.
Author: Masahiko Sawada
Discussion: https://postgr.es/m/CAD21AoDtKpdJcHOLjfPQ7TmpFqNB5__%3DQ_g1e8OBRrwT5LP-%3Dg%40mail.gmail.com
This commit is contained in:
parent
49d9cfc68b
commit
2d2232933b
|
@ -2971,21 +2971,27 @@ psql_completion(const char *text, int start, int end)
|
||||||
|
|
||||||
/* CREATE PUBLICATION */
|
/* CREATE PUBLICATION */
|
||||||
else if (Matches("CREATE", "PUBLICATION", MatchAny))
|
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"))
|
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"))
|
else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "ALL"))
|
||||||
COMPLETE_WITH("TABLES", "TABLES IN SCHEMA");
|
COMPLETE_WITH("TABLES", "TABLES IN SCHEMA", "SEQUENCES", "SEQUENCES IN SCHEMA");
|
||||||
else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "ALL", "TABLES"))
|
else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "ALL", "TABLES|SEQUENCES"))
|
||||||
COMPLETE_WITH("IN SCHEMA", "WITH (");
|
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_WITH("WHERE (", "WITH (");
|
||||||
/* Complete "CREATE PUBLICATION <name> FOR TABLE" with "<table>, ..." */
|
/* Complete "CREATE PUBLICATION <name> FOR TABLE" with "<table>, ..." */
|
||||||
else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "TABLE"))
|
else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "TABLE"))
|
||||||
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables);
|
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
|
* table attributes
|
||||||
*/
|
*/
|
||||||
else if (HeadMatches("CREATE", "PUBLICATION", MatchAny) && TailMatches("WHERE"))
|
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_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
|
COMPLETE_WITH_QUERY_PLUS(Query_for_list_of_schemas
|
||||||
" AND nspname NOT LIKE E'pg\\\\_%%'",
|
" AND nspname NOT LIKE E'pg\\\\_%%'",
|
||||||
"CURRENT_SCHEMA");
|
"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_WITH("WITH (");
|
||||||
/* Complete "CREATE PUBLICATION <name> [...] WITH" */
|
/* Complete "CREATE PUBLICATION <name> [...] WITH" */
|
||||||
else if (HeadMatches("CREATE", "PUBLICATION") && TailMatches("WITH", "("))
|
else if (HeadMatches("CREATE", "PUBLICATION") && TailMatches("WITH", "("))
|
||||||
|
|
Loading…
Reference in New Issue