diff --git a/be/src/exec/base_scanner.cpp b/be/src/exec/base_scanner.cpp index 4c4dab28ef..2c7c592a5a 100644 --- a/be/src/exec/base_scanner.cpp +++ b/be/src/exec/base_scanner.cpp @@ -19,6 +19,7 @@ #include "common/logging.h" #include "exec/exec_node.h" +#include "exprs/expr_context.h" #include "runtime/descriptors.h" #include "runtime/mem_tracker.h" #include "runtime/raw_value.h" diff --git a/be/src/exec/broker_scan_node.cpp b/be/src/exec/broker_scan_node.cpp index a50f2eb493..348729ade3 100644 --- a/be/src/exec/broker_scan_node.cpp +++ b/be/src/exec/broker_scan_node.cpp @@ -26,6 +26,7 @@ #include "exec/orc_scanner.h" #include "exec/parquet_scanner.h" #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "runtime/dpp_sink_internal.h" #include "runtime/row_batch.h" #include "runtime/runtime_state.h" diff --git a/be/src/exec/es_http_scan_node.cpp b/be/src/exec/es_http_scan_node.cpp index 3905f4ca10..7a78787721 100644 --- a/be/src/exec/es_http_scan_node.cpp +++ b/be/src/exec/es_http_scan_node.cpp @@ -26,6 +26,7 @@ #include "exec/es/es_scan_reader.h" #include "exec/es/es_scroll_query.h" #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "runtime/dpp_sink_internal.h" #include "runtime/row_batch.h" #include "runtime/runtime_state.h" diff --git a/be/src/exec/es_http_scanner.cpp b/be/src/exec/es_http_scanner.cpp index c5205c5187..9306baaf8c 100644 --- a/be/src/exec/es_http_scanner.cpp +++ b/be/src/exec/es_http_scanner.cpp @@ -21,6 +21,7 @@ #include #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "runtime/descriptors.h" #include "runtime/exec_env.h" #include "runtime/mem_tracker.h" diff --git a/be/src/exec/hash_join_node.cpp b/be/src/exec/hash_join_node.cpp index 7c735f05c0..266f08afb0 100644 --- a/be/src/exec/hash_join_node.cpp +++ b/be/src/exec/hash_join_node.cpp @@ -21,6 +21,7 @@ #include "exec/hash_table.hpp" #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "exprs/in_predicate.h" #include "exprs/slot_ref.h" #include "gen_cpp/PlanNodes_types.h" diff --git a/be/src/exec/hash_table.cpp b/be/src/exec/hash_table.cpp index 0a577a122f..5a17935c43 100644 --- a/be/src/exec/hash_table.cpp +++ b/be/src/exec/hash_table.cpp @@ -18,6 +18,7 @@ #include "exec/hash_table.hpp" #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "runtime/mem_tracker.h" #include "runtime/raw_value.h" #include "runtime/runtime_state.h" diff --git a/be/src/exec/merge_join_node.cpp b/be/src/exec/merge_join_node.cpp index dcd5984788..93618ea43d 100644 --- a/be/src/exec/merge_join_node.cpp +++ b/be/src/exec/merge_join_node.cpp @@ -20,6 +20,7 @@ #include #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "exprs/in_predicate.h" #include "gen_cpp/PlanNodes_types.h" #include "runtime/row_batch.h" diff --git a/be/src/exec/merge_node.cpp b/be/src/exec/merge_node.cpp index c7c058e01c..13e7d2a7d4 100644 --- a/be/src/exec/merge_node.cpp +++ b/be/src/exec/merge_node.cpp @@ -18,6 +18,7 @@ #include "exec/merge_node.h" #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "gen_cpp/PlanNodes_types.h" #include "runtime/raw_value.h" #include "runtime/row_batch.h" diff --git a/be/src/exec/olap_rewrite_node.cpp b/be/src/exec/olap_rewrite_node.cpp index b191e31f58..da8aef7915 100644 --- a/be/src/exec/olap_rewrite_node.cpp +++ b/be/src/exec/olap_rewrite_node.cpp @@ -20,6 +20,7 @@ #include #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "runtime/descriptors.h" #include "runtime/raw_value.h" #include "runtime/row_batch.h" diff --git a/be/src/exec/olap_scan_node.cpp b/be/src/exec/olap_scan_node.cpp index 1f1de3f4b1..b9b80c7c07 100644 --- a/be/src/exec/olap_scan_node.cpp +++ b/be/src/exec/olap_scan_node.cpp @@ -30,6 +30,7 @@ #include "common/resource_tls.h" #include "exprs/binary_predicate.h" #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "gen_cpp/PlanNodes_types.h" #include "runtime/exec_env.h" #include "runtime/row_batch.h" diff --git a/be/src/exec/set_operation_node.cpp b/be/src/exec/set_operation_node.cpp index a377dc5594..7c63f1d17b 100644 --- a/be/src/exec/set_operation_node.cpp +++ b/be/src/exec/set_operation_node.cpp @@ -19,6 +19,7 @@ #include "exec/hash_table.hpp" #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "runtime/raw_value.h" #include "runtime/row_batch.h" #include "runtime/runtime_state.h" diff --git a/be/src/exec/tablet_sink.cpp b/be/src/exec/tablet_sink.cpp index 949e0990eb..7f5152638c 100644 --- a/be/src/exec/tablet_sink.cpp +++ b/be/src/exec/tablet_sink.cpp @@ -20,6 +20,7 @@ #include #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "olap/hll.h" #include "runtime/exec_env.h" #include "runtime/row_batch.h" diff --git a/be/src/exprs/case_expr.cpp b/be/src/exprs/case_expr.cpp index caf0ee9b0b..af5b093b64 100644 --- a/be/src/exprs/case_expr.cpp +++ b/be/src/exprs/case_expr.cpp @@ -17,6 +17,7 @@ #include "exprs/case_expr.h" +#include "exprs/expr_context.h" #include "exprs/anyval_util.h" #include "gen_cpp/Exprs_types.h" #include "runtime/runtime_state.h" diff --git a/be/src/exprs/expr.cpp b/be/src/exprs/expr.cpp index 3e4503ad15..bb30e27690 100644 --- a/be/src/exprs/expr.cpp +++ b/be/src/exprs/expr.cpp @@ -32,6 +32,7 @@ #include "exprs/cast_expr.h" #include "exprs/compound_predicate.h" #include "exprs/conditional_functions.h" +#include "exprs/expr_context.h" #include "exprs/in_predicate.h" #include "exprs/info_func.h" #include "exprs/is_null_predicate.h" diff --git a/be/src/exprs/expr.h b/be/src/exprs/expr.h index 54f557e074..7c59d2f778 100644 --- a/be/src/exprs/expr.h +++ b/be/src/exprs/expr.h @@ -23,7 +23,6 @@ #include #include "common/status.h" -#include "exprs/expr_context.h" #include "exprs/expr_value.h" #include "gen_cpp/Opcodes_types.h" #include "runtime/datetime_value.h" @@ -46,6 +45,7 @@ USING_DORIS_UDF; namespace doris { class Expr; +class ExprContext; class ObjectPool; class RowDescriptor; class RuntimeState; diff --git a/be/src/exprs/expr_context.cpp b/be/src/exprs/expr_context.cpp index 1eafabe3b1..0aef99f3bd 100644 --- a/be/src/exprs/expr_context.cpp +++ b/be/src/exprs/expr_context.cpp @@ -244,13 +244,6 @@ void ExprContext::get_value(TupleRow* row, bool as_ascii, TColumnValue* col_val) #endif } -void* ExprContext::get_value(TupleRow* row) { - if (_root->is_slotref()) { - return SlotRef::get_value(_root, row); - } - return get_value(_root, row); -} - bool ExprContext::is_nullable() { if (_root->is_slotref()) { return SlotRef::is_nullable(_root); diff --git a/be/src/exprs/expr_context.h b/be/src/exprs/expr_context.h index 70cbb7f55f..5f011956ca 100644 --- a/be/src/exprs/expr_context.h +++ b/be/src/exprs/expr_context.h @@ -22,6 +22,8 @@ #include "common/status.h" #include "exprs/expr_value.h" +#include "exprs/expr.h" +#include "exprs/slot_ref.h" #include "udf/udf.h" #include "udf/udf_internal.h" // for ArrayVal @@ -206,6 +208,13 @@ private: void* get_value(Expr* e, TupleRow* row); }; +inline void* ExprContext::get_value(TupleRow* row) { + if (_root->is_slotref()) { + return SlotRef::get_value(_root, row); + } + return get_value(_root, row); +} + } // namespace doris #endif diff --git a/be/src/exprs/in_predicate.cpp b/be/src/exprs/in_predicate.cpp index 2811c14c2f..1edadccbbf 100644 --- a/be/src/exprs/in_predicate.cpp +++ b/be/src/exprs/in_predicate.cpp @@ -19,6 +19,7 @@ #include +#include "exprs/expr_context.h" #include "exprs/anyval_util.h" #include "runtime/raw_value.h" #include "runtime/runtime_state.h" diff --git a/be/src/exprs/timestamp_functions.cpp b/be/src/exprs/timestamp_functions.cpp index 6a6d9b0735..730791aa7b 100644 --- a/be/src/exprs/timestamp_functions.cpp +++ b/be/src/exprs/timestamp_functions.cpp @@ -19,6 +19,7 @@ #include "exprs/anyval_util.h" #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "runtime/datetime_value.h" #include "runtime/runtime_state.h" #include "runtime/string_value.hpp" diff --git a/be/src/runtime/data_spliter.cpp b/be/src/runtime/data_spliter.cpp index 9c2619970f..c65e567239 100644 --- a/be/src/runtime/data_spliter.cpp +++ b/be/src/runtime/data_spliter.cpp @@ -23,6 +23,7 @@ #include "common/object_pool.h" #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "gen_cpp/DataSinks_types.h" #include "runtime/dpp_sink.h" #include "runtime/load_path_mgr.h" diff --git a/be/src/runtime/data_stream_sender.cpp b/be/src/runtime/data_stream_sender.cpp index 1efd87d54d..3ebb9069f5 100644 --- a/be/src/runtime/data_stream_sender.cpp +++ b/be/src/runtime/data_stream_sender.cpp @@ -26,6 +26,7 @@ #include "common/logging.h" #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "gen_cpp/BackendService.h" #include "gen_cpp/PaloInternalService_types.h" #include "gen_cpp/Types_types.h" diff --git a/be/src/runtime/dpp_sink.cpp b/be/src/runtime/dpp_sink.cpp index b4bd8705b7..309a0c0a4c 100644 --- a/be/src/runtime/dpp_sink.cpp +++ b/be/src/runtime/dpp_sink.cpp @@ -23,6 +23,7 @@ #include "agent/cgroups_mgr.h" #include "common/object_pool.h" #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "exprs/slot_ref.h" #include "gen_cpp/Types_types.h" #include "olap/field.h" diff --git a/be/src/runtime/dpp_writer.cpp b/be/src/runtime/dpp_writer.cpp index 57cb293a26..5e98e01fe5 100644 --- a/be/src/runtime/dpp_writer.cpp +++ b/be/src/runtime/dpp_writer.cpp @@ -22,6 +22,7 @@ #include #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "olap/utils.h" #include "runtime/primitive_type.h" #include "runtime/row_batch.h" diff --git a/be/src/runtime/export_sink.cpp b/be/src/runtime/export_sink.cpp index ce5fd36e10..157abb946a 100644 --- a/be/src/runtime/export_sink.cpp +++ b/be/src/runtime/export_sink.cpp @@ -24,6 +24,7 @@ #include "exec/broker_writer.h" #include "exec/local_file_writer.h" #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "runtime/mem_tracker.h" #include "runtime/mysql_table_sink.h" #include "runtime/row_batch.h" diff --git a/be/src/runtime/file_result_writer.cpp b/be/src/runtime/file_result_writer.cpp index 94bc861380..f68f50c989 100644 --- a/be/src/runtime/file_result_writer.cpp +++ b/be/src/runtime/file_result_writer.cpp @@ -21,6 +21,7 @@ #include "exec/local_file_writer.h" #include "exec/parquet_writer.h" #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "gen_cpp/PaloInternalService_types.h" #include "runtime/primitive_type.h" #include "runtime/row_batch.h" diff --git a/be/src/runtime/mysql_result_writer.cpp b/be/src/runtime/mysql_result_writer.cpp index ff243eac25..86e4675c59 100644 --- a/be/src/runtime/mysql_result_writer.cpp +++ b/be/src/runtime/mysql_result_writer.cpp @@ -18,6 +18,7 @@ #include "runtime/mysql_result_writer.h" #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "gen_cpp/PaloInternalService_types.h" #include "runtime/buffer_control_block.h" #include "runtime/primitive_type.h" diff --git a/be/src/runtime/mysql_table_writer.cpp b/be/src/runtime/mysql_table_writer.cpp index bbb9319ce9..ba7daeec60 100644 --- a/be/src/runtime/mysql_table_writer.cpp +++ b/be/src/runtime/mysql_table_writer.cpp @@ -21,6 +21,7 @@ #include #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "runtime/mysql_table_writer.h" #include "runtime/row_batch.h" #include "runtime/tuple_row.h" diff --git a/be/src/runtime/qsorter.cpp b/be/src/runtime/qsorter.cpp index 78c5e65728..f01f1f54a4 100644 --- a/be/src/runtime/qsorter.cpp +++ b/be/src/runtime/qsorter.cpp @@ -20,6 +20,7 @@ #include #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "runtime/descriptors.h" #include "runtime/raw_value.h" #include "runtime/row_batch.h" diff --git a/be/src/runtime/tuple.cpp b/be/src/runtime/tuple.cpp index 0203e97891..19a8f0cd3a 100644 --- a/be/src/runtime/tuple.cpp +++ b/be/src/runtime/tuple.cpp @@ -20,6 +20,7 @@ #include #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "runtime/descriptors.h" #include "runtime/mem_pool.h" #include "runtime/raw_value.h" diff --git a/be/src/util/tuple_row_compare.h b/be/src/util/tuple_row_compare.h index 77f352a412..bb976037f1 100644 --- a/be/src/util/tuple_row_compare.h +++ b/be/src/util/tuple_row_compare.h @@ -20,6 +20,7 @@ #include "exec/sort_exec_exprs.h" #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "runtime/descriptors.h" #include "runtime/raw_value.h" #include "runtime/tuple.h" diff --git a/be/test/exec/hash_table_test.cpp b/be/test/exec/hash_table_test.cpp index 03f0c56231..3a9a0e135b 100644 --- a/be/test/exec/hash_table_test.cpp +++ b/be/test/exec/hash_table_test.cpp @@ -29,6 +29,7 @@ #include "common/compiler_util.h" #include "exprs/expr.h" +#include "exprs/expr_context.h" #include "exprs/slot_ref.h" #include "runtime/exec_env.h" #include "runtime/mem_pool.h" diff --git a/be/test/exprs/math_functions_test.cpp b/be/test/exprs/math_functions_test.cpp index c6887edfba..0e41318f64 100644 --- a/be/test/exprs/math_functions_test.cpp +++ b/be/test/exprs/math_functions_test.cpp @@ -23,6 +23,7 @@ #include #include "exprs/anyval_util.h" +#include "exprs/expr_context.h" #include "testutil/function_utils.h" #include "util/logging.h" diff --git a/be/test/exprs/topn_function_test.cpp b/be/test/exprs/topn_function_test.cpp index 7f411333f8..1b02f1f977 100644 --- a/be/test/exprs/topn_function_test.cpp +++ b/be/test/exprs/topn_function_test.cpp @@ -16,6 +16,7 @@ // under the License. #include "exprs/anyval_util.h" +#include "exprs/expr_context.h" #include "exprs/topn_function.h" #include "util/topn_counter.h" #include "testutil/function_utils.h"