From 3fcd1593c1ef654b11fe573a27a9eba3a37f6237 Mon Sep 17 00:00:00 2001 From: Zenglin Luo Date: Sun, 18 Sep 2022 17:18:57 +0800 Subject: [PATCH] [fix](intersect) fix intersect query failed in row storage code --- be/src/exec/set_operation_node.cpp | 8 -------- be/src/exec/set_operation_node.h | 1 - .../data/query_p0/intersect/test_intersect.out | 5 +++++ .../suites/query_p0/intersect/test_intersect.groovy | 7 +++++++ 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/be/src/exec/set_operation_node.cpp b/be/src/exec/set_operation_node.cpp index 882019b1998a9e..3458c572932911 100644 --- a/be/src/exec/set_operation_node.cpp +++ b/be/src/exec/set_operation_node.cpp @@ -54,14 +54,6 @@ Status SetOperationNode::prepare(RuntimeState* state) { } _build_tuple_size = child(0)->row_desc().tuple_descriptors().size(); _build_tuple_row_size = _build_tuple_size * sizeof(Tuple*); - _build_tuple_idx.reserve(_build_tuple_size); - - for (int i = 0; i < _build_tuple_size; ++i) { - TupleDescriptor* build_tuple_desc = child(0)->row_desc().tuple_descriptors()[i]; - auto tuple_idx = _row_descriptor.get_tuple_idx(build_tuple_desc->id()); - RETURN_IF_INVALID_TUPLE_IDX(build_tuple_desc->id(), tuple_idx); - _build_tuple_idx.push_back(tuple_idx); - } _find_nulls = std::vector(); for (auto ctx : _child_expr_lists[0]) { _find_nulls.push_back(!ctx->root()->is_slotref() || ctx->is_nullable()); diff --git a/be/src/exec/set_operation_node.h b/be/src/exec/set_operation_node.h index 2d5900345f7327..4e2722b94d233b 100644 --- a/be/src/exec/set_operation_node.h +++ b/be/src/exec/set_operation_node.h @@ -71,7 +71,6 @@ class SetOperationNode : public ExecNode { // holds everything referenced in _hash_tbl std::unique_ptr _build_pool; - std::vector _build_tuple_idx; int _build_tuple_size; int _build_tuple_row_size; std::vector _find_nulls; diff --git a/regression-test/data/query_p0/intersect/test_intersect.out b/regression-test/data/query_p0/intersect/test_intersect.out index 4c443b8493a507..698b8f69f33c8f 100644 --- a/regression-test/data/query_p0/intersect/test_intersect.out +++ b/regression-test/data/query_p0/intersect/test_intersect.out @@ -4,3 +4,8 @@ 2 3 +-- !select -- +1 +2 +3 + diff --git a/regression-test/suites/query_p0/intersect/test_intersect.groovy b/regression-test/suites/query_p0/intersect/test_intersect.groovy index 1c007b95d7d07d..677ed5c514afff 100644 --- a/regression-test/suites/query_p0/intersect/test_intersect.groovy +++ b/regression-test/suites/query_p0/intersect/test_intersect.groovy @@ -16,6 +16,13 @@ // under the License. suite("test_intersect") { + sql 'set enable_vectorized_engine=false' + qt_select """ + SELECT * FROM (SELECT k1 FROM test_query_db.baseall + INTERSECT SELECT k1 FROM test_query_db.test) a ORDER BY k1 + """ + + sql 'set enable_vectorized_engine=true' qt_select """ SELECT * FROM (SELECT k1 FROM test_query_db.baseall INTERSECT SELECT k1 FROM test_query_db.test) a ORDER BY k1