This is an automated email from the ASF dual-hosted git repository.
lihaopeng 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 753f3467f6e [fix](string) fix string len check of nested types (#56963)
753f3467f6e is described below
commit 753f3467f6e4805861e4657d61af6eb77d68bf6c
Author: TengJianPing <[email protected]>
AuthorDate: Wed Oct 15 23:50:14 2025 +0800
[fix](string) fix string len check of nested types (#56963)
Fix bug of checking string length of complex type.
When doing substring to truncate nested string column for complex types,
should not use `block->get_by_position(slot_index)`, because the column
returned by this method is the original column of complex type, not the
string column that we want to do substring.
---
be/src/vec/sink/vtablet_block_convertor.cpp | 156 ++-
.../one_level_nestedtypes_with_s3data.out | 1020 ++++++++++----------
.../string_len/test_string_len_complex.out | 43 +
.../one_level_nestedtypes_with_s3data.groovy | 6 +-
.../string_len/test_string_len_complex.groovy | 229 +++++
5 files changed, 900 insertions(+), 554 deletions(-)
diff --git a/be/src/vec/sink/vtablet_block_convertor.cpp
b/be/src/vec/sink/vtablet_block_convertor.cpp
index 941b477a29f..7c61024af76 100644
--- a/be/src/vec/sink/vtablet_block_convertor.cpp
+++ b/be/src/vec/sink/vtablet_block_convertor.cpp
@@ -210,18 +210,27 @@ Status OlapTableBlockConvertor::_internal_validate_column(
return ret;
};
- auto column_ptr =
vectorized::check_and_get_column<vectorized::ColumnNullable>(*column);
- auto& real_column_ptr = column_ptr == nullptr ? column :
(column_ptr->get_nested_column_ptr());
- auto null_map = column_ptr == nullptr ? nullptr :
column_ptr->get_null_map_data().data();
- auto need_to_validate = [&null_map, this](size_t j, size_t row) {
- return !_filter_map[row] && (null_map == nullptr || null_map[j] == 0);
+ const auto* column_ptr =
vectorized::check_and_get_column<vectorized::ColumnNullable>(*column);
+ const auto& real_column_ptr =
+ column_ptr == nullptr ? column :
(column_ptr->get_nested_column_ptr());
+ const auto* null_map = column_ptr == nullptr ? nullptr :
column_ptr->get_null_map_data().data();
+ auto need_to_validate = [](size_t j, size_t row, const std::vector<char>&
filter_map,
+ const unsigned char* null_map) {
+ return !filter_map[row] && (null_map == nullptr || null_map[j] == 0);
};
- auto string_column_checker = [&](const ColumnString* column_string) {
+ // may change orig_column if substring function is performed
+ auto string_column_checker = [&state, &error_msg, need_to_validate,
+ set_invalid_and_append_error_msg](
+ vectorized::ColumnPtr& orig_column,
+ const DataTypePtr& orig_type,
+ vectorized::IColumn::Permutation*
rows,
+ const std::vector<char>& filter_map) {
int limit = config::string_type_length_soft_limit_bytes;
int len = -1;
// when type.len is negative, std::min will return overflow value, so
we need to check it
- auto* type_str =
check_and_get_data_type<DataTypeString>(remove_nullable(type).get());
+ const auto* type_str =
+
check_and_get_data_type<DataTypeString>(remove_nullable(orig_type).get());
if (type_str) {
if (type_str->len() >= 0) {
len = type_str->len();
@@ -229,8 +238,18 @@ Status OlapTableBlockConvertor::_internal_validate_column(
}
}
- auto* __restrict offsets = column_string->get_offsets().data();
+ const auto* tmp_column_ptr =
+
vectorized::check_and_get_column<vectorized::ColumnNullable>(*orig_column);
+ const auto& tmp_real_column_ptr =
+ tmp_column_ptr == nullptr ? orig_column :
(tmp_column_ptr->get_nested_column_ptr());
+ const auto* column_string =
+ assert_cast<const
vectorized::ColumnString*>(tmp_real_column_ptr.get());
+ const auto* null_map =
+ tmp_column_ptr == nullptr ? nullptr :
tmp_column_ptr->get_null_map_data().data();
+
+ const auto* __restrict offsets = column_string->get_offsets().data();
int invalid_count = 0;
+ size_t row_count = orig_column->size();
for (int64_t j = 0; j < row_count; ++j) {
invalid_count += (offsets[j] - offsets[j - 1]) > limit;
}
@@ -243,40 +262,38 @@ Status OlapTableBlockConvertor::_internal_validate_column(
// This is a workaround for now, need to improve it after better
support of multi-byte chars.
if (type_str && !state->enable_insert_strict()) {
ColumnsWithTypeAndName argument_template;
+ auto input_type = remove_nullable(orig_type);
auto pos_type = DataTypeFactory::instance().create_data_type(
FieldType::OLAP_FIELD_TYPE_INT, 0, 0);
auto len_type = DataTypeFactory::instance().create_data_type(
FieldType::OLAP_FIELD_TYPE_INT, 0, 0);
- argument_template.emplace_back(nullptr, type, "string column");
+ argument_template.emplace_back(nullptr, input_type, "string
column");
argument_template.emplace_back(nullptr, pos_type, "pos
column");
argument_template.emplace_back(nullptr, len_type, "len
column");
auto func = SimpleFunctionFactory::instance().get_function(
- "substring", argument_template, type, {},
state->be_exec_version());
+ "substring", argument_template, input_type, {},
state->be_exec_version());
if (!func) {
return Status::InternalError("get function substring
failed");
}
auto pos_column = pos_type->create_column_const(row_count,
to_field<TYPE_INT>(1));
auto len_column =
len_type->create_column_const(row_count,
to_field<TYPE_INT>(limit));
- Block tmp_block({block->get_by_position(slot_index),
+ Block tmp_block({{remove_nullable(orig_column), input_type,
"string column"},
{pos_column, pos_type, "pos"},
{len_column, len_type, "len"},
- {nullptr, type, "result"}});
+ {nullptr, input_type, "result"}});
RETURN_IF_ERROR(func->execute(nullptr, tmp_block, {0, 1, 2},
3, row_count));
- block->get_by_position(slot_index).column =
- std::move(tmp_block.get_by_position(3).column);
- const auto* tmp_column_ptr =
-
vectorized::check_and_get_column<vectorized::ColumnNullable>(
- *block->get_by_position(slot_index).column);
- const auto& tmp_real_column_ptr =
- tmp_column_ptr == nullptr ?
block->get_by_position(slot_index).column
- :
(tmp_column_ptr->get_nested_column_ptr());
- column_string =
- assert_cast<const
vectorized::ColumnString*>(tmp_real_column_ptr.get());
+ column_string = assert_cast<const vectorized::ColumnString*>(
+ tmp_block.get_by_position(3).column.get());
+ orig_column =
+ orig_column->is_nullable()
+ ?
ColumnNullable::create(tmp_block.get_by_position(3).column,
+
tmp_column_ptr->get_null_map_column_ptr())
+ :
std::move(tmp_block.get_by_position(3).column);
}
for (size_t j = 0; j < row_count; ++j) {
auto row = rows ? (*rows)[j] : j;
- if (need_to_validate(j, row)) {
+ if (need_to_validate(j, row, filter_map, null_map)) {
auto str_val = column_string->get_data_at(j);
bool invalid = str_val.size > limit;
if (invalid) {
@@ -309,9 +326,8 @@ Status OlapTableBlockConvertor::_internal_validate_column(
case TYPE_CHAR:
case TYPE_VARCHAR:
case TYPE_STRING: {
- const auto column_string =
- assert_cast<const
vectorized::ColumnString*>(real_column_ptr.get());
- RETURN_IF_ERROR(string_column_checker(column_string));
+ RETURN_IF_ERROR(string_column_checker(column, type, rows,
_filter_map));
+ block->get_by_position(slot_index).column = std::move(column);
break;
}
case TYPE_JSONB: {
@@ -341,7 +357,7 @@ Status OlapTableBlockConvertor::_internal_validate_column(
const auto& min_decimalv2 = _get_decimalv2_min_or_max<true>(type);
for (size_t j = 0; j < row_count; ++j) {
auto row = rows ? (*rows)[j] : j;
- if (need_to_validate(j, row)) {
+ if (need_to_validate(j, row, _filter_map, null_map)) {
auto dec_val = binary_cast<vectorized::Int128, DecimalV2Value>(
column_decimal->get_data()[j]);
bool invalid = false;
@@ -389,7 +405,7 @@ Status OlapTableBlockConvertor::_internal_validate_column(
if (invalid_count) {
\
for (size_t j = 0; j < row_count; ++j) {
\
auto row = rows ? (*rows)[j] : j;
\
- if (need_to_validate(j, row)) {
\
+ if (need_to_validate(j, row, _filter_map, null_map)) {
\
auto dec_val = column_decimal->get_data()[j];
\
bool invalid = false;
\
if (dec_val > max_decimal || dec_val < min_decimal) {
\
@@ -437,9 +453,22 @@ Status OlapTableBlockConvertor::_internal_validate_column(
}
}
fmt::format_to(error_prefix, "ARRAY type failed: ");
- RETURN_IF_ERROR(_validate_column(state, block, nested_type,
column_array->get_data_ptr(),
- slot_index, error_prefix,
permutation.size(),
- &permutation));
+ auto data_column_ptr = column_array->get_data_ptr();
+ switch (nested_type->get_primitive_type()) {
+ case TYPE_CHAR:
+ case TYPE_VARCHAR:
+ case TYPE_STRING: {
+ RETURN_IF_ERROR(
+ string_column_checker(data_column_ptr, nested_type,
&permutation, _filter_map));
+ const_cast<vectorized::ColumnArray*>(column_array)->get_data_ptr()
=
+ std::move(data_column_ptr);
+ break;
+ }
+ default:
+ RETURN_IF_ERROR(_validate_column(state, block, nested_type,
data_column_ptr, slot_index,
+ error_prefix, permutation.size(),
&permutation));
+ break;
+ }
break;
}
case TYPE_MAP: {
@@ -460,12 +489,41 @@ Status OlapTableBlockConvertor::_internal_validate_column(
}
fmt::format_to(error_prefix, "MAP type failed: ");
- RETURN_IF_ERROR(_validate_column(state, block, key_type,
column_map->get_keys_ptr(),
- slot_index, error_prefix,
permutation.size(),
- &permutation));
- RETURN_IF_ERROR(_validate_column(state, block, val_type,
column_map->get_values_ptr(),
- slot_index, error_prefix,
permutation.size(),
- &permutation));
+ switch (key_type->get_primitive_type()) {
+ case TYPE_CHAR:
+ case TYPE_VARCHAR:
+ case TYPE_STRING: {
+ auto key_column_ptr = column_map->get_keys_ptr();
+ RETURN_IF_ERROR(
+ string_column_checker(key_column_ptr, key_type,
&permutation, _filter_map));
+ const_cast<vectorized::ColumnMap*>(column_map)->get_keys_ptr() =
+ std::move(key_column_ptr);
+ break;
+ }
+ default:
+ RETURN_IF_ERROR(_validate_column(state, block, key_type,
column_map->get_keys_ptr(),
+ slot_index, error_prefix,
permutation.size(),
+ &permutation));
+ break;
+ }
+
+ switch (val_type->get_primitive_type()) {
+ case TYPE_CHAR:
+ case TYPE_VARCHAR:
+ case TYPE_STRING: {
+ auto value_column_ptr = column_map->get_values_ptr();
+ RETURN_IF_ERROR(
+ string_column_checker(value_column_ptr, val_type,
&permutation, _filter_map));
+ const_cast<vectorized::ColumnMap*>(column_map)->get_values_ptr() =
+ std::move(value_column_ptr);
+ break;
+ }
+ default:
+ RETURN_IF_ERROR(_validate_column(state, block, val_type,
column_map->get_values_ptr(),
+ slot_index, error_prefix,
permutation.size(),
+ &permutation));
+ break;
+ }
break;
}
case TYPE_STRUCT: {
@@ -476,16 +534,32 @@ Status OlapTableBlockConvertor::_internal_validate_column(
DCHECK(type_struct->get_elements().size() ==
column_struct->tuple_size());
fmt::format_to(error_prefix, "STRUCT type failed: ");
for (size_t sc = 0; sc < column_struct->tuple_size(); ++sc) {
- RETURN_IF_ERROR(_validate_column(
- state, block, type_struct->get_element(sc),
column_struct->get_column_ptr(sc),
- slot_index, error_prefix,
column_struct->get_column_ptr(sc)->size()));
+ auto element_type = type_struct->get_element(sc);
+ switch (element_type->get_primitive_type()) {
+ case TYPE_CHAR:
+ case TYPE_VARCHAR:
+ case TYPE_STRING: {
+ auto element_column_ptr = column_struct->get_column_ptr(sc);
+ RETURN_IF_ERROR(string_column_checker(element_column_ptr,
element_type, nullptr,
+ _filter_map));
+
const_cast<vectorized::ColumnStruct*>(column_struct)->get_column_ptr(sc) =
+ std::move(element_column_ptr);
+ break;
+ }
+ default:
+ RETURN_IF_ERROR(_validate_column(state, block,
type_struct->get_element(sc),
+
column_struct->get_column_ptr(sc), slot_index,
+ error_prefix,
+
column_struct->get_column_ptr(sc)->size()));
+ break;
+ }
}
break;
}
case TYPE_AGG_STATE: {
auto* column_string =
vectorized::check_and_get_column<ColumnString>(*real_column_ptr);
if (column_string) {
- RETURN_IF_ERROR(string_column_checker(column_string));
+ RETURN_IF_ERROR(string_column_checker(column, type, rows,
_filter_map));
}
break;
}
diff --git
a/regression-test/data/datatype_p0/nested_types/base_cases/one_level_nestedtypes_with_s3data.out
b/regression-test/data/datatype_p0/nested_types/base_cases/one_level_nestedtypes_with_s3data.out
index ce7d2896bfe..2db95a0fde9 100644
---
a/regression-test/data/datatype_p0/nested_types/base_cases/one_level_nestedtypes_with_s3data.out
+++
b/regression-test/data/datatype_p0/nested_types/base_cases/one_level_nestedtypes_with_s3data.out
@@ -36,28 +36,28 @@
-3562337774148755203
[FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,
[...]
-- !select_arr --
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
+false -8130762325653500066
+false -8486390558035389955
+true -8396837115675039201
+true -8515031650658489442
+true -8541785086945532478
+true -8595400109785252164
+true -8704279886565651802
+true -8831405316887920021
+true -8843401066421936451
+true -9199935995880135372
-- !select_arr --
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
+false -8486390558035389955
+false -8515031650658489442
+false -8541785086945532478
+false -8704279886565651802
+false -8831405316887920021
+true -8130762325653500066
+true -8396837115675039201
+true -8595400109785252164
+true -8843401066421936451
+true -9199935995880135372
-- !select_arr_null --
\N
@@ -84,28 +84,28 @@ true
\N
-- !select_arr --
--17
--22
--61
--91
-26
-35
-46
-54
-66
-84
+-17 -8541785086945532478
+-22 -8595400109785252164
+-61 -8515031650658489442
+-91 -8704279886565651802
+26 -8396837115675039201
+35 -8843401066421936451
+46 -9199935995880135372
+54 -8831405316887920021
+66 -8130762325653500066
+84 -8486390558035389955
-- !select_arr --
--109
--111
--64
--67
--82
--82
--99
-117
-14
-25
+-109 -8541785086945532478
+-111 -8831405316887920021
+-64 -8704279886565651802
+-67 -8595400109785252164
+-82 -8515031650658489442
+-82 -8843401066421936451
+-99 -8486390558035389955
+117 -8130762325653500066
+14 -8396837115675039201
+25 -9199935995880135372
-- !select_arr_null --
\N
@@ -132,28 +132,28 @@ true
\N
-- !select_arr --
--12603
--2344
--24632
--6139
-10699
-11049
-14809
-19782
-30951
-31600
+-12603 -8486390558035389955
+-2344 -8595400109785252164
+-24632 -8541785086945532478
+-6139 -8843401066421936451
+10699 -8831405316887920021
+11049 -8515031650658489442
+14809 -8396837115675039201
+19782 -8130762325653500066
+30951 -9199935995880135372
+31600 -8704279886565651802
-- !select_arr --
--2808
--7513
-11152
-14506
-17125
-23712
-29837
-31951
-32414
-6257
+-2808 -8831405316887920021
+-7513 -8396837115675039201
+11152 -8541785086945532478
+14506 -8704279886565651802
+17125 -8843401066421936451
+23712 -8130762325653500066
+29837 -8486390558035389955
+31951 -8515031650658489442
+32414 -9199935995880135372
+6257 -8595400109785252164
-- !select_arr_null --
\N
@@ -180,28 +180,28 @@ true
\N
-- !select_arr --
--1225369512
--1395978559
--1667521392
--616624660
--755482173
-1018641939
-125717314
-151142332
-357975304
-895657518
+-1225369512 -9199935995880135372
+-1395978559 -8595400109785252164
+-1667521392 -8515031650658489442
+-616624660 -8704279886565651802
+-755482173 -8130762325653500066
+1018641939 -8831405316887920021
+125717314 -8541785086945532478
+151142332 -8843401066421936451
+357975304 -8396837115675039201
+895657518 -8486390558035389955
-- !select_arr --
--1109276453
--1296011431
--1986718067
--794212138
-1389664080
-1439779038
-2134947781
-593610110
-606554113
-772552651
+-1109276453 -8541785086945532478
+-1296011431 -8515031650658489442
+-1986718067 -9199935995880135372
+-794212138 -8595400109785252164
+1389664080 -8486390558035389955
+1439779038 -8843401066421936451
+2134947781 -8704279886565651802
+593610110 -8831405316887920021
+606554113 -8396837115675039201
+772552651 -8130762325653500066
-- !select_arr_null --
\N
@@ -228,28 +228,28 @@ true
\N
-- !select_arr --
--3361221405413165437
--4788314364539725007
--5203517795919857144
--5251599557722879198
--5293002896959075734
--5977614697497049338
-1282831306004793126
-1559145931588384833
-3973381630263491239
-8699645739348382040
+-3361221405413165437 -8843401066421936451
+-4788314364539725007 -8486390558035389955
+-5203517795919857144 -8541785086945532478
+-5251599557722879198 -9199935995880135372
+-5293002896959075734 -8831405316887920021
+-5977614697497049338 -8595400109785252164
+1282831306004793126 -8515031650658489442
+1559145931588384833 -8396837115675039201
+3973381630263491239 -8704279886565651802
+8699645739348382040 -8130762325653500066
-- !select_arr --
--1745599059001110301
--2603796573220467612
--3115601516454430516
--591765487762003839
--6139341399562784017
-1895388930380005263
-471624784286609316
-5954685743593662721
-6272777515975020397
-6968890337336200470
+-1745599059001110301 -8486390558035389955
+-2603796573220467612 -8843401066421936451
+-3115601516454430516 -8831405316887920021
+-591765487762003839 -8130762325653500066
+-6139341399562784017 -8515031650658489442
+1895388930380005263 -8704279886565651802
+471624784286609316 -9199935995880135372
+5954685743593662721 -8396837115675039201
+6272777515975020397 -8541785086945532478
+6968890337336200470 -8595400109785252164
-- !select_arr_null --
\N
@@ -276,28 +276,28 @@ true
\N
-- !select_arr --
--1822267886295353545
--3076397891591710122
--3124109887729622012
--6894631363500087746
--7343875642021263634
--7538233704987985548
--754703764366248603
-5683394577563243114
-6317706127964864993
-6977603239291717701
+-1822267886295353545 -9199935995880135372
+-3076397891591710122 -8396837115675039201
+-3124109887729622012 -8704279886565651802
+-6894631363500087746 -8515031650658489442
+-7343875642021263634 -8541785086945532478
+-7538233704987985548 -8130762325653500066
+-754703764366248603 -8595400109785252164
+5683394577563243114 -8486390558035389955
+6317706127964864993 -8843401066421936451
+6977603239291717701 -8831405316887920021
-- !select_arr --
--1172538416080263233
--9204263826084876671
-1925178357753659116
-3276595312735248598
-6418523542690297751
-7441149022252855367
-7590254027096205680
-7683460268482283530
-8301618752336534989
-8651228050707939339
+-1172538416080263233 -8541785086945532478
+-9204263826084876671 -8831405316887920021
+1925178357753659116 -8486390558035389955
+3276595312735248598 -9199935995880135372
+6418523542690297751 -8843401066421936451
+7441149022252855367 -8515031650658489442
+7590254027096205680 -8130762325653500066
+7683460268482283530 -8595400109785252164
+8301618752336534989 -8396837115675039201
+8651228050707939339 -8704279886565651802
-- !select_arr_null --
\N
@@ -324,28 +324,28 @@ true
\N
-- !select_arr --
--15757.0
--16341.96
--19821.92
--20866.91
--2331.224
--24902.76
-14000.87
-25051.34
-28653.88
-4009.615
+-15757.0 -8843401066421936451
+-16341.96 -8541785086945532478
+-19821.92 -8396837115675039201
+-20866.91 -8595400109785252164
+-2331.224 -9199935995880135372
+-24902.76 -8831405316887920021
+14000.87 -8130762325653500066
+25051.34 -8486390558035389955
+28653.88 -8704279886565651802
+4009.615 -8515031650658489442
-- !select_arr --
--20864.9
--22548.39
--9877.706
-11880.59
-15704.28
-18024.07
-20368.82
-27983.51
-32182.08
-5182.625
+-20864.9 -8486390558035389955
+-22548.39 -9199935995880135372
+-9877.706 -8831405316887920021
+11880.59 -8130762325653500066
+15704.28 -8396837115675039201
+18024.07 -8541785086945532478
+20368.82 -8843401066421936451
+27983.51 -8515031650658489442
+32182.08 -8595400109785252164
+5182.625 -8704279886565651802
-- !select_arr_null --
\N
@@ -372,28 +372,28 @@ true
\N
-- !select_arr --
--1.05898247831049E8
--1.56959142076795E9
--1.906554324481077E9
--7.4956160631982E7
--7.50864271988945E8
-1.223931468425696E9
-1.679729892130251E9
-2.086048609782723E9
-2.93704169907062E8
-6.6910726734426E8
+-1.05898247831049E8 -8486390558035389955
+-1.56959142076795E9 -8843401066421936451
+-1.906554324481077E9 -8541785086945532478
+-7.4956160631982E7 -8515031650658489442
+-7.50864271988945E8 -8595400109785252164
+1.223931468425696E9 -8704279886565651802
+1.679729892130251E9 -8396837115675039201
+2.086048609782723E9 -8831405316887920021
+2.93704169907062E8 -8130762325653500066
+6.6910726734426E8 -9199935995880135372
-- !select_arr --
--4.70268405631243E8
--5.70997144930699E8
--8.95187115793498E8
-1.464045023331255E9
-2.96680669413185E8
-5.39155738251913E8
-5.46593171499773E8
-6.84302065704346E8
-8.34463531129353E8
-8.49151182292817E8
+-4.70268405631243E8 -8130762325653500066
+-5.70997144930699E8 -8831405316887920021
+-8.95187115793498E8 -9199935995880135372
+1.464045023331255E9 -8843401066421936451
+2.96680669413185E8 -8595400109785252164
+5.39155738251913E8 -8486390558035389955
+5.46593171499773E8 -8541785086945532478
+6.84302065704346E8 -8704279886565651802
+8.34463531129353E8 -8515031650658489442
+8.49151182292817E8 -8396837115675039201
-- !select_arr_null --
\N
@@ -420,28 +420,28 @@ true
\N
-- !select_arr --
--17743828141091863.653
--38425906971625582.970
--80297537986454091.370
--81302901562381564.141
-3727622936511099.551
-39052905432041986.569
-47508675066707278.900
-72995688528646592.170
-75749832103433356.594
-7709761905655290.742
+-17743828141091863.653 -9199935995880135372
+-38425906971625582.970 -8486390558035389955
+-80297537986454091.370 -8595400109785252164
+-81302901562381564.141 -8831405316887920021
+3727622936511099.551 -8704279886565651802
+39052905432041986.569 -8396837115675039201
+47508675066707278.900 -8843401066421936451
+72995688528646592.170 -8515031650658489442
+75749832103433356.594 -8541785086945532478
+7709761905655290.742 -8130762325653500066
-- !select_arr --
--16090503008771839.385
--3676691574790730.662
--37803671896764115.154
--55041500422869845.164
--97977309467834861.568
-11882392565807224.321
-42936217673262402.895
-49188645579737386.849
-65929564340189671.738
-67982096020622551.950
+-16090503008771839.385 -8541785086945532478
+-3676691574790730.662 -9199935995880135372
+-37803671896764115.154 -8130762325653500066
+-55041500422869845.164 -8515031650658489442
+-97977309467834861.568 -8486390558035389955
+11882392565807224.321 -8843401066421936451
+42936217673262402.895 -8831405316887920021
+49188645579737386.849 -8396837115675039201
+65929564340189671.738 -8704279886565651802
+67982096020622551.950 -8595400109785252164
-- !select_arr_null --
\N
@@ -468,28 +468,28 @@ true
\N
-- !select_arr --
--14914964387190161.149
--18159913768383637.618
--32703459873895514.658
--56977299434781593.902
--79297570991708069.780
-5853554040766134.311
-60140744241339179.673
-66913892073455553.154
-78004472109663314.920
-8371525595421172.292
+-14914964387190161.149 -8486390558035389955
+-18159913768383637.618 -8595400109785252164
+-32703459873895514.658 -8843401066421936451
+-56977299434781593.902 -8704279886565651802
+-79297570991708069.780 -8831405316887920021
+5853554040766134.311 -9199935995880135372
+60140744241339179.673 -8396837115675039201
+66913892073455553.154 -8541785086945532478
+78004472109663314.920 -8130762325653500066
+8371525595421172.292 -8515031650658489442
-- !select_arr --
--25611061282453522.392
--30215750680959790.240
--55487212422427975.730
--60456623570048382.473
--88387477920318749.692
--90417907600039118.140
--94063431029701515.970
-84582086603105455.690
-90782454457555847.981
-98030845381440535.985
+-25611061282453522.392 -8396837115675039201
+-30215750680959790.240 -8515031650658489442
+-55487212422427975.730 -9199935995880135372
+-60456623570048382.473 -8486390558035389955
+-88387477920318749.692 -8130762325653500066
+-90417907600039118.140 -8843401066421936451
+-94063431029701515.970 -8831405316887920021
+84582086603105455.690 -8595400109785252164
+90782454457555847.981 -8704279886565651802
+98030845381440535.985 -8541785086945532478
-- !select_arr_null --
\N
@@ -516,28 +516,28 @@ true
\N
-- !select_arr --
-2022-12-31
-2023-02-22
-2023-03-04
-2023-05-26
-2023-06-06
-2023-08-29
-2023-09-06
-2023-09-10
-2023-09-27
-2023-10-15
+2022-12-31 -8541785086945532478
+2023-02-22 -8831405316887920021
+2023-03-04 -8704279886565651802
+2023-05-26 -8515031650658489442
+2023-06-06 -8486390558035389955
+2023-08-29 -8595400109785252164
+2023-09-06 -8843401066421936451
+2023-09-10 -8130762325653500066
+2023-09-27 -9199935995880135372
+2023-10-15 -8396837115675039201
-- !select_arr --
-2023-02-25
-2023-05-06
-2023-05-29
-2023-06-14
-2023-07-05
-2023-09-11
-2023-09-19
-2023-09-29
-2023-10-02
-2023-10-29
+2023-02-25 -8595400109785252164
+2023-05-06 -9199935995880135372
+2023-05-29 -8704279886565651802
+2023-06-14 -8515031650658489442
+2023-07-05 -8130762325653500066
+2023-09-11 -8541785086945532478
+2023-09-19 -8396837115675039201
+2023-09-29 -8486390558035389955
+2023-10-02 -8843401066421936451
+2023-10-29 -8831405316887920021
-- !select_arr_null --
\N
@@ -564,28 +564,28 @@ true
\N
-- !select_arr --
-2022-11-16T20:47:14
-2022-12-03T22:25:03
-2023-01-09T03:21:22
-2023-03-07T21:14:01
-2023-03-14T05:31:47
-2023-04-09T13:56:01
-2023-06-09T12:47:51
-2023-08-14T11:58:46
-2023-08-24T16:50:01
-2023-09-29T22:14:30
+2022-11-16T20:47:14 -8396837115675039201
+2022-12-03T22:25:03 -8843401066421936451
+2023-01-09T03:21:22 -9199935995880135372
+2023-03-07T21:14:01 -8515031650658489442
+2023-03-14T05:31:47 -8831405316887920021
+2023-04-09T13:56:01 -8595400109785252164
+2023-06-09T12:47:51 -8486390558035389955
+2023-08-14T11:58:46 -8130762325653500066
+2023-08-24T16:50:01 -8541785086945532478
+2023-09-29T22:14:30 -8704279886565651802
-- !select_arr --
-2022-11-23T10:15:10
-2022-12-11T18:27:48
-2023-03-15T19:59:48
-2023-03-19T12:19:51
-2023-04-08T03:14:40
-2023-06-23T06:01:06
-2023-08-01T14:58:11
-2023-09-04T04:55:36
-2023-09-05T15:06:29
-2023-09-20T07:58:50
+2022-11-23T10:15:10 -8515031650658489442
+2022-12-11T18:27:48 -8396837115675039201
+2023-03-15T19:59:48 -8130762325653500066
+2023-03-19T12:19:51 -8486390558035389955
+2023-04-08T03:14:40 -8831405316887920021
+2023-06-23T06:01:06 -8704279886565651802
+2023-08-01T14:58:11 -8843401066421936451
+2023-09-04T04:55:36 -8541785086945532478
+2023-09-05T15:06:29 -9199935995880135372
+2023-09-20T07:58:50 -8595400109785252164
-- !select_arr_null --
\N
@@ -612,28 +612,28 @@ true
\N
-- !select_arr --
-2022-12-02
-2022-12-20
-2023-02-11
-2023-02-20
-2023-03-08
-2023-04-23
-2023-05-10
-2023-06-03
-2023-06-08
-2023-11-10
+2022-12-02 -8595400109785252164
+2022-12-20 -8704279886565651802
+2023-02-11 -8515031650658489442
+2023-02-20 -8831405316887920021
+2023-03-08 -8130762325653500066
+2023-04-23 -8843401066421936451
+2023-05-10 -8541785086945532478
+2023-06-03 -8486390558035389955
+2023-06-08 -8396837115675039201
+2023-11-10 -9199935995880135372
-- !select_arr --
-2023-01-31
-2023-04-15
-2023-06-05
-2023-06-29
-2023-07-12
-2023-08-03
-2023-08-31
-2023-09-10
-2023-10-25
-2023-10-31
+2023-01-31 -8843401066421936451
+2023-04-15 -8595400109785252164
+2023-06-05 -8541785086945532478
+2023-06-29 -8831405316887920021
+2023-07-12 -8486390558035389955
+2023-08-03 -8704279886565651802
+2023-08-31 -8515031650658489442
+2023-09-10 -8130762325653500066
+2023-10-25 -9199935995880135372
+2023-10-31 -8396837115675039201
-- !select_arr_null --
\N
@@ -660,28 +660,28 @@ true
\N
-- !select_arr --
-2022-11-18T18:43:48
-2022-12-03T11:27:48
-2023-01-01T00:09:08
-2023-02-20T23:45:22
-2023-06-09T16:00:02
-2023-06-27T12:59:28
-2023-08-26T00:38:20
-2023-09-13T18:59:10
-2023-10-13T06:40:15
-2023-10-22T09:22:21
+2022-11-18T18:43:48 -8595400109785252164
+2022-12-03T11:27:48 -8515031650658489442
+2023-01-01T00:09:08 -8704279886565651802
+2023-02-20T23:45:22 -8486390558035389955
+2023-06-09T16:00:02 -8831405316887920021
+2023-06-27T12:59:28 -8396837115675039201
+2023-08-26T00:38:20 -8130762325653500066
+2023-09-13T18:59:10 -9199935995880135372
+2023-10-13T06:40:15 -8541785086945532478
+2023-10-22T09:22:21 -8843401066421936451
-- !select_arr --
-2023-01-08T01:16:27
-2023-02-26T19:06:24
-2023-05-22T01:24:36
-2023-06-25T05:22:43
-2023-06-27T21:39:40
-2023-07-04T00:33:11
-2023-07-21T16:13:42
-2023-09-07T08:10:32
-2023-09-07T18:19:45
-2023-11-09T01:07:22
+2023-01-08T01:16:27 -8704279886565651802
+2023-02-26T19:06:24 -8541785086945532478
+2023-05-22T01:24:36 -8486390558035389955
+2023-06-25T05:22:43 -8831405316887920021
+2023-06-27T21:39:40 -8595400109785252164
+2023-07-04T00:33:11 -8515031650658489442
+2023-07-21T16:13:42 -8130762325653500066
+2023-09-07T08:10:32 -9199935995880135372
+2023-09-07T18:19:45 -8396837115675039201
+2023-11-09T01:07:22 -8843401066421936451
-- !select_arr_null --
\N
@@ -708,28 +708,28 @@ true
\N
-- !select_arr --
-&K
--ILK
-Fj*=@$lSm
-N(N
-X1nRg/Eu*,=U4
-^
-jm7X
-l+&-xcmpY*?*>3
-n1mf
-xuWV@yg6
+&K -8541785086945532478
+-ILK -8486390558035389955
+Fj*=@$lSm -8831405316887920021
+N(N -8843401066421936451
+X1nRg/Eu*,=U4 -8515031650658489442
+^ -8130762325653500066
+jm7X -8595400109785252164
+l+&-xcmpY*?*>3 -8704279886565651802
+n1mf -9199935995880135372
+xuWV@yg6 -8396837115675039201
-- !select_arr --
-&x^n7*
-.UL
-;o
-=ox
-A>VG1wu?-?L
-CZJTv
-_XNa9dHP
-jc.SvQ)8=X+$t
-viL6FXeueJ
-~<35
+&x^n7* -8831405316887920021
+.UL -8515031650658489442
+;o -8486390558035389955
+=ox -8595400109785252164
+A>VG1wu?-?L -8130762325653500066
+CZJTv -8843401066421936451
+_XNa9dHP -9199935995880135372
+jc.SvQ)8=X+$t -8704279886565651802
+viL6FXeueJ -8541785086945532478
+~<35 -8396837115675039201
-- !select_arr_null --
\N
@@ -756,28 +756,28 @@ viL6FXeueJ
\N
-- !select_arr --
--/;q%n`o_zeG4pb
-.`v(R!K/iVe?7ahMDK=%2NRRdw*Y(vvl-+:*NF;!%c@b+S2rlRdkGXlig@h6K^(hx!bllx/WruS0ffly
-8oPwCJU99WKcsNBQ#alkk+@&$h_BZ$$(JZ;RX<^p4ok
-98zbIC`.bm8mCywYX#+uD-c;X
-;>=Xe-^rDyKGjWWWdsp5Q*tOx?LdSHPu)6Wc<p^C:
-FNsG-Xn$0>S*iGM,JdvoV/5ue%LJhH%0GWL<c!sxMW_OuA47E/`Qp=kl`_9OAK>BSxy6bf&6q1uc9Pph*YhKT6)rJ*@@T_NB
-W-dPFj78l(?eD@R93=x9k+~Ydpsy_f,?&=`%4.5fsd1IBDjPZslK(zW?SeEG<Us(z*_qmE%A
-`g0jm1c:n`Bz3pEWs!+,2rjPVRbAMW98@.,8vam0W/SB;RMr5
-c3sPL0!+f=+5s@;Meevmfv@YNF*
-rGHy$N2B<XDWVJ,jM*wc8~3,/XNP1yX/&uNsXw~RQLLO;LmgKb`d6
+-/;q%n`o_zeG4pb -8396837115675039201
+.`v(R!K/iVe?7ahMDK=%2NRRdw*Y(vvl-+:*NF;!%c@b+S2rlRdkGXlig@h6K^(hx!bllx/WruS0ffly
-9199935995880135372
+8oPwCJU99WKcsNBQ#alkk+@&$h_BZ$$(JZ;RX<^p4ok -8130762325653500066
+98zbIC`.bm8mCywYX#+uD-c;X -8831405316887920021
+;>=Xe-^rDyKGjWWWdsp5Q*tOx?LdSHPu)6Wc<p^C: -8486390558035389955
+FNsG-Xn$0>S*iGM,JdvoV/5ue%LJhH%0GWL<c!sxMW_OuA47E/`Qp=kl`_9OAK>BSxy6bf&6q1uc9Pph*YhKT6)rJ*@@T_NB
-8515031650658489442
+W-dPFj78l(?eD@R93=x9k+~Ydpsy_f,?&=`%4.5fsd1IBDjPZslK(zW?SeEG<Us(z*_qmE%A
-8541785086945532478
+`g0jm1c:n`Bz3pEWs!+,2rjPVRbAMW98@.,8vam0W/SB;RMr5 -8704279886565651802
+c3sPL0!+f=+5s@;Meevmfv@YNF* -8843401066421936451
+rGHy$N2B<XDWVJ,jM*wc8~3,/XNP1yX/&uNsXw~RQLLO;LmgKb`d6 -8595400109785252164
-- !select_arr --
-.6/ipQ=Ay+!ZQ@Kq#7T6%Mmx2-U:n*_Ls&N5a7e.+Vm#U=:xVyRh#A&jPgei*P(A`RL*l&jte=;hF1@M/pVx1Ensxu,
-01DU*g&
[email protected]
-90?GEXZ7`Nt!=<^x+%.yiUI$;)e>U
-?D_#`qcDbVdhL6@5Ge?<2wm24C6qXrf*A.0d9o37yzETAK?r6V?z3
-I4pJI/s9g::v9SQk2b
-VnC+PP_G>jAVox7_MR%hZzlDVoHU#sL$GhFkd7
-jCeAkA>$+D>aPI>H=>Nc<+jIyrdOC+0ShVH=il1,P&XUk0J55rnrCTy-OU@Jv7x
-jN/bZ7JW.9$J9PY78=V\\ZgmWcf?qxG5>#+?oluY~Tx.09Ov-Yb%K#NnQAsZ-RHV*
-y34_2x_)JoKUA8yL%2M*.Y;gaJ;5,QCG89B%=4qg3B~YFgPkbT:K//xK@1-KZHrapS!
+.6/ipQ=Ay+!ZQ@Kq#7T6%Mmx2-U:n*_Ls&N5a7e.+Vm#U=:xVyRh#A&jPgei*P(A`RL*l&jte=;hF1@M/pVx1Ensxu,
-8486390558035389955
+01DU*g& -8541785086945532478
[email protected] -9199935995880135372
+90?GEXZ7`Nt!=<^x+%.yiUI$;)e>U -8831405316887920021
+?D_#`qcDbVdhL6@5Ge?<2wm24C6qXrf*A.0d9o37yzETAK?r6V?z3 -8396837115675039201
+I4pJI/s9g::v9SQk2b -8515031650658489442
+VnC+PP_G>jAVox7_MR%hZzlDVoHU#sL$GhFkd7 -8704279886565651802
+jCeAkA>$+D>aPI>H=>Nc<+jIyrdOC+0ShVH=il1,P&XUk0J55rnrCTy-OU@Jv7x
-8130762325653500066
+jN/bZ7JW.9$J9PY78=V\\ZgmWcf?qxG5>#+?oluY~Tx.09Ov-Yb%K#NnQAsZ-RHV*
-8843401066421936451
+y34_2x_)JoKUA8yL%2M*.Y;gaJ;5,QCG89B%=4qg3B~YFgPkbT:K//xK@1-KZHrapS!
-8595400109785252164
-- !select_arr_null --
\N
@@ -804,28 +804,28 @@
y34_2x_)JoKUA8yL%2M*.Y;gaJ;5,QCG89B%=4qg3B~YFgPkbT:K//xK@1-KZHrapS!
\N
-- !select_arr --
-.?Q,W1LLM<E?G1o`PC0H%2;gJ
-2EoDhq_$RSYVHH;;~(0dApoRZra5)UE5qUx*/2tDPH?hT4QaeTU:TrqHY>E
-72HHKv=e:9b4_Fu0C;dW9<2/Wz/c(KlwuBS
-?(-AzraU%6Yh5;iE
-BCgr:xw5t`iTf/Sl~^fqe$aKaco2Cji*mPn2sKN~>3_kfxW
-IAG%P/0!Cz8&!V7PX9q;
-L(uWV9fg;-lt-q8BcJKkecoS5h:p8emH%YNwL=XC~U^.BY^3vR68)x4q=~N;6gNUXLQ%pTG9,k3&u#lb9EswE3)p#AGaN5Z(s7trSf^MLS
-Sh?@U;QdNu-CB%q+8Mq(n@NN&ga3cU//KDU-L>,_(
-Vle%Oo)1e!XDF,25*.y_fds~H:-e
-u>abbk6aqcVX>Ax-#=X=~K.P<r9t7L
+.?Q,W1LLM<E?G1o`PC0H%2;gJ -8704279886565651802
+2EoDhq_$RSYVHH;;~(0dApoRZra5)UE5qUx*/2tDPH?hT4QaeTU:TrqHY>E
-8130762325653500066
+72HHKv=e:9b4_Fu0C;dW9<2/Wz/c(KlwuBS -8541785086945532478
+?(-AzraU%6Yh5;iE -8843401066421936451
+BCgr:xw5t`iTf/Sl~^fqe$aKaco2Cji*mPn2sKN~>3_kfxW -9199935995880135372
+IAG%P/0!Cz8&!V7PX9q; -8515031650658489442
+L(uWV9fg;-lt-q8BcJKkecoS5h:p8emH%YNwL=XC~U^.BY^3vR68)x4q=~N;6gNUXLQ%pTG9,k3&u#lb9EswE3)p#AGaN5Z(s7trSf^MLS
-8595400109785252164
+Sh?@U;QdNu-CB%q+8Mq(n@NN&ga3cU//KDU-L>,_( -8396837115675039201
+Vle%Oo)1e!XDF,25*.y_fds~H:-e -8486390558035389955
+u>abbk6aqcVX>Ax-#=X=~K.P<r9t7L -8831405316887920021
-- !select_arr --
-%h!n&7TZT#DOoQG2Wh8/dY;nkyvM=B%?<jlQ$A^dV)F.ecIMT,ey.=IPvt7bx*$i&Q_sY)(R6biqKf1R<-
-&-s+Kp4Zha-8nN+ls>%>eT>WtPvn22c2Ym,u_TWlTfav>!&.gi~,*tLA!Lzl&edZpAG<b56Eti>M!,*;b1p`^7Uaawuj`u+B2
-9i-X4dj35hW(cJl!5x^%P%F&~/5g2j*mf`qW>M):%qt@$wHVBZVs@D6V4YAiopWw?JzQc<@Xj,@(~A0Dfas&
-CYc<zgWPyv>/MR.il~;?u5l7u&oeS&WLaL^>g$nS^l%w@Kx`QhN_
-F~K~Gy;#~*F()@`K<w?rA
-G,C+:ndE
-UU*Dht,NZtq=M9eY#P/:cM6Ie,F<kpGd5OYT~6ggr!D?o<e5&m+>f>gB,/N&HB-K1#kSk:R5a0,,zr4C,S%w(ux/F`HN&:1v8r#wAqfG46#+
-j7T_>G_D&EU+*-At3qqaP6YbIh@-3JS*u5;s3Q2~$W2Mif,sE/JY(u$%QtL6u#AX<(UN_!VMS3+L1-#+t.*WFO_6,q!jkF&/KQCM?Dtg+tFp
-j_<7=(t~*c;LR~52qQMV2NBw^lB*JHZge%
-nS%oRp!GPfh,%>c*+v><iU3xqDXt
+%h!n&7TZT#DOoQG2Wh8/dY;nkyvM=B%?<jlQ$A^dV)F.ecIMT,ey.=IPvt7bx*$i&Q_sY)(R6biqKf1R<-
-9199935995880135372
+&-s+Kp4Zha-8nN+ls>%>eT>WtPvn22c2Ym,u_TWlTfav>!&.gi~,*tLA!Lzl&edZpAG<b56Eti>M!,*;b1p`^7Uaawuj`u+B2
-8130762325653500066
+9i-X4dj35hW(cJl!5x^%P%F&~/5g2j*mf`qW>M):%qt@$wHVBZVs@D6V4YAiopWw?JzQc<@Xj,@(~A0Dfas&
-8843401066421936451
+CYc<zgWPyv>/MR.il~;?u5l7u&oeS&WLaL^>g$nS^l%w@Kx`QhN_ -8515031650658489442
+F~K~Gy;#~*F()@`K<w?rA -8704279886565651802
+G,C+:ndE -8541785086945532478
+UU*Dht,NZtq=M9eY#P/:cM6Ie,F<kpGd5OYT~6ggr!D?o<e5&m+>f>gB,/N&HB-K1#kSk:R5a0,,zr4C,S%w(ux/F`HN&:1v8r#wAqfG46#+
-8486390558035389955
+j7T_>G_D&EU+*-At3qqaP6YbIh@-3JS*u5;s3Q2~$W2Mif,sE/JY(u$%QtL6u#AX<(UN_!VMS3+L1-#+t.*WFO_6,q!jkF&/KQCM?Dtg+tFp
-8831405316887920021
+j_<7=(t~*c;LR~52qQMV2NBw^lB*JHZge% -8595400109785252164
+nS%oRp!GPfh,%>c*+v><iU3xqDXt -8396837115675039201
-- !select_arr_null --
\N
@@ -852,208 +852,208 @@ nS%oRp!GPfh,%>c*+v><iU3xqDXt
\N
-- !select_arr --
-false true
-false true
-false true
-false true
-false true
-false true
-false true
-false true
-false true
-false true
+false true -3029329163450784167
+false true -3562337774148755203
+false true -4110451981448877832
+false true -5220219229417338043
+false true -5416818422863392285
+false true -6626238391768607459
+false true -7476127938744911589
+false true -7857556006370763693
+false true -8074276707509606973
+false true -8130762325653500066
-- !select_arr --
--116 -54
--120 -1
--36 17
--37 94
--49 -41
--59 34
--91 -64
--94 99
-53 91
-66 117
+-116 -54 -7476127938744911589
+-120 -1 -7858769039668974267
+-36 17 -6241888565302595587
+-37 94 -7165272352215225125
+-49 -41 -7072378015249286235
+-59 34 -7582409789765414601
+-91 -64 -8704279886565651802
+-94 99 -6614511767379733802
+53 91 -5541301024078889964
+66 117 -8130762325653500066
-- !select_arr --
--12603 29837
--2344 6257
--24632 11152
--30266 -15976
--6139 17125
--760 16243
-11049 31951
-13978 23044
-19782 23712
-30951 32414
+-12603 29837 -8486390558035389955
+-2344 6257 -8595400109785252164
+-24632 11152 -8541785086945532478
+-30266 -15976 -8029420303531310472
+-6139 17125 -8843401066421936451
+-760 16243 -8074276707509606973
+11049 31951 -8515031650658489442
+13978 23044 -7986890399880908420
+19782 23712 -8130762325653500066
+30951 32414 -9199935995880135372
-- !select_arr --
--1395978559 -794212138
--154835386 1030726981
--1667521392 -1296011431
--1885219382 1981833275
--616624660 2134947781
--755482173 772552651
-151142332 1439779038
-357975304 606554113
-765662731 1541110905
-895657518 1389664080
+-1395978559 -794212138 -8595400109785252164
+-154835386 1030726981 -8074276707509606973
+-1667521392 -1296011431 -8515031650658489442
+-1885219382 1981833275 -7986890399880908420
+-616624660 2134947781 -8704279886565651802
+-755482173 772552651 -8130762325653500066
+151142332 1439779038 -8843401066421936451
+357975304 606554113 -8396837115675039201
+765662731 1541110905 -7769286895858329340
+895657518 1389664080 -8486390558035389955
-- !select_arr --
--3361221405413165437 -2603796573220467612
--4339503874668115602 -838722987048422602
--4457622285697743920 8534941420423470769
--4788314364539725007 -1745599059001110301
--5203517795919857144 6272777515975020397
--5251599557722879198 471624784286609316
--5293002896959075734 -3115601516454430516
--5977614697497049338 6968890337336200470
-1559145931588384833 5954685743593662721
-3174761626943132670 7835344430383138309
+-3361221405413165437 -2603796573220467612 -8843401066421936451
+-4339503874668115602 -838722987048422602 -5541301024078889964
+-4457622285697743920 8534941420423470769 -6626238391768607459
+-4788314364539725007 -1745599059001110301 -8486390558035389955
+-5203517795919857144 6272777515975020397 -8541785086945532478
+-5251599557722879198 471624784286609316 -9199935995880135372
+-5293002896959075734 -3115601516454430516 -8831405316887920021
+-5977614697497049338 6968890337336200470 -8595400109785252164
+1559145931588384833 5954685743593662721 -8396837115675039201
+3174761626943132670 7835344430383138309 -7582409789765414601
-- !select_arr --
--1822267886295353545 3276595312735248598
--3076397891591710122 8301618752336534989
--3124109887729622012 8651228050707939339
--4873506841897694168 2111894533569832748
--6894631363500087746 7441149022252855367
--7343875642021263634 -1172538416080263233
--7538233704987985548 7590254027096205680
--754703764366248603 7683460268482283530
--7621871960331100710 -6328352121339859493
-6317706127964864993 6418523542690297751
+-1822267886295353545 3276595312735248598 -9199935995880135372
+-3076397891591710122 8301618752336534989 -8396837115675039201
+-3124109887729622012 8651228050707939339 -8704279886565651802
+-4873506841897694168 2111894533569832748 -8029420303531310472
+-6894631363500087746 7441149022252855367 -8515031650658489442
+-7343875642021263634 -1172538416080263233 -8541785086945532478
+-7538233704987985548 7590254027096205680 -8130762325653500066
+-754703764366248603 7683460268482283530 -8595400109785252164
+-7621871960331100710 -6328352121339859493 -8074276707509606973
+6317706127964864993 6418523542690297751 -8843401066421936451
-- !select_arr --
--15757.0 20368.82
--16341.96 18024.07
--19821.92 15704.28
--20866.91 32182.08
--24902.76 -9877.706
--27997.29 -15498.17
--9767.623 18092.59
-12312.54 32023.48
-16154.86 24438.55
-4009.615 27983.51
+-15757.0 20368.82 -8843401066421936451
+-16341.96 18024.07 -8541785086945532478
+-19821.92 15704.28 -8396837115675039201
+-20866.91 32182.08 -8595400109785252164
+-24902.76 -9877.706 -8831405316887920021
+-27997.29 -15498.17 -7858769039668974267
+-9767.623 18092.59 -7857556006370763693
+12312.54 32023.48 -7769286895858329340
+16154.86 24438.55 -7986890399880908420
+4009.615 27983.51 -8515031650658489442
-- !select_arr --
--1.05898247831049E8 5.39155738251913E8
--1.073889678900371E9 -4.39918914177586E8
--1.34411787253998E8 -9.7004635471591E7
--1.56959142076795E9 1.464045023331255E9
--1.619321181264003E9 -1.42725438609996E8
--1.906554324481077E9 5.46593171499773E8
--3.92422000827448E8 6.58385835114419E8
--7.4956160631982E7 8.34463531129353E8
--7.50864271988945E8 2.96680669413185E8
-9.7816440578208E7 2.051735396272362E9
+-1.05898247831049E8 5.39155738251913E8 -8486390558035389955
+-1.073889678900371E9 -4.39918914177586E8 -6614511767379733802
+-1.34411787253998E8 -9.7004635471591E7 -8074276707509606973
+-1.56959142076795E9 1.464045023331255E9 -8843401066421936451
+-1.619321181264003E9 -1.42725438609996E8 -7857556006370763693
+-1.906554324481077E9 5.46593171499773E8 -8541785086945532478
+-3.92422000827448E8 6.58385835114419E8 -6241888565302595587
+-7.4956160631982E7 8.34463531129353E8 -8515031650658489442
+-7.50864271988945E8 2.96680669413185E8 -8595400109785252164
+9.7816440578208E7 2.051735396272362E9 -7986890399880908420
-- !select_arr --
--17743828141091863.653 -3676691574790730.662
--51460308392133925.442 -11763398204924377.551
--58867806773334315.437 6230839636272359.175
--80297537986454091.370 67982096020622551.950
--81302901562381564.141 42936217673262402.895
--94234954772197810.884 -85397306669597661.174
-29682733847992295.716 94405311135417478.635
-3727622936511099.551 65929564340189671.738
-39052905432041986.569 49188645579737386.849
-563833857333149.237 72240891542273916.996
+-17743828141091863.653 -3676691574790730.662 -9199935995880135372
+-51460308392133925.442 -11763398204924377.551 -7986890399880908420
+-58867806773334315.437 6230839636272359.175 -7476127938744911589
+-80297537986454091.370 67982096020622551.950 -8595400109785252164
+-81302901562381564.141 42936217673262402.895 -8831405316887920021
+-94234954772197810.884 -85397306669597661.174 -7858769039668974267
+29682733847992295.716 94405311135417478.635 -7769286895858329340
+3727622936511099.551 65929564340189671.738 -8704279886565651802
+39052905432041986.569 49188645579737386.849 -8396837115675039201
+563833857333149.237 72240891542273916.996 -7582409789765414601
-- !select_arr --
--18159913768383637.618 84582086603105455.690
--33223862267088292.835 -20604803215140946.570
--50016611788131067.932 18017097236073047.740
--56977299434781593.902 90782454457555847.981
--63313084178127406.173 -8433303713843033.989
--74437801391927585.136 71962497807759743.605
--78217797873852755.529 -815945693894447.914
-1546218436763850.962 98830676264056558.450
-56401716490568981.582 63366439479083025.171
-66913892073455553.154 98030845381440535.985
+-18159913768383637.618 84582086603105455.690 -8595400109785252164
+-33223862267088292.835 -20604803215140946.570 -7582409789765414601
+-50016611788131067.932 18017097236073047.740 -7986890399880908420
+-56977299434781593.902 90782454457555847.981 -8704279886565651802
+-63313084178127406.173 -8433303713843033.989 -8029420303531310472
+-74437801391927585.136 71962497807759743.605 -7165272352215225125
+-78217797873852755.529 -815945693894447.914 -7072378015249286235
+1546218436763850.962 98830676264056558.450 -7476127938744911589
+56401716490568981.582 63366439479083025.171 -7857556006370763693
+66913892073455553.154 98030845381440535.985 -8541785086945532478
-- !select_arr --
-2022-12-31 2023-09-11
-2023-01-25 2023-05-19
-2023-02-22 2023-10-29
-2023-03-04 2023-05-29
-2023-05-18 2023-05-22
-2023-05-26 2023-06-14
-2023-06-01 2023-07-04
-2023-06-06 2023-09-29
-2023-07-18 2023-09-12
-2023-09-06 2023-10-02
+2022-12-31 2023-09-11 -8541785086945532478
+2023-01-25 2023-05-19 -6626238391768607459
+2023-02-22 2023-10-29 -8831405316887920021
+2023-03-04 2023-05-29 -8704279886565651802
+2023-05-18 2023-05-22 -7165272352215225125
+2023-05-26 2023-06-14 -8515031650658489442
+2023-06-01 2023-07-04 -7769286895858329340
+2023-06-06 2023-09-29 -8486390558035389955
+2023-07-18 2023-09-12 -7072378015249286235
+2023-09-06 2023-10-02 -8843401066421936451
-- !select_arr --
-2022-11-16T20:47:14 2022-12-11T18:27:48
-2022-12-03T22:25:03 2023-08-01T14:58:11
-2022-12-22T19:32:55 2023-04-11T20:28:41
-2023-01-09T03:21:22 2023-09-05T15:06:29
-2023-03-13T00:53:46 2023-07-11T19:29:45
-2023-03-14T05:31:47 2023-04-08T03:14:40
-2023-04-09T13:56:01 2023-09-20T07:58:50
-2023-04-28T03:29:50 2023-05-19T10:23:08
-2023-07-06T11:48:43 2023-08-10T18:06:51
-2023-08-24T16:50:01 2023-09-04T04:55:36
+2022-11-16T20:47:14 2022-12-11T18:27:48 -8396837115675039201
+2022-12-03T22:25:03 2023-08-01T14:58:11 -8843401066421936451
+2022-12-22T19:32:55 2023-04-11T20:28:41 -7858769039668974267
+2023-01-09T03:21:22 2023-09-05T15:06:29 -9199935995880135372
+2023-03-13T00:53:46 2023-07-11T19:29:45 -7986890399880908420
+2023-03-14T05:31:47 2023-04-08T03:14:40 -8831405316887920021
+2023-04-09T13:56:01 2023-09-20T07:58:50 -8595400109785252164
+2023-04-28T03:29:50 2023-05-19T10:23:08 -7857556006370763693
+2023-07-06T11:48:43 2023-08-10T18:06:51 -8029420303531310472
+2023-08-24T16:50:01 2023-09-04T04:55:36 -8541785086945532478
-- !select_arr --
-2022-12-02 2023-04-15
-2022-12-20 2023-08-03
-2023-02-11 2023-08-31
-2023-02-16 2023-05-30
-2023-02-20 2023-06-29
-2023-03-08 2023-09-10
-2023-05-10 2023-06-05
-2023-06-03 2023-07-12
-2023-06-08 2023-10-31
-2023-09-21 2023-11-04
+2022-12-02 2023-04-15 -8595400109785252164
+2022-12-20 2023-08-03 -8704279886565651802
+2023-02-11 2023-08-31 -8515031650658489442
+2023-02-16 2023-05-30 -7986890399880908420
+2023-02-20 2023-06-29 -8831405316887920021
+2023-03-08 2023-09-10 -8130762325653500066
+2023-05-10 2023-06-05 -8541785086945532478
+2023-06-03 2023-07-12 -8486390558035389955
+2023-06-08 2023-10-31 -8396837115675039201
+2023-09-21 2023-11-04 -8029420303531310472
-- !select_arr --
-2022-11-18T18:43:48 2023-06-27T21:39:40
-2022-12-03T11:27:48 2023-07-04T00:33:11
-2022-12-26T23:10:18 2023-02-01T16:12:20
-2023-01-01T00:09:08 2023-01-08T01:16:27
-2023-01-13T10:24:26 2023-09-14T03:47:42
-2023-02-06T15:01:27 2023-03-17T10:12:31
-2023-02-20T23:45:22 2023-05-22T01:24:36
-2023-06-09T16:00:02 2023-06-25T05:22:43
-2023-06-27T12:59:28 2023-09-07T18:19:45
-2023-10-22T09:22:21 2023-11-09T01:07:22
+2022-11-18T18:43:48 2023-06-27T21:39:40 -8595400109785252164
+2022-12-03T11:27:48 2023-07-04T00:33:11 -8515031650658489442
+2022-12-26T23:10:18 2023-02-01T16:12:20 -7769286895858329340
+2023-01-01T00:09:08 2023-01-08T01:16:27 -8704279886565651802
+2023-01-13T10:24:26 2023-09-14T03:47:42 -8074276707509606973
+2023-02-06T15:01:27 2023-03-17T10:12:31 -7986890399880908420
+2023-02-20T23:45:22 2023-05-22T01:24:36 -8486390558035389955
+2023-06-09T16:00:02 2023-06-25T05:22:43 -8831405316887920021
+2023-06-27T12:59:28 2023-09-07T18:19:45 -8396837115675039201
+2023-10-22T09:22:21 2023-11-09T01:07:22 -8843401066421936451
-- !select_arr --
- ;f4fH_FX`5
- UHAw
-& ZZ-wWSZ
-&K viL6FXeueJ
-)jGGLPZYrJ F,VvTRF2ua
--ILK ;o
-0nL4FS~R.I1:) j.7>NH-a7
-;_ugtuS& T
-E N.6T26/T6)pj
-xuWV@yg6 ~<35
+ ;f4fH_FX`5 -7072378015249286235
+ UHAw -6626238391768607459
+& ZZ-wWSZ -7857556006370763693
+&K viL6FXeueJ -8541785086945532478
+)jGGLPZYrJ F,VvTRF2ua -6241888565302595587
+-ILK ;o -8486390558035389955
+0nL4FS~R.I1:) j.7>NH-a7 -7858769039668974267
+;_ugtuS& T -7769286895858329340
+E N.6T26/T6)pj -7476127938744911589
+xuWV@yg6 ~<35 -8396837115675039201
-- !select_arr --
--/;q%n`o_zeG4pb ?D_#`qcDbVdhL6@5Ge?<2wm24C6qXrf*A.0d9o37yzETAK?r6V?z3
-.`v(R!K/iVe?7ahMDK=%2NRRdw*Y(vvl-+:*NF;!%c@b+S2rlRdkGXlig@h6K^(hx!bllx/WruS0ffly
[email protected]
-/%1Ql^HD56sMQ;QiU7vho9lq6qtjR,~RjrNZJJXAUd7>3U@6*C!6>Om7Cb3,oMk4/f:@~ap$
V?f+hRk?I/)P(bd>><E$91_1LS0OA>Ik5q2o..9IImfvmnekWmR)MHQ9qYODd8hQ:x$Hd(BM7,h;;XY~%G~*z>DKa7
-8 T4#M?i/-=IMy)f)<@PF`tIF0w+
-8oPwCJU99WKcsNBQ#alkk+@&$h_BZ$$(JZ;RX<^p4ok
jCeAkA>$+D>aPI>H=>Nc<+jIyrdOC+0ShVH=il1,P&XUk0J55rnrCTy-OU@Jv7x
-FNsG-Xn$0>S*iGM,JdvoV/5ue%LJhH%0GWL<c!sxMW_OuA47E/`Qp=kl`_9OAK>BSxy6bf&6q1uc9Pph*YhKT6)rJ*@@T_NB
I4pJI/s9g::v9SQk2b
-_ot:DO=JgmX_o o8&u#Z1$I)cO<U3b
-c3sPL0!+f=+5s@;Meevmfv@YNF*
jN/bZ7JW.9$J9PY78=V\\ZgmWcf?qxG5>#+?oluY~Tx.09Ov-Yb%K#NnQAsZ-RHV*
-lF0P;?=BR$MhFFwlaUPJM9=;ZdGWw z=s1urTbg6_EKK9*)+oa1lR`r%C!h
-rGHy$N2B<XDWVJ,jM*wc8~3,/XNP1yX/&uNsXw~RQLLO;LmgKb`d6
y34_2x_)JoKUA8yL%2M*.Y;gaJ;5,QCG89B%=4qg3B~YFgPkbT:K//xK@1-KZHrapS!
+-/;q%n`o_zeG4pb ?D_#`qcDbVdhL6@5Ge?<2wm24C6qXrf*A.0d9o37yzETAK?r6V?z3
-8396837115675039201
+.`v(R!K/iVe?7ahMDK=%2NRRdw*Y(vvl-+:*NF;!%c@b+S2rlRdkGXlig@h6K^(hx!bllx/WruS0ffly
[email protected] -9199935995880135372
+/%1Ql^HD56sMQ;QiU7vho9lq6qtjR,~RjrNZJJXAUd7>3U@6*C!6>Om7Cb3,oMk4/f:@~ap$
V?f+hRk?I/)P(bd>><E$91_1LS0OA>Ik5q2o..9IImfvmnekWmR)MHQ9qYODd8hQ:x$Hd(BM7,h;;XY~%G~*z>DKa7
-6626238391768607459
+8 T4#M?i/-=IMy)f)<@PF`tIF0w+ -6092405540953322235
+8oPwCJU99WKcsNBQ#alkk+@&$h_BZ$$(JZ;RX<^p4ok
jCeAkA>$+D>aPI>H=>Nc<+jIyrdOC+0ShVH=il1,P&XUk0J55rnrCTy-OU@Jv7x
-8130762325653500066
+FNsG-Xn$0>S*iGM,JdvoV/5ue%LJhH%0GWL<c!sxMW_OuA47E/`Qp=kl`_9OAK>BSxy6bf&6q1uc9Pph*YhKT6)rJ*@@T_NB
I4pJI/s9g::v9SQk2b -8515031650658489442
+_ot:DO=JgmX_o o8&u#Z1$I)cO<U3b -7857556006370763693
+c3sPL0!+f=+5s@;Meevmfv@YNF*
jN/bZ7JW.9$J9PY78=V\\ZgmWcf?qxG5>#+?oluY~Tx.09Ov-Yb%K#NnQAsZ-RHV*
-8843401066421936451
+lF0P;?=BR$MhFFwlaUPJM9=;ZdGWw z=s1urTbg6_EKK9*)+oa1lR`r%C!h
-8029420303531310472
+rGHy$N2B<XDWVJ,jM*wc8~3,/XNP1yX/&uNsXw~RQLLO;LmgKb`d6
y34_2x_)JoKUA8yL%2M*.Y;gaJ;5,QCG89B%=4qg3B~YFgPkbT:K//xK@1-KZHrapS!
-8595400109785252164
-- !select_arr --
-(oV%,ZE=mskl8o<H4ivb7RS#G-59tD`Y3@&1?/h7!,,R8:4k4BW/.:@PlBs<_Cis9rj
Fl6~FKlfZ7eUW/
-.?Q,W1LLM<E?G1o`PC0H%2;gJ F~K~Gy;#~*F()@`K<w?rA
-1bLxJZghLR%+&*w~wIggpMxY*Qs+k6m&_krgBoLd7B~:X#XdQRA.5NXJYMtWyCs9j
FHFNkRk1vC4m<`iJETD1BT?A`,heYP(
-3:9W6eDavlF1n=D0=Uam!gpoCQgisrH M6Z&
-72HHKv=e:9b4_Fu0C;dW9<2/Wz/c(KlwuBS G,C+:ndE
-L(uWV9fg;-lt-q8BcJKkecoS5h:p8emH%YNwL=XC~U^.BY^3vR68)x4q=~N;6gNUXLQ%pTG9,k3&u#lb9EswE3)p#AGaN5Z(s7trSf^MLS
j_<7=(t~*c;LR~52qQMV2NBw^lB*JHZge%
-M)a*2ID$YKjV85(4sdIlOm_y_6#E4a-&B9g:DUs8tzogRRR3sJgU4iq4ZF+%5Sk8am*4(LBkSKZU_KnBzhy=y$zpGAdMv-R
eh$M-n<`5S.@z_?yn85*T%e2+O=6-ZYv(d,keQULdS!VqUw^)J$16=AslNku
-Sh?@U;QdNu-CB%q+8Mq(n@NN&ga3cU//KDU-L>,_( nS%oRp!GPfh,%>c*+v><iU3xqDXt
-Uxj_qqP:7B_*CXmc)5!k<qo!I~fY!k8Qwc7pqx*ezv=
lTFY1.rVff&AQ74iuDTUGzdPj$N4ALVxm!Wb,YC8dklT..VV7lb8~8vDy9&+4;f>cKZ2J*OryV=0KbPG+c2-XQ1yH5/TV/nsUTTSS5S+Nc_ZU!dqMBdG#
-dHR`Om3C5@3q tNccIq
+(oV%,ZE=mskl8o<H4ivb7RS#G-59tD`Y3@&1?/h7!,,R8:4k4BW/.:@PlBs<_Cis9rj
Fl6~FKlfZ7eUW/ -6614511767379733802
+.?Q,W1LLM<E?G1o`PC0H%2;gJ F~K~Gy;#~*F()@`K<w?rA -8704279886565651802
+1bLxJZghLR%+&*w~wIggpMxY*Qs+k6m&_krgBoLd7B~:X#XdQRA.5NXJYMtWyCs9j
FHFNkRk1vC4m<`iJETD1BT?A`,heYP( -7857556006370763693
+3:9W6eDavlF1n=D0=Uam!gpoCQgisrH M6Z& -7072378015249286235
+72HHKv=e:9b4_Fu0C;dW9<2/Wz/c(KlwuBS G,C+:ndE -8541785086945532478
+L(uWV9fg;-lt-q8BcJKkecoS5h:p8emH%YNwL=XC~U^.BY^3vR68)x4q=~N;6gNUXLQ%pTG9,k3&u#lb9EswE3)p#AGaN5Z(s7trSf^MLS
j_<7=(t~*c;LR~52qQMV2NBw^lB*JHZge% -8595400109785252164
+M)a*2ID$YKjV85(4sdIlOm_y_6#E4a-&B9g:DUs8tzogRRR3sJgU4iq4ZF+%5Sk8am*4(LBkSKZU_KnBzhy=y$zpGAdMv-R
eh$M-n<`5S.@z_?yn85*T%e2+O=6-ZYv(d,keQULdS!VqUw^)J$16=AslNku
-7858769039668974267
+Sh?@U;QdNu-CB%q+8Mq(n@NN&ga3cU//KDU-L>,_( nS%oRp!GPfh,%>c*+v><iU3xqDXt
-8396837115675039201
+Uxj_qqP:7B_*CXmc)5!k<qo!I~fY!k8Qwc7pqx*ezv=
lTFY1.rVff&AQ74iuDTUGzdPj$N4ALVxm!Wb,YC8dklT..VV7lb8~8vDy9&+4;f>cKZ2J*OryV=0KbPG+c2-XQ1yH5/TV/nsUTTSS5S+Nc_ZU!dqMBdG#
-7476127938744911589
+dHR`Om3C5@3q tNccIq -7769286895858329340
-- !sql --
false
diff --git
a/regression-test/data/datatype_p0/nested_types/string_len/test_string_len_complex.out
b/regression-test/data/datatype_p0/nested_types/string_len/test_string_len_complex.out
new file mode 100644
index 00000000000..acc8e888691
--- /dev/null
+++
b/regression-test/data/datatype_p0/nested_types/string_len/test_string_len_complex.out
@@ -0,0 +1,43 @@
+-- This file is automatically generated. You should know what you did if you
want to edit this
+-- !sql_array_all1 --
+1 ["12345678901", "12345678902", "12345678903"]
+2 ["22345678901", "22345678902", "22345678903"]
+3 ["32345678901", "32345678902", "32345678903"]
+
+-- !sql_array_all2 --
+
+-- !sql_array_all3 --
+1 [["12345678901", "12345678902"], ["12345678903"]]
+2 [["22345678901", "22345678902"], ["22345678903"]]
+3 [["32345678901", "32345678902"], ["32345678903"]]
+
+-- !sql_array_all4 --
+
+-- !sql_struct_all1 --
+1 {"phone":"12345678901"}
+2 {"phone":"12345678902"}
+3 {"phone":"12345678903"}
+
+-- !sql_struct_all2 --
+
+-- !sql_struct_all3 --
+1 {"phone":"12345678901", "addr":{"province":"12345678902",
"city":"12345678903"}}
+2 {"phone":"22345678901", "addr":{"province":"22345678902",
"city":"22345678903"}}
+3 {"phone":"32345678901", "addr":{"province":"32345678902",
"city":"32345678903"}}
+
+-- !sql_struct_all4 --
+
+-- !sql_map_all1 --
+1 {"01234567891":"12345678901", "01234567892":"12345678902"}
+2 {"01234567891":"22345678901", "01234567892":"22345678902"}
+3 {"01234567891":"32345678901", "01234567892":"32345678902"}
+
+-- !sql_map_all2 --
+
+-- !sql_map_all3 --
+1 {{"01234567891":"12345678901"}:{"11234567891":"12345678901"},
{"01234567892":"12345678902"}:{"11234567892":"12345678902"}}
+2 {{"01234567891":"22345678901"}:{"11234567891":"22345678901"},
{"01234567892":"22345678902"}:{"11234567892":"22345678902"}}
+3 {{"01234567891":"32345678901"}:{"11234567891":"32345678901"},
{"01234567892":"32345678902"}:{"11234567892":"32345678902"}}
+
+-- !sql_map_all4 --
+
diff --git
a/regression-test/suites/datatype_p0/nested_types/base_cases/one_level_nestedtypes_with_s3data.groovy
b/regression-test/suites/datatype_p0/nested_types/base_cases/one_level_nestedtypes_with_s3data.groovy
index 57feffbb9eb..8efcd399d61 100644
---
a/regression-test/suites/datatype_p0/nested_types/base_cases/one_level_nestedtypes_with_s3data.groovy
+++
b/regression-test/suites/datatype_p0/nested_types/base_cases/one_level_nestedtypes_with_s3data.groovy
@@ -155,9 +155,9 @@ suite("one_level_nestedtypes_with_s3data") {
// select element_at(column)
for (String col : colNameArr) {
// first
- order_qt_select_arr "select ${col}[1] from ${table_names[0]} where k1
IS NOT NULL order by k1 limit 10;"
+ order_qt_select_arr "select ${col}[1], k1 from ${table_names[0]} where
k1 IS NOT NULL order by k1 limit 10;"
// last
- order_qt_select_arr "select ${col}[-1] from ${table_names[0]} where k1
IS NOT NULL order by k1 limit 10;"
+ order_qt_select_arr "select ${col}[-1], k1 from ${table_names[0]}
where k1 IS NOT NULL order by k1 limit 10;"
// null
order_qt_select_arr_null "select ${col}[0] from ${table_names[0]}
where k1 IS NOT NULL order by k1 limit 10;"
// null
@@ -165,7 +165,7 @@ suite("one_level_nestedtypes_with_s3data") {
}
// select * from table where element_at(column) with equal expr
for (String col : colNameArr) {
- order_qt_select_arr "select ${col}[1], ${col}[-1] from
${table_names[0]} where k1 IS NOT NULL AND ${col}[1]<${col}[-1] order by k1
limit 10;"
+ order_qt_select_arr "select ${col}[1], ${col}[-1], k1 from
${table_names[0]} where k1 IS NOT NULL AND ${col}[1]<${col}[-1] order by k1
limit 10;"
}
// select * from table where groupby|orderby element_at(column)
for (String col : colNameArr) {
diff --git
a/regression-test/suites/datatype_p0/nested_types/string_len/test_string_len_complex.groovy
b/regression-test/suites/datatype_p0/nested_types/string_len/test_string_len_complex.groovy
new file mode 100644
index 00000000000..2c5b3d4be17
--- /dev/null
+++
b/regression-test/suites/datatype_p0/nested_types/string_len/test_string_len_complex.groovy
@@ -0,0 +1,229 @@
+// 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.
+
+suite("test_string_len_complex") {
+ // test array one level
+ def create_table_array_one_level = {
+ sql """ DROP TABLE IF EXISTS test_string_len_array_one_level """
+ sql """
+ CREATE TABLE `test_string_len_array_one_level` (
+ `id` int(11),
+ `info` array<char(11)>
+ ) PROPERTIES ("replication_num" = "1");
+ """
+ }
+ create_table_array_one_level()
+ sql """
+ set enable_insert_strict = false;
+ """
+ sql """
+ insert into test_string_len_array_one_level values (1, ['12345678901',
'12345678902', '12345678903x']),
+ (2, ['22345678901', '22345678902', '22345678903x']),
+ (3, ['32345678901', '32345678902', '32345678903x']);
+ """
+ qt_sql_array_all1 """ select * from test_string_len_array_one_level order
by id """
+
+ create_table_array_one_level()
+ sql """
+ set enable_insert_strict = true;
+ """
+ test {
+ sql """
+ insert into test_string_len_array_one_level values (1, ['12345678901',
'12345678902', '12345678903x']),
+ (2, ['22345678901', '22345678902', '22345678903x']),
+ (3, ['32345678901', '32345678902', '32345678903x']);
+ """
+ exception "Insert has filtered data in strict mode"
+ }
+ qt_sql_array_all2 """ select * from test_string_len_array_one_level order
by id """
+
+ // test array one level
+ def create_table_array_two_level = {
+ sql """ DROP TABLE IF EXISTS test_string_len_array_two_level """
+ sql """
+ CREATE TABLE `test_string_len_array_two_level` (
+ `id` int(11),
+ `info` array<array<char(11)>>
+ ) PROPERTIES ("replication_num" = "1");
+ """
+ }
+ create_table_array_two_level()
+ sql """
+ set enable_insert_strict = false;
+ """
+ sql """
+ insert into test_string_len_array_two_level values (1, [['12345678901',
'12345678902'], ['12345678903x']]),
+ (2, [['22345678901', '22345678902'], ['22345678903x']]),
+ (3, [['32345678901', '32345678902'], ['32345678903x']]);
+ """
+ qt_sql_array_all3 """ select * from test_string_len_array_two_level order
by id """
+
+ create_table_array_two_level()
+ sql """
+ set enable_insert_strict = true;
+ """
+ test {
+ sql """
+ insert into test_string_len_array_two_level values (1,
[['12345678901', '12345678902'], ['12345678903x']]),
+ (2, [['22345678901', '22345678902'], ['22345678903x']]),
+ (3, [['32345678901', '32345678902'], ['32345678903x']]);
+ """
+ exception "Insert has filtered data in strict mode"
+ }
+ qt_sql_array_all4 """ select * from test_string_len_array_two_level order
by id """
+
+ // test struct one level
+ def create_table_struct_one_level = {
+ sql """ DROP TABLE IF EXISTS test_string_len_struct_one_level """
+ sql """
+ CREATE TABLE `test_string_len_struct_one_level` (
+ `id` int(11),
+ `info` struct<phone:char(11)>
+ ) PROPERTIES ("replication_num" = "1");
+ """
+ }
+
+ sql """
+ set enable_insert_strict = false;
+ """
+ create_table_struct_one_level()
+ sql """
+ insert into test_string_len_struct_one_level values (1, {'12345678901'}),
(2, {'12345678902'}), (3, {'12345678903x'});
+ """
+ qt_sql_struct_all1 """ select * from test_string_len_struct_one_level
order by id; """
+
+ sql """
+ set enable_insert_strict = true;
+ """
+ create_table_struct_one_level()
+ test {
+ sql """
+ insert into test_string_len_struct_one_level values (1,
{'12345678901'}), (2, {'12345678902'}), (3, {'12345678903x'});
+ """
+ exception "Insert has filtered data in strict mode"
+ }
+ qt_sql_struct_all2 """ select * from test_string_len_struct_one_level
order by id; """
+
+ // test struct two level
+ def create_table_struct_two_level = {
+ sql """ DROP TABLE IF EXISTS test_string_len_struct_two_level """
+ sql """
+ CREATE TABLE `test_string_len_struct_two_level` (
+ `id` int(11),
+ `info` struct<phone:char(11), addr:struct<province:char(11),
city:char(11)>>
+ ) PROPERTIES ("replication_num" = "1");
+ """
+ }
+ create_table_struct_two_level()
+ sql """
+ set enable_insert_strict = false;
+ """
+ sql """
+ insert into test_string_len_struct_two_level values (1, {'12345678901',
{'12345678902', '12345678903'}}),
+ (2, {'22345678901', {'22345678902', '22345678903'}}),
+ (3, {'32345678901', {'32345678902x', '32345678903x'}});
+ """
+ qt_sql_struct_all3 """ select * from test_string_len_struct_two_level
order by id; """
+
+ create_table_struct_two_level()
+ sql """
+ set enable_insert_strict = true;
+ """
+ test {
+ sql """
+ insert into test_string_len_struct_two_level values (1,
{'12345678901', {'12345678902', '12345678903'}}),
+ (2, {'22345678901', {'22345678902', '22345678903'}}),
+ (3, {'32345678901', {'32345678902x', '32345678903x'}});
+ """
+ exception "Insert has filtered data in strict mode"
+ }
+ qt_sql_struct_all4 """
+ select * from test_string_len_struct_two_level order by id;
+ """
+
+ // test map one level
+ def create_table_map_one_level = {
+ sql """ DROP TABLE IF EXISTS test_string_len_map_one_level """
+ sql """
+ CREATE TABLE `test_string_len_map_one_level` (
+ `id` int(11),
+ `info` map<char(11), char(11)>
+ ) PROPERTIES ("replication_num" = "1");
+ """
+ }
+ create_table_map_one_level()
+ sql """
+ set enable_insert_strict = false;
+ """
+ sql """
+ insert into test_string_len_map_one_level values (1,
{'01234567891':'12345678901', '01234567892':'12345678902'}),
+ (2, {'01234567891':'22345678901', '01234567892':'22345678902'}),
+ (3, {'01234567891':'32345678901', '01234567892':'32345678902x'});
+ """
+ qt_sql_map_all1 """ select * from test_string_len_map_one_level order by
id; """
+
+ create_table_map_one_level()
+ sql """
+ set enable_insert_strict = true;
+ """
+ test {
+ sql """
+ insert into test_string_len_map_one_level values (1,
{'01234567891':'12345678901', '01234567892':'12345678902'}),
+ (2, {'01234567891':'22345678901', '01234567892':'22345678902'}),
+ (3, {'01234567891':'32345678901', '01234567892':'32345678902x'});
+ """
+ exception "Insert has filtered data in strict mode"
+ }
+ qt_sql_map_all2 """ select * from test_string_len_map_one_level order by
id; """
+
+ // test map two level
+ def create_table_map_two_level = {
+ sql """ DROP TABLE IF EXISTS test_string_len_map_two_level """
+ sql """
+ CREATE TABLE `test_string_len_map_two_level` (
+ `id` int(11),
+ `info` map<map<char(11), char(11)>, map<char(11), char(11)>>
+ ) PROPERTIES ("replication_num" = "1");
+ """
+ }
+
+ create_table_map_two_level()
+ sql """
+ set enable_insert_strict = false;
+ """
+ sql """
+ insert into test_string_len_map_two_level values (1, {
{'01234567891':'12345678901'}:{'11234567891':'12345678901'},
{'01234567892':'12345678902'}:{'11234567892':'12345678902'} } ),
+ (2, { {'01234567891':'22345678901'}:{'11234567891':'22345678901'},
{'01234567892':'22345678902'}:{'11234567892':'22345678902'} } ),
+ (3, { {'01234567891':'32345678901'}:{'11234567891':'32345678901'},
{'01234567892':'32345678902x'}:{'11234567892':'32345678902x'} } );
+ """
+ qt_sql_map_all3 """ select * from test_string_len_map_two_level order by
id; """
+
+ create_table_map_two_level()
+ sql """
+ set enable_insert_strict = true;
+ """
+ test {
+ sql """
+ insert into test_string_len_map_two_level values (1, {
{'01234567891':'12345678901'}:{'11234567891':'12345678901'},
{'01234567892':'12345678902'}:{'11234567892':'12345678902'} } ),
+ (2, { {'01234567891':'22345678901'}:{'11234567891':'22345678901'},
{'01234567892':'22345678902'}:{'11234567892':'22345678902'} } ),
+ (3, { {'01234567891':'32345678901'}:{'11234567891':'32345678901'},
{'01234567892':'32345678902x'}:{'11234567892':'32345678902x'} } );
+ """
+ exception "Insert has filtered data in strict mode"
+ }
+ qt_sql_map_all4 """ select * from test_string_len_map_two_level order by
id; """
+
+}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]