*** a/src/bin/psql/tab-complete.c
--- b/src/bin/psql/tab-complete.c
***************
*** 899,905 **** static const pgsql_thing_t words_after_create[] = {
  	{"GROUP", Query_for_list_of_roles},
  	{"LANGUAGE", Query_for_list_of_languages},
  	{"INDEX", NULL, &Query_for_list_of_indexes},
! 	{"MATERIALIZED VIEW", NULL, NULL},
  	{"OPERATOR", NULL, NULL},	/* Querying for this is probably not such a
  								 * good idea. */
  	{"OWNED", NULL, NULL, THING_NO_CREATE},		/* for DROP OWNED BY ... */
--- 899,905 ----
  	{"GROUP", Query_for_list_of_roles},
  	{"LANGUAGE", Query_for_list_of_languages},
  	{"INDEX", NULL, &Query_for_list_of_indexes},
! 	{"MATERIALIZED VIEW", NULL, &Query_for_list_of_matviews},
  	{"OPERATOR", NULL, NULL},	/* Querying for this is probably not such a
  								 * good idea. */
  	{"OWNED", NULL, NULL, THING_NO_CREATE},		/* for DROP OWNED BY ... */
***************
*** 2653,2665 **** psql_completion(const char *text, int start, int end)
  	else if (Matches4("REFRESH", "MATERIALIZED", "VIEW", MatchAny))
  		COMPLETE_WITH_CONST("WITH");
  	else if (Matches5("REFRESH", "MATERIALIZED", "VIEW", "CONCURRENTLY", MatchAny))
! 		COMPLETE_WITH_CONST("WITH DATA");
  	else if (Matches5("REFRESH", "MATERIALIZED", "VIEW", MatchAny, "WITH"))
  		COMPLETE_WITH_LIST2("NO DATA", "DATA");
  	else if (Matches6("REFRESH", "MATERIALIZED", "VIEW", "CONCURRENTLY", MatchAny, "WITH"))
! 		COMPLETE_WITH_CONST("DATA");
! 	else if (Matches6("REFRESH", "MATERIALIZED", "VIEW", MatchAny, "WITH", "NO"))
! 		COMPLETE_WITH_CONST("DATA");
  
  /* REINDEX */
  	else if (Matches1("REINDEX"))
--- 2653,2663 ----
  	else if (Matches4("REFRESH", "MATERIALIZED", "VIEW", MatchAny))
  		COMPLETE_WITH_CONST("WITH");
  	else if (Matches5("REFRESH", "MATERIALIZED", "VIEW", "CONCURRENTLY", MatchAny))
! 		COMPLETE_WITH_CONST("WITH");
  	else if (Matches5("REFRESH", "MATERIALIZED", "VIEW", MatchAny, "WITH"))
  		COMPLETE_WITH_LIST2("NO DATA", "DATA");
  	else if (Matches6("REFRESH", "MATERIALIZED", "VIEW", "CONCURRENTLY", MatchAny, "WITH"))
! 		COMPLETE_WITH_LIST2("NO DATA", "DATA");
  
  /* REINDEX */
  	else if (Matches1("REINDEX"))
