Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[refactor]Delete useless code check_set_nullable() #41739

Open
wants to merge 36 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
96d4a20
add regr_intercept and regr_slope aggregate functions
Yoruet Sep 24, 2024
5882639
delete unused files
Yoruet Sep 24, 2024
7d3d24e
fix bug in regr_slope and regr_intercept
Yoruet Sep 24, 2024
5bc299e
update RegrSlope and RegrIntercept to be nullable
Yoruet Sep 25, 2024
19829a7
change the implementation of RegrSlope and RegrIntercept
Yoruet Sep 26, 2024
875fb28
update the be of regr_slope and regr_intercept
Yoruet Sep 26, 2024
4207554
Modification details
Yoruet Sep 27, 2024
2a35625
fix bug in be of regr_slope and regr_intercept
Yoruet Sep 27, 2024
64711ad
X
zhiqiang-hhhh Sep 27, 2024
86ed7a3
Merge branch 'master' of https://github.com/yoruet/doris into pr/Yoru…
zhiqiang-hhhh Sep 27, 2024
567f5e3
update doris-cluster.conf
Yoruet Sep 27, 2024
2ca9f40
Merge branch 'zhiqiang-hhhh-regr_intercept' and change other files
Yoruet Sep 27, 2024
40b3f80
Code Formatter / Clang Formatter
Yoruet Sep 27, 2024
13d4676
fix fe of regr_slope and add test_regr_slope.groovy
Yoruet Sep 27, 2024
29f6e52
union regr_slope and regr_intercept to regr_union
Yoruet Sep 30, 2024
43c58df
using sub class in regr_slope and regr_intercept
Yoruet Sep 30, 2024
9b85156
code format
Yoruet Sep 30, 2024
72c33e2
Move get_slope method to parent class
Yoruet Oct 2, 2024
68d8d74
code format
Yoruet Oct 2, 2024
4c0fbd0
refactor: delete useless code check_set_nullable
Yoruet Oct 11, 2024
507b2ae
Merge branch 'apache:master' into master
Yoruet Oct 11, 2024
0534a2e
update
Yoruet Oct 11, 2024
4c3d0d1
Merge branch 'temp'
Yoruet Oct 11, 2024
cd22ccc
delete unused function use_default_implementation_for_nulls for its d…
Yoruet Oct 12, 2024
a338e01
add testcase for str_to_date
Yoruet Oct 12, 2024
e309426
delete unused function use_default_implementation_for_nulls for its d…
Yoruet Oct 12, 2024
6c386df
delete useless function update_null_map for some functions
Yoruet Oct 12, 2024
16a4dbe
code format
Yoruet Oct 12, 2024
5066efa
code format
Yoruet Oct 13, 2024
195d27f
fix bug in bitmap_count
Yoruet Oct 13, 2024
62ddbe1
fix bug in bitmap
Yoruet Oct 13, 2024
dd70803
fix bug in bitmap_count
Yoruet Oct 13, 2024
a48cea8
fix bug in jsonb functions
Yoruet Oct 13, 2024
6966174
Update .gitignore
Yoruet Oct 13, 2024
ad01da0
Update .gitignore
Yoruet Oct 13, 2024
64c102c
delete unused test cases
Yoruet Oct 13, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions be/src/vec/columns/column_nullable.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -634,16 +634,4 @@ ColumnPtr remove_nullable(const ColumnPtr& column) {
return column;
}

void check_set_nullable(ColumnPtr& argument_column, ColumnVector<UInt8>::MutablePtr& null_map,
bool is_single) {
if (const auto* nullable = check_and_get_column<ColumnNullable>(*argument_column)) {
// Danger: Here must dispose the null map data first! Because
// argument_columns[i]=nullable->get_nested_column_ptr(); will release the mem
// of column nullable mem of null map
VectorizedUtils::update_null_map(null_map->get_data(), nullable->get_null_map_data(),
is_single);
argument_column = nullable->get_nested_column_ptr();
}
}

} // namespace doris::vectorized
4 changes: 0 additions & 4 deletions be/src/vec/columns/column_nullable.h
Original file line number Diff line number Diff line change
Expand Up @@ -479,8 +479,4 @@ class ColumnNullable final : public COWHelper<IColumn, ColumnNullable>, public N

