diff options
Diffstat (limited to 'sql/sql_view.cc')
-rw-r--r-- | sql/sql_view.cc | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/sql/sql_view.cc b/sql/sql_view.cc index a3e0f6b1e5a..82acab7129e 100644 --- a/sql/sql_view.cc +++ b/sql/sql_view.cc @@ -573,6 +573,19 @@ bool mysql_create_view(THD *thd, TABLE_LIST *views, } append_identifier(thd, &buff, views->table_name, views->table_name_length); + if (lex->view_list.elements) + { + List_iterator_fast<LEX_STRING> names(lex->view_list); + LEX_STRING *name; + int i; + + for (i= 0; name= names++; i++) + { + buff.append(i ? ", " : "("); + append_identifier(thd, &buff, name->str, name->length); + } + buff.append(')'); + } buff.append(STRING_WITH_LEN(" AS ")); buff.append(views->source.str, views->source.length); @@ -1378,7 +1391,7 @@ bool mysql_drop_view(THD *thd, TABLE_LIST *views, enum_drop_mode drop_mode) error= TRUE; query_cache_invalidate3(thd, view, 0); sp_cache_invalidate(); - + } if (mysql_bin_log.is_open()) { thd->clear_error(); |