From 5586f1ed2a48f9be39dc854e0e13bd9fbe85274e Mon Sep 17 00:00:00 2001 From: ywqzzy <592838129@qq.com> Date: Fri, 2 Sep 2022 15:08:48 +0800 Subject: [PATCH 1/7] u --- dbms/src/WindowFunctions/tests/gtest_lead_lag.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/dbms/src/WindowFunctions/tests/gtest_lead_lag.cpp b/dbms/src/WindowFunctions/tests/gtest_lead_lag.cpp index 71206df8aab..b77cfe650e4 100644 --- a/dbms/src/WindowFunctions/tests/gtest_lead_lag.cpp +++ b/dbms/src/WindowFunctions/tests/gtest_lead_lag.cpp @@ -36,10 +36,13 @@ class LeadLag : public DB::tests::ExecutorTest void executeWithConcurrencyAndBlockSize(const std::shared_ptr & request, const ColumnsWithTypeAndName & expect_columns) { WRAP_FOR_DIS_ENABLE_PLANNER_BEGIN - std::vector block_sizes{1, 2, 3, DEFAULT_BLOCK_SIZE}; + auto to_field = [](size_t block_size) { + return Field(static_cast(block_size)); + }; + std::vector block_sizes{1, 2, 3, 4, DEFAULT_BLOCK_SIZE}; for (auto block_size : block_sizes) { - context.context.setSetting("max_block_size", block_size); + context.context.setSetting("max_block_size", to_field(block_size)); ASSERT_COLUMNS_EQ_R(expect_columns, executeStreams(request)); for (size_t i = 2; i <= max_concurrency_level; ++i) { @@ -114,7 +117,7 @@ class LeadLag : public DB::tests::ExecutorTest } }; -TEST_F(LeadLag, one_arg) +TEST_F(LeadLag, oneArg) try { executeFunctionAndAssert( @@ -132,7 +135,7 @@ try } CATCH -TEST_F(LeadLag, two_arg) +TEST_F(LeadLag, twoArgs) try { // arg2 == 0 @@ -215,7 +218,7 @@ try } CATCH -TEST_F(LeadLag, three_arg) +TEST_F(LeadLag, threeArgs) try { // arg2 == 0 @@ -294,7 +297,7 @@ try } CATCH -TEST_F(LeadLag, test_null) +TEST_F(LeadLag, testNull) try { executeFunctionAndAssert( From 28f1ac16255279e8c791f3392af92eb00c6f7610 Mon Sep 17 00:00:00 2001 From: ywqzzy <592838129@qq.com> Date: Thu, 15 Sep 2022 09:57:18 +0800 Subject: [PATCH 2/7] Merge branch 'master' of https://github.com/pingcap/tiflash From 445517d2ca1a6b56d9ca0f1c0e4e3bb3ac1871b0 Mon Sep 17 00:00:00 2001 From: ywqzzy <592838129@qq.com> Date: Thu, 15 Sep 2022 12:23:45 +0800 Subject: [PATCH 3/7] init. --- dbms/CMakeLists.txt | 1 + .../{ => MockExecutor}/astToExecutor.cpp | 168 ++---------------- .../Debug/{ => MockExecutor}/astToExecutor.h | 29 +-- .../Debug/MockExecutor/astToExecutorUtils.cpp | 73 ++++++++ .../Debug/MockExecutor/astToExecutorUtils.h | 50 ++++++ dbms/src/Debug/MockExecutor/funcSigs.h | 102 +++++++++++ dbms/src/Debug/dbgFuncCoprocessor.cpp | 2 +- dbms/src/Debug/dbgFuncCoprocessor.h | 3 +- dbms/src/Server/FlashGrpcServerHolder.h | 3 +- dbms/src/TestUtils/ColumnsToTiPBExpr.cpp | 3 +- dbms/src/TestUtils/mockExecutor.cpp | 2 +- dbms/src/TestUtils/mockExecutor.h | 2 +- 12 files changed, 255 insertions(+), 183 deletions(-) rename dbms/src/Debug/{ => MockExecutor}/astToExecutor.cpp (91%) rename dbms/src/Debug/{ => MockExecutor}/astToExecutor.h (95%) create mode 100644 dbms/src/Debug/MockExecutor/astToExecutorUtils.cpp create mode 100644 dbms/src/Debug/MockExecutor/astToExecutorUtils.h create mode 100644 dbms/src/Debug/MockExecutor/funcSigs.h diff --git a/dbms/CMakeLists.txt b/dbms/CMakeLists.txt index 8ae86abea13..76a57d40250 100644 --- a/dbms/CMakeLists.txt +++ b/dbms/CMakeLists.txt @@ -66,6 +66,7 @@ add_headers_and_sources(dbms src/DataStreams) add_headers_and_sources(dbms src/DataTypes) add_headers_and_sources(dbms src/Databases) add_headers_and_sources(dbms src/Debug) +add_headers_and_sources(dbms src/Debug/MockExecutor) add_headers_and_sources(dbms src/Dictionaries) add_headers_and_sources(dbms src/Dictionaries/Embedded) add_headers_and_sources(dbms src/Dictionaries/Embedded/GeodataProviders) diff --git a/dbms/src/Debug/astToExecutor.cpp b/dbms/src/Debug/MockExecutor/astToExecutor.cpp similarity index 91% rename from dbms/src/Debug/astToExecutor.cpp rename to dbms/src/Debug/MockExecutor/astToExecutor.cpp index 0a8c78bfcd8..6a5f38de9e0 100644 --- a/dbms/src/Debug/astToExecutor.cpp +++ b/dbms/src/Debug/MockExecutor/astToExecutor.cpp @@ -16,7 +16,8 @@ #include #include #include -#include +#include +#include #include #include #include @@ -31,8 +32,16 @@ namespace DB { +namespace ErrorCodes +{ +extern const int BAD_ARGUMENTS; +extern const int LOGICAL_ERROR; +extern const int NO_SUCH_COLUMN_IN_TABLE; +} // namespace ErrorCodes + using ASTPartitionByElement = ASTOrderByElement; using MockComputeServerManager = tests::MockComputeServerManager; + void literalFieldToTiPBExpr(const ColumnInfo & ci, const Field & val_field, tipb::Expr * expr, Int32 collator_id) { *(expr->mutable_field_type()) = columnInfoToFieldType(ci); @@ -120,96 +129,6 @@ void literalFieldToTiPBExpr(const ColumnInfo & ci, const Field & val_field, tipb } } -namespace -{ -std::unordered_map func_name_to_sig({ - {"plusint", tipb::ScalarFuncSig::PlusInt}, - {"minusint", tipb::ScalarFuncSig::MinusInt}, - {"equals", tipb::ScalarFuncSig::EQInt}, - {"notEquals", tipb::ScalarFuncSig::NEInt}, - {"and", tipb::ScalarFuncSig::LogicalAnd}, - {"or", tipb::ScalarFuncSig::LogicalOr}, - {"xor", tipb::ScalarFuncSig::LogicalXor}, - {"not", tipb::ScalarFuncSig::UnaryNotInt}, - {"greater", tipb::ScalarFuncSig::GTInt}, - {"greaterorequals", tipb::ScalarFuncSig::GEInt}, - {"less", tipb::ScalarFuncSig::LTInt}, - {"lessorequals", tipb::ScalarFuncSig::LEInt}, - {"in", tipb::ScalarFuncSig::InInt}, - {"notin", tipb::ScalarFuncSig::InInt}, - {"date_format", tipb::ScalarFuncSig::DateFormatSig}, - {"if", tipb::ScalarFuncSig::IfInt}, - {"from_unixtime", tipb::ScalarFuncSig::FromUnixTime2Arg}, - /// bit_and/bit_or/bit_xor is aggregated function in clickhouse/mysql - {"bitand", tipb::ScalarFuncSig::BitAndSig}, - {"bitor", tipb::ScalarFuncSig::BitOrSig}, - {"bitxor", tipb::ScalarFuncSig::BitXorSig}, - {"bitnot", tipb::ScalarFuncSig::BitNegSig}, - {"notequals", tipb::ScalarFuncSig::NEInt}, - {"like", tipb::ScalarFuncSig::LikeSig}, - {"cast_int_int", tipb::ScalarFuncSig::CastIntAsInt}, - {"cast_int_real", tipb::ScalarFuncSig::CastIntAsReal}, - {"cast_real_int", tipb::ScalarFuncSig::CastRealAsInt}, - {"cast_real_real", tipb::ScalarFuncSig::CastRealAsReal}, - {"cast_decimal_int", tipb::ScalarFuncSig::CastDecimalAsInt}, - {"cast_time_int", tipb::ScalarFuncSig::CastTimeAsInt}, - {"cast_string_int", tipb::ScalarFuncSig::CastStringAsInt}, - {"cast_int_decimal", tipb::ScalarFuncSig::CastIntAsDecimal}, - {"cast_real_decimal", tipb::ScalarFuncSig::CastRealAsDecimal}, - {"cast_decimal_decimal", tipb::ScalarFuncSig::CastDecimalAsDecimal}, - {"cast_time_decimal", tipb::ScalarFuncSig::CastTimeAsDecimal}, - {"cast_string_decimal", tipb::ScalarFuncSig::CastStringAsDecimal}, - {"cast_int_string", tipb::ScalarFuncSig::CastIntAsString}, - {"cast_real_string", tipb::ScalarFuncSig::CastRealAsString}, - {"cast_decimal_string", tipb::ScalarFuncSig::CastDecimalAsString}, - {"cast_time_string", tipb::ScalarFuncSig::CastTimeAsString}, - {"cast_string_string", tipb::ScalarFuncSig::CastStringAsString}, - {"cast_int_date", tipb::ScalarFuncSig::CastIntAsTime}, - {"cast_real_date", tipb::ScalarFuncSig::CastRealAsTime}, - {"cast_decimal_date", tipb::ScalarFuncSig::CastDecimalAsTime}, - {"cast_time_date", tipb::ScalarFuncSig::CastTimeAsTime}, - {"cast_string_date", tipb::ScalarFuncSig::CastStringAsTime}, - {"cast_int_datetime", tipb::ScalarFuncSig::CastIntAsTime}, - {"cast_real_datetime", tipb::ScalarFuncSig::CastRealAsTime}, - {"cast_decimal_datetime", tipb::ScalarFuncSig::CastDecimalAsTime}, - {"cast_time_datetime", tipb::ScalarFuncSig::CastTimeAsTime}, - {"cast_string_datetime", tipb::ScalarFuncSig::CastStringAsTime}, - {"concat", tipb::ScalarFuncSig::Concat}, - {"round_int", tipb::ScalarFuncSig::RoundInt}, - {"round_uint", tipb::ScalarFuncSig::RoundInt}, - {"round_dec", tipb::ScalarFuncSig::RoundDec}, - {"round_real", tipb::ScalarFuncSig::RoundReal}, - {"round_with_frac_int", tipb::ScalarFuncSig::RoundWithFracInt}, - {"round_with_frac_uint", tipb::ScalarFuncSig::RoundWithFracInt}, - {"round_with_frac_dec", tipb::ScalarFuncSig::RoundWithFracDec}, - {"round_with_frac_real", tipb::ScalarFuncSig::RoundWithFracReal}, -}); - -std::unordered_map agg_func_name_to_sig({ - {"min", tipb::ExprType::Min}, - {"max", tipb::ExprType::Max}, - {"count", tipb::ExprType::Count}, - {"sum", tipb::ExprType::Sum}, - {"first_row", tipb::ExprType::First}, - {"uniqRawRes", tipb::ExprType::ApproxCountDistinct}, - {"group_concat", tipb::ExprType::GroupConcat}, -}); - -std::unordered_map window_func_name_to_sig({ - {"RowNumber", tipb::ExprType::RowNumber}, - {"Rank", tipb::ExprType::Rank}, - {"DenseRank", tipb::ExprType::DenseRank}, - {"Lead", tipb::ExprType::Lead}, - {"Lag", tipb::ExprType::Lag}, -}); - -DAGColumnInfo toNullableDAGColumnInfo(const DAGColumnInfo & input) -{ - DAGColumnInfo output = input; - output.second.clearNotNullFlag(); - return output; -} - void literalToPB(tipb::Expr * expr, const Field & value, int32_t collator_id) { DataTypePtr type = applyVisitor(FieldToDataType(), value); @@ -311,19 +230,6 @@ void astToPB(const DAGSchema & input, ASTPtr ast, tipb::Expr * expr, int32_t col } } -auto checkSchema(const DAGSchema & input, String checked_column) -{ - auto ft = std::find_if(input.begin(), input.end(), [&](const auto & field) { - auto [checked_db_name, checked_table_name, checked_column_name] = splitQualifiedName(checked_column); - auto [db_name, table_name, column_name] = splitQualifiedName(field.first); - if (checked_table_name.empty()) - return column_name == checked_column_name; - else - return table_name == checked_table_name && column_name == checked_column_name; - }); - return ft; -} - void functionToPB(const DAGSchema & input, ASTFunction * func, tipb::Expr * expr, int32_t collator_id, const Context & context) { /// aggregation function is handled in Aggregation, so just treated as a column @@ -345,8 +251,8 @@ void functionToPB(const DAGSchema & input, ASTFunction * func, tipb::Expr * expr // TODO: Support more functions. // TODO: Support type inference. - const auto it_sig = func_name_to_sig.find(func_name_lowercase); - if (it_sig == func_name_to_sig.end()) + const auto it_sig = tests::func_name_to_sig.find(func_name_lowercase); + if (it_sig == tests::func_name_to_sig.end()) { throw Exception("Unsupported function: " + func_name_lowercase, ErrorCodes::LOGICAL_ERROR); } @@ -617,8 +523,8 @@ TiDB::ColumnInfo compileExpr(const DAGSchema & input, ASTPtr ast) { /// check function String func_name_lowercase = Poco::toLower(func->name); - const auto it_sig = func_name_to_sig.find(func_name_lowercase); - if (it_sig == func_name_to_sig.end()) + const auto it_sig = tests::func_name_to_sig.find(func_name_lowercase); + if (it_sig == tests::func_name_to_sig.end()) { throw Exception("Unsupported function: " + func_name_lowercase, ErrorCodes::LOGICAL_ERROR); } @@ -789,42 +695,6 @@ void compileFilter(const DAGSchema & input, ASTPtr ast, std::vector & co conditions.push_back(ast); compileExpr(input, ast); } -} // namespace - -namespace Debug -{ -String LOCAL_HOST = "127.0.0.1:3930"; - -void setServiceAddr(const std::string & addr) -{ - LOCAL_HOST = addr; -} -} // namespace Debug - -ColumnName splitQualifiedName(const String & s) -{ - ColumnName ret; - Poco::StringTokenizer string_tokens(s, "."); - - switch (string_tokens.count()) - { - case 1: - ret.column_name = s; - break; - case 2: - ret.table_name = string_tokens[0]; - ret.column_name = string_tokens[1]; - break; - case 3: - ret.db_name = string_tokens[0]; - ret.table_name = string_tokens[1]; - ret.column_name = string_tokens[2]; - break; - default: - throw Exception("Invalid identifier name " + s); - } - return ret; -} namespace mock { @@ -1038,8 +908,8 @@ bool Aggregation::toTiPBExecutor(tipb::Executor * tipb_executor, int32_t collato tipb::Expr * arg_expr = agg_func->add_children(); astToPB(input_schema, arg, arg_expr, collator_id, context); } - auto agg_sig_it = agg_func_name_to_sig.find(func->name); - if (agg_sig_it == agg_func_name_to_sig.end()) + auto agg_sig_it = tests::agg_func_name_to_sig.find(func->name); + if (agg_sig_it == tests::agg_func_name_to_sig.end()) throw Exception("Unsupported agg function " + func->name, ErrorCodes::LOGICAL_ERROR); auto agg_sig = agg_sig_it->second; agg_func->set_tp(agg_sig); @@ -1453,8 +1323,8 @@ bool Window::toTiPBExecutor(tipb::Executor * tipb_executor, int32_t collator_id, tipb::Expr * func = window_expr->add_children(); astToPB(input_schema, arg, func, collator_id, context); } - auto window_sig_it = window_func_name_to_sig.find(window_func->name); - if (window_sig_it == window_func_name_to_sig.end()) + auto window_sig_it = tests::window_func_name_to_sig.find(window_func->name); + if (window_sig_it == tests::window_func_name_to_sig.end()) throw Exception(fmt::format("Unsupported window function {}", window_func->name), ErrorCodes::LOGICAL_ERROR); auto window_sig = window_sig_it->second; window_expr->set_tp(window_sig); @@ -1905,7 +1775,7 @@ ExecutorPtr compileWindow(ExecutorPtr input, size_t & executor_index, ASTPtr fun } // TODO: add more window functions TiDB::ColumnInfo ci; - switch (window_func_name_to_sig[func->name]) + switch (tests::window_func_name_to_sig[func->name]) { case tipb::ExprType::RowNumber: case tipb::ExprType::Rank: diff --git a/dbms/src/Debug/astToExecutor.h b/dbms/src/Debug/MockExecutor/astToExecutor.h similarity index 95% rename from dbms/src/Debug/astToExecutor.h rename to dbms/src/Debug/MockExecutor/astToExecutor.h index caa9116f2e1..26c96fff675 100644 --- a/dbms/src/Debug/astToExecutor.h +++ b/dbms/src/Debug/MockExecutor/astToExecutor.h @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -35,34 +36,6 @@ namespace DB { -namespace ErrorCodes -{ -extern const int BAD_ARGUMENTS; -extern const int LOGICAL_ERROR; -extern const int NO_SUCH_COLUMN_IN_TABLE; -} // namespace ErrorCodes - -using DAGColumnInfo = std::pair; -using DAGSchema = std::vector; - -namespace Debug -{ -extern String LOCAL_HOST; -void setServiceAddr(const std::string & addr); -} // namespace Debug - -// We use qualified format like "db_name.table_name.column_name" -// to identify one column of a table. -// We can split the qualified format into the ColumnName struct. -struct ColumnName -{ - String db_name; - String table_name; - String column_name; -}; - -ColumnName splitQualifiedName(const String & s); - struct MPPCtx { Timestamp start_ts; diff --git a/dbms/src/Debug/MockExecutor/astToExecutorUtils.cpp b/dbms/src/Debug/MockExecutor/astToExecutorUtils.cpp new file mode 100644 index 00000000000..4deb01fa391 --- /dev/null +++ b/dbms/src/Debug/MockExecutor/astToExecutorUtils.cpp @@ -0,0 +1,73 @@ +// Copyright 2022 PingCAP, Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include + +namespace DB { +ColumnName splitQualifiedName(const String & s) +{ + ColumnName ret; + Poco::StringTokenizer string_tokens(s, "."); + + switch (string_tokens.count()) + { + case 1: + ret.column_name = s; + break; + case 2: + ret.table_name = string_tokens[0]; + ret.column_name = string_tokens[1]; + break; + case 3: + ret.db_name = string_tokens[0]; + ret.table_name = string_tokens[1]; + ret.column_name = string_tokens[2]; + break; + default: + throw Exception("Invalid identifier name " + s); + } + return ret; +} + + +std::__wrap_iter *> checkSchema(const DAGSchema & input, String checked_column) +{ + auto ft = std::find_if(input.begin(), input.end(), [&](const auto & field) { + auto [checked_db_name, checked_table_name, checked_column_name] = splitQualifiedName(checked_column); + auto [db_name, table_name, column_name] = splitQualifiedName(field.first); + if (checked_table_name.empty()) + return column_name == checked_column_name; + else + return table_name == checked_table_name && column_name == checked_column_name; + }); + return ft; +} + +DAGColumnInfo toNullableDAGColumnInfo(const DAGColumnInfo & input) +{ + DAGColumnInfo output = input; + output.second.clearNotNullFlag(); + return output; +} + +namespace Debug +{ +String LOCAL_HOST = "127.0.0.1:3930"; + +void setServiceAddr(const std::string & addr) +{ + LOCAL_HOST = addr; +} +} // namespace Debug +} \ No newline at end of file diff --git a/dbms/src/Debug/MockExecutor/astToExecutorUtils.h b/dbms/src/Debug/MockExecutor/astToExecutorUtils.h new file mode 100644 index 00000000000..02fe0de5d17 --- /dev/null +++ b/dbms/src/Debug/MockExecutor/astToExecutorUtils.h @@ -0,0 +1,50 @@ +// Copyright 2022 PingCAP, Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once + +#include +#include +#include +#include + +namespace DB +{ + +using DAGColumnInfo = std::pair; +using DAGSchema = std::vector; + +// We use qualified format like "db_name.table_name.column_name" +// to identify one column of a table. +// We can split the qualified format into the ColumnName struct. +struct ColumnName +{ + String db_name; + String table_name; + String column_name; +}; + +ColumnName splitQualifiedName(const String & s); + +std::__wrap_iter *> checkSchema(const DAGSchema & input, String checked_column); + +DAGColumnInfo toNullableDAGColumnInfo(const DAGColumnInfo & input); + +namespace Debug +{ +extern String LOCAL_HOST; + +void setServiceAddr(const std::string & addr); +} // namespace Debug +} // namespace DB \ No newline at end of file diff --git a/dbms/src/Debug/MockExecutor/funcSigs.h b/dbms/src/Debug/MockExecutor/funcSigs.h new file mode 100644 index 00000000000..5014ef10635 --- /dev/null +++ b/dbms/src/Debug/MockExecutor/funcSigs.h @@ -0,0 +1,102 @@ +// Copyright 2022 PingCAP, Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once + +#include +#include + +namespace DB::tests +{ +std::unordered_map func_name_to_sig({ + {"plusint", tipb::ScalarFuncSig::PlusInt}, + {"minusint", tipb::ScalarFuncSig::MinusInt}, + {"equals", tipb::ScalarFuncSig::EQInt}, + {"notEquals", tipb::ScalarFuncSig::NEInt}, + {"and", tipb::ScalarFuncSig::LogicalAnd}, + {"or", tipb::ScalarFuncSig::LogicalOr}, + {"xor", tipb::ScalarFuncSig::LogicalXor}, + {"not", tipb::ScalarFuncSig::UnaryNotInt}, + {"greater", tipb::ScalarFuncSig::GTInt}, + {"greaterorequals", tipb::ScalarFuncSig::GEInt}, + {"less", tipb::ScalarFuncSig::LTInt}, + {"lessorequals", tipb::ScalarFuncSig::LEInt}, + {"in", tipb::ScalarFuncSig::InInt}, + {"notin", tipb::ScalarFuncSig::InInt}, + {"date_format", tipb::ScalarFuncSig::DateFormatSig}, + {"if", tipb::ScalarFuncSig::IfInt}, + {"from_unixtime", tipb::ScalarFuncSig::FromUnixTime2Arg}, + /// bit_and/bit_or/bit_xor is aggregated function in clickhouse/mysql + {"bitand", tipb::ScalarFuncSig::BitAndSig}, + {"bitor", tipb::ScalarFuncSig::BitOrSig}, + {"bitxor", tipb::ScalarFuncSig::BitXorSig}, + {"bitnot", tipb::ScalarFuncSig::BitNegSig}, + {"notequals", tipb::ScalarFuncSig::NEInt}, + {"like", tipb::ScalarFuncSig::LikeSig}, + {"cast_int_int", tipb::ScalarFuncSig::CastIntAsInt}, + {"cast_int_real", tipb::ScalarFuncSig::CastIntAsReal}, + {"cast_real_int", tipb::ScalarFuncSig::CastRealAsInt}, + {"cast_real_real", tipb::ScalarFuncSig::CastRealAsReal}, + {"cast_decimal_int", tipb::ScalarFuncSig::CastDecimalAsInt}, + {"cast_time_int", tipb::ScalarFuncSig::CastTimeAsInt}, + {"cast_string_int", tipb::ScalarFuncSig::CastStringAsInt}, + {"cast_int_decimal", tipb::ScalarFuncSig::CastIntAsDecimal}, + {"cast_real_decimal", tipb::ScalarFuncSig::CastRealAsDecimal}, + {"cast_decimal_decimal", tipb::ScalarFuncSig::CastDecimalAsDecimal}, + {"cast_time_decimal", tipb::ScalarFuncSig::CastTimeAsDecimal}, + {"cast_string_decimal", tipb::ScalarFuncSig::CastStringAsDecimal}, + {"cast_int_string", tipb::ScalarFuncSig::CastIntAsString}, + {"cast_real_string", tipb::ScalarFuncSig::CastRealAsString}, + {"cast_decimal_string", tipb::ScalarFuncSig::CastDecimalAsString}, + {"cast_time_string", tipb::ScalarFuncSig::CastTimeAsString}, + {"cast_string_string", tipb::ScalarFuncSig::CastStringAsString}, + {"cast_int_date", tipb::ScalarFuncSig::CastIntAsTime}, + {"cast_real_date", tipb::ScalarFuncSig::CastRealAsTime}, + {"cast_decimal_date", tipb::ScalarFuncSig::CastDecimalAsTime}, + {"cast_time_date", tipb::ScalarFuncSig::CastTimeAsTime}, + {"cast_string_date", tipb::ScalarFuncSig::CastStringAsTime}, + {"cast_int_datetime", tipb::ScalarFuncSig::CastIntAsTime}, + {"cast_real_datetime", tipb::ScalarFuncSig::CastRealAsTime}, + {"cast_decimal_datetime", tipb::ScalarFuncSig::CastDecimalAsTime}, + {"cast_time_datetime", tipb::ScalarFuncSig::CastTimeAsTime}, + {"cast_string_datetime", tipb::ScalarFuncSig::CastStringAsTime}, + {"concat", tipb::ScalarFuncSig::Concat}, + {"round_int", tipb::ScalarFuncSig::RoundInt}, + {"round_uint", tipb::ScalarFuncSig::RoundInt}, + {"round_dec", tipb::ScalarFuncSig::RoundDec}, + {"round_real", tipb::ScalarFuncSig::RoundReal}, + {"round_with_frac_int", tipb::ScalarFuncSig::RoundWithFracInt}, + {"round_with_frac_uint", tipb::ScalarFuncSig::RoundWithFracInt}, + {"round_with_frac_dec", tipb::ScalarFuncSig::RoundWithFracDec}, + {"round_with_frac_real", tipb::ScalarFuncSig::RoundWithFracReal}, +}); + +std::unordered_map agg_func_name_to_sig({ + {"min", tipb::ExprType::Min}, + {"max", tipb::ExprType::Max}, + {"count", tipb::ExprType::Count}, + {"sum", tipb::ExprType::Sum}, + {"first_row", tipb::ExprType::First}, + {"uniqRawRes", tipb::ExprType::ApproxCountDistinct}, + {"group_concat", tipb::ExprType::GroupConcat}, +}); + +std::unordered_map window_func_name_to_sig({ + {"RowNumber", tipb::ExprType::RowNumber}, + {"Rank", tipb::ExprType::Rank}, + {"DenseRank", tipb::ExprType::DenseRank}, + {"Lead", tipb::ExprType::Lead}, + {"Lag", tipb::ExprType::Lag}, +}); +} // namespace DB::tests \ No newline at end of file diff --git a/dbms/src/Debug/dbgFuncCoprocessor.cpp b/dbms/src/Debug/dbgFuncCoprocessor.cpp index 1af655825e3..3ccd09b61a3 100644 --- a/dbms/src/Debug/dbgFuncCoprocessor.cpp +++ b/dbms/src/Debug/dbgFuncCoprocessor.cpp @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/dbms/src/Debug/dbgFuncCoprocessor.h b/dbms/src/Debug/dbgFuncCoprocessor.h index 59042dfc61e..9fea4adc84c 100644 --- a/dbms/src/Debug/dbgFuncCoprocessor.h +++ b/dbms/src/Debug/dbgFuncCoprocessor.h @@ -16,7 +16,8 @@ #include #include -#include +#include + #include #include #include diff --git a/dbms/src/Server/FlashGrpcServerHolder.h b/dbms/src/Server/FlashGrpcServerHolder.h index b939a6bd08e..109f26dc32e 100644 --- a/dbms/src/Server/FlashGrpcServerHolder.h +++ b/dbms/src/Server/FlashGrpcServerHolder.h @@ -16,7 +16,8 @@ #include #include #include -#include +#include + #include #include #include diff --git a/dbms/src/TestUtils/ColumnsToTiPBExpr.cpp b/dbms/src/TestUtils/ColumnsToTiPBExpr.cpp index ea19ff08dd3..a338062aa34 100644 --- a/dbms/src/TestUtils/ColumnsToTiPBExpr.cpp +++ b/dbms/src/TestUtils/ColumnsToTiPBExpr.cpp @@ -13,7 +13,8 @@ // limitations under the License. #include -#include +#include + #include #include #include diff --git a/dbms/src/TestUtils/mockExecutor.cpp b/dbms/src/TestUtils/mockExecutor.cpp index 6921538b1c2..0e4232ac7e7 100644 --- a/dbms/src/TestUtils/mockExecutor.cpp +++ b/dbms/src/TestUtils/mockExecutor.cpp @@ -13,7 +13,7 @@ // limitations under the License. #include -#include +#include #include #include #include diff --git a/dbms/src/TestUtils/mockExecutor.h b/dbms/src/TestUtils/mockExecutor.h index 2e9f8180034..c78fbca3cc5 100644 --- a/dbms/src/TestUtils/mockExecutor.h +++ b/dbms/src/TestUtils/mockExecutor.h @@ -16,7 +16,7 @@ #include #include -#include +#include #include #include #include From d0526bbfec41eea287d810d15ecc041f64ca97b2 Mon Sep 17 00:00:00 2001 From: ywqzzy <592838129@qq.com> Date: Thu, 15 Sep 2022 12:24:30 +0800 Subject: [PATCH 4/7] fmt --- dbms/src/Debug/MockExecutor/astToExecutor.h | 2 +- dbms/src/Debug/MockExecutor/astToExecutorUtils.cpp | 5 +++-- dbms/src/Debug/dbgFuncCoprocessor.cpp | 2 +- dbms/src/Debug/dbgFuncCoprocessor.h | 1 - dbms/src/Server/FlashGrpcServerHolder.h | 1 - dbms/src/TestUtils/ColumnsToTiPBExpr.cpp | 1 - dbms/src/TestUtils/mockExecutor.h | 2 +- 7 files changed, 6 insertions(+), 8 deletions(-) diff --git a/dbms/src/Debug/MockExecutor/astToExecutor.h b/dbms/src/Debug/MockExecutor/astToExecutor.h index 26c96fff675..aa82121a707 100644 --- a/dbms/src/Debug/MockExecutor/astToExecutor.h +++ b/dbms/src/Debug/MockExecutor/astToExecutor.h @@ -16,9 +16,9 @@ #include #include +#include #include #include -#include #include #include #include diff --git a/dbms/src/Debug/MockExecutor/astToExecutorUtils.cpp b/dbms/src/Debug/MockExecutor/astToExecutorUtils.cpp index 4deb01fa391..f4de2473ffb 100644 --- a/dbms/src/Debug/MockExecutor/astToExecutorUtils.cpp +++ b/dbms/src/Debug/MockExecutor/astToExecutorUtils.cpp @@ -14,7 +14,8 @@ #include -namespace DB { +namespace DB +{ ColumnName splitQualifiedName(const String & s) { ColumnName ret; @@ -70,4 +71,4 @@ void setServiceAddr(const std::string & addr) LOCAL_HOST = addr; } } // namespace Debug -} \ No newline at end of file +} // namespace DB \ No newline at end of file diff --git a/dbms/src/Debug/dbgFuncCoprocessor.cpp b/dbms/src/Debug/dbgFuncCoprocessor.cpp index 3ccd09b61a3..dacc459b81c 100644 --- a/dbms/src/Debug/dbgFuncCoprocessor.cpp +++ b/dbms/src/Debug/dbgFuncCoprocessor.cpp @@ -20,8 +20,8 @@ #include #include #include -#include #include +#include #include #include #include diff --git a/dbms/src/Debug/dbgFuncCoprocessor.h b/dbms/src/Debug/dbgFuncCoprocessor.h index 9fea4adc84c..51db6865011 100644 --- a/dbms/src/Debug/dbgFuncCoprocessor.h +++ b/dbms/src/Debug/dbgFuncCoprocessor.h @@ -17,7 +17,6 @@ #include #include #include - #include #include #include diff --git a/dbms/src/Server/FlashGrpcServerHolder.h b/dbms/src/Server/FlashGrpcServerHolder.h index 109f26dc32e..ae1edddca40 100644 --- a/dbms/src/Server/FlashGrpcServerHolder.h +++ b/dbms/src/Server/FlashGrpcServerHolder.h @@ -17,7 +17,6 @@ #include #include #include - #include #include #include diff --git a/dbms/src/TestUtils/ColumnsToTiPBExpr.cpp b/dbms/src/TestUtils/ColumnsToTiPBExpr.cpp index a338062aa34..73168ba2cec 100644 --- a/dbms/src/TestUtils/ColumnsToTiPBExpr.cpp +++ b/dbms/src/TestUtils/ColumnsToTiPBExpr.cpp @@ -14,7 +14,6 @@ #include #include - #include #include #include diff --git a/dbms/src/TestUtils/mockExecutor.h b/dbms/src/TestUtils/mockExecutor.h index c78fbca3cc5..55ad992ca06 100644 --- a/dbms/src/TestUtils/mockExecutor.h +++ b/dbms/src/TestUtils/mockExecutor.h @@ -15,8 +15,8 @@ #pragma once #include -#include #include +#include #include #include #include From c0a4aabdab9ab19fd2aad00e5c99952def5c8de0 Mon Sep 17 00:00:00 2001 From: yanweiqi <592838129@qq.com> Date: Thu, 15 Sep 2022 14:32:15 +0800 Subject: [PATCH 5/7] Update dbms/src/Debug/MockExecutor/astToExecutorUtils.cpp Co-authored-by: Zhi Qi <30543181+LittleFall@users.noreply.github.com> --- dbms/src/Debug/MockExecutor/astToExecutorUtils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dbms/src/Debug/MockExecutor/astToExecutorUtils.cpp b/dbms/src/Debug/MockExecutor/astToExecutorUtils.cpp index f4de2473ffb..5b935776a5e 100644 --- a/dbms/src/Debug/MockExecutor/astToExecutorUtils.cpp +++ b/dbms/src/Debug/MockExecutor/astToExecutorUtils.cpp @@ -71,4 +71,4 @@ void setServiceAddr(const std::string & addr) LOCAL_HOST = addr; } } // namespace Debug -} // namespace DB \ No newline at end of file +} // namespace DB From ac54ee512c83cccb72bfcc67cfe1a384ab0e8e91 Mon Sep 17 00:00:00 2001 From: yanweiqi <592838129@qq.com> Date: Thu, 15 Sep 2022 14:32:20 +0800 Subject: [PATCH 6/7] Update dbms/src/Debug/MockExecutor/astToExecutorUtils.h Co-authored-by: Zhi Qi <30543181+LittleFall@users.noreply.github.com> --- dbms/src/Debug/MockExecutor/astToExecutorUtils.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dbms/src/Debug/MockExecutor/astToExecutorUtils.h b/dbms/src/Debug/MockExecutor/astToExecutorUtils.h index 02fe0de5d17..95689bc0895 100644 --- a/dbms/src/Debug/MockExecutor/astToExecutorUtils.h +++ b/dbms/src/Debug/MockExecutor/astToExecutorUtils.h @@ -47,4 +47,4 @@ extern String LOCAL_HOST; void setServiceAddr(const std::string & addr); } // namespace Debug -} // namespace DB \ No newline at end of file +} // namespace DB From bb96af573a55d99dac654e9eff0022677b20063e Mon Sep 17 00:00:00 2001 From: yanweiqi <592838129@qq.com> Date: Thu, 15 Sep 2022 14:32:25 +0800 Subject: [PATCH 7/7] Update dbms/src/Debug/MockExecutor/funcSigs.h Co-authored-by: Zhi Qi <30543181+LittleFall@users.noreply.github.com> --- dbms/src/Debug/MockExecutor/funcSigs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dbms/src/Debug/MockExecutor/funcSigs.h b/dbms/src/Debug/MockExecutor/funcSigs.h index 5014ef10635..4c45a4a5736 100644 --- a/dbms/src/Debug/MockExecutor/funcSigs.h +++ b/dbms/src/Debug/MockExecutor/funcSigs.h @@ -99,4 +99,4 @@ std::unordered_map window_func_name_to_sig({ {"Lead", tipb::ExprType::Lead}, {"Lag", tipb::ExprType::Lag}, }); -} // namespace DB::tests \ No newline at end of file +} // namespace DB::tests