diff --git a/src/AggregateFunctions/AggregateFunctionAvg.h b/src/AggregateFunctions/AggregateFunctionAvg.h index fca9df9dd98..d07ff5db2f2 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.h +++ b/src/AggregateFunctions/AggregateFunctionAvg.h @@ -33,7 +33,7 @@ struct AvgFraction /// Allow division by zero as sometimes we need to return NaN. /// Invoked only is either Numerator or Denominator are Decimal. - Float64 NO_SANITIZE_UNDEFINED divideIfAnyDecimal(UInt32 num_scale, UInt32 denom_scale) const + Float64 NO_SANITIZE_UNDEFINED divideIfAnyDecimal(UInt32 num_scale, UInt32 denom_scale [[maybe_unused]]) const { if constexpr (IsDecimalNumber && IsDecimalNumber) { diff --git a/src/Parsers/ParserCreateQuery.cpp b/src/Parsers/ParserCreateQuery.cpp index b08646bcf9d..5fe6a4eee80 100644 --- a/src/Parsers/ParserCreateQuery.cpp +++ b/src/Parsers/ParserCreateQuery.cpp @@ -449,12 +449,22 @@ bool ParserCreateTableQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expe if (!s_rparen.ignore(pos, expected)) return false; - if (!storage_p.parse(pos, storage, expected) && !is_temporary) + auto storage_parse_result = storage_p.parse(pos, storage, expected); + + if (storage_parse_result && s_as.ignore(pos, expected)) + { + if (!select_p.parse(pos, select, expected)) + return false; + } + + if (!storage_parse_result && !is_temporary) { if (!s_as.ignore(pos, expected)) return false; if (!table_function_p.parse(pos, as_table_function, expected)) + { return false; + } } } else diff --git a/tests/queries/0_stateless/01056_create_table_as.reference b/tests/queries/0_stateless/01056_create_table_as.reference index e69de29bb2d..c6e14cb675e 100644 --- a/tests/queries/0_stateless/01056_create_table_as.reference +++ b/tests/queries/0_stateless/01056_create_table_as.reference @@ -0,0 +1 @@ +1 String diff --git a/tests/queries/0_stateless/01056_create_table_as.sql b/tests/queries/0_stateless/01056_create_table_as.sql index bf2a143fa5a..c27f30b61d5 100644 --- a/tests/queries/0_stateless/01056_create_table_as.sql +++ b/tests/queries/0_stateless/01056_create_table_as.sql @@ -49,3 +49,7 @@ DROP DICTIONARY dict; DROP TABLE test_01056_dict_data.dict_data; DROP DATABASE test_01056_dict_data; + +CREATE TABLE t1 (x String) ENGINE = Memory AS SELECT 1; +SELECT x, toTypeName(x) FROM t1; +DROP TABLE t1;