@@ -39,72 +39,6 @@ void LikeColumnPredicate::evaluate(ColumnBlock* block, uint16_t* sel, uint16_t*
39
39
}
40
40
}
41
41
42
- void LikeColumnPredicate::evaluate (vectorized::IColumn& column, uint16_t * sel,
43
- uint16_t * size) const {
44
- uint16_t new_size = 0 ;
45
-
46
- if (column.is_nullable ()) {
47
- auto * nullable_col = vectorized::check_and_get_column<vectorized::ColumnNullable>(column);
48
- auto & null_map_data = nullable_col->get_null_map_column ().get_data ();
49
- auto & nested_col = nullable_col->get_nested_column ();
50
- if (nested_col.is_column_dictionary ()) {
51
- auto * nested_col_ptr = vectorized::check_and_get_column<
52
- vectorized::ColumnDictionary<vectorized::Int32>>(nested_col);
53
- auto & data_array = nested_col_ptr->get_data ();
54
- for (uint16_t i = 0 ; i < *size; i++) {
55
- uint16_t idx = sel[i];
56
- sel[new_size] = idx;
57
- if (null_map_data[idx]) {
58
- new_size += _opposite;
59
- continue ;
60
- }
61
-
62
- StringValue cell_value = nested_col_ptr->get_value (data_array[idx]);
63
- doris_udf::StringVal target;
64
- cell_value.to_string_val (&target);
65
- new_size += _opposite ^ ((_state->function )(_fn_ctx, target, pattern).val );
66
- }
67
- } else {
68
- for (uint16_t i = 0 ; i < *size; i++) {
69
- uint16_t idx = sel[i];
70
- sel[new_size] = idx;
71
- if (null_map_data[idx]) {
72
- new_size += _opposite;
73
- continue ;
74
- }
75
-
76
- StringRef cell_value = nested_col.get_data_at (idx);
77
- doris_udf::StringVal target = cell_value.to_string_val ();
78
- new_size += _opposite ^ ((_state->function )(_fn_ctx, target, pattern).val );
79
- }
80
- }
81
- } else {
82
- if (column.is_column_dictionary ()) {
83
- auto * nested_col_ptr = vectorized::check_and_get_column<
84
- vectorized::ColumnDictionary<vectorized::Int32>>(column);
85
- auto & data_array = nested_col_ptr->get_data ();
86
- for (uint16_t i = 0 ; i < *size; i++) {
87
- uint16_t idx = sel[i];
88
- sel[new_size] = idx;
89
- StringValue cell_value = nested_col_ptr->get_value (data_array[idx]);
90
- doris_udf::StringVal target;
91
- cell_value.to_string_val (&target);
92
- new_size += _opposite ^ ((_state->function )(_fn_ctx, target, pattern).val );
93
- }
94
- } else {
95
- for (uint16_t i = 0 ; i < *size; i++) {
96
- uint16_t idx = sel[i];
97
- sel[new_size] = idx;
98
- StringRef cell_value = column.get_data_at (idx);
99
- doris_udf::StringVal target = cell_value.to_string_val ();
100
- new_size += _opposite ^ ((_state->function )(_fn_ctx, target, pattern).val );
101
- }
102
- }
103
- }
104
-
105
- *size = new_size;
106
- }
107
-
108
42
void LikeColumnPredicate::evaluate_vec (const vectorized::IColumn& column, uint16_t size,
109
43
bool * flags) const {
110
44
if (column.is_nullable ()) {
0 commit comments