This is an automated email from the ASF dual-hosted git repository. morningman pushed a commit to branch branch-1.2-unstable in repository https://gitbox.apache.org/repos/asf/doris.git
commit b5db5c1f0a7bebc06745949afe394eaf6a17c34c Author: Kang <kxiao.ti...@gmail.com> AuthorDate: Wed Nov 9 11:23:43 2022 +0800 [bug](ColumnDecimal)call set_decimalv2_type when cloning ColumnDecimal (#14061) * call set_decimalv2_type when cloning ColumnDecimal * clang format --- be/src/vec/columns/column_decimal.cpp | 3 ++ be/test/CMakeLists.txt | 1 + be/test/vec/columns/column_decimal_test.cpp | 53 +++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+) diff --git a/be/src/vec/columns/column_decimal.cpp b/be/src/vec/columns/column_decimal.cpp index 078494608c..8194b1ff7e 100644 --- a/be/src/vec/columns/column_decimal.cpp +++ b/be/src/vec/columns/column_decimal.cpp @@ -214,6 +214,9 @@ ColumnPtr ColumnDecimal<T>::permute(const IColumn::Permutation& perm, size_t lim template <typename T> MutableColumnPtr ColumnDecimal<T>::clone_resized(size_t size) const { auto res = this->create(0, scale); + if (this->is_decimalv2_type()) { + res->set_decimalv2_type(); + } if (size > 0) { auto& new_col = assert_cast<Self&>(*res); diff --git a/be/test/CMakeLists.txt b/be/test/CMakeLists.txt index de353b0c6d..85fbb1851d 100644 --- a/be/test/CMakeLists.txt +++ b/be/test/CMakeLists.txt @@ -331,6 +331,7 @@ set(VEC_TEST_FILES vec/aggregate_functions/vec_window_funnel_test.cpp vec/aggregate_functions/vec_retention_test.cpp vec/aggregate_functions/agg_min_max_by_test.cpp + vec/columns/column_decimal_test.cpp vec/core/block_test.cpp vec/core/column_array_test.cpp vec/core/column_complex_test.cpp diff --git a/be/test/vec/columns/column_decimal_test.cpp b/be/test/vec/columns/column_decimal_test.cpp new file mode 100644 index 0000000000..c9f79ee8a0 --- /dev/null +++ b/be/test/vec/columns/column_decimal_test.cpp @@ -0,0 +1,53 @@ + +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 "vec/columns/column_decimal.h" + +#include <gtest/gtest.h> + +#include <memory> +#include <string> + +#include "vec/columns/columns_number.h" + +namespace doris::vectorized { + +TEST(ColumnDecimalTest, CloneDecimalv2TypeTest) { + auto column1 = ColumnDecimal128::create(0, 1); + EXPECT_EQ(false, column1->is_decimalv2_type()); + EXPECT_EQ(false, column1->clone_resized(0)->is_decimalv2_type()); + column1->set_decimalv2_type(); + EXPECT_EQ(true, column1->is_decimalv2_type()); + EXPECT_EQ(true, column1->clone_resized(0)->is_decimalv2_type()); + + auto column2 = ColumnDecimal64::create(0, 1); + EXPECT_EQ(false, column2->is_decimalv2_type()); + EXPECT_EQ(false, column2->clone_resized(0)->is_decimalv2_type()); + column2->set_decimalv2_type(); + EXPECT_EQ(true, column2->is_decimalv2_type()); + EXPECT_EQ(true, column2->clone_resized(0)->is_decimalv2_type()); + + auto column3 = ColumnDecimal32::create(0, 1); + EXPECT_EQ(false, column3->is_decimalv2_type()); + EXPECT_EQ(false, column3->clone_resized(0)->is_decimalv2_type()); + column3->set_decimalv2_type(); + EXPECT_EQ(true, column3->is_decimalv2_type()); + EXPECT_EQ(true, column3->clone_resized(0)->is_decimalv2_type()); +} + +} // namespace doris::vectorized --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org