On Tue, Nov 23, 2021 at 4:58 PM Ajin Cherian <itsa...@gmail.com> wrote: > > Attaching a new patchset v41 which includes changes by both Peter and myself.
Few comments on v41-0002 patch: 1) Tab completion should be handled for completion of "WITH(" in "create publication pub1 for table t1 where (c1 > 10)": @@ -2757,10 +2765,13 @@ psql_completion(const char *text, int start, int end) else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "ALL", "TABLES")) COMPLETE_WITH("IN SCHEMA", "WITH ("); else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "TABLE", MatchAny)) - COMPLETE_WITH("WITH ("); + 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, NULL); + /* "CREATE PUBLICATION <name> FOR TABLE <name> WHERE (" - complete with table attributes */ + else if (HeadMatches("CREATE", "PUBLICATION", MatchAny) && TailMatches("WHERE", "(")) + COMPLETE_WITH_ATTR(prev3_wd, ""); 2) Tab completion completes with "WHERE (" in case of "alter publication pub1 add table t1,": + /* ALTER PUBLICATION <name> SET TABLE <name> */ + /* ALTER PUBLICATION <name> ADD TABLE <name> */ + else if (Matches("ALTER", "PUBLICATION", MatchAny, "SET|ADD", "TABLE", MatchAny)) + COMPLETE_WITH("WHERE ("); Should this be changed to: + /* ALTER PUBLICATION <name> SET TABLE <name> */ + /* ALTER PUBLICATION <name> ADD TABLE <name> */ + else if (Matches("ALTER", "PUBLICATION", MatchAny, "SET|ADD", "TABLE", MatchAny) && (!ends_with(prev_wd, ',')) + COMPLETE_WITH("WHERE ("); Regards, Vignesh