This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push: new ab7ac31d89 [Chore](case) fix failed on test_big_pad when enable pipeline engine #20644 ab7ac31d89 is described below commit ab7ac31d89c0fc6d4fa88fba5dd3d0c1ae9a58d2 Author: Pxl <pxl...@qq.com> AuthorDate: Mon Jun 12 09:15:55 2023 +0800 [Chore](case) fix failed on test_big_pad when enable pipeline engine #20644 --- be/src/pipeline/task_scheduler.cpp | 13 +++++++-- be/src/service/internal_service.cpp | 5 ++-- be/src/vec/columns/column_string.h | 9 +++--- be/src/vec/functions/function_string.h | 33 +++++++++++++++------- .../suites/query_p1/test_big_pad.groovy | 5 +--- 5 files changed, 40 insertions(+), 25 deletions(-) diff --git a/be/src/pipeline/task_scheduler.cpp b/be/src/pipeline/task_scheduler.cpp index 335cd51a3e..831c5e2546 100644 --- a/be/src/pipeline/task_scheduler.cpp +++ b/be/src/pipeline/task_scheduler.cpp @@ -250,8 +250,8 @@ void TaskScheduler::_do_work(size_t index) { } task->set_task_queue(_task_queue.get()); auto* fragment_ctx = task->fragment_context(); - doris::signal::query_id_hi = fragment_ctx->get_query_id().hi; - doris::signal::query_id_lo = fragment_ctx->get_query_id().lo; + signal::query_id_hi = fragment_ctx->get_query_id().hi; + signal::query_id_lo = fragment_ctx->get_query_id().lo; bool canceled = fragment_ctx->is_canceled(); auto check_state = task->get_state(); @@ -279,7 +279,14 @@ void TaskScheduler::_do_work(size_t index) { DCHECK(check_state == PipelineTaskState::RUNNABLE); // task exec bool eos = false; - auto status = task->execute(&eos); + auto status = Status::OK(); + + try { + status = task->execute(&eos); + } catch (const Exception& e) { + status = Status::Error(e.code(), e.to_string()); + } + task->set_previous_core_id(index); if (!status.ok()) { LOG(WARNING) << fmt::format("Pipeline task [{}] failed: {}", task->debug_string(), diff --git a/be/src/service/internal_service.cpp b/be/src/service/internal_service.cpp index 971302b810..502d897a76 100644 --- a/be/src/service/internal_service.cpp +++ b/be/src/service/internal_service.cpp @@ -147,9 +147,8 @@ class NewHttpClosure : public ::google::protobuf::Closure { public: NewHttpClosure(google::protobuf::Closure* done) : _done(done) {} NewHttpClosure(T* request, google::protobuf::Closure* done) : _request(request), _done(done) {} - ~NewHttpClosure() {} - void Run() { + void Run() override { SCOPED_SWITCH_THREAD_MEM_TRACKER_LIMITER(ExecEnv::GetInstance()->orphan_mem_tracker()); if (_request != nullptr) { delete _request; @@ -285,7 +284,7 @@ void PInternalServiceImpl::exec_plan_fragment(google::protobuf::RpcController* c request->has_version() ? request->version() : PFragmentRequestVersion::VERSION_1; try { st = _exec_plan_fragment(request->request(), version, compact); - } catch (const doris::Exception& e) { + } catch (const Exception& e) { st = Status::Error(e.code(), e.to_string()); } if (!st.ok()) { diff --git a/be/src/vec/columns/column_string.h b/be/src/vec/columns/column_string.h index 66d0a77e5d..eb27cdc4ed 100644 --- a/be/src/vec/columns/column_string.h +++ b/be/src/vec/columns/column_string.h @@ -66,10 +66,9 @@ public: void static check_chars_length(size_t total_length, size_t element_number) { if (UNLIKELY(total_length > MAX_STRING_SIZE)) { - throw doris::Exception( - ErrorCode::STRING_OVERFLOW_IN_VEC_ENGINE, - "string column length is too large: total_length={}, element_number={}", - total_length, element_number); + throw Exception(ErrorCode::STRING_OVERFLOW_IN_VEC_ENGINE, + "string column length is too large: total_length={}, element_number={}", + total_length, element_number); } } @@ -137,7 +136,7 @@ public: } void insert(const Field& x) override { - const String& s = doris::vectorized::get<const String&>(x); + const String& s = vectorized::get<const String&>(x); const size_t old_size = chars.size(); const size_t size_to_append = s.size(); const size_t new_size = old_size + size_to_append; diff --git a/be/src/vec/functions/function_string.h b/be/src/vec/functions/function_string.h index 7428d19aef..ff48e01e26 100644 --- a/be/src/vec/functions/function_string.h +++ b/be/src/vec/functions/function_string.h @@ -60,14 +60,13 @@ #include "vec/core/types.h" #include "vec/data_types/data_type.h" #include "vec/io/io_helper.h" + #ifndef USE_LIBCPP #include <memory_resource> - #define PMR std::pmr #else #include <boost/container/pmr/monotonic_buffer_resource.hpp> #include <boost/container/pmr/vector.hpp> - #define PMR boost::container::pmr #endif @@ -408,19 +407,25 @@ public: if (arguments.size() > 1) { auto& col = *block.get_by_position(arguments[1]).column; auto string_ref = col.get_data_at(0); - if (string_ref.size > 0) upper = *string_ref.data; + if (string_ref.size > 0) { + upper = *string_ref.data; + } } if (arguments.size() > 2) { auto& col = *block.get_by_position(arguments[2]).column; auto string_ref = col.get_data_at(0); - if (string_ref.size > 0) lower = *string_ref.data; + if (string_ref.size > 0) { + lower = *string_ref.data; + } } if (arguments.size() > 3) { auto& col = *block.get_by_position(arguments[3]).column; auto string_ref = col.get_data_at(0); - if (string_ref.size > 0) number = *string_ref.data; + if (string_ref.size > 0) { + number = *string_ref.data; + } } if (arguments.size() > 4) { @@ -536,10 +541,14 @@ private: int len = offsets[i] - offset; if constexpr (Reverse) { auto start = std::max(len - n, 0); - if (start > 0) memcpy(&res[offset], &chars[offset], start); + if (start > 0) { + memcpy(&res[offset], &chars[offset], start); + } offset += start; } else { - if (n < len) memcpy(&res[offset + n], &chars[offset + n], len - n); + if (n < len) { + memcpy(&res[offset + n], &chars[offset + n], len - n); + } } len = std::min(n, len); @@ -2179,9 +2188,13 @@ static StringRef do_money_format(FunctionContext* context, const string& value) } for (int i = value.size() - 4, j = result_len - 4; i >= 0; i = i - 3, j = j - 4) { *(result_data + j) = *(value.data() + i); - if (i - 1 < 0) break; + if (i - 1 < 0) { + break; + } *(result_data + j - 1) = *(value.data() + i - 1); - if (i - 2 < 0) break; + if (i - 2 < 0) { + break; + } *(result_data + j - 2) = *(value.data() + i - 2); if (j - 3 > 1 || (j - 3 == 1 && is_positive)) { *(result_data + j - 3) = ','; @@ -2693,7 +2706,7 @@ public: "character argument to convert function must be constant."); } const auto& character_data = context->get_constant_col(1)->column_ptr->get_data_at(0); - if (!doris::iequal(character_data.to_string(), "gbk")) { + if (!iequal(character_data.to_string(), "gbk")) { return Status::RuntimeError( "Illegal second argument column of function convert. now only support " "convert to character set of gbk"); diff --git a/regression-test/suites/query_p1/test_big_pad.groovy b/regression-test/suites/query_p1/test_big_pad.groovy index ac8e1f4c2d..635881dc80 100644 --- a/regression-test/suites/query_p1/test_big_pad.groovy +++ b/regression-test/suites/query_p1/test_big_pad.groovy @@ -31,10 +31,7 @@ suite("test_big_pad") { properties("replication_num" = "1"); """ - sql "insert into d_table select 1,2000000000,1,'a';" - sql "insert into d_table select 1,2000000000,1,'a';" - sql "insert into d_table select 1,2000000000,1,'a';" - + sql "insert into d_table values(1,2000000000,1,'a'),(1,2000000000,1,'a'),(1,2000000000,1,'a');" test { sql "select rpad('a',k2,'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa') from d_table;" exception "string column length is too large" --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org