ColumnPtr make_nullable(const ColumnPtr& column, bool is_nullable = false);
ColumnPtr remove_nullable(const ColumnPtr& column);
// check if argument column is nullable. If so, extract its concrete column and set null_map.
//TODO: use this to replace inner usages.
// is_single: whether null_map is null map of a ColumnConst
void check_set_nullable(ColumnPtr&, ColumnVector<UInt8>::MutablePtr& null_map, bool is_single);
} // namespace doris::vectorized
2 changes: 0 additions & 2 deletions be/src/vec/functions/array/function_array_contains_all.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,6 @@ class FunctionArrayContainsAll : public IFunction {

String get_name() const override { return name; }

bool use_default_implementation_for_nulls() const override { return true; }

bool is_variadic() const override { return false; }

size_t get_number_of_arguments() const override { return 2; }
Expand Down
1 change: 0 additions & 1 deletion be/src/vec/functions/array/function_array_enumerate.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ class FunctionArrayEnumerate : public IFunction {
static constexpr auto name = "array_enumerate";
static FunctionPtr create() { return std::make_shared<FunctionArrayEnumerate>(); }
String get_name() const override { return name; }
bool use_default_implementation_for_nulls() const override { return true; }
size_t get_number_of_arguments() const override { return 1; }
DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
const DataTypeArray* array_type =
Expand Down
10 changes: 0 additions & 10 deletions be/src/vec/functions/array/function_array_range.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,6 @@ class FunctionArrayRange : public IFunction {

bool is_variadic() const override { return true; }

bool use_default_implementation_for_nulls() const override { return false; }

size_t get_number_of_arguments() const override {
return get_variadic_argument_types_impl().size();
}
Expand Down Expand Up @@ -146,14 +144,6 @@ struct RangeImplUtil {
for (int i = 0; i < 3; ++i) {
argument_columns[i] =
block.get_by_position(arguments[i]).column->convert_to_full_column_if_const();
if (auto* nullable = check_and_get_column<ColumnNullable>(*argument_columns[i])) {
// Danger: Here must dispose the null map data first! Because
// argument_columns[i]=nullable->get_nested_column_ptr(); will release the mem
// of column nullable mem of null map
VectorizedUtils::update_null_map(args_null_map->get_data(),
nullable->get_null_map_data());
argument_columns[i] = nullable->get_nested_column_ptr();
}
}
auto start_column =
assert_cast<const ColumnVector<SourceDataType>*>(argument_columns[0].get());
Expand Down
10 changes: 0 additions & 10 deletions be/src/vec/functions/function_bitmap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -349,8 +349,6 @@ class FunctionBitmapAlwaysNull : public IFunction {

size_t get_number_of_arguments() const override { return 1; }

bool use_default_implementation_for_nulls() const override { return true; }

Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
size_t result, size_t input_rows_count) const override {
auto res_null_map = ColumnUInt8::create(input_rows_count, 0);
Expand Down Expand Up @@ -1148,8 +1146,6 @@ class FunctionBitmapSubs : public IFunction {

size_t get_number_of_arguments() const override { return 3; }

bool use_default_implementation_for_nulls() const override { return false; }

Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
size_t result, size_t input_rows_count) const override {
DCHECK_EQ(arguments.size(), 3);
Expand All @@ -1168,10 +1164,6 @@ class FunctionBitmapSubs : public IFunction {

default_preprocess_parameter_columns(argument_columns, col_const, {1, 2}, block, arguments);

for (int i = 0; i < 3; i++) {
check_set_nullable(argument_columns[i], res_null_map, col_const[i]);
}

auto bitmap_column = assert_cast<const ColumnBitmap*>(argument_columns[0].get());
auto offset_column = assert_cast<const ColumnVector<Int64>*>(argument_columns[1].get());
auto limit_column = assert_cast<const ColumnVector<Int64>*>(argument_columns[2].get());
Expand Down Expand Up @@ -1207,8 +1199,6 @@ class FunctionBitmapToArray : public IFunction {

size_t get_number_of_arguments() const override { return 1; }

bool use_default_implementation_for_nulls() const override { return true; }

Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
size_t result, size_t input_rows_count) const override {
auto return_nested_type = make_nullable(std::make_shared<DataTypeInt64>());
Expand Down
8 changes: 0 additions & 8 deletions be/src/vec/functions/function_bitmap_min_or_max.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,14 +55,6 @@ class FunctionBitmapSingle : public IFunction {
auto result_null_map_column = ColumnUInt8::create(input_rows_count, 0);

ColumnPtr argument_column = block.get_by_position(arguments[0]).column;
if (auto* nullable = check_and_get_column<ColumnNullable>(*argument_column)) {
// Danger: Here must dispose the null map data first! Because
// argument_columns[i]=nullable->get_nested_column_ptr(); will release the mem
// of column nullable mem of null map
VectorizedUtils::update_null_map(result_null_map_column->get_data(),
nullable->get_null_map_data());
argument_column = nullable->get_nested_column_ptr();
}

execute_straight(assert_cast<const ColumnBitmap*>(argument_column.get()),
assert_cast<ColumnInt64*>(result_column.get()),
Expand Down
6 changes: 0 additions & 6 deletions be/src/vec/functions/function_conv.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,6 @@ class FunctionConv : public IFunction {
return get_variadic_argument_types_impl().size();
}

bool use_default_implementation_for_nulls() const override { return false; }

Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
size_t result, size_t input_rows_count) const override {
auto result_column = ColumnString::create();
Expand All @@ -91,10 +89,6 @@ class FunctionConv : public IFunction {

default_preprocess_parameter_columns(argument_columns, col_const, {1, 2}, block, arguments);

for (int i = 0; i < 3; i++) {
check_set_nullable(argument_columns[i], result_null_map_column, col_const[i]);
}

if (col_const[1] && col_const[2]) {
execute_scalar_args(
context,
Expand Down
9 changes: 0 additions & 9 deletions be/src/vec/functions/function_date_or_datetime_to_string.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ class FunctionDateOrDateTimeToString : public IFunction {
String get_name() const override { return name; }

size_t get_number_of_arguments() const override { return 1; }
bool use_default_implementation_for_nulls() const override { return false; }

DataTypePtr get_return_type_impl(const ColumnsWithTypeAndName& arguments) const override {
RETURN_REAL_TYPE_FOR_DATEV2_FUNCTION(DataTypeString);
Expand Down Expand Up @@ -95,14 +94,6 @@ class FunctionDateOrDateTimeToString : public IFunction {
TransformerToStringOneArgument<Transform>::vector(
context, sources->get_data(), col_res->get_chars(), col_res->get_offsets(),
null_map->get_data());
if (const auto* nullable_col =
check_and_get_column<ColumnNullable>(source_col.get())) {
NullMap& result_null_map = assert_cast<ColumnUInt8&>(*null_map).get_data();
const NullMap& src_null_map =
assert_cast<const ColumnUInt8&>(nullable_col->get_null_map_column())
.get_data();
VectorizedUtils::update_null_map(result_null_map, src_null_map);
}
block.replace_by_position(
result, ColumnNullable::create(std::move(col_res), std::move(null_map)));
} else {
Expand Down
8 changes: 0 additions & 8 deletions be/src/vec/functions/function_encryption.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,6 @@ class FunctionEncryptionAndDecrypt : public IFunction {
return get_variadic_argument_types_impl().size();
}

bool use_default_implementation_for_nulls() const override { return false; }

Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
size_t result, size_t input_rows_count) const override {
return Impl::execute_impl_inner(context, block, arguments, result, input_rows_count);
Expand Down Expand Up @@ -207,9 +205,6 @@ struct EncryptionAndDecryptTwoImpl {

default_preprocess_parameter_columns(argument_columns, col_const, {1, 2}, block, arguments);

for (int i = 0; i < argument_size; i++) {
check_set_nullable(argument_columns[i], result_null_map_column, col_const[i]);
}
auto& result_data = result_column->get_chars();
auto& result_offset = result_column->get_offsets();
result_offset.resize(input_rows_count);
Expand Down Expand Up @@ -327,9 +322,6 @@ struct EncryptionAndDecryptMultiImpl {
arguments);
}

for (int i = 0; i < argument_size; i++) {
check_set_nullable(argument_columns[i], result_null_map_column, col_const[i]);
}
auto& result_data = result_column->get_chars();
auto& result_offset = result_column->get_offsets();
result_offset.resize(input_rows_count);
Expand Down
1 change: 0 additions & 1 deletion be/src/vec/functions/function_jsonb.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1350,7 +1350,6 @@ class FunctionJsonbLength : public IFunction {
}

bool use_default_implementation_for_nulls() const override { return false; }

Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
size_t result, size_t input_rows_count) const override {
return Impl::execute_impl(context, block, arguments, result, input_rows_count);
Expand Down
5 changes: 0 additions & 5 deletions be/src/vec/functions/function_regexp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -391,8 +391,6 @@ class FunctionRegexp : public IFunction {

String get_name() const override { return name; }

bool use_default_implementation_for_nulls() const override { return false; }

size_t get_number_of_arguments() const override {
if constexpr (std::is_same_v<Impl, RegexpExtractAllImpl>) {
return 2;
Expand Down Expand Up @@ -455,9 +453,6 @@ class FunctionRegexp : public IFunction {
default_preprocess_parameter_columns(argument_columns, col_const, {1, 2}, block,
arguments);
}
for (int i = 0; i < argument_size; i++) {
check_set_nullable(argument_columns[i], result_null_map, col_const[i]);
}

if constexpr (std::is_same_v<Impl, RegexpExtractAllImpl>) {
if (col_const[1]) {
Expand Down
32 changes: 0 additions & 32 deletions be/src/vec/functions/function_timestamp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -115,12 +115,9 @@ struct StrToDate {
ColumnPtr argument_columns[2] = {
col_const[0] ? static_cast<const ColumnConst&>(*col0).convert_to_full_column()
: col0};
check_set_nullable(argument_columns[0], null_map, col_const[0]);
Yoruet marked this conversation as resolved.
Show resolved Hide resolved
//TODO: when we set default implementation for nullable, the check_set_nullable for arguments is useless. consider to remove it.

std::tie(argument_columns[1], col_const[1]) =
unpack_if_const(block.get_by_position(arguments[1]).column);
check_set_nullable(argument_columns[1], null_map, col_const[1]);

auto specific_str_column = assert_cast<const ColumnString*>(argument_columns[0].get());
auto specific_char_column = assert_cast<const ColumnString*>(argument_columns[1].get());
Expand Down Expand Up @@ -265,11 +262,9 @@ struct MakeDateImpl {
ColumnPtr argument_columns[2] = {
col_const[0] ? static_cast<const ColumnConst&>(*col0).convert_to_full_column()
: col0};
check_set_nullable(argument_columns[0], null_map, col_const[0]);

std::tie(argument_columns[1], col_const[1]) =
unpack_if_const(block.get_by_position(arguments[1]).column);
check_set_nullable(argument_columns[1], null_map, col_const[1]);

ColumnPtr res = nullptr;
WhichDataType which(remove_nullable(block.get_by_position(result).type));
Expand Down Expand Up @@ -502,8 +497,6 @@ class FromDays : public IFunction {

size_t get_number_of_arguments() const override { return 1; }

bool use_default_implementation_for_nulls() const override { return true; }

DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
return make_nullable(std::make_shared<DataTypeDate>());
}
Expand Down Expand Up @@ -713,9 +706,6 @@ struct UnixTimeStampStrImpl {
auto& col_result_data = col_result->get_data();
auto& null_map_data = null_map->get_data();

check_set_nullable(col_left, null_map, source_const);
check_set_nullable(col_right, null_map, format_const);

const auto* col_source = assert_cast<const ColumnString*>(col_left.get());
const auto* col_format = assert_cast<const ColumnString*>(col_right.get());
for (int i = 0; i < input_rows_count; i++) {
Expand Down Expand Up @@ -772,10 +762,6 @@ class FunctionUnixTimestamp : public IFunction {
return Impl::get_variadic_argument_types();
}

bool use_default_implementation_for_nulls() const override {
return !static_cast<bool>(std::is_same_v<Impl, UnixTimeStampStrImpl>);
}

Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
size_t result, size_t input_rows_count) const override {
return Impl::execute_impl(context, block, arguments, result, input_rows_count);
Expand Down Expand Up @@ -849,8 +835,6 @@ class FunctionDateOrDateTimeToDate : public IFunction {

String get_name() const override { return name; }

bool use_default_implementation_for_nulls() const override { return false; }

size_t get_number_of_arguments() const override { return 1; }

bool is_variadic() const override { return true; }
Expand Down Expand Up @@ -907,14 +891,6 @@ struct LastDayImpl {
input_rows_count, null_map->get_data(), data_col->get_data(),
static_cast<ResultColumnType*>(res_column->assume_mutable().get())->get_data());

if (const auto* nullable_col = check_and_get_column<ColumnNullable>(
block.get_by_position(arguments[0]).column.get())) {
NullMap& result_null_map = assert_cast<ColumnUInt8&>(*null_map).get_data();
const NullMap& src_null_map =
assert_cast<const ColumnUInt8&>(nullable_col->get_null_map_column())
.get_data();
VectorizedUtils::update_null_map(result_null_map, src_null_map);
}
block.replace_by_position(result,
ColumnNullable::create(res_column, std::move(null_map)));
} else {
Expand Down Expand Up @@ -1019,14 +995,6 @@ struct MondayImpl {
input_rows_count, null_map->get_data(), data_col->get_data(),
static_cast<ResultColumnType*>(res_column->assume_mutable().get())->get_data());

if (const auto* nullable_col = check_and_get_column<ColumnNullable>(
block.get_by_position(arguments[0]).column.get())) {
NullMap& result_null_map = assert_cast<ColumnUInt8&>(*null_map).get_data();
const NullMap& src_null_map =
assert_cast<const ColumnUInt8&>(nullable_col->get_null_map_column())
.get_data();
VectorizedUtils::update_null_map(result_null_map, src_null_map);
}
block.replace_by_position(result,
ColumnNullable::create(res_column, std::move(null_map)));
} else {
Expand Down
2 changes: 0 additions & 2 deletions be/src/vec/functions/function_totype.h
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,6 @@ class FunctionBinaryToNullType : public IFunction {
for (int i = 0; i < 2; ++i) {
std::tie(argument_columns[i], col_const[i]) =
unpack_if_const(block.get_by_position(arguments[i]).column);
check_set_nullable(argument_columns[i], null_map, col_const[i]);
}

using ResultDataType = typename Impl<LeftDataType, RightDataType, ResultDateType,
Expand Down Expand Up @@ -401,7 +400,6 @@ class FunctionBinaryStringOperateToNullType : public IFunction {
for (int i = 0; i < 2; ++i) {
std::tie(argument_columns[i], col_const[i]) =
unpack_if_const(block.get_by_position(arguments[i]).column);
check_set_nullable(argument_columns[i], null_map, col_const[i]);
}

auto res = Impl::ColumnType::create();
Expand Down
Loading
Loading