diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c new file mode 100644 index 975d655..8ad5c4c *** a/src/bin/psql/tab-complete.c --- b/src/bin/psql/tab-complete.c *************** psql_completion(char *text, int start, i *** 2826,2833 **** pg_strcasecmp(prev2_wd, "ANALYZE") == 0)) COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables, NULL); ! /* WITH [RECURSIVE] */ ! else if (pg_strcasecmp(prev_wd, "WITH") == 0) COMPLETE_WITH_CONST("RECURSIVE"); /* ANALYZE */ --- 2835,2845 ---- pg_strcasecmp(prev2_wd, "ANALYZE") == 0)) COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables, NULL); ! /* WITH [RECURSIVE]. Only match when WITH is the first word, as WITH ! may appear in various other contexts e.g. ALTER ROLE. ! */ ! else if (pg_strcasecmp(prev_wd, "WITH") == 0 && ! prev2_wd[0] == '\0') COMPLETE_WITH_CONST("RECURSIVE"); /* ANALYZE */