Fix create table as table function with engine

This commit is contained in:
hcz 2020-08-21 16:11:49 +08:00
parent 8f1ba521a0
commit 73c5fbcba5
2 changed files with 8 additions and 6 deletions

View File

@ -265,11 +265,6 @@ void ASTCreateQuery::formatQueryImpl(const FormatSettings & settings, FormatStat
formatOnCluster(settings); formatOnCluster(settings);
} }
if (as_table_function)
{
settings.ostr << (settings.hilite ? hilite_keyword : "") << " AS " << (settings.hilite ? hilite_none : "");
as_table_function->formatImpl(settings, state, frame);
}
if (to_table_id) if (to_table_id)
{ {
settings.ostr settings.ostr
@ -285,6 +280,12 @@ void ASTCreateQuery::formatQueryImpl(const FormatSettings & settings, FormatStat
<< (!as_database.empty() ? backQuoteIfNeed(as_database) + "." : "") << backQuoteIfNeed(as_table); << (!as_database.empty() ? backQuoteIfNeed(as_database) + "." : "") << backQuoteIfNeed(as_table);
} }
if (as_table_function)
{
settings.ostr << (settings.hilite ? hilite_keyword : "") << " AS " << (settings.hilite ? hilite_none : "");
as_table_function->formatImpl(settings, state, frame);
}
frame.expression_list_always_start_on_new_line = true; frame.expression_list_always_start_on_new_line = true;
if (columns_list) if (columns_list)

View File

@ -427,7 +427,8 @@ bool ParserCreateTableQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expe
if (!select_p.parse(pos, select, expected)) /// AS SELECT ... if (!select_p.parse(pos, select, expected)) /// AS SELECT ...
{ {
if (!table_function_p.parse(pos, as_table_function, expected)) /// ENGINE can not be specified for table functions.
if (storage || !table_function_p.parse(pos, as_table_function, expected))
{ {
/// AS [db.]table /// AS [db.]table
if (!name_p.parse(pos, as_table, expected)) if (!name_p.parse(pos, as_table, expected))