From 8ae600d2c396c596c329cb6bc22244652141e734 Mon Sep 17 00:00:00 2001 From: amory Date: Fri, 11 Oct 2024 14:00:57 +0800 Subject: [PATCH] [improve](selectdb-cloud)array-overlaps support inverted index (#41495) (#41286) (#3601) --- .../functions/array/function_array_index.h | 19 +- .../functions/array/function_arrays_overlap.h | 78 ++ ...est_array_contains_with_inverted_index.out | 974 ++++++++++++++++++ ..._array_contains_with_inverted_index.groovy | 55 +- 4 files changed, 1101 insertions(+), 25 deletions(-) diff --git a/be/src/vec/functions/array/function_array_index.h b/be/src/vec/functions/array/function_array_index.h index 2339fe4c5097d9..e877015ca45a30 100644 --- a/be/src/vec/functions/array/function_array_index.h +++ b/be/src/vec/functions/array/function_array_index.h @@ -157,22 +157,9 @@ class FunctionArrayIndex : public IFunction { std::unique_ptr query_param = nullptr; RETURN_IF_ERROR(InvertedIndexQueryParamFactory::create_query_value(param_type, ¶m_value, query_param)); - if (is_string_type(param_type)) { - Status st = iter->read_from_inverted_index( - data_type_with_name.first, query_param->get_value(), - segment_v2::InvertedIndexQueryType::EQUAL_QUERY, num_rows, roaring); - if (st.code() == ErrorCode::INVERTED_INDEX_NO_TERMS) { - // if analyzed param with no term, we do not filter any rows - // return all rows with OK status - roaring->addRange(0, num_rows); - } else if (st != Status::OK()) { - return st; - } - } else { - RETURN_IF_ERROR(iter->read_from_inverted_index( - data_type_with_name.first, query_param->get_value(), - segment_v2::InvertedIndexQueryType::EQUAL_QUERY, num_rows, roaring)); - } + RETURN_IF_ERROR(iter->read_from_inverted_index( + data_type_with_name.first, query_param->get_value(), + segment_v2::InvertedIndexQueryType::EQUAL_QUERY, num_rows, roaring)); // here debug for check array_contains function really filter rows by inverted index correctly DBUG_EXECUTE_IF("array_func.array_contains", { auto result_bitmap = DebugPoints::instance()->get_debug_param_or_default( diff --git a/be/src/vec/functions/array/function_arrays_overlap.h b/be/src/vec/functions/array/function_arrays_overlap.h index 74872b6cd55059..520ca4253fcf30 100644 --- a/be/src/vec/functions/array/function_arrays_overlap.h +++ b/be/src/vec/functions/array/function_arrays_overlap.h @@ -45,6 +45,7 @@ #include "vec/data_types/data_type_number.h" #include "vec/functions/array/function_array_utils.h" #include "vec/functions/function.h" +#include "vec/functions/function_helpers.h" namespace doris { class FunctionContext; @@ -128,6 +129,83 @@ class FunctionArraysOverlap : public IFunction { return make_nullable(std::make_shared()); } + /** + * eval inverted index. we can filter array rows with inverted index iter + * array_overlap(array, []) -> array_overlap(array, const value) + */ + Status evaluate_inverted_index( + const ColumnsWithTypeAndName& arguments, + const std::vector& data_type_with_names, + std::vector iterators, uint32_t num_rows, + segment_v2::InvertedIndexResultBitmap& bitmap_result) const override { + DCHECK(arguments.size() == 1); + DCHECK(data_type_with_names.size() == 1); + DCHECK(iterators.size() == 1); + auto* iter = iterators[0]; + if (iter == nullptr) { + return Status::OK(); + } + auto data_type_with_name = data_type_with_names[0]; + if (iter->get_inverted_index_reader_type() == + segment_v2::InvertedIndexReaderType::FULLTEXT) { + return Status::Error( + "Inverted index evaluate skipped, FULLTEXT reader can not support " + "array_overlap"); + } + // in arrays_overlap param is array Field and const Field + ColumnPtr arg_column = arguments[0].column; + DataTypePtr arg_type = arguments[0].type; + if ((is_column_nullable(*arg_column) && !is_column_const(*remove_nullable(arg_column))) || + (!is_column_nullable(*arg_column) && !is_column_const(*arg_column))) { + // if not we should skip inverted index and evaluate in expression + return Status::Error( + "Inverted index evaluate skipped, array_overlap only support const value"); + } + + Field param_value; + arguments[0].column->get(0, param_value); + DCHECK(is_array(remove_nullable(arguments[0].type))); + auto nested_param_type = + check_and_get_data_type(remove_nullable(arguments[0].type).get()) + ->get_nested_type() + ->get_type_as_type_descriptor() + .type; + // The current implementation for the inverted index of arrays cannot handle cases where the array contains null values, + // meaning an item in the array is null. + if (param_value.is_null()) { + return Status::OK(); + } + std::shared_ptr roaring = std::make_shared(); + std::shared_ptr null_bitmap = std::make_shared(); + if (iter->has_null()) { + segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle; + RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle)); + null_bitmap = null_bitmap_cache_handle.get_bitmap(); + } + std::unique_ptr query_param = nullptr; + const Array& query_val = param_value.get(); + for (auto nested_query_val : query_val) { + // any element inside array is NULL, return NULL + // by current arrays_overlap execute logic. + if (nested_query_val.is_null()) { + return Status::OK(); + } + std::shared_ptr single_res = std::make_shared(); + RETURN_IF_ERROR(InvertedIndexQueryParamFactory::create_query_value( + nested_param_type, &nested_query_val, query_param)); + RETURN_IF_ERROR(iter->read_from_inverted_index( + data_type_with_name.first, query_param->get_value(), + segment_v2::InvertedIndexQueryType::EQUAL_QUERY, num_rows, single_res)); + *roaring |= *single_res; + } + + segment_v2::InvertedIndexResultBitmap result(roaring, null_bitmap); + bitmap_result = result; + bitmap_result.mask_out_null(); + + return Status::OK(); + } + Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments, size_t result, size_t input_rows_count) const override { auto left_column = diff --git a/regression-test/data/inverted_index_p0/test_array_contains_with_inverted_index.out b/regression-test/data/inverted_index_p0/test_array_contains_with_inverted_index.out index 76a72d8c595b01..63392bda5f8ccd 100644 --- a/regression-test/data/inverted_index_p0/test_array_contains_with_inverted_index.out +++ b/regression-test/data/inverted_index_p0/test_array_contains_with_inverted_index.out @@ -80,3 +80,977 @@ 2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] 2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] +-- !sql -- + +-- !sql -- + +-- !sql -- + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] + +-- !sql -- +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] + +-- !sql -- + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] + +-- !sql -- + +-- !sql -- +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- + +-- !sql -- + +-- !sql -- + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- + +-- !sql -- + +-- !sql -- + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- + +-- !sql -- + +-- !sql -- + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] + +-- !sql -- + +-- !sql -- +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- + +-- !sql -- + +-- !sql -- + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- + +-- !sql -- + +-- !sql -- + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- + +-- !sql -- + +-- !sql -- + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- + +-- !sql -- + +-- !sql -- + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- + +-- !sql -- + +-- !sql -- + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- + +-- !sql -- + +-- !sql -- + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] + +-- !sql -- + +-- !sql -- +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- + +-- !sql -- + +-- !sql -- + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- + +-- !sql -- + +-- !sql -- + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- + +-- !sql -- + +-- !sql -- + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] + +-- !sql -- + +-- !sql -- +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- + +-- !sql -- + +-- !sql -- + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- + +-- !sql -- + +-- !sql -- + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- + +-- !sql -- + +-- !sql -- + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- + +-- !sql -- + +-- !sql -- + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + +-- !sql -- + +-- !sql -- + +-- !sql -- + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- + +-- !sql -- + +-- !sql -- + +-- !sql -- +2017-01-01 021603e7dcfe65d44af0efd0e5aee154 ["n"] +2017-01-01 48a33ec3453a28bce84b8f96fe161956 ["m"] +2017-01-01 6afef581285b6608bf80d5a4e46cf839 ["a", "b", "c"] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a3 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a4 \N +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a5 [] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a6 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a7 [null, null, null] +2017-01-01 8fcb57ae675f0af4d613d9e6c0e8a2a8 [] +2017-01-01 9fcb57ae675f0af4d613d9e6c0e8a2a2 ["o"] +2017-01-01 d93d942d985a8fb7547c72dada8d332d ["d", "e", "f", "g", "h", "i", "j", "k", "l"] + +-- !sql -- +2019-01-01 0974e7a82e30d1af83205e474fadd0a2 ["w"] +2019-01-01 26823b3995ee38bd145ddd910b2f6300 ["x"] +2019-01-01 a648a447b8f71522f11632eba4b4adde ["p", "q", "r", "s", "t"] +2019-01-01 a9fb5c985c90bf05f3bee5ca3ae95260 ["u", "v"] +2019-01-01 ee27ee1da291e46403c408e220bed6e1 ["y"] + diff --git a/regression-test/suites/inverted_index_p0/test_array_contains_with_inverted_index.groovy b/regression-test/suites/inverted_index_p0/test_array_contains_with_inverted_index.groovy index 3c182d9963d4ec..356ff51aa8822f 100644 --- a/regression-test/suites/inverted_index_p0/test_array_contains_with_inverted_index.groovy +++ b/regression-test/suites/inverted_index_p0/test_array_contains_with_inverted_index.groovy @@ -66,14 +66,51 @@ suite("test_array_contains_with_inverted_index"){ sql """ set enable_common_expr_pushdown = true """ qt_sql """ select count() from ${indexTblName}""" - order_qt_sql """ select * from tai where array_contains(inventors, 's') order by id; """ + def param_contains = ["\'s\'", "\'\'", null] + for (i = 0 ; i < param_contains.size(); ++i) { + def p = param_contains[i] + log.info("param: ${p}") + order_qt_sql """ select * from tai where array_contains(inventors, ${p}) order by id; """ + order_qt_sql """ select * from tai where array_contains(inventors, ${p}) and apply_date = '2017-01-01' order by id; """ + order_qt_sql """ select * from tai where array_contains(inventors, ${p}) and apply_date = '2019-01-01' order by id; """ + order_qt_sql """ select * from tai where array_contains(inventors, ${p}) or apply_date = '2017-01-01' order by id; """ + order_qt_sql """ select * from tai where !array_contains(inventors, ${p}) order by id; """ + order_qt_sql """ select * from tai where !array_contains(inventors, ${p}) and apply_date = '2017-01-01' order by id; """ + order_qt_sql """ select * from tai where !array_contains(inventors, ${p}) and apply_date = '2019-01-01' order by id; """ + order_qt_sql """ select * from tai where !array_contains(inventors, ${p}) or apply_date = '2017-01-01' order by id; """ + order_qt_sql """ select * from tai where (array_contains(inventors, ${p}) and apply_date = '2017-01-01') or apply_date = '2019-01-01' order by id; """ + } - order_qt_sql """ select * from tai where array_contains(inventors, 's') and apply_date = '2017-01-01' order by id; """ - order_qt_sql """ select * from tai where array_contains(inventors, 's') and apply_date = '2019-01-01' order by id; """ - order_qt_sql """ select * from tai where array_contains(inventors, 's') or apply_date = '2017-01-01' order by id; """ - order_qt_sql """ select * from tai where !array_contains(inventors, 's') order by id; """ - order_qt_sql """ select * from tai where !array_contains(inventors, 's') and apply_date = '2017-01-01' order by id; """ - order_qt_sql """ select * from tai where !array_contains(inventors, 's') and apply_date = '2019-01-01' order by id; """ - order_qt_sql """ select * from tai where !array_contains(inventors, 's') or apply_date = '2017-01-01' order by id; """ - order_qt_sql """ select * from tai where (array_contains(inventors, 's') and apply_date = '2017-01-01') or apply_date = '2019-01-01' order by id; """ + // test arrays_overlap with inverted index + // now if we use inverted index we will not eval exprs + def param = [["\'s\'", "\'t\'"], [], null, ["\'s\'", "\'\'", "\'t\'"], ["\'s\'", null, "\'t\'"], [null, "\'\'"], ["\'s\'", null, "\'t\'", "\'\'"]] // null for arrays_overlap will return null which in predicate will lead to return empty set + + sql "set enable_common_expr_pushdown = true" + for (i = 0 ; i < param.size(); ++i) { + def p = param[i] + log.info("param: ${p}") + order_qt_sql """ select * from tai where arrays_overlap(inventors, ${p}) order by id; """ + order_qt_sql """ select * from tai where arrays_overlap(inventors, ${p}) and apply_date = '2017-01-01' order by id; """ + order_qt_sql """ select * from tai where arrays_overlap(inventors, ${p}) and apply_date = '2019-01-01' order by id; """ + order_qt_sql """ select * from tai where arrays_overlap(inventors, ${p}) or apply_date = '2017-01-01' order by id; """ + order_qt_sql """ select * from tai where !arrays_overlap(inventors, ${p}) order by id; """ + order_qt_sql """ select * from tai where !arrays_overlap(inventors, ${p}) and apply_date = '2017-01-01' order by id; """ + order_qt_sql """ select * from tai where !arrays_overlap(inventors, ${p}) and apply_date = '2019-01-01' order by id; """ + order_qt_sql """ select * from tai where !arrays_overlap(inventors, ${p}) or apply_date = '2017-01-01' order by id; """ + order_qt_sql """ select * from tai where (arrays_overlap(inventors, ${p}) and apply_date = '2017-01-01') or apply_date = '2019-01-01' order by id; """ + } + sql "set enable_common_expr_pushdown = false" + for (i = 0 ; i < param.size(); ++i) { + def p = param[i] + log.info("param: ${p}") + order_qt_sql """ select * from tai where arrays_overlap(inventors, ${p}) order by id; """ + order_qt_sql """ select * from tai where arrays_overlap(inventors, ${p}) and apply_date = '2017-01-01' order by id; """ + order_qt_sql """ select * from tai where arrays_overlap(inventors, ${p}) and apply_date = '2019-01-01' order by id; """ + order_qt_sql """ select * from tai where arrays_overlap(inventors, ${p}) or apply_date = '2017-01-01' order by id; """ + order_qt_sql """ select * from tai where !arrays_overlap(inventors, ${p}) order by id; """ + order_qt_sql """ select * from tai where !arrays_overlap(inventors, ${p}) and apply_date = '2017-01-01' order by id; """ + order_qt_sql """ select * from tai where !arrays_overlap(inventors, ${p}) and apply_date = '2019-01-01' order by id; """ + order_qt_sql """ select * from tai where !arrays_overlap(inventors, ${p}) or apply_date = '2017-01-01' order by id; """ + order_qt_sql """ select * from tai where (arrays_overlap(inventors, ${p}) and apply_date = '2017-01-01') or apply_date = '2019-01-01' order by id; """ + } }