diff --git a/src/DataTypes/DataTypeTuple.cpp b/src/DataTypes/DataTypeTuple.cpp index f78e679ddbe..0218a7a4e1c 100644 --- a/src/DataTypes/DataTypeTuple.cpp +++ b/src/DataTypes/DataTypeTuple.cpp @@ -60,8 +60,8 @@ static void checkTupleNames(const Strings & names, std::functiongetName(); diff --git a/src/DataTypes/DataTypeTuple.h b/src/DataTypes/DataTypeTuple.h index ed16d3c47d5..da3dfdb1d3d 100644 --- a/src/DataTypes/DataTypeTuple.h +++ b/src/DataTypes/DataTypeTuple.h @@ -22,11 +22,12 @@ private: DataTypes elems; Strings names; bool have_explicit_names; + bool serialize_names; public: static constexpr bool is_parametric = true; DataTypeTuple(const DataTypes & elems); - DataTypeTuple(const DataTypes & elems, const Strings & names); + DataTypeTuple(const DataTypes & elems, const Strings & names, bool serialize_names_ = true); static bool canBeCreatedWithNames(const Strings & names); diff --git a/src/Functions/tuple.cpp b/src/Functions/tuple.cpp index 6808eeb4e3a..024473937eb 100644 --- a/src/Functions/tuple.cpp +++ b/src/Functions/tuple.cpp @@ -68,7 +68,7 @@ public: /// Create named tuple if possible. if (DataTypeTuple::canBeCreatedWithNames(names)) - return std::make_shared(types, names); + return std::make_shared(types, names, false); return std::make_shared(types); } diff --git a/src/Parsers/ParserDataType.cpp b/src/Parsers/ParserDataType.cpp index acd68e51e42..a0a4eb97efe 100644 --- a/src/Parsers/ParserDataType.cpp +++ b/src/Parsers/ParserDataType.cpp @@ -8,23 +8,6 @@ namespace DB { -namespace -{ - class ParserNestedOrExpression : public IParserBase - { - protected: - const char * getName() const override { return "nested or expression"; } - - bool parseImpl(Pos & pos, ASTPtr & node, Expected & expected) override - { - ParserNestedTable nested_parser; - ParserExpression expr_parser; - return nested_parser.parse(pos, node, expected) || expr_parser.parse(pos, node, expected); - } - }; -} - - bool ParserDataType::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) { ParserNestedTable nested; @@ -95,7 +78,7 @@ bool ParserDataType::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) ++pos; /// Parse optional parameters - ParserList args_parser(std::make_unique(), std::make_unique(TokenType::Comma)); + ParserList args_parser(std::make_unique(), std::make_unique(TokenType::Comma)); ASTPtr expr_list_args; if (!args_parser.parse(pos, expr_list_args, expected))