From b9660987325dd441dcb70ab41d82de17e4cdd014 Mon Sep 17 00:00:00 2001 From: jayzhan211 Date: Mon, 14 Oct 2024 20:03:48 +0800 Subject: [PATCH] backup Signed-off-by: jayzhan211 --- datafusion/core/output.txt | 2781 +++++++++++++++++ datafusion/core/output_v1.txt | 131 + datafusion/core/output_v2.txt | 152 + datafusion/core/output_v3.txt | 656 ++++ datafusion/core/tests/data/data.csv | 2 + .../core/tests/fuzz_cases/aggregate_fuzz.rs | 3 +- .../aggregation_fuzzer/data_generator.rs | 396 ++- .../fuzz_cases/aggregation_fuzzer/fuzzer.rs | 84 +- .../aggregate/groups_accumulator/prim_op.rs | 1 + .../src/aggregates/group_values/column.rs | 250 +- datafusion/physical-plan/src/memory.rs | 8 +- datafusion/sqllogictest/test_files/test1.slt | 50 + datafusion/sqllogictest/test_files/test2.slt | 87 + datafusion/sqllogictest/test_files/test3.slt | 128 + datafusion/sqllogictest/test_files/test4.slt | 71 + datafusion/sqllogictest/test_files/test5.slt | 25 + datafusion/sqllogictest/test_files/test6.slt | 7 + datafusion/sqllogictest/test_files/test7.slt | 33 + test-utils/src/array_gen/primitive.rs | 2 + test-utils/src/array_gen/string.rs | 35 +- test-utils/src/lib.rs | 3 + 21 files changed, 4811 insertions(+), 94 deletions(-) create mode 100644 datafusion/core/output.txt create mode 100644 datafusion/core/output_v1.txt create mode 100644 datafusion/core/output_v2.txt create mode 100644 datafusion/core/output_v3.txt create mode 100644 datafusion/core/tests/data/data.csv create mode 100644 datafusion/sqllogictest/test_files/test1.slt create mode 100644 datafusion/sqllogictest/test_files/test2.slt create mode 100644 datafusion/sqllogictest/test_files/test3.slt create mode 100644 datafusion/sqllogictest/test_files/test4.slt create mode 100644 datafusion/sqllogictest/test_files/test5.slt create mode 100644 datafusion/sqllogictest/test_files/test6.slt create mode 100644 datafusion/sqllogictest/test_files/test7.slt diff --git a/datafusion/core/output.txt b/datafusion/core/output.txt new file mode 100644 index 000000000000..e119ff610af4 --- /dev/null +++ b/datafusion/core/output.txt @@ -0,0 +1,2781 @@ +[RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "d", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "d", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + -61052572, + 582137681, + 20063192, + -61052572, + -61052572, + 582137681, + -61052572, + -975598861, + 20063192, + 909562636, + ...479 elements..., + -61052572, + 541213904, + 541213904, + 541213904, + -975598861, + 245833700, + 541213904, + -61052572, + 909562636, + 245833700, +], StringArray +[ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + ...479 elements..., + "is", + "is", + "is", + "is", + "is", + "is", + "it", + "it", + "it", + "it", +], PrimitiveArray +[ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + ...479 elements..., + -4348034159383376037, + -4348034159383376037, + -4348034159383376037, + -4190165201427712175, + 50093696951023963, + 2324496022054398308, + -6703882251128566584, + -4190165201427712175, + 50093696951023963, + 50093696951023963, +], PrimitiveArray +[ + -61052572, + 582137681, + 20063192, + -61052572, + -61052572, + 582137681, + -61052572, + -975598861, + 20063192, + 909562636, + ...479 elements..., + -61052572, + 541213904, + 541213904, + 541213904, + -975598861, + 245833700, + 541213904, + -61052572, + 909562636, + 245833700, +]], row_count: 499 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "d", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "d", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + null, + 245833700, + 541213904, + -61052572, + 541213904, + 541213904, + 541213904, + -975598861, + 909562636, + 582137681, + ...224 elements..., + null, + 909562636, + -61052572, + 245833700, + 909562636, + null, + 582137681, + 909562636, + 541213904, + 541213904, +], StringArray +[ + "izuy", + "izuy", + "izuy", + "izuy", + "izuy", + "j", + "j", + "j", + "j", + "j", + ...224 elements..., + "rcdj", + "rcdj", + "rcdj", + "rcz", + "ria", + "ria", + "ria", + "ria", + "ria", + "rlmv", +], PrimitiveArray +[ + -6703882251128566584, + -2663772559740694289, + 50093696951023963, + 50093696951023963, + 86170753739202532, + null, + null, + null, + -6703882251128566584, + -2663772559740694289, + ...224 elements..., + 50093696951023963, + 86170753739202532, + 2324496022054398308, + -4348034159383376037, + null, + -6703882251128566584, + -4348034159383376037, + -4348034159383376037, + -2663772559740694289, + null, +], PrimitiveArray +[ + null, + 245833700, + 541213904, + -61052572, + 541213904, + 541213904, + 541213904, + -975598861, + 909562636, + 582137681, + ...224 elements..., + null, + 909562636, + -61052572, + 245833700, + 909562636, + null, + 582137681, + 909562636, + 541213904, + 541213904, +]], row_count: 244 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "d", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + 541213904, + 245833700, + 541213904, + 20063192, + null, + 582137681, + -61052572, + 909562636, + -61052572, + 245833700, + ...111 elements..., + null, + -61052572, + -61052572, + -61052572, + 20063192, + 582137681, + -61052572, + 541213904, + 541213904, + 541213904, +], StringArray +[ + "rlmv", + "rlmv", + "rlmv", + "rlmv", + "s", + "s", + "s", + "s", + "s", + "s", + ...111 elements..., + "x", + "x", + "x", + "x", + "x", + "x", + "x", + "x", + "x", + "x", +], PrimitiveArray +[ + -2663772559740694289, + -2663772559740694289, + 50093696951023963, + 2324496022054398308, + null, + -6703882251128566584, + -4348034159383376037, + -4348034159383376037, + -4348034159383376037, + -4190165201427712175, + ...111 elements..., + -6703882251128566584, + -6703882251128566584, + -6703882251128566584, + -4348034159383376037, + -4190165201427712175, + -2663772559740694289, + -2663772559740694289, + -2663772559740694289, + 50093696951023963, + 50093696951023963, +], PrimitiveArray +[ + 541213904, + 245833700, + 541213904, + 20063192, + null, + 582137681, + -61052572, + 909562636, + -61052572, + 245833700, + ...111 elements..., + null, + -61052572, + -61052572, + -61052572, + 20063192, + 582137681, + -61052572, + 541213904, + 541213904, + 541213904, +]], row_count: 131 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "d", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "d", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + 245833700, + -61052572, + -61052572, + 245833700, + -975598861, + -61052572, + 20063192, + -975598861, + 582137681, + 245833700, + ...10 elements..., + 245833700, + -61052572, + 245833700, + -61052572, + -975598861, + 541213904, + -975598861, + 909562636, + 909562636, + -61052572, +], StringArray +[ + "x", + "x", + "x", + "x", + "x", + "xn", + "xn", + "xn", + "xn", + "xn", + ...10 elements..., + "ye", + "ye", + "ye", + "ye", + "ye", + "yi", + "yi", + "yl", + "yl", + "yl", +], PrimitiveArray +[ + 50093696951023963, + 86170753739202532, + 86170753739202532, + 2324496022054398308, + 2324496022054398308, + null, + -6703882251128566584, + -4190165201427712175, + 86170753739202532, + 86170753739202532, + ...10 elements..., + null, + -4190165201427712175, + -2663772559740694289, + -2663772559740694289, + 86170753739202532, + -6703882251128566584, + 2324496022054398308, + -6703882251128566584, + -4190165201427712175, + 86170753739202532, +], PrimitiveArray +[ + 245833700, + -61052572, + -61052572, + 245833700, + -975598861, + -61052572, + 20063192, + -975598861, + 582137681, + 245833700, + ...10 elements..., + 245833700, + -61052572, + 245833700, + -61052572, + -975598861, + 541213904, + -975598861, + 909562636, + 909562636, + -61052572, +]], row_count: 30 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "d", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "d", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "d", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + -975598861, +], StringArray +[ + "yna", +], PrimitiveArray +[ + null, +], PrimitiveArray +[ + -975598861, +]], row_count: 1 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "d", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + 245833700, + null, + 909562636, + -61052572, + 20063192, + 20063192, + 541213904, + -61052572, + 582137681, + -61052572, + -61052572, + 909562636, + null, + -61052572, + -61052572, + 20063192, + -975598861, + 541213904, +], StringArray +[ + "yna", + "yna", + "yna", + "yna", + "yna", + "yq", + "yq", + "yq", + "yq", + "z", + "z", + "z", + "z", + "z", + "z", + "z", + "z", + "zdwq", +], PrimitiveArray +[ + -2663772559740694289, + -2663772559740694289, + 86170753739202532, + 86170753739202532, + 2324496022054398308, + -4348034159383376037, + -2663772559740694289, + -2663772559740694289, + 2324496022054398308, + -4348034159383376037, + -4190165201427712175, + -2663772559740694289, + -2663772559740694289, + 50093696951023963, + 50093696951023963, + 86170753739202532, + 2324496022054398308, + null, +], PrimitiveArray +[ + 245833700, + null, + 909562636, + -61052572, + 20063192, + 20063192, + 541213904, + -61052572, + 582137681, + -61052572, + -61052572, + 909562636, + null, + -61052572, + -61052572, + 20063192, + -975598861, + 541213904, +]], row_count: 18 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "d", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "d", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "d", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + -61052572, + 20063192, + null, + null, + 20063192, + 245833700, + 909562636, + 582137681, + -61052572, + 909562636, + 541213904, + 245833700, + -61052572, + 909562636, + 245833700, + 909562636, + -61052572, + 909562636, + null, +], StringArray +[ + "zdwq", + "zdwq", + "zdwq", + "zdwq", + "zdwq", + "zdwq", + "zizo", + "zizo", + "zizo", + "zizo", + "zkt", + "zkt", + "zkt", + "zkt", + "zkt", + "zkt", + "zo", + "zrb", + "zrb", +], PrimitiveArray +[ + -4348034159383376037, + -2663772559740694289, + 86170753739202532, + 86170753739202532, + 2324496022054398308, + 2324496022054398308, + null, + -4190165201427712175, + 86170753739202532, + 2324496022054398308, + null, + -6703882251128566584, + -4348034159383376037, + -4190165201427712175, + -2663772559740694289, + 86170753739202532, + 86170753739202532, + -6703882251128566584, + -4190165201427712175, +], PrimitiveArray +[ + -61052572, + 20063192, + null, + null, + 20063192, + 245833700, + 909562636, + 582137681, + -61052572, + 909562636, + 541213904, + 245833700, + -61052572, + 909562636, + 245833700, + 909562636, + -61052572, + 909562636, + null, +]], row_count: 19 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "d", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "d", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "d", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "d", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + -975598861, + 245833700, + -61052572, + null, + -975598861, + -975598861, +], StringArray +[ + "zrb", + "zrb", + "zrb", + "zrb", + "zrb", + "zrb", +], PrimitiveArray +[ + -4190165201427712175, + -2663772559740694289, + 50093696951023963, + 50093696951023963, + 86170753739202532, + 86170753739202532, +], PrimitiveArray +[ + -975598861, + 245833700, + -61052572, + null, + -975598861, + -975598861, +]], row_count: 6 }] +param: SessionContextParams { batch_size: 889, target_partitions: 1, sort_hint: true, skip_partial_params: SkipPartialParams { ratio_threshold: 1.0, rows_threshold: 18446744073709551615 } } +expect: +------+----------------------+--------------------+ +| b | c | avg(fuzz_table.a) | ++------+----------------------+--------------------+ +| | | 190045104.85714287 | +| | -6703882251128566584 | 266433634.66666666 | +| | -4348034159383376037 | 96186129.47058824 | +| | -4190165201427712175 | -110693327.8 | +| | -2663772559740694289 | 198371834.08333334 | +| | 50093696951023963 | 173562137.5 | +| | 86170753739202532 | 199247264.0909091 | +| | 2324496022054398308 | 491427290.3 | +| adj | | -61052572.0 | +| adj | -6703882251128566584 | 20063192.0 | +| adj | -4190165201427712175 | 245833700.0 | +| adj | 50093696951023963 | 577698168.0 | +| adj | 2324496022054398308 | 20063192.0 | +| ae | -6703882251128566584 | 245833700.0 | +| ae | -4348034159383376037 | -975598861.0 | +| ae | 86170753739202532 | 541213904.0 | +| af | | | +| af | -4348034159383376037 | 20063192.0 | +| af | 50093696951023963 | -217192478.5 | +| akui | | 393523802.0 | +| akui | -6703882251128566584 | 909562636.0 | +| akui | -2663772559740694289 | 909562636.0 | +| akui | 50093696951023963 | | +| alc | -2663772559740694289 | 541213904.0 | +| alc | 50093696951023963 | 541213904.0 | +| am | | -975598861.0 | +| am | -6703882251128566584 | 541213904.0 | +| am | -4348034159383376037 | 393523802.0 | +| am | -4190165201427712175 | 909562636.0 | +| am | -2663772559740694289 | 245833700.0 | +| am | 86170753739202532 | -61052572.0 | +| amn | | 561675792.5 | +| amn | -4348034159383376037 | -61052572.0 | +| amn | -2663772559740694289 | 582137681.0 | +| amn | 50093696951023963 | 909562636.0 | +| amn | 2324496022054398308 | 909562636.0 | +| aomx | | 582137681.0 | +| aomx | -6703882251128566584 | -975598861.0 | +| aomx | -2663772559740694289 | 393523802.0 | +| aomx | 86170753739202532 | 20063192.0 | +| aor | -4348034159383376037 | 20063192.0 | +| aor | -4190165201427712175 | -196730590.0 | +| aor | 86170753739202532 | 20063192.0 | +| aor | 2324496022054398308 | 541213904.0 | +| ap | | 245833700.0 | +| ap | -6703882251128566584 | -975598861.0 | +| ap | -4190165201427712175 | 909562636.0 | +| ap | -2663772559740694289 | 541213904.0 | +| ap | 50093696951023963 | 290869492.25 | +| ap | 86170753739202532 | -61052572.0 | +| ap | 2324496022054398308 | 541213904.0 | +| aq | | -975598861.0 | +| aq | 50093696951023963 | 20063192.0 | +| aq | 2324496022054398308 | 582137681.0 | +| arg | -6703882251128566584 | -364882580.5 | +| arg | -4190165201427712175 | | +| arg | 86170753739202532 | 245833700.0 | +| ast | -4190165201427712175 | 245833700.0 | +| ast | 86170753739202532 | 240080666.0 | +| avy | 50093696951023963 | 909562636.0 | +| avy | 86170753739202532 | -61052572.0 | +| b | -4190165201427712175 | -975598861.0 | +| b | 86170753739202532 | 541213904.0 | +| b | 2324496022054398308 | 132948446.0 | +| bf | | 269036932.0 | +| bf | -4348034159383376037 | -61052572.0 | +| bf | -4190165201427712175 | -975598861.0 | +| bf | -2663772559740694289 | 92390564.0 | +| bf | 50093696951023963 | -975598861.0 | +| bf | 86170753739202532 | -975598861.0 | +| bn | | 245833700.0 | +| bn | -4348034159383376037 | -975598861.0 | +| bn | 86170753739202532 | -196730590.0 | +| bn | 2324496022054398308 | -364882580.5 | +| bnfr | | 909562636.0 | +| bnfr | -4348034159383376037 | 424255032.0 | +| bnfr | 50093696951023963 | 909562636.0 | +| bnfr | 86170753739202532 | 541213904.0 | +| bnfr | 2324496022054398308 | 143538276.0 | +| bxhl | | -61052572.0 | +| bxhl | -6703882251128566584 | 582137681.0 | +| bxhl | -4190165201427712175 | 245833700.0 | +| bxhl | -2663772559740694289 | -975598861.0 | +| bxhl | 2324496022054398308 | 541213904.0 | +| c | | 240080666.0 | +| c | 50093696951023963 | -61052572.0 | +| cnju | | 909562636.0 | +| cnju | -6703882251128566584 | -124465996.0 | +| cnju | -4348034159383376037 | -364882580.5 | +| cnju | -4190165201427712175 | 582137681.0 | +| csa | | -61052572.0 | +| csa | 50093696951023963 | 725388270.0 | +| csa | 86170753739202532 | -975598861.0 | +| d | -4348034159383376037 | 909562636.0 | +| d | -2663772559740694289 | 464812914.0 | +| d | 50093696951023963 | -20494690.0 | +| dq | -6703882251128566584 | -975598861.0 | +| dq | -4348034159383376037 | -61052572.0 | +| dq | 86170753739202532 | -975598861.0 | +| dv | | 909562636.0 | +| dv | 50093696951023963 | 541213904.0 | +| dv | 86170753739202532 | 725388270.0 | +| dv | 2324496022054398308 | | +| e | | -975598861.0 | +| e | -6703882251128566584 | 92390564.0 | +| e | -4348034159383376037 | 245833700.0 | +| e | -4190165201427712175 | -33018112.5 | +| e | -2663772559740694289 | 541213904.0 | +| e | 50093696951023963 | 132948446.0 | +| e | 86170753739202532 | 909562636.0 | +| ejzf | | 541213904.0 | +| ejzf | -4190165201427712175 | 245833700.0 | +| ejzf | -2663772559740694289 | 909562636.0 | +| ejzf | 50093696951023963 | -975598861.0 | +| ejzf | 86170753739202532 | 745850158.5 | +| ejzf | 2324496022054398308 | 245833700.0 | +| en | -4348034159383376037 | 20063192.0 | +| en | -4190165201427712175 | -477767834.5 | +| en | -2663772559740694289 | 20063192.0 | +| en | 2324496022054398308 | 20063192.0 | +| eo | -4348034159383376037 | -61052572.0 | +| eo | -2663772559740694289 | 541213904.0 | +| eo | 86170753739202532 | 20063192.0 | +| etl | -6703882251128566584 | 245833700.0 | +| etl | -4348034159383376037 | -61052572.0 | +| etl | -4190165201427712175 | -61052572.0 | +| etl | -2663772559740694289 | 541213904.0 | +| etl | 50093696951023963 | -124465996.0 | +| etl | 86170753739202532 | 909562636.0 | +| eu | -6703882251128566584 | | +| eu | -4190165201427712175 | 909562636.0 | +| eu | 86170753739202532 | 245833700.0 | +| eu | 2324496022054398308 | -975598861.0 | +| eur | 50093696951023963 | 424255032.0 | +| f | | 424255032.0 | +| f | -4348034159383376037 | -165145843.0 | +| f | -2663772559740694289 | 245833700.0 | +| f | 50093696951023963 | 245833700.0 | +| ffw | -4190165201427712175 | | +| ffw | -2663772559740694289 | 909562636.0 | +| ffw | 50093696951023963 | 245833700.0 | +| ffw | 86170753739202532 | 909562636.0 | +| fgmm | | 245833700.0 | +| fgmm | -4348034159383376037 | 20063192.0 | +| fgmm | 86170753739202532 | 909562636.0 | +| fgmm | 2324496022054398308 | 909562636.0 | +| fl | | 909562636.0 | +| fl | -6703882251128566584 | 909562636.0 | +| fl | -4348034159383376037 | -975598861.0 | +| fl | 50093696951023963 | 166741508.0 | +| fl | 86170753739202532 | | +| focg | -4348034159383376037 | 577698168.0 | +| focg | -4190165201427712175 | 245833700.0 | +| focg | -2663772559740694289 | 20063192.0 | +| focg | 50093696951023963 | 49250908.0 | +| focg | 86170753739202532 | -196730590.0 | +| ftyd | -6703882251128566584 | | +| ftyd | -4348034159383376037 | 582137681.0 | +| ftyd | -4190165201427712175 | 582137681.0 | +| ftyd | -2663772559740694289 | 245833700.0 | +| ftyd | 50093696951023963 | 413985690.5 | +| ftyd | 86170753739202532 | -518325716.5 | +| g | | -217192478.5 | +| g | -4190165201427712175 | 561675792.5 | +| g | -2663772559740694289 | 20063192.0 | +| g | 50093696951023963 | -61052572.0 | +| g | 86170753739202532 | 582137681.0 | +| g | 2324496022054398308 | 582137681.0 | +| ga | -4348034159383376037 | 554855163.0 | +| ga | -4190165201427712175 | 909562636.0 | +| ga | 86170753739202532 | 541213904.0 | +| gay | -4348034159383376037 | 20063192.0 | +| gay | -4190165201427712175 | -975598861.0 | +| gay | -2663772559740694289 | -33018112.5 | +| gay | 50093696951023963 | | +| gay | 2324496022054398308 | 20063192.0 | +| gbju | -4348034159383376037 | -33018112.5 | +| ghax | -6703882251128566584 | 582137681.0 | +| ghax | -4348034159383376037 | | +| ghax | -4190165201427712175 | -61052572.0 | +| ghax | -2663772559740694289 | 245833700.0 | +| ghax | 50093696951023963 | 20063192.0 | +| ghax | 86170753739202532 | 541213904.0 | +| gjcd | -6703882251128566584 | -61052572.0 | +| gjcd | -2663772559740694289 | 909562636.0 | +| gjcd | 2324496022054398308 | -61052572.0 | +| gjln | | 725388270.0 | +| gjln | -6703882251128566584 | 725388270.0 | +| gjln | -4348034159383376037 | 260542554.5 | +| gjln | -4190165201427712175 | 301100436.5 | +| gjln | 86170753739202532 | | +| gjln | 2324496022054398308 | 20063192.0 | +| gl | -4190165201427712175 | 20063192.0 | +| gl | 50093696951023963 | 245833700.0 | +| gl | 2324496022054398308 | -61052572.0 | +| gma | 50093696951023963 | 393523802.0 | +| gmuj | -6703882251128566584 | -518325716.5 | +| gmuj | -2663772559740694289 | 132948446.0 | +| gmuj | 50093696951023963 | -518325716.5 | +| gmuj | 86170753739202532 | -975598861.0 | +| go | -6703882251128566584 | 725388270.0 | +| go | -4348034159383376037 | 424255032.0 | +| go | 2324496022054398308 | 413985690.5 | +| gpx | | 909562636.0 | +| gpx | -6703882251128566584 | -61052572.0 | +| gpx | -4190165201427712175 | -196730590.0 | +| gpx | -2663772559740694289 | 245833700.0 | +| gpx | 50093696951023963 | 582137681.0 | +| gpx | 2324496022054398308 | 245833700.0 | +| gqfo | -6703882251128566584 | | +| gqfo | -4190165201427712175 | 541213904.0 | +| gqfo | 86170753739202532 | 582137681.0 | +| gqfo | 2324496022054398308 | -477767834.5 | +| gv | -4348034159383376037 | 561675792.5 | +| gvt | -2663772559740694289 | 909562636.0 | +| gvt | 86170753739202532 | 245833700.0 | +| gvt | 2324496022054398308 | -61052572.0 | +| h | | 582137681.0 | +| h | -6703882251128566584 | -477767834.5 | +| h | -4348034159383376037 | 490279910.6666667 | +| h | -4190165201427712175 | 301100436.5 | +| h | -2663772559740694289 | 568496422.0 | +| h | 50093696951023963 | 29686225.75 | +| h | 2324496022054398308 | 20063192.0 | +| hb | -4190165201427712175 | -20494690.0 | +| hb | -2663772559740694289 | 582137681.0 | +| hb | 86170753739202532 | -61052572.0 | +| hepn | -4190165201427712175 | 20063192.0 | +| hepn | 2324496022054398308 | 582137681.0 | +| hesx | -4348034159383376037 | 393523802.0 | +| hesx | 50093696951023963 | 541213904.0 | +| hjzo | | 561675792.5 | +| hjzo | 86170753739202532 | 909562636.0 | +| hkyo | -4348034159383376037 | -975598861.0 | +| hkyo | -2663772559740694289 | | +| hkyo | 50093696951023963 | 541213904.0 | +| hla | | 541213904.0 | +| hla | -6703882251128566584 | 909562636.0 | +| hla | -4190165201427712175 | 20063192.0 | +| hlpb | 2324496022054398308 | 582137681.0 | +| hlyj | -6703882251128566584 | 92390564.0 | +| hlyj | -2663772559740694289 | 688319657.3333334 | +| hlyj | 50093696951023963 | 245833700.0 | +| hmo | -4190165201427712175 | 582137681.0 | +| hmo | 50093696951023963 | 464812914.0 | +| hqdy | -2663772559740694289 | 20063192.0 | +| hqdy | 2324496022054398308 | | +| i | | -61052572.0 | +| i | 86170753739202532 | 568496422.0 | +| i | 2324496022054398308 | 408889417.0 | +| iabz | | 245833700.0 | +| iabz | -6703882251128566584 | 132948446.0 | +| iabz | -4190165201427712175 | 909562636.0 | +| iabz | -2663772559740694289 | 132948446.0 | +| iabz | 86170753739202532 | 725388270.0 | +| ijo | | -61052572.0 | +| ijo | -4190165201427712175 | 316563006.6666667 | +| ijo | -2663772559740694289 | 582137681.0 | +| ijo | 50093696951023963 | 582137681.0 | +| ijo | 2324496022054398308 | | +| ilvy | | 20063192.0 | +| ilvy | -6703882251128566584 | -61052572.0 | +| ilvy | -2663772559740694289 | | +| ilvy | 50093696951023963 | 541213904.0 | +| ilvy | 86170753739202532 | 541213904.0 | +| is | -6703882251128566584 | 255639603.0 | +| is | -4348034159383376037 | 340458412.0 | +| is | -4190165201427712175 | 541213904.0 | +| is | 50093696951023963 | -975598861.0 | +| is | 2324496022054398308 | 245833700.0 | +| it | -6703882251128566584 | 541213904.0 | +| it | -4190165201427712175 | -61052572.0 | +| it | 50093696951023963 | 577698168.0 | +| izuy | -6703882251128566584 | | +| izuy | -2663772559740694289 | 245833700.0 | +| izuy | 50093696951023963 | 240080666.0 | +| izuy | 86170753739202532 | 541213904.0 | +| j | | 35609649.0 | +| j | -6703882251128566584 | 909562636.0 | +| j | -2663772559740694289 | 41953979.0 | +| j | 50093696951023963 | 541213904.0 | +| j | 86170753739202532 | -61052572.0 | +| jb | -4190165201427712175 | 20063192.0 | +| jb | -2663772559740694289 | -518325716.5 | +| jb | 50093696951023963 | 245833700.0 | +| jb | 86170753739202532 | -61052572.0 | +| jb | 2324496022054398308 | 260542554.5 | +| jep | | -975598861.0 | +| jep | -6703882251128566584 | 582137681.0 | +| jep | -4348034159383376037 | 582137681.0 | +| jep | -4190165201427712175 | 245833700.0 | +| jep | -2663772559740694289 | | +| jji | -6703882251128566584 | 245833700.0 | +| jji | -2663772559740694289 | 541213904.0 | +| jji | 2324496022054398308 | 245833700.0 | +| jqy | -6703882251128566584 | 582137681.0 | +| jqy | -4348034159383376037 | 301100436.5 | +| jqy | 50093696951023963 | 381138259.0 | +| jqy | 86170753739202532 | -217192478.5 | +| juf | -2663772559740694289 | 582137681.0 | +| jvho | -2663772559740694289 | 582137681.0 | +| jvho | 2324496022054398308 | | +| k | | 541213904.0 | +| k | -6703882251128566584 | -338862747.0 | +| k | -4348034159383376037 | 245833700.0 | +| k | -4190165201427712175 | 143538276.0 | +| k | -2663772559740694289 | 541213904.0 | +| k | 50093696951023963 | 245833700.0 | +| k | 86170753739202532 | 582137681.0 | +| k | 2324496022054398308 | 413985690.5 | +| kufw | -4190165201427712175 | -61052572.0 | +| kufw | -2663772559740694289 | 301100436.5 | +| kufw | 50093696951023963 | 20063192.0 | +| kufw | 86170753739202532 | | +| kufw | 2324496022054398308 | 245833700.0 | +| kyr | | 582137681.0 | +| kyr | -6703882251128566584 | 582137681.0 | +| kyr | -4190165201427712175 | 541213904.0 | +| kyr | -2663772559740694289 | 582137681.0 | +| kyr | 50093696951023963 | 582137681.0 | +| kyr | 86170753739202532 | -61052572.0 | +| kzp | -6703882251128566584 | 245833700.0 | +| kzp | -4348034159383376037 | 92390564.0 | +| kzp | 50093696951023963 | 582137681.0 | +| kzp | 86170753739202532 | 909562636.0 | +| l | | 558491995.5 | +| l | -6703882251128566584 | 577698168.0 | +| l | -4348034159383376037 | 95320028.0 | +| l | -2663772559740694289 | 301100436.5 | +| l | 50093696951023963 | 186514556.0 | +| l | 86170753739202532 | 20063192.0 | +| l | 2324496022054398308 | 24551555.0 | +| lasw | -4190165201427712175 | 582137681.0 | +| lasw | -2663772559740694289 | -975598861.0 | +| lasw | 2324496022054398308 | 245833700.0 | +| law | -4348034159383376037 | 582137681.0 | +| law | -4190165201427712175 | 541213904.0 | +| law | -2663772559740694289 | | +| law | 50093696951023963 | 245833700.0 | +| law | 2324496022054398308 | -975598861.0 | +| lh | -6703882251128566584 | 541213904.0 | +| lh | -4190165201427712175 | -477767834.5 | +| lh | 50093696951023963 | | +| lh | 2324496022054398308 | 20063192.0 | +| lkf | -4190165201427712175 | 464812914.0 | +| lkf | -2663772559740694289 | -518325716.5 | +| lma | | -975598861.0 | +| lma | 50093696951023963 | -975598861.0 | +| lma | 86170753739202532 | 541213904.0 | +| lma | 2324496022054398308 | -975598861.0 | +| lxg | | -975598861.0 | +| lxg | -6703882251128566584 | 909562636.0 | +| lxg | -4348034159383376037 | 582137681.0 | +| lxg | 50093696951023963 | 20063192.0 | +| lxg | 86170753739202532 | -61052572.0 | +| lxg | 2324496022054398308 | 541213904.0 | +| m | 50093696951023963 | 582137681.0 | +| m | 86170753739202532 | 582137681.0 | +| m | 2324496022054398308 | 245833700.0 | +| mm | -4348034159383376037 | 582137681.0 | +| mm | -4190165201427712175 | -975598861.0 | +| mm | -2663772559740694289 | -975598861.0 | +| mm | 50093696951023963 | 245833700.0 | +| mm | 86170753739202532 | 132948446.0 | +| mm | 2324496022054398308 | 582137681.0 | +| mmxt | | 582137681.0 | +| mmxt | -4348034159383376037 | -338862747.0 | +| mmxt | -4190165201427712175 | 245833700.0 | +| mmxt | 86170753739202532 | | +| mmxt | 2324496022054398308 | 92390564.0 | +| nie | -4190165201427712175 | -975598861.0 | +| nie | 50093696951023963 | 541213904.0 | +| non | | 413985690.5 | +| non | -2663772559740694289 | 582137681.0 | +| non | 50093696951023963 | -975598861.0 | +| non | 86170753739202532 | 20063192.0 | +| non | 2324496022054398308 | 92390564.0 | +| nta | -6703882251128566584 | -975598861.0 | +| nta | -4348034159383376037 | 245833700.0 | +| nz | | 541213904.0 | +| nz | -6703882251128566584 | 301100436.5 | +| nz | -4348034159383376037 | 582137681.0 | +| nz | 86170753739202532 | 582137681.0 | +| nz | 2324496022054398308 | -975598861.0 | +| o | -6703882251128566584 | 582137681.0 | +| o | -4190165201427712175 | 245833700.0 | +| o | -2663772559740694289 | 909562636.0 | +| o | 2324496022054398308 | 541213904.0 | +| obh | -6703882251128566584 | 909562636.0 | +| obh | -4348034159383376037 | 582137681.0 | +| obh | -4190165201427712175 | 541213904.0 | +| obh | -2663772559740694289 | 909562636.0 | +| obh | 86170753739202532 | -975598861.0 | +| obh | 2324496022054398308 | -975598861.0 | +| on | -6703882251128566584 | 280638548.0 | +| on | 50093696951023963 | 582137681.0 | +| on | 2324496022054398308 | 909562636.0 | +| os | -6703882251128566584 | 301100436.5 | +| os | -4348034159383376037 | | +| os | 50093696951023963 | 677638073.6666666 | +| pao | | -61052572.0 | +| pao | 2324496022054398308 | | +| pd | | -20494690.0 | +| pd | -6703882251128566584 | 541213904.0 | +| pd | -4190165201427712175 | 245833700.0 | +| pd | 50093696951023963 | 20063192.0 | +| pd | 2324496022054398308 | 582137681.0 | +| phdg | -4190165201427712175 | 909562636.0 | +| phdg | -2663772559740694289 | 20063192.0 | +| phdg | 50093696951023963 | 582137681.0 | +| phdg | 2324496022054398308 | -975598861.0 | +| pi | -2663772559740694289 | 541213904.0 | +| pi | 50093696951023963 | -20494690.0 | +| pi | 86170753739202532 | 20063192.0 | +| pkhe | | 245833700.0 | +| pkhe | -4348034159383376037 | 541213904.0 | +| pkhe | 2324496022054398308 | -975598861.0 | +| poz | | 20063192.0 | +| poz | -4190165201427712175 | 541213904.0 | +| poz | -2663772559740694289 | | +| poz | 86170753739202532 | -364882580.5 | +| ppvx | -6703882251128566584 | 20063192.0 | +| ppvx | -4348034159383376037 | | +| ppvx | -4190165201427712175 | | +| ppvx | 2324496022054398308 | -61052572.0 | +| qs | -6703882251128566584 | -975598861.0 | +| qs | 2324496022054398308 | -364882580.5 | +| qt | -6703882251128566584 | 582137681.0 | +| qt | -4190165201427712175 | -61052572.0 | +| qt | -2663772559740694289 | 909562636.0 | +| qt | 86170753739202532 | -975598861.0 | +| qt | 2324496022054398308 | 424255032.0 | +| rcdj | -4348034159383376037 | -61052572.0 | +| rcdj | 50093696951023963 | | +| rcdj | 86170753739202532 | 909562636.0 | +| rcdj | 2324496022054398308 | -61052572.0 | +| rcz | -4348034159383376037 | 245833700.0 | +| ria | | 909562636.0 | +| ria | -6703882251128566584 | | +| ria | -4348034159383376037 | 745850158.5 | +| ria | -2663772559740694289 | 541213904.0 | +| rlmv | | 541213904.0 | +| rlmv | -2663772559740694289 | 393523802.0 | +| rlmv | 50093696951023963 | 541213904.0 | +| rlmv | 2324496022054398308 | 20063192.0 | +| s | | | +| s | -6703882251128566584 | 582137681.0 | +| s | -4348034159383376037 | 262485830.66666666 | +| s | -4190165201427712175 | 245833700.0 | +| s | -2663772559740694289 | 582137681.0 | +| s | 50093696951023963 | 909562636.0 | +| s | 2324496022054398308 | -337249212.25 | +| sac | -4190165201427712175 | -61052572.0 | +| sac | -2663772559740694289 | 909562636.0 | +| sac | 50093696951023963 | 582137681.0 | +| sco | -2663772559740694289 | -20494690.0 | +| sco | 50093696951023963 | | +| smh | | 582137681.0 | +| smh | -6703882251128566584 | 541213904.0 | +| smh | -4348034159383376037 | -61052572.0 | +| smh | 2324496022054398308 | -61052572.0 | +| sr | -4348034159383376037 | 20063192.0 | +| sr | -2663772559740694289 | -975598861.0 | +| sr | 2324496022054398308 | 20063192.0 | +| suk | | 909562636.0 | +| suk | -4348034159383376037 | -975598861.0 | +| suk | 2324496022054398308 | 340458412.0 | +| sv | -6703882251128566584 | 245833700.0 | +| sv | -4190165201427712175 | 260542554.5 | +| sv | -2663772559740694289 | 541213904.0 | +| t | -6703882251128566584 | -62400957.25 | +| t | -4348034159383376037 | | +| t | -4190165201427712175 | 559456036.0 | +| t | -2663772559740694289 | -518325716.5 | +| t | 50093696951023963 | 582137681.0 | +| t | 86170753739202532 | -6975396.0 | +| t | 2324496022054398308 | 245833700.0 | +| taz | -4190165201427712175 | -975598861.0 | +| taz | 50093696951023963 | 245833700.0 | +| taz | 86170753739202532 | 245833700.0 | +| taz | 2324496022054398308 | 909562636.0 | +| usaq | | 424255032.0 | +| usaq | -6703882251128566584 | 245833700.0 | +| usaq | -2663772559740694289 | 582137681.0 | +| usaq | 86170753739202532 | 20063192.0 | +| usaq | 2324496022054398308 | -975598861.0 | +| uzr | | -196730590.0 | +| uzr | -6703882251128566584 | -61052572.0 | +| uzr | 50093696951023963 | 464812914.0 | +| uzr | 2324496022054398308 | | +| v | | 193780096.0 | +| v | -6703882251128566584 | 245833700.0 | +| v | -4348034159383376037 | 909562636.0 | +| v | -4190165201427712175 | -236567323.0 | +| v | -2663772559740694289 | -469994606.0 | +| v | 50093696951023963 | 909562636.0 | +| v | 86170753739202532 | 582137681.0 | +| v | 2324496022054398308 | 20063192.0 | +| vz | -6703882251128566584 | 280638548.0 | +| vz | -4348034159383376037 | -61052572.0 | +| vz | -2663772559740694289 | 20063192.0 | +| vz | 50093696951023963 | -61052572.0 | +| vzxl | -4348034159383376037 | 132948446.0 | +| vzxl | 50093696951023963 | 541213904.0 | +| vzxl | 86170753739202532 | | +| vzxl | 2324496022054398308 | 541213904.0 | +| wc | -6703882251128566584 | 245833700.0 | +| wc | -4348034159383376037 | 20063192.0 | +| wc | -4190165201427712175 | 20063192.0 | +| wc | 50093696951023963 | -61052572.0 | +| whvg | | 582137681.0 | +| whvg | -4190165201427712175 | 582137681.0 | +| whvg | 50093696951023963 | 245833700.0 | +| whvg | 2324496022054398308 | 909562636.0 | +| wp | -6703882251128566584 | -975598861.0 | +| wp | -2663772559740694289 | -975598861.0 | +| wp | 50093696951023963 | 582137681.0 | +| wp | 86170753739202532 | 245833700.0 | +| wp | 2324496022054398308 | -33018112.5 | +| x | | 424255032.0 | +| x | -6703882251128566584 | -61052572.0 | +| x | -4348034159383376037 | -61052572.0 | +| x | -4190165201427712175 | 20063192.0 | +| x | -2663772559740694289 | 354099671.0 | +| x | 50093696951023963 | 442753836.0 | +| x | 86170753739202532 | -61052572.0 | +| x | 2324496022054398308 | -364882580.5 | +| xn | | -61052572.0 | +| xn | -6703882251128566584 | 20063192.0 | +| xn | -4190165201427712175 | -975598861.0 | +| xn | 86170753739202532 | 413985690.5 | +| yck | | 541213904.0 | +| yck | -6703882251128566584 | -670750098.0 | +| yck | -4348034159383376037 | -975598861.0 | +| yck | -2663772559740694289 | | +| yck | 50093696951023963 | 245833700.0 | +| yck | 86170753739202532 | 541213904.0 | +| yck | 2324496022054398308 | 245833700.0 | +| ye | | 245833700.0 | +| ye | -4190165201427712175 | -61052572.0 | +| ye | -2663772559740694289 | 92390564.0 | +| ye | 86170753739202532 | -975598861.0 | +| yi | -6703882251128566584 | 541213904.0 | +| yi | 2324496022054398308 | -975598861.0 | +| yl | -6703882251128566584 | 909562636.0 | +| yl | -4190165201427712175 | 909562636.0 | +| yl | 86170753739202532 | -61052572.0 | +| yna | | -975598861.0 | +| yna | -2663772559740694289 | 245833700.0 | +| yna | 86170753739202532 | 424255032.0 | +| yna | 2324496022054398308 | 20063192.0 | +| yq | -4348034159383376037 | 20063192.0 | +| yq | -2663772559740694289 | 240080666.0 | +| yq | 2324496022054398308 | 582137681.0 | +| z | -4348034159383376037 | -61052572.0 | +| z | -4190165201427712175 | -61052572.0 | +| z | -2663772559740694289 | 909562636.0 | +| z | 50093696951023963 | -61052572.0 | +| z | 86170753739202532 | 20063192.0 | +| z | 2324496022054398308 | -975598861.0 | +| zdwq | | 541213904.0 | +| zdwq | -4348034159383376037 | -61052572.0 | +| zdwq | -2663772559740694289 | 20063192.0 | +| zdwq | 86170753739202532 | | +| zdwq | 2324496022054398308 | 132948446.0 | +| zizo | | 909562636.0 | +| zizo | -4190165201427712175 | 582137681.0 | +| zizo | 86170753739202532 | -61052572.0 | +| zizo | 2324496022054398308 | 909562636.0 | +| zkt | | 541213904.0 | +| zkt | -6703882251128566584 | 245833700.0 | +| zkt | -4348034159383376037 | -61052572.0 | +| zkt | -4190165201427712175 | 909562636.0 | +| zkt | -2663772559740694289 | 245833700.0 | +| zkt | 86170753739202532 | 909562636.0 | +| zo | 86170753739202532 | -61052572.0 | +| zrb | -6703882251128566584 | 909562636.0 | +| zrb | -4190165201427712175 | -975598861.0 | +| zrb | -2663772559740694289 | 245833700.0 | +| zrb | 50093696951023963 | -61052572.0 | +| zrb | 86170753739202532 | -975598861.0 | ++------+----------------------+--------------------+ +got: +------+----------------------+--------------------+ +| b | c | avg(fuzz_table.a) | ++------+----------------------+--------------------+ +| | | 190045104.85714287 | +| | -6703882251128566584 | 266433634.66666666 | +| | -4348034159383376037 | 96186129.47058824 | +| | -4190165201427712175 | -110693327.8 | +| | -2663772559740694289 | 198371834.08333334 | +| | 50093696951023963 | 173562137.5 | +| | 86170753739202532 | 199247264.0909091 | +| | 2324496022054398308 | 491427290.3 | +| adj | | -61052572.0 | +| adj | -6703882251128566584 | 20063192.0 | +| adj | -4190165201427712175 | 245833700.0 | +| adj | 50093696951023963 | 577698168.0 | +| adj | 2324496022054398308 | 20063192.0 | +| ae | -6703882251128566584 | 245833700.0 | +| ae | -4348034159383376037 | -975598861.0 | +| ae | 86170753739202532 | 541213904.0 | +| af | | | +| af | -4348034159383376037 | 20063192.0 | +| af | 50093696951023963 | -217192478.5 | +| akui | | 393523802.0 | +| akui | -6703882251128566584 | 909562636.0 | +| akui | -2663772559740694289 | 909562636.0 | +| akui | 50093696951023963 | | +| alc | -2663772559740694289 | 541213904.0 | +| alc | 50093696951023963 | 541213904.0 | +| am | | -975598861.0 | +| am | -6703882251128566584 | 541213904.0 | +| am | -4348034159383376037 | 393523802.0 | +| am | -4190165201427712175 | 909562636.0 | +| am | -2663772559740694289 | 245833700.0 | +| am | 86170753739202532 | -61052572.0 | +| amn | | 561675792.5 | +| amn | -4348034159383376037 | -61052572.0 | +| amn | -2663772559740694289 | 582137681.0 | +| amn | 50093696951023963 | 909562636.0 | +| amn | 2324496022054398308 | 909562636.0 | +| aomx | | 582137681.0 | +| aomx | -6703882251128566584 | -975598861.0 | +| aomx | -2663772559740694289 | 393523802.0 | +| aomx | 86170753739202532 | 20063192.0 | +| aor | -4348034159383376037 | 20063192.0 | +| aor | -4190165201427712175 | -196730590.0 | +| aor | 86170753739202532 | 20063192.0 | +| aor | 2324496022054398308 | 541213904.0 | +| ap | | 245833700.0 | +| ap | -6703882251128566584 | -975598861.0 | +| ap | -4190165201427712175 | 909562636.0 | +| ap | -2663772559740694289 | 541213904.0 | +| ap | 50093696951023963 | 290869492.25 | +| ap | 86170753739202532 | -61052572.0 | +| ap | 2324496022054398308 | 541213904.0 | +| aq | | -975598861.0 | +| aq | 50093696951023963 | 20063192.0 | +| aq | 2324496022054398308 | 582137681.0 | +| arg | -6703882251128566584 | -364882580.5 | +| arg | -4190165201427712175 | | +| arg | 86170753739202532 | 245833700.0 | +| ast | -4190165201427712175 | 245833700.0 | +| ast | 86170753739202532 | 240080666.0 | +| avy | 50093696951023963 | 909562636.0 | +| avy | 86170753739202532 | -61052572.0 | +| b | -4190165201427712175 | -975598861.0 | +| b | 86170753739202532 | 541213904.0 | +| b | 2324496022054398308 | 132948446.0 | +| bf | | 269036932.0 | +| bf | -4348034159383376037 | -61052572.0 | +| bf | -4190165201427712175 | -975598861.0 | +| bf | -2663772559740694289 | 92390564.0 | +| bf | 50093696951023963 | -975598861.0 | +| bf | 86170753739202532 | -975598861.0 | +| bn | | 245833700.0 | +| bn | -4348034159383376037 | -975598861.0 | +| bn | 86170753739202532 | -196730590.0 | +| bn | 2324496022054398308 | -364882580.5 | +| bnfr | | 909562636.0 | +| bnfr | -4348034159383376037 | 424255032.0 | +| bnfr | 50093696951023963 | 909562636.0 | +| bnfr | 86170753739202532 | 541213904.0 | +| bnfr | 2324496022054398308 | 143538276.0 | +| bxhl | | -61052572.0 | +| bxhl | -6703882251128566584 | 582137681.0 | +| bxhl | -4190165201427712175 | 245833700.0 | +| bxhl | -2663772559740694289 | -975598861.0 | +| bxhl | 2324496022054398308 | 541213904.0 | +| c | | 240080666.0 | +| c | 50093696951023963 | -61052572.0 | +| cnju | | 909562636.0 | +| cnju | -6703882251128566584 | -124465996.0 | +| cnju | -4348034159383376037 | -364882580.5 | +| cnju | -4190165201427712175 | 582137681.0 | +| csa | | -61052572.0 | +| csa | 50093696951023963 | 725388270.0 | +| csa | 86170753739202532 | -975598861.0 | +| d | -4348034159383376037 | 909562636.0 | +| d | -2663772559740694289 | 464812914.0 | +| d | 50093696951023963 | -20494690.0 | +| dq | -6703882251128566584 | -975598861.0 | +| dq | -4348034159383376037 | -61052572.0 | +| dq | 86170753739202532 | -975598861.0 | +| dv | | 909562636.0 | +| dv | 50093696951023963 | 541213904.0 | +| dv | 86170753739202532 | 725388270.0 | +| dv | 2324496022054398308 | | +| e | | -975598861.0 | +| e | -6703882251128566584 | 92390564.0 | +| e | -4348034159383376037 | 245833700.0 | +| e | -4190165201427712175 | -33018112.5 | +| e | -2663772559740694289 | 541213904.0 | +| e | 50093696951023963 | 132948446.0 | +| e | 86170753739202532 | 909562636.0 | +| ejzf | | 541213904.0 | +| ejzf | -4190165201427712175 | 245833700.0 | +| ejzf | -2663772559740694289 | 909562636.0 | +| ejzf | 50093696951023963 | -975598861.0 | +| ejzf | 86170753739202532 | 745850158.5 | +| ejzf | 2324496022054398308 | 245833700.0 | +| en | -4348034159383376037 | 20063192.0 | +| en | -4190165201427712175 | -477767834.5 | +| en | -2663772559740694289 | 20063192.0 | +| en | 2324496022054398308 | 20063192.0 | +| eo | -4348034159383376037 | -61052572.0 | +| eo | -2663772559740694289 | 541213904.0 | +| eo | 86170753739202532 | 20063192.0 | +| etl | -6703882251128566584 | 245833700.0 | +| etl | -4348034159383376037 | -61052572.0 | +| etl | -4190165201427712175 | -61052572.0 | +| etl | -2663772559740694289 | 541213904.0 | +| etl | 50093696951023963 | -124465996.0 | +| etl | 86170753739202532 | 909562636.0 | +| eu | -6703882251128566584 | | +| eu | -4190165201427712175 | 909562636.0 | +| eu | 86170753739202532 | 245833700.0 | +| eu | 2324496022054398308 | -975598861.0 | +| eur | 50093696951023963 | 424255032.0 | +| f | | 424255032.0 | +| f | -4348034159383376037 | -165145843.0 | +| f | -2663772559740694289 | 245833700.0 | +| f | 50093696951023963 | 245833700.0 | +| ffw | -4190165201427712175 | | +| ffw | -2663772559740694289 | 909562636.0 | +| ffw | 50093696951023963 | 245833700.0 | +| ffw | 86170753739202532 | 909562636.0 | +| fgmm | | 245833700.0 | +| fgmm | -4348034159383376037 | 20063192.0 | +| fgmm | 86170753739202532 | 909562636.0 | +| fgmm | 2324496022054398308 | 909562636.0 | +| fl | | 909562636.0 | +| fl | -6703882251128566584 | 909562636.0 | +| fl | -4348034159383376037 | -975598861.0 | +| fl | 50093696951023963 | 166741508.0 | +| fl | 86170753739202532 | | +| focg | -4348034159383376037 | 577698168.0 | +| focg | -4190165201427712175 | 245833700.0 | +| focg | -2663772559740694289 | 20063192.0 | +| focg | 50093696951023963 | 49250908.0 | +| focg | 86170753739202532 | -196730590.0 | +| ftyd | -6703882251128566584 | | +| ftyd | -4348034159383376037 | 582137681.0 | +| ftyd | -4190165201427712175 | 582137681.0 | +| ftyd | -2663772559740694289 | 245833700.0 | +| ftyd | 50093696951023963 | 413985690.5 | +| ftyd | 86170753739202532 | -518325716.5 | +| g | | -217192478.5 | +| g | -4190165201427712175 | 561675792.5 | +| g | -2663772559740694289 | 20063192.0 | +| g | 50093696951023963 | -61052572.0 | +| g | 86170753739202532 | 582137681.0 | +| g | 2324496022054398308 | 582137681.0 | +| ga | -4348034159383376037 | 554855163.0 | +| ga | -4190165201427712175 | 909562636.0 | +| ga | 86170753739202532 | 541213904.0 | +| gay | -4348034159383376037 | 20063192.0 | +| gay | -4190165201427712175 | -975598861.0 | +| gay | -2663772559740694289 | -33018112.5 | +| gay | 50093696951023963 | | +| gay | 2324496022054398308 | 20063192.0 | +| gbju | -4348034159383376037 | -33018112.5 | +| ghax | -6703882251128566584 | 582137681.0 | +| ghax | -4348034159383376037 | | +| ghax | -4190165201427712175 | -61052572.0 | +| ghax | -2663772559740694289 | 245833700.0 | +| ghax | 50093696951023963 | 20063192.0 | +| ghax | 86170753739202532 | 541213904.0 | +| gjcd | -6703882251128566584 | -61052572.0 | +| gjcd | -2663772559740694289 | 909562636.0 | +| gjcd | 2324496022054398308 | -61052572.0 | +| gjln | | 725388270.0 | +| gjln | -6703882251128566584 | 725388270.0 | +| gjln | -4348034159383376037 | 260542554.5 | +| gjln | -4190165201427712175 | 301100436.5 | +| gjln | 86170753739202532 | | +| gjln | 2324496022054398308 | 20063192.0 | +| gl | -4190165201427712175 | 20063192.0 | +| gl | 50093696951023963 | 245833700.0 | +| gl | 2324496022054398308 | -61052572.0 | +| gma | 50093696951023963 | 393523802.0 | +| gmuj | -6703882251128566584 | -518325716.5 | +| gmuj | -2663772559740694289 | 132948446.0 | +| gmuj | 50093696951023963 | -518325716.5 | +| gmuj | 86170753739202532 | -975598861.0 | +| go | -6703882251128566584 | 725388270.0 | +| go | -4348034159383376037 | 424255032.0 | +| go | 2324496022054398308 | 413985690.5 | +| gpx | | 909562636.0 | +| gpx | -6703882251128566584 | -61052572.0 | +| gpx | -4190165201427712175 | -196730590.0 | +| gpx | -2663772559740694289 | 245833700.0 | +| gpx | 50093696951023963 | 582137681.0 | +| gpx | 2324496022054398308 | 245833700.0 | +| gqfo | -6703882251128566584 | | +| gqfo | -4190165201427712175 | 541213904.0 | +| gqfo | 86170753739202532 | 582137681.0 | +| gqfo | 2324496022054398308 | -477767834.5 | +| gv | -4348034159383376037 | 561675792.5 | +| gvt | -2663772559740694289 | 909562636.0 | +| gvt | 86170753739202532 | 245833700.0 | +| gvt | 2324496022054398308 | -61052572.0 | +| h | | 582137681.0 | +| h | -6703882251128566584 | -477767834.5 | +| h | -4348034159383376037 | 490279910.6666667 | +| h | -4190165201427712175 | 301100436.5 | +| h | -2663772559740694289 | 568496422.0 | +| h | 50093696951023963 | 29686225.75 | +| h | 2324496022054398308 | 20063192.0 | +| hb | -4190165201427712175 | -20494690.0 | +| hb | -2663772559740694289 | 582137681.0 | +| hb | 86170753739202532 | -61052572.0 | +| hepn | -4190165201427712175 | 20063192.0 | +| hepn | 2324496022054398308 | 582137681.0 | +| hesx | -4348034159383376037 | 393523802.0 | +| hesx | 50093696951023963 | 541213904.0 | +| hjzo | | 561675792.5 | +| hjzo | 86170753739202532 | 909562636.0 | +| hkyo | -4348034159383376037 | -975598861.0 | +| hkyo | -2663772559740694289 | | +| hkyo | 50093696951023963 | 541213904.0 | +| hla | | 541213904.0 | +| hla | -6703882251128566584 | 909562636.0 | +| hla | -4190165201427712175 | 20063192.0 | +| hlpb | 2324496022054398308 | 582137681.0 | +| hlyj | -6703882251128566584 | 92390564.0 | +| hlyj | -2663772559740694289 | 688319657.3333334 | +| hlyj | 50093696951023963 | 245833700.0 | +| hmo | -4190165201427712175 | 582137681.0 | +| hmo | 50093696951023963 | 464812914.0 | +| hqdy | -2663772559740694289 | 20063192.0 | +| hqdy | 2324496022054398308 | | +| i | | -61052572.0 | +| i | 86170753739202532 | 568496422.0 | +| i | 2324496022054398308 | 408889417.0 | +| iabz | | 245833700.0 | +| iabz | -6703882251128566584 | 132948446.0 | +| iabz | -4190165201427712175 | 909562636.0 | +| iabz | -2663772559740694289 | 132948446.0 | +| iabz | 86170753739202532 | 725388270.0 | +| ijo | | -61052572.0 | +| ijo | -4190165201427712175 | 316563006.6666667 | +| ijo | -2663772559740694289 | 582137681.0 | +| ijo | 50093696951023963 | 582137681.0 | +| ijo | 2324496022054398308 | | +| ilvy | | 20063192.0 | +| ilvy | -6703882251128566584 | -61052572.0 | +| ilvy | -2663772559740694289 | | +| ilvy | 50093696951023963 | 541213904.0 | +| ilvy | 86170753739202532 | 541213904.0 | +| is | -6703882251128566584 | 255639603.0 | +| is | -4348034159383376037 | 340458412.0 | +| is | -4190165201427712175 | 541213904.0 | +| is | 50093696951023963 | -975598861.0 | +| is | 2324496022054398308 | 245833700.0 | +| it | -6703882251128566584 | 541213904.0 | +| it | -4190165201427712175 | -61052572.0 | +| it | 50093696951023963 | 577698168.0 | +| izuy | -6703882251128566584 | | +| izuy | -2663772559740694289 | 245833700.0 | +| izuy | 50093696951023963 | 240080666.0 | +| izuy | 86170753739202532 | 541213904.0 | +| j | | 35609649.0 | +| j | -6703882251128566584 | 909562636.0 | +| j | -2663772559740694289 | 41953979.0 | +| j | 50093696951023963 | 541213904.0 | +| j | 86170753739202532 | -61052572.0 | +| jb | -4190165201427712175 | 20063192.0 | +| jb | -2663772559740694289 | -518325716.5 | +| jb | 50093696951023963 | 245833700.0 | +| jb | 86170753739202532 | -61052572.0 | +| jb | 2324496022054398308 | 260542554.5 | +| jep | | -975598861.0 | +| jep | -6703882251128566584 | 582137681.0 | +| jep | -4348034159383376037 | 582137681.0 | +| jep | -4190165201427712175 | 245833700.0 | +| jep | -2663772559740694289 | | +| jji | -6703882251128566584 | 245833700.0 | +| jji | -2663772559740694289 | 541213904.0 | +| jji | 2324496022054398308 | 245833700.0 | +| jqy | -6703882251128566584 | 582137681.0 | +| jqy | -4348034159383376037 | 301100436.5 | +| jqy | 50093696951023963 | 381138259.0 | +| jqy | 86170753739202532 | -217192478.5 | +| juf | -2663772559740694289 | 582137681.0 | +| jvho | -2663772559740694289 | 582137681.0 | +| jvho | 2324496022054398308 | | +| k | | 541213904.0 | +| k | -6703882251128566584 | -338862747.0 | +| k | -4348034159383376037 | 245833700.0 | +| k | -4190165201427712175 | 143538276.0 | +| k | -2663772559740694289 | 541213904.0 | +| k | 50093696951023963 | 245833700.0 | +| k | 86170753739202532 | 582137681.0 | +| k | 2324496022054398308 | 413985690.5 | +| kufw | -4190165201427712175 | -61052572.0 | +| kufw | -2663772559740694289 | 301100436.5 | +| kufw | 50093696951023963 | 20063192.0 | +| kufw | 86170753739202532 | | +| kufw | 2324496022054398308 | 245833700.0 | +| kyr | | 582137681.0 | +| kyr | -6703882251128566584 | 582137681.0 | +| kyr | -4190165201427712175 | 541213904.0 | +| kyr | -2663772559740694289 | 582137681.0 | +| kyr | 50093696951023963 | 582137681.0 | +| kyr | 86170753739202532 | -61052572.0 | +| kzp | -6703882251128566584 | 245833700.0 | +| kzp | -4348034159383376037 | 92390564.0 | +| kzp | 50093696951023963 | 582137681.0 | +| kzp | 86170753739202532 | 909562636.0 | +| l | | 558491995.5 | +| l | -6703882251128566584 | 577698168.0 | +| l | -4348034159383376037 | 95320028.0 | +| l | -2663772559740694289 | 301100436.5 | +| l | 50093696951023963 | 186514556.0 | +| l | 86170753739202532 | 20063192.0 | +| l | 2324496022054398308 | 24551555.0 | +| lasw | -4190165201427712175 | 582137681.0 | +| lasw | -2663772559740694289 | -975598861.0 | +| lasw | 2324496022054398308 | 245833700.0 | +| law | -4348034159383376037 | 582137681.0 | +| law | -4190165201427712175 | 541213904.0 | +| law | -2663772559740694289 | | +| law | 50093696951023963 | 245833700.0 | +| law | 2324496022054398308 | -975598861.0 | +| lh | -6703882251128566584 | 541213904.0 | +| lh | -4190165201427712175 | -477767834.5 | +| lh | 50093696951023963 | | +| lh | 2324496022054398308 | 20063192.0 | +| lkf | -4190165201427712175 | 464812914.0 | +| lkf | -2663772559740694289 | -518325716.5 | +| lma | | -975598861.0 | +| lma | 50093696951023963 | -975598861.0 | +| lma | 86170753739202532 | 541213904.0 | +| lma | 2324496022054398308 | -975598861.0 | +| lxg | | -975598861.0 | +| lxg | -6703882251128566584 | 909562636.0 | +| lxg | -4348034159383376037 | 582137681.0 | +| lxg | 50093696951023963 | 20063192.0 | +| lxg | 86170753739202532 | -61052572.0 | +| lxg | 2324496022054398308 | 541213904.0 | +| m | 50093696951023963 | 582137681.0 | +| m | 86170753739202532 | 582137681.0 | +| m | 2324496022054398308 | 245833700.0 | +| mm | -4348034159383376037 | 582137681.0 | +| mm | -4190165201427712175 | -975598861.0 | +| mm | -2663772559740694289 | -975598861.0 | +| mm | 50093696951023963 | 245833700.0 | +| mm | 86170753739202532 | 132948446.0 | +| mm | 2324496022054398308 | 582137681.0 | +| mmxt | | 582137681.0 | +| mmxt | -4348034159383376037 | -338862747.0 | +| mmxt | -4190165201427712175 | 245833700.0 | +| mmxt | 86170753739202532 | | +| mmxt | 2324496022054398308 | 92390564.0 | +| nie | -4190165201427712175 | -975598861.0 | +| nie | 50093696951023963 | 541213904.0 | +| non | | 413985690.5 | +| non | -2663772559740694289 | 582137681.0 | +| non | 50093696951023963 | -975598861.0 | +| non | 86170753739202532 | 20063192.0 | +| non | 2324496022054398308 | 92390564.0 | +| nta | -6703882251128566584 | -975598861.0 | +| nta | -4348034159383376037 | 245833700.0 | +| nz | | 541213904.0 | +| nz | -6703882251128566584 | 301100436.5 | +| nz | -4348034159383376037 | 582137681.0 | +| nz | 86170753739202532 | 582137681.0 | +| nz | 2324496022054398308 | -975598861.0 | +| o | -6703882251128566584 | 582137681.0 | +| o | -4190165201427712175 | 245833700.0 | +| o | -2663772559740694289 | 909562636.0 | +| o | 2324496022054398308 | 541213904.0 | +| obh | -6703882251128566584 | 909562636.0 | +| obh | -4348034159383376037 | 582137681.0 | +| obh | -4190165201427712175 | 541213904.0 | +| obh | -2663772559740694289 | 909562636.0 | +| obh | 86170753739202532 | -975598861.0 | +| obh | 2324496022054398308 | -975598861.0 | +| on | -6703882251128566584 | 280638548.0 | +| on | 50093696951023963 | 582137681.0 | +| on | 2324496022054398308 | 909562636.0 | +| os | -6703882251128566584 | 301100436.5 | +| os | -4348034159383376037 | | +| os | 50093696951023963 | 677638073.6666666 | +| pao | | -61052572.0 | +| pao | 2324496022054398308 | | +| pd | | -20494690.0 | +| pd | -6703882251128566584 | 541213904.0 | +| pd | -4190165201427712175 | 245833700.0 | +| pd | 50093696951023963 | 20063192.0 | +| pd | 2324496022054398308 | 582137681.0 | +| phdg | -4190165201427712175 | 909562636.0 | +| phdg | -2663772559740694289 | 20063192.0 | +| phdg | 50093696951023963 | 582137681.0 | +| phdg | 2324496022054398308 | -975598861.0 | +| pi | -2663772559740694289 | 541213904.0 | +| pi | 50093696951023963 | -20494690.0 | +| pi | 86170753739202532 | 20063192.0 | +| pkhe | | 245833700.0 | +| pkhe | -4348034159383376037 | 541213904.0 | +| pkhe | 2324496022054398308 | -975598861.0 | +| poz | | 20063192.0 | +| poz | -4190165201427712175 | 541213904.0 | +| poz | -2663772559740694289 | | +| poz | 86170753739202532 | -364882580.5 | +| ppvx | -6703882251128566584 | 20063192.0 | +| ppvx | -4348034159383376037 | | +| ppvx | -4190165201427712175 | | +| ppvx | 2324496022054398308 | -61052572.0 | +| qs | -6703882251128566584 | -975598861.0 | +| qs | 2324496022054398308 | -364882580.5 | +| qt | -6703882251128566584 | 582137681.0 | +| qt | -4190165201427712175 | -61052572.0 | +| qt | -2663772559740694289 | 909562636.0 | +| qt | 86170753739202532 | -975598861.0 | +| qt | 2324496022054398308 | 424255032.0 | +| rcdj | -4348034159383376037 | -61052572.0 | +| rcdj | 50093696951023963 | | +| rcdj | 86170753739202532 | 909562636.0 | +| rcdj | 2324496022054398308 | -61052572.0 | +| rcz | -4348034159383376037 | 245833700.0 | +| ria | | 909562636.0 | +| ria | -6703882251128566584 | | +| ria | -4348034159383376037 | 745850158.5 | +| ria | -2663772559740694289 | 541213904.0 | +| rlmv | | 541213904.0 | +| rlmv | -2663772559740694289 | 393523802.0 | +| rlmv | 50093696951023963 | 541213904.0 | +| rlmv | 2324496022054398308 | 20063192.0 | +| s | | | +| s | -6703882251128566584 | 582137681.0 | +| s | -4348034159383376037 | 262485830.66666666 | +| s | -4190165201427712175 | 245833700.0 | +| s | -2663772559740694289 | 582137681.0 | +| s | 50093696951023963 | 909562636.0 | +| s | 2324496022054398308 | -337249212.25 | +| sac | -4190165201427712175 | -61052572.0 | +| sac | -2663772559740694289 | 909562636.0 | +| sac | 50093696951023963 | 582137681.0 | +| sco | -2663772559740694289 | -20494690.0 | +| sco | 50093696951023963 | | +| smh | | 582137681.0 | +| smh | -6703882251128566584 | 541213904.0 | +| smh | -4348034159383376037 | -61052572.0 | +| smh | 2324496022054398308 | -61052572.0 | +| sr | -4348034159383376037 | 20063192.0 | +| sr | -2663772559740694289 | -975598861.0 | +| sr | 2324496022054398308 | 20063192.0 | +| suk | | 909562636.0 | +| suk | -4348034159383376037 | -975598861.0 | +| suk | 2324496022054398308 | 340458412.0 | +| sv | -6703882251128566584 | 245833700.0 | +| sv | -4190165201427712175 | 260542554.5 | +| sv | -2663772559740694289 | 541213904.0 | +| t | -6703882251128566584 | -62400957.25 | +| t | -4348034159383376037 | | +| t | -4190165201427712175 | 559456036.0 | +| t | -2663772559740694289 | -518325716.5 | +| t | 50093696951023963 | 582137681.0 | +| t | 86170753739202532 | -6975396.0 | +| t | 2324496022054398308 | 245833700.0 | +| taz | -4190165201427712175 | -975598861.0 | +| taz | 50093696951023963 | 245833700.0 | +| taz | 86170753739202532 | 245833700.0 | +| taz | 2324496022054398308 | 909562636.0 | +| usaq | | 424255032.0 | +| usaq | -6703882251128566584 | 245833700.0 | +| usaq | -2663772559740694289 | 582137681.0 | +| usaq | 86170753739202532 | 20063192.0 | +| usaq | 2324496022054398308 | -975598861.0 | +| uzr | | -196730590.0 | +| uzr | -6703882251128566584 | -61052572.0 | +| uzr | 50093696951023963 | 464812914.0 | +| uzr | 2324496022054398308 | | +| v | | 193780096.0 | +| v | -6703882251128566584 | 245833700.0 | +| v | -4348034159383376037 | 909562636.0 | +| v | -4190165201427712175 | -236567323.0 | +| v | -2663772559740694289 | -469994606.0 | +| v | 50093696951023963 | 909562636.0 | +| v | 86170753739202532 | 582137681.0 | +| v | 2324496022054398308 | 20063192.0 | +| vz | -6703882251128566584 | 280638548.0 | +| vz | -4348034159383376037 | -61052572.0 | +| vz | -2663772559740694289 | 20063192.0 | +| vz | 50093696951023963 | -61052572.0 | +| vzxl | -4348034159383376037 | 132948446.0 | +| vzxl | 50093696951023963 | 541213904.0 | +| vzxl | 86170753739202532 | | +| vzxl | 2324496022054398308 | 541213904.0 | +| wc | -6703882251128566584 | 245833700.0 | +| wc | -4348034159383376037 | 20063192.0 | +| wc | -4190165201427712175 | 20063192.0 | +| wc | 50093696951023963 | -61052572.0 | +| whvg | | 582137681.0 | +| whvg | -4190165201427712175 | 582137681.0 | +| whvg | 50093696951023963 | 245833700.0 | +| whvg | 2324496022054398308 | 909562636.0 | +| wp | -6703882251128566584 | -975598861.0 | +| wp | -2663772559740694289 | -975598861.0 | +| wp | 50093696951023963 | 582137681.0 | +| wp | 86170753739202532 | 245833700.0 | +| wp | 2324496022054398308 | -33018112.5 | +| x | | 424255032.0 | +| x | -6703882251128566584 | -61052572.0 | +| x | -4348034159383376037 | -61052572.0 | +| x | -4190165201427712175 | 20063192.0 | +| x | -2663772559740694289 | 354099671.0 | +| x | 50093696951023963 | 442753836.0 | +| x | 86170753739202532 | -61052572.0 | +| x | 2324496022054398308 | -364882580.5 | +| xn | | -61052572.0 | +| xn | -6703882251128566584 | 20063192.0 | +| xn | -4190165201427712175 | -975598861.0 | +| xn | 86170753739202532 | 413985690.5 | +| yck | | 541213904.0 | +| yck | -6703882251128566584 | -670750098.0 | +| yck | -4348034159383376037 | -975598861.0 | +| yck | -2663772559740694289 | | +| yck | 50093696951023963 | 245833700.0 | +| yck | 86170753739202532 | 541213904.0 | +| yck | 2324496022054398308 | 245833700.0 | +| ye | | 245833700.0 | +| ye | -4190165201427712175 | -61052572.0 | +| ye | -2663772559740694289 | 92390564.0 | +| ye | 86170753739202532 | -975598861.0 | +| yi | -6703882251128566584 | 541213904.0 | +| yi | 2324496022054398308 | -975598861.0 | +| yl | -6703882251128566584 | 909562636.0 | +| yl | -4190165201427712175 | 909562636.0 | +| yl | 86170753739202532 | -61052572.0 | +| yna | | -975598861.0 | +| yna | -2663772559740694289 | 245833700.0 | +| yna | 86170753739202532 | 424255032.0 | +| yna | 2324496022054398308 | 20063192.0 | +| yq | -4348034159383376037 | 20063192.0 | +| yq | -2663772559740694289 | 240080666.0 | +| yq | 2324496022054398308 | 582137681.0 | +| z | -4348034159383376037 | -61052572.0 | +| z | -4190165201427712175 | -61052572.0 | +| z | -2663772559740694289 | 909562636.0 | +| z | 50093696951023963 | -61052572.0 | +| z | 86170753739202532 | 20063192.0 | +| z | 2324496022054398308 | -975598861.0 | +| zdwq | | 541213904.0 | +| zdwq | -4348034159383376037 | -61052572.0 | +| zdwq | -2663772559740694289 | 20063192.0 | +| zdwq | 86170753739202532 | | +| zdwq | 2324496022054398308 | 132948446.0 | +| zizo | | 909562636.0 | +| zizo | -4190165201427712175 | 582137681.0 | +| zizo | 86170753739202532 | -61052572.0 | +| zizo | 2324496022054398308 | 909562636.0 | +| zkt | | 541213904.0 | +| zkt | -6703882251128566584 | 245833700.0 | +| zkt | -4348034159383376037 | -61052572.0 | +| zkt | -4190165201427712175 | 909562636.0 | +| zkt | -2663772559740694289 | 245833700.0 | +| zkt | 86170753739202532 | 909562636.0 | +| zo | 86170753739202532 | -61052572.0 | +| zrb | -6703882251128566584 | 909562636.0 | +| zrb | -4190165201427712175 | | +| zrb | -4190165201427712175 | -975598861.0 | +| zrb | -2663772559740694289 | 245833700.0 | +| zrb | 50093696951023963 | -61052572.0 | +| zrb | 86170753739202532 | -975598861.0 | ++------+----------------------+--------------------+ +input: +------------+------+----------------------+------------+ +| a | b | c | d | ++------------+------+----------------------+------------+ +| -61052572 | | | -61052572 | +| 582137681 | | | 582137681 | +| 20063192 | | | 20063192 | +| -61052572 | | | -61052572 | +| -61052572 | | | -61052572 | +| 582137681 | | | 582137681 | +| -61052572 | | | -61052572 | +| -975598861 | | | -975598861 | +| 20063192 | | | 20063192 | +| 909562636 | | | 909562636 | +| | | | | +| 582137681 | | | 582137681 | +| 582137681 | | | 582137681 | +| 582137681 | | | 582137681 | +| 20063192 | | | 20063192 | +| | | -6703882251128566584 | | +| -61052572 | | -6703882251128566584 | -61052572 | +| -61052572 | | -6703882251128566584 | -61052572 | +| | | -6703882251128566584 | | +| | | -6703882251128566584 | | +| -61052572 | | -6703882251128566584 | -61052572 | +| 909562636 | | -6703882251128566584 | 909562636 | +| 909562636 | | -6703882251128566584 | 909562636 | +| 909562636 | | -6703882251128566584 | 909562636 | +| 245833700 | | -6703882251128566584 | 245833700 | +| 582137681 | | -6703882251128566584 | 582137681 | +| -975598861 | | -6703882251128566584 | -975598861 | +| | | -6703882251128566584 | | +| 20063192 | | -4348034159383376037 | 20063192 | +| 20063192 | | -4348034159383376037 | 20063192 | +| | | -4348034159383376037 | | +| -975598861 | | -4348034159383376037 | -975598861 | +| 20063192 | | -4348034159383376037 | 20063192 | +| -61052572 | | -4348034159383376037 | -61052572 | +| 909562636 | | -4348034159383376037 | 909562636 | +| 909562636 | | -4348034159383376037 | 909562636 | +| -975598861 | | -4348034159383376037 | -975598861 | +| -61052572 | | -4348034159383376037 | -61052572 | +| 20063192 | | -4348034159383376037 | 20063192 | +| 582137681 | | -4348034159383376037 | 582137681 | +| 582137681 | | -4348034159383376037 | 582137681 | +| 245833700 | | -4348034159383376037 | 245833700 | +| | | -4348034159383376037 | | +| -61052572 | | -4348034159383376037 | -61052572 | +| -61052572 | | -4348034159383376037 | -61052572 | +| 582137681 | | -4348034159383376037 | 582137681 | +| -61052572 | | -4348034159383376037 | -61052572 | +| | | -4190165201427712175 | | +| -975598861 | | -4190165201427712175 | -975598861 | +| -975598861 | | -4190165201427712175 | -975598861 | +| -61052572 | | -4190165201427712175 | -61052572 | +| -975598861 | | -4190165201427712175 | -975598861 | +| 245833700 | | -4190165201427712175 | 245833700 | +| 245833700 | | -4190165201427712175 | 245833700 | +| 245833700 | | -4190165201427712175 | 245833700 | +| 582137681 | | -4190165201427712175 | 582137681 | +| 20063192 | | -4190165201427712175 | 20063192 | +| 541213904 | | -4190165201427712175 | 541213904 | +| 582137681 | | -2663772559740694289 | 582137681 | +| 541213904 | | -2663772559740694289 | 541213904 | +| 20063192 | | -2663772559740694289 | 20063192 | +| | | -2663772559740694289 | | +| 582137681 | | -2663772559740694289 | 582137681 | +| 20063192 | | -2663772559740694289 | 20063192 | +| 245833700 | | -2663772559740694289 | 245833700 | +| -61052572 | | -2663772559740694289 | -61052572 | +| -975598861 | | -2663772559740694289 | -975598861 | +| | | -2663772559740694289 | | +| 582137681 | | -2663772559740694289 | 582137681 | +| 909562636 | | -2663772559740694289 | 909562636 | +| 909562636 | | -2663772559740694289 | 909562636 | +| | | -2663772559740694289 | | +| -975598861 | | -2663772559740694289 | -975598861 | +| 20063192 | | 50093696951023963 | 20063192 | +| -61052572 | | 50093696951023963 | -61052572 | +| 582137681 | | 50093696951023963 | 582137681 | +| -61052572 | | 50093696951023963 | -61052572 | +| 541213904 | | 50093696951023963 | 541213904 | +| | | 50093696951023963 | | +| | | 50093696951023963 | | +| 20063192 | | 50093696951023963 | 20063192 | +| 582137681 | | 86170753739202532 | 582137681 | +| 909562636 | | 86170753739202532 | 909562636 | +| 20063192 | | 86170753739202532 | 20063192 | +| 582137681 | | 86170753739202532 | 582137681 | +| 245833700 | | 86170753739202532 | 245833700 | +| 909562636 | | 86170753739202532 | 909562636 | +| 20063192 | | 86170753739202532 | 20063192 | +| -61052572 | | 86170753739202532 | -61052572 | +| | | 86170753739202532 | | +| -975598861 | | 86170753739202532 | -975598861 | +| 20063192 | | 86170753739202532 | 20063192 | +| -61052572 | | 86170753739202532 | -61052572 | +| 909562636 | | 2324496022054398308 | 909562636 | +| 541213904 | | 2324496022054398308 | 541213904 | +| 582137681 | | 2324496022054398308 | 582137681 | +| -61052572 | | 2324496022054398308 | -61052572 | +| 20063192 | | 2324496022054398308 | 20063192 | +| 582137681 | | 2324496022054398308 | 582137681 | +| 909562636 | | 2324496022054398308 | 909562636 | +| 909562636 | | 2324496022054398308 | 909562636 | +| 582137681 | | 2324496022054398308 | 582137681 | +| -61052572 | | 2324496022054398308 | -61052572 | +| -61052572 | adj | | -61052572 | +| 20063192 | adj | -6703882251128566584 | 20063192 | +| 245833700 | adj | -4190165201427712175 | 245833700 | +| 909562636 | adj | 50093696951023963 | 909562636 | +| 245833700 | adj | 50093696951023963 | 245833700 | +| 20063192 | adj | 2324496022054398308 | 20063192 | +| 245833700 | ae | -6703882251128566584 | 245833700 | +| | ae | -4348034159383376037 | | +| -975598861 | ae | -4348034159383376037 | -975598861 | +| 541213904 | ae | 86170753739202532 | 541213904 | +| | af | | | +| 20063192 | af | -4348034159383376037 | 20063192 | +| -975598861 | af | 50093696951023963 | -975598861 | +| 541213904 | af | 50093696951023963 | 541213904 | +| 541213904 | akui | | 541213904 | +| 245833700 | akui | | 245833700 | +| | akui | -6703882251128566584 | | +| 909562636 | akui | -6703882251128566584 | 909562636 | +| 909562636 | akui | -2663772559740694289 | 909562636 | +| | akui | 50093696951023963 | | +| 541213904 | alc | -2663772559740694289 | 541213904 | +| 541213904 | alc | 50093696951023963 | 541213904 | +| -975598861 | am | | -975598861 | +| -975598861 | am | | -975598861 | +| | am | | | +| 541213904 | am | -6703882251128566584 | 541213904 | +| 541213904 | am | -4348034159383376037 | 541213904 | +| 245833700 | am | -4348034159383376037 | 245833700 | +| 909562636 | am | -4190165201427712175 | 909562636 | +| | am | -4190165201427712175 | | +| 245833700 | am | -2663772559740694289 | 245833700 | +| -61052572 | am | 86170753739202532 | -61052572 | +| 582137681 | amn | | 582137681 | +| 541213904 | amn | | 541213904 | +| -61052572 | amn | -4348034159383376037 | -61052572 | +| 582137681 | amn | -2663772559740694289 | 582137681 | +| 909562636 | amn | 50093696951023963 | 909562636 | +| 909562636 | amn | 2324496022054398308 | 909562636 | +| 582137681 | aomx | | 582137681 | +| -975598861 | aomx | -6703882251128566584 | -975598861 | +| 245833700 | aomx | -2663772559740694289 | 245833700 | +| 541213904 | aomx | -2663772559740694289 | 541213904 | +| 20063192 | aomx | 86170753739202532 | 20063192 | +| 20063192 | aor | -4348034159383376037 | 20063192 | +| -975598861 | aor | -4190165201427712175 | -975598861 | +| 582137681 | aor | -4190165201427712175 | 582137681 | +| | aor | 86170753739202532 | | +| 20063192 | aor | 86170753739202532 | 20063192 | +| 541213904 | aor | 2324496022054398308 | 541213904 | +| 541213904 | aor | 2324496022054398308 | 541213904 | +| 245833700 | ap | | 245833700 | +| | ap | -6703882251128566584 | | +| -975598861 | ap | -6703882251128566584 | -975598861 | +| 909562636 | ap | -4190165201427712175 | 909562636 | +| 541213904 | ap | -2663772559740694289 | 541213904 | +| 541213904 | ap | 50093696951023963 | 541213904 | +| 20063192 | ap | 50093696951023963 | 20063192 | +| 20063192 | ap | 50093696951023963 | 20063192 | +| 582137681 | ap | 50093696951023963 | 582137681 | +| -61052572 | ap | 86170753739202532 | -61052572 | +| 541213904 | ap | 2324496022054398308 | 541213904 | +| -975598861 | aq | | -975598861 | +| 20063192 | aq | 50093696951023963 | 20063192 | +| 582137681 | aq | 2324496022054398308 | 582137681 | +| -975598861 | arg | -6703882251128566584 | -975598861 | +| 245833700 | arg | -6703882251128566584 | 245833700 | +| | arg | -4190165201427712175 | | +| 245833700 | arg | 86170753739202532 | 245833700 | +| 245833700 | ast | -4190165201427712175 | 245833700 | +| -61052572 | ast | 86170753739202532 | -61052572 | +| 541213904 | ast | 86170753739202532 | 541213904 | +| 909562636 | avy | 50093696951023963 | 909562636 | +| -61052572 | avy | 86170753739202532 | -61052572 | +| -975598861 | b | -4190165201427712175 | -975598861 | +| 541213904 | b | 86170753739202532 | 541213904 | +| 20063192 | b | 2324496022054398308 | 20063192 | +| 245833700 | b | 2324496022054398308 | 245833700 | +| 541213904 | bf | | 541213904 | +| 20063192 | bf | | 20063192 | +| 245833700 | bf | | 245833700 | +| -61052572 | bf | -4348034159383376037 | -61052572 | +| -975598861 | bf | -4190165201427712175 | -975598861 | +| -61052572 | bf | -2663772559740694289 | -61052572 | +| 245833700 | bf | -2663772559740694289 | 245833700 | +| -975598861 | bf | 50093696951023963 | -975598861 | +| | bf | 50093696951023963 | | +| | bf | 86170753739202532 | | +| -975598861 | bf | 86170753739202532 | -975598861 | +| 245833700 | bn | | 245833700 | +| 245833700 | bn | | 245833700 | +| -975598861 | bn | -4348034159383376037 | -975598861 | +| 582137681 | bn | 86170753739202532 | 582137681 | +| -975598861 | bn | 86170753739202532 | -975598861 | +| -975598861 | bn | 2324496022054398308 | -975598861 | +| 245833700 | bn | 2324496022054398308 | 245833700 | +| 909562636 | bnfr | | 909562636 | +| -61052572 | bnfr | -4348034159383376037 | -61052572 | +| 909562636 | bnfr | -4348034159383376037 | 909562636 | +| 909562636 | bnfr | 50093696951023963 | 909562636 | +| 541213904 | bnfr | 86170753739202532 | 541213904 | +| -61052572 | bnfr | 2324496022054398308 | -61052572 | +| 245833700 | bnfr | 2324496022054398308 | 245833700 | +| 245833700 | bnfr | 2324496022054398308 | 245833700 | +| -61052572 | bxhl | | -61052572 | +| 582137681 | bxhl | -6703882251128566584 | 582137681 | +| 245833700 | bxhl | -4190165201427712175 | 245833700 | +| -975598861 | bxhl | -2663772559740694289 | -975598861 | +| 541213904 | bxhl | 2324496022054398308 | 541213904 | +| 541213904 | c | | 541213904 | +| -61052572 | c | | -61052572 | +| -61052572 | c | 50093696951023963 | -61052572 | +| 909562636 | cnju | | 909562636 | +| -975598861 | cnju | -6703882251128566584 | -975598861 | +| 582137681 | cnju | -6703882251128566584 | 582137681 | +| 20063192 | cnju | -6703882251128566584 | 20063192 | +| -975598861 | cnju | -4348034159383376037 | -975598861 | +| 245833700 | cnju | -4348034159383376037 | 245833700 | +| 582137681 | cnju | -4190165201427712175 | 582137681 | +| -61052572 | csa | | -61052572 | +| -61052572 | csa | | -61052572 | +| 909562636 | csa | 50093696951023963 | 909562636 | +| 541213904 | csa | 50093696951023963 | 541213904 | +| -975598861 | csa | 86170753739202532 | -975598861 | +| 909562636 | d | -4348034159383376037 | 909562636 | +| 909562636 | d | -4348034159383376037 | 909562636 | +| 909562636 | d | -2663772559740694289 | 909562636 | +| 20063192 | d | -2663772559740694289 | 20063192 | +| 20063192 | d | 50093696951023963 | 20063192 | +| -61052572 | d | 50093696951023963 | -61052572 | +| -975598861 | dq | -6703882251128566584 | -975598861 | +| -61052572 | dq | -4348034159383376037 | -61052572 | +| -975598861 | dq | 86170753739202532 | -975598861 | +| 909562636 | dv | | 909562636 | +| | dv | 50093696951023963 | | +| 541213904 | dv | 50093696951023963 | 541213904 | +| | dv | 50093696951023963 | | +| 909562636 | dv | 86170753739202532 | 909562636 | +| 541213904 | dv | 86170753739202532 | 541213904 | +| | dv | 2324496022054398308 | | +| -975598861 | e | | -975598861 | +| 245833700 | e | -6703882251128566584 | 245833700 | +| -61052572 | e | -6703882251128566584 | -61052572 | +| 245833700 | e | -4348034159383376037 | 245833700 | +| | e | -4190165201427712175 | | +| 909562636 | e | -4190165201427712175 | 909562636 | +| -975598861 | e | -4190165201427712175 | -975598861 | +| 541213904 | e | -2663772559740694289 | 541213904 | +| | e | 50093696951023963 | | +| 20063192 | e | 50093696951023963 | 20063192 | +| 245833700 | e | 50093696951023963 | 245833700 | +| 909562636 | e | 86170753739202532 | 909562636 | +| 541213904 | ejzf | | 541213904 | +| 245833700 | ejzf | -4190165201427712175 | 245833700 | +| 245833700 | ejzf | -4190165201427712175 | 245833700 | +| 909562636 | ejzf | -2663772559740694289 | 909562636 | +| | ejzf | 50093696951023963 | | +| -975598861 | ejzf | 50093696951023963 | -975598861 | +| 909562636 | ejzf | 86170753739202532 | 909562636 | +| 582137681 | ejzf | 86170753739202532 | 582137681 | +| 245833700 | ejzf | 2324496022054398308 | 245833700 | +| 20063192 | en | -4348034159383376037 | 20063192 | +| -975598861 | en | -4190165201427712175 | -975598861 | +| 20063192 | en | -4190165201427712175 | 20063192 | +| 20063192 | en | -2663772559740694289 | 20063192 | +| 20063192 | en | 2324496022054398308 | 20063192 | +| -61052572 | eo | -4348034159383376037 | -61052572 | +| 541213904 | eo | -2663772559740694289 | 541213904 | +| 20063192 | eo | 86170753739202532 | 20063192 | +| 245833700 | etl | -6703882251128566584 | 245833700 | +| -61052572 | etl | -4348034159383376037 | -61052572 | +| -61052572 | etl | -4190165201427712175 | -61052572 | +| | etl | -4190165201427712175 | | +| | etl | -4190165201427712175 | | +| 541213904 | etl | -2663772559740694289 | 541213904 | +| -975598861 | etl | 50093696951023963 | -975598861 | +| 20063192 | etl | 50093696951023963 | 20063192 | +| 582137681 | etl | 50093696951023963 | 582137681 | +| | etl | 86170753739202532 | | +| 909562636 | etl | 86170753739202532 | 909562636 | +| | eu | -6703882251128566584 | | +| 909562636 | eu | -4190165201427712175 | 909562636 | +| 245833700 | eu | 86170753739202532 | 245833700 | +| -975598861 | eu | 2324496022054398308 | -975598861 | +| 909562636 | eur | 50093696951023963 | 909562636 | +| -61052572 | eur | 50093696951023963 | -61052572 | +| -61052572 | f | | -61052572 | +| 909562636 | f | | 909562636 | +| -975598861 | f | -4348034159383376037 | -975598861 | +| 541213904 | f | -4348034159383376037 | 541213904 | +| -61052572 | f | -4348034159383376037 | -61052572 | +| 245833700 | f | -2663772559740694289 | 245833700 | +| 245833700 | f | 50093696951023963 | 245833700 | +| | ffw | -4190165201427712175 | | +| 909562636 | ffw | -2663772559740694289 | 909562636 | +| 245833700 | ffw | 50093696951023963 | 245833700 | +| 909562636 | ffw | 86170753739202532 | 909562636 | +| 245833700 | fgmm | | 245833700 | +| 20063192 | fgmm | -4348034159383376037 | 20063192 | +| 909562636 | fgmm | 86170753739202532 | 909562636 | +| 909562636 | fgmm | 2324496022054398308 | 909562636 | +| 909562636 | fl | | 909562636 | +| 909562636 | fl | -6703882251128566584 | 909562636 | +| -975598861 | fl | -4348034159383376037 | -975598861 | +| 20063192 | fl | 50093696951023963 | 20063192 | +| 541213904 | fl | 50093696951023963 | 541213904 | +| -61052572 | fl | 50093696951023963 | -61052572 | +| | fl | 86170753739202532 | | +| 909562636 | focg | -4348034159383376037 | 909562636 | +| 245833700 | focg | -4348034159383376037 | 245833700 | +| 245833700 | focg | -4190165201427712175 | 245833700 | +| 20063192 | focg | -2663772559740694289 | 20063192 | +| 541213904 | focg | 50093696951023963 | 541213904 | +| -975598861 | focg | 50093696951023963 | -975598861 | +| 582137681 | focg | 50093696951023963 | 582137681 | +| 582137681 | focg | 86170753739202532 | 582137681 | +| -975598861 | focg | 86170753739202532 | -975598861 | +| | ftyd | -6703882251128566584 | | +| 582137681 | ftyd | -4348034159383376037 | 582137681 | +| 582137681 | ftyd | -4190165201427712175 | 582137681 | +| 245833700 | ftyd | -2663772559740694289 | 245833700 | +| 582137681 | ftyd | 50093696951023963 | 582137681 | +| 245833700 | ftyd | 50093696951023963 | 245833700 | +| -61052572 | ftyd | 86170753739202532 | -61052572 | +| -975598861 | ftyd | 86170753739202532 | -975598861 | +| -975598861 | g | | -975598861 | +| 541213904 | g | | 541213904 | +| 582137681 | g | -4190165201427712175 | 582137681 | +| 541213904 | g | -4190165201427712175 | 541213904 | +| | g | -2663772559740694289 | | +| 20063192 | g | -2663772559740694289 | 20063192 | +| 20063192 | g | -2663772559740694289 | 20063192 | +| -61052572 | g | 50093696951023963 | -61052572 | +| 582137681 | g | 86170753739202532 | 582137681 | +| 582137681 | g | 2324496022054398308 | 582137681 | +| 541213904 | ga | -4348034159383376037 | 541213904 | +| 582137681 | ga | -4348034159383376037 | 582137681 | +| 541213904 | ga | -4348034159383376037 | 541213904 | +| 909562636 | ga | -4190165201427712175 | 909562636 | +| 541213904 | ga | 86170753739202532 | 541213904 | +| 20063192 | gay | -4348034159383376037 | 20063192 | +| -975598861 | gay | -4190165201427712175 | -975598861 | +| -975598861 | gay | -2663772559740694289 | -975598861 | +| 909562636 | gay | -2663772559740694289 | 909562636 | +| | gay | 50093696951023963 | | +| 20063192 | gay | 2324496022054398308 | 20063192 | +| 909562636 | gbju | -4348034159383376037 | 909562636 | +| -975598861 | gbju | -4348034159383376037 | -975598861 | +| 582137681 | ghax | -6703882251128566584 | 582137681 | +| | ghax | -4348034159383376037 | | +| | ghax | -4348034159383376037 | | +| -61052572 | ghax | -4190165201427712175 | -61052572 | +| 245833700 | ghax | -2663772559740694289 | 245833700 | +| 20063192 | ghax | 50093696951023963 | 20063192 | +| 541213904 | ghax | 86170753739202532 | 541213904 | +| -61052572 | gjcd | -6703882251128566584 | -61052572 | +| 909562636 | gjcd | -2663772559740694289 | 909562636 | +| -61052572 | gjcd | 2324496022054398308 | -61052572 | +| 909562636 | gjln | | 909562636 | +| 541213904 | gjln | | 541213904 | +| 909562636 | gjln | -6703882251128566584 | 909562636 | +| 541213904 | gjln | -6703882251128566584 | 541213904 | +| 582137681 | gjln | -4348034159383376037 | 582137681 | +| -61052572 | gjln | -4348034159383376037 | -61052572 | +| 582137681 | gjln | -4190165201427712175 | 582137681 | +| 20063192 | gjln | -4190165201427712175 | 20063192 | +| | gjln | 86170753739202532 | | +| 20063192 | gjln | 2324496022054398308 | 20063192 | +| 20063192 | gl | -4190165201427712175 | 20063192 | +| 245833700 | gl | 50093696951023963 | 245833700 | +| -61052572 | gl | 2324496022054398308 | -61052572 | +| 541213904 | gma | 50093696951023963 | 541213904 | +| 245833700 | gma | 50093696951023963 | 245833700 | +| -61052572 | gmuj | -6703882251128566584 | -61052572 | +| -975598861 | gmuj | -6703882251128566584 | -975598861 | +| 20063192 | gmuj | -2663772559740694289 | 20063192 | +| 245833700 | gmuj | -2663772559740694289 | 245833700 | +| -61052572 | gmuj | 50093696951023963 | -61052572 | +| -975598861 | gmuj | 50093696951023963 | -975598861 | +| -975598861 | gmuj | 86170753739202532 | -975598861 | +| 541213904 | go | -6703882251128566584 | 541213904 | +| 909562636 | go | -6703882251128566584 | 909562636 | +| 909562636 | go | -4348034159383376037 | 909562636 | +| -61052572 | go | -4348034159383376037 | -61052572 | +| 245833700 | go | 2324496022054398308 | 245833700 | +| 582137681 | go | 2324496022054398308 | 582137681 | +| 909562636 | gpx | | 909562636 | +| -61052572 | gpx | -6703882251128566584 | -61052572 | +| 582137681 | gpx | -4190165201427712175 | 582137681 | +| -975598861 | gpx | -4190165201427712175 | -975598861 | +| 245833700 | gpx | -2663772559740694289 | 245833700 | +| 582137681 | gpx | 50093696951023963 | 582137681 | +| 245833700 | gpx | 2324496022054398308 | 245833700 | +| | gqfo | -6703882251128566584 | | +| | gqfo | -4190165201427712175 | | +| 541213904 | gqfo | -4190165201427712175 | 541213904 | +| 582137681 | gqfo | 86170753739202532 | 582137681 | +| -975598861 | gqfo | 2324496022054398308 | -975598861 | +| 20063192 | gqfo | 2324496022054398308 | 20063192 | +| 582137681 | gv | -4348034159383376037 | 582137681 | +| 541213904 | gv | -4348034159383376037 | 541213904 | +| 909562636 | gvt | -2663772559740694289 | 909562636 | +| 245833700 | gvt | 86170753739202532 | 245833700 | +| -61052572 | gvt | 2324496022054398308 | -61052572 | +| 582137681 | h | | 582137681 | +| -975598861 | h | -6703882251128566584 | -975598861 | +| | h | -6703882251128566584 | | +| 20063192 | h | -6703882251128566584 | 20063192 | +| 20063192 | h | -4348034159383376037 | 20063192 | +| 541213904 | h | -4348034159383376037 | 541213904 | +| 909562636 | h | -4348034159383376037 | 909562636 | +| 20063192 | h | -4190165201427712175 | 20063192 | +| 582137681 | h | -4190165201427712175 | 582137681 | +| 541213904 | h | -2663772559740694289 | 541213904 | +| 582137681 | h | -2663772559740694289 | 582137681 | +| 582137681 | h | -2663772559740694289 | 582137681 | +| 909562636 | h | 50093696951023963 | 909562636 | +| -61052572 | h | 50093696951023963 | -61052572 | +| -975598861 | h | 50093696951023963 | -975598861 | +| 245833700 | h | 50093696951023963 | 245833700 | +| 20063192 | h | 2324496022054398308 | 20063192 | +| 20063192 | hb | -4190165201427712175 | 20063192 | +| -61052572 | hb | -4190165201427712175 | -61052572 | +| 582137681 | hb | -2663772559740694289 | 582137681 | +| -61052572 | hb | 86170753739202532 | -61052572 | +| 20063192 | hepn | -4190165201427712175 | 20063192 | +| 582137681 | hepn | 2324496022054398308 | 582137681 | +| 245833700 | hesx | -4348034159383376037 | 245833700 | +| 541213904 | hesx | -4348034159383376037 | 541213904 | +| 541213904 | hesx | 50093696951023963 | 541213904 | +| 582137681 | hjzo | | 582137681 | +| 541213904 | hjzo | | 541213904 | +| 909562636 | hjzo | 86170753739202532 | 909562636 | +| -975598861 | hkyo | -4348034159383376037 | -975598861 | +| | hkyo | -4348034159383376037 | | +| | hkyo | -2663772559740694289 | | +| | hkyo | 50093696951023963 | | +| 541213904 | hkyo | 50093696951023963 | 541213904 | +| 541213904 | hla | | 541213904 | +| 909562636 | hla | -6703882251128566584 | 909562636 | +| 909562636 | hla | -6703882251128566584 | 909562636 | +| 20063192 | hla | -4190165201427712175 | 20063192 | +| 582137681 | hlpb | 2324496022054398308 | 582137681 | +| 245833700 | hlyj | -6703882251128566584 | 245833700 | +| -61052572 | hlyj | -6703882251128566584 | -61052572 | +| 245833700 | hlyj | -2663772559740694289 | 245833700 | +| 909562636 | hlyj | -2663772559740694289 | 909562636 | +| 909562636 | hlyj | -2663772559740694289 | 909562636 | +| 245833700 | hlyj | 50093696951023963 | 245833700 | +| 582137681 | hmo | -4190165201427712175 | 582137681 | +| 20063192 | hmo | 50093696951023963 | 20063192 | +| 909562636 | hmo | 50093696951023963 | 909562636 | +| | hqdy | -2663772559740694289 | | +| 20063192 | hqdy | -2663772559740694289 | 20063192 | +| | hqdy | 2324496022054398308 | | +| -61052572 | i | | -61052572 | +| 582137681 | i | 86170753739202532 | 582137681 | +| 541213904 | i | 86170753739202532 | 541213904 | +| 582137681 | i | 86170753739202532 | 582137681 | +| -61052572 | i | 2324496022054398308 | -61052572 | +| 245833700 | i | 2324496022054398308 | 245833700 | +| 541213904 | i | 2324496022054398308 | 541213904 | +| 909562636 | i | 2324496022054398308 | 909562636 | +| 245833700 | iabz | | 245833700 | +| 20063192 | iabz | -6703882251128566584 | 20063192 | +| 245833700 | iabz | -6703882251128566584 | 245833700 | +| 909562636 | iabz | -4190165201427712175 | 909562636 | +| 245833700 | iabz | -2663772559740694289 | 245833700 | +| 20063192 | iabz | -2663772559740694289 | 20063192 | +| 909562636 | iabz | 86170753739202532 | 909562636 | +| | iabz | 86170753739202532 | | +| 541213904 | iabz | 86170753739202532 | 541213904 | +| -61052572 | ijo | | -61052572 | +| 20063192 | ijo | -4190165201427712175 | 20063192 | +| 909562636 | ijo | -4190165201427712175 | 909562636 | +| 20063192 | ijo | -4190165201427712175 | 20063192 | +| 582137681 | ijo | -2663772559740694289 | 582137681 | +| 582137681 | ijo | 50093696951023963 | 582137681 | +| | ijo | 2324496022054398308 | | +| 20063192 | ilvy | | 20063192 | +| -61052572 | ilvy | -6703882251128566584 | -61052572 | +| | ilvy | -2663772559740694289 | | +| 541213904 | ilvy | 50093696951023963 | 541213904 | +| 541213904 | ilvy | 86170753739202532 | 541213904 | +| 582137681 | is | -6703882251128566584 | 582137681 | +| -61052572 | is | -6703882251128566584 | -61052572 | +| 245833700 | is | -6703882251128566584 | 245833700 | +| -61052572 | is | -4348034159383376037 | -61052572 | +| 541213904 | is | -4348034159383376037 | 541213904 | +| 541213904 | is | -4348034159383376037 | 541213904 | +| 541213904 | is | -4190165201427712175 | 541213904 | +| -975598861 | is | 50093696951023963 | -975598861 | +| 245833700 | is | 2324496022054398308 | 245833700 | +| 541213904 | it | -6703882251128566584 | 541213904 | +| -61052572 | it | -4190165201427712175 | -61052572 | +| 909562636 | it | 50093696951023963 | 909562636 | +| 245833700 | it | 50093696951023963 | 245833700 | +| | izuy | -6703882251128566584 | | +| 245833700 | izuy | -2663772559740694289 | 245833700 | +| 541213904 | izuy | 50093696951023963 | 541213904 | +| -61052572 | izuy | 50093696951023963 | -61052572 | +| 541213904 | izuy | 86170753739202532 | 541213904 | +| 541213904 | j | | 541213904 | +| 541213904 | j | | 541213904 | +| -975598861 | j | | -975598861 | +| 909562636 | j | -6703882251128566584 | 909562636 | +| 582137681 | j | -2663772559740694289 | 582137681 | +| -975598861 | j | -2663772559740694289 | -975598861 | +| | j | -2663772559740694289 | | +| 20063192 | j | -2663772559740694289 | 20063192 | +| 541213904 | j | -2663772559740694289 | 541213904 | +| 541213904 | j | 50093696951023963 | 541213904 | +| -61052572 | j | 86170753739202532 | -61052572 | +| -61052572 | j | 86170753739202532 | -61052572 | +| | j | 86170753739202532 | | +| 20063192 | jb | -4190165201427712175 | 20063192 | +| -975598861 | jb | -2663772559740694289 | -975598861 | +| -61052572 | jb | -2663772559740694289 | -61052572 | +| 245833700 | jb | 50093696951023963 | 245833700 | +| -61052572 | jb | 86170753739202532 | -61052572 | +| 582137681 | jb | 2324496022054398308 | 582137681 | +| -61052572 | jb | 2324496022054398308 | -61052572 | +| | jep | | | +| -975598861 | jep | | -975598861 | +| 582137681 | jep | -6703882251128566584 | 582137681 | +| 582137681 | jep | -4348034159383376037 | 582137681 | +| 245833700 | jep | -4190165201427712175 | 245833700 | +| | jep | -2663772559740694289 | | +| 245833700 | jji | -6703882251128566584 | 245833700 | +| 541213904 | jji | -2663772559740694289 | 541213904 | +| 245833700 | jji | 2324496022054398308 | 245833700 | +| 582137681 | jqy | -6703882251128566584 | 582137681 | +| 582137681 | jqy | -4348034159383376037 | 582137681 | +| 20063192 | jqy | -4348034159383376037 | 20063192 | +| 541213904 | jqy | 50093696951023963 | 541213904 | +| 582137681 | jqy | 50093696951023963 | 582137681 | +| 20063192 | jqy | 50093696951023963 | 20063192 | +| -975598861 | jqy | 86170753739202532 | -975598861 | +| 541213904 | jqy | 86170753739202532 | 541213904 | +| 582137681 | juf | -2663772559740694289 | 582137681 | +| 582137681 | jvho | -2663772559740694289 | 582137681 | +| | jvho | 2324496022054398308 | | +| 541213904 | k | | 541213904 | +| | k | | | +| -61052572 | k | -6703882251128566584 | -61052572 | +| 20063192 | k | -6703882251128566584 | 20063192 | +| -975598861 | k | -6703882251128566584 | -975598861 | +| 245833700 | k | -4348034159383376037 | 245833700 | +| 245833700 | k | -4190165201427712175 | 245833700 | +| -61052572 | k | -4190165201427712175 | -61052572 | +| 245833700 | k | -4190165201427712175 | 245833700 | +| 541213904 | k | -2663772559740694289 | 541213904 | +| 245833700 | k | 50093696951023963 | 245833700 | +| 582137681 | k | 86170753739202532 | 582137681 | +| 245833700 | k | 2324496022054398308 | 245833700 | +| 582137681 | k | 2324496022054398308 | 582137681 | +| -61052572 | kufw | -4190165201427712175 | -61052572 | +| 20063192 | kufw | -2663772559740694289 | 20063192 | +| 582137681 | kufw | -2663772559740694289 | 582137681 | +| 20063192 | kufw | 50093696951023963 | 20063192 | +| | kufw | 86170753739202532 | | +| 245833700 | kufw | 2324496022054398308 | 245833700 | +| 582137681 | kyr | | 582137681 | +| 582137681 | kyr | -6703882251128566584 | 582137681 | +| 541213904 | kyr | -4190165201427712175 | 541213904 | +| 582137681 | kyr | -2663772559740694289 | 582137681 | +| 582137681 | kyr | 50093696951023963 | 582137681 | +| -61052572 | kyr | 86170753739202532 | -61052572 | +| 245833700 | kzp | -6703882251128566584 | 245833700 | +| -61052572 | kzp | -4348034159383376037 | -61052572 | +| 245833700 | kzp | -4348034159383376037 | 245833700 | +| 582137681 | kzp | 50093696951023963 | 582137681 | +| 909562636 | kzp | 86170753739202532 | 909562636 | +| 909562636 | l | | 909562636 | +| 20063192 | l | | 20063192 | +| 909562636 | l | | 909562636 | +| 20063192 | l | | 20063192 | +| 909562636 | l | | 909562636 | +| 582137681 | l | | 582137681 | +| | l | -6703882251128566584 | | +| 245833700 | l | -6703882251128566584 | 245833700 | +| 909562636 | l | -6703882251128566584 | 909562636 | +| 20063192 | l | -4348034159383376037 | 20063192 | +| 245833700 | l | -4348034159383376037 | 245833700 | +| | l | -4348034159383376037 | | +| 20063192 | l | -4348034159383376037 | 20063192 | +| 582137681 | l | -2663772559740694289 | 582137681 | +| 20063192 | l | -2663772559740694289 | 20063192 | +| 245833700 | l | 50093696951023963 | 245833700 | +| 20063192 | l | 50093696951023963 | 20063192 | +| 541213904 | l | 50093696951023963 | 541213904 | +| -61052572 | l | 50093696951023963 | -61052572 | +| 20063192 | l | 86170753739202532 | 20063192 | +| 582137681 | l | 2324496022054398308 | 582137681 | +| -975598861 | l | 2324496022054398308 | -975598861 | +| 245833700 | l | 2324496022054398308 | 245833700 | +| 245833700 | l | 2324496022054398308 | 245833700 | +| | lasw | -4190165201427712175 | | +| 582137681 | lasw | -4190165201427712175 | 582137681 | +| -975598861 | lasw | -2663772559740694289 | -975598861 | +| | lasw | 2324496022054398308 | | +| 245833700 | lasw | 2324496022054398308 | 245833700 | +| 582137681 | law | -4348034159383376037 | 582137681 | +| 541213904 | law | -4190165201427712175 | 541213904 | +| | law | -2663772559740694289 | | +| 245833700 | law | 50093696951023963 | 245833700 | +| -975598861 | law | 2324496022054398308 | -975598861 | +| 541213904 | lh | -6703882251128566584 | 541213904 | +| 20063192 | lh | -4190165201427712175 | 20063192 | +| -975598861 | lh | -4190165201427712175 | -975598861 | +| | lh | 50093696951023963 | | +| 20063192 | lh | 2324496022054398308 | 20063192 | +| 909562636 | lkf | -4190165201427712175 | 909562636 | +| 20063192 | lkf | -4190165201427712175 | 20063192 | +| -61052572 | lkf | -2663772559740694289 | -61052572 | +| -975598861 | lkf | -2663772559740694289 | -975598861 | +| -975598861 | lma | | -975598861 | +| -975598861 | lma | 50093696951023963 | -975598861 | +| 541213904 | lma | 86170753739202532 | 541213904 | +| -975598861 | lma | 2324496022054398308 | -975598861 | +| -975598861 | lxg | | -975598861 | +| 909562636 | lxg | -6703882251128566584 | 909562636 | +| | lxg | -4348034159383376037 | | +| 582137681 | lxg | -4348034159383376037 | 582137681 | +| 20063192 | lxg | 50093696951023963 | 20063192 | +| -61052572 | lxg | 86170753739202532 | -61052572 | +| 541213904 | lxg | 2324496022054398308 | 541213904 | +| 582137681 | m | 50093696951023963 | 582137681 | +| 582137681 | m | 86170753739202532 | 582137681 | +| 245833700 | m | 2324496022054398308 | 245833700 | +| 582137681 | mm | -4348034159383376037 | 582137681 | +| -975598861 | mm | -4190165201427712175 | -975598861 | +| -975598861 | mm | -2663772559740694289 | -975598861 | +| 245833700 | mm | 50093696951023963 | 245833700 | +| 245833700 | mm | 86170753739202532 | 245833700 | +| 20063192 | mm | 86170753739202532 | 20063192 | +| 582137681 | mm | 2324496022054398308 | 582137681 | +| 582137681 | mmxt | | 582137681 | +| -975598861 | mmxt | -4348034159383376037 | -975598861 | +| -61052572 | mmxt | -4348034159383376037 | -61052572 | +| 20063192 | mmxt | -4348034159383376037 | 20063192 | +| 245833700 | mmxt | -4190165201427712175 | 245833700 | +| | mmxt | 86170753739202532 | | +| | mmxt | 2324496022054398308 | | +| 245833700 | mmxt | 2324496022054398308 | 245833700 | +| -61052572 | mmxt | 2324496022054398308 | -61052572 | +| -975598861 | nie | -4190165201427712175 | -975598861 | +| 541213904 | nie | 50093696951023963 | 541213904 | +| 582137681 | non | | 582137681 | +| 245833700 | non | | 245833700 | +| 582137681 | non | -2663772559740694289 | 582137681 | +| 582137681 | non | -2663772559740694289 | 582137681 | +| -975598861 | non | 50093696951023963 | -975598861 | +| 20063192 | non | 86170753739202532 | 20063192 | +| 245833700 | non | 2324496022054398308 | 245833700 | +| -61052572 | non | 2324496022054398308 | -61052572 | +| -975598861 | nta | -6703882251128566584 | -975598861 | +| | nta | -6703882251128566584 | | +| 245833700 | nta | -4348034159383376037 | 245833700 | +| 541213904 | nz | | 541213904 | +| 20063192 | nz | -6703882251128566584 | 20063192 | +| 582137681 | nz | -6703882251128566584 | 582137681 | +| 582137681 | nz | -4348034159383376037 | 582137681 | +| 582137681 | nz | 86170753739202532 | 582137681 | +| -975598861 | nz | 2324496022054398308 | -975598861 | +| 582137681 | o | -6703882251128566584 | 582137681 | +| 245833700 | o | -4190165201427712175 | 245833700 | +| 909562636 | o | -2663772559740694289 | 909562636 | +| 541213904 | o | 2324496022054398308 | 541213904 | +| | obh | -6703882251128566584 | | +| 909562636 | obh | -6703882251128566584 | 909562636 | +| 582137681 | obh | -4348034159383376037 | 582137681 | +| 541213904 | obh | -4190165201427712175 | 541213904 | +| 909562636 | obh | -2663772559740694289 | 909562636 | +| -975598861 | obh | 86170753739202532 | -975598861 | +| -975598861 | obh | 2324496022054398308 | -975598861 | +| 20063192 | on | -6703882251128566584 | 20063192 | +| 541213904 | on | -6703882251128566584 | 541213904 | +| 582137681 | on | 50093696951023963 | 582137681 | +| 909562636 | on | 2324496022054398308 | 909562636 | +| | on | 2324496022054398308 | | +| 582137681 | os | -6703882251128566584 | 582137681 | +| 20063192 | os | -6703882251128566584 | 20063192 | +| | os | -4348034159383376037 | | +| | os | -4348034159383376037 | | +| 582137681 | os | 50093696951023963 | 582137681 | +| 541213904 | os | 50093696951023963 | 541213904 | +| 909562636 | os | 50093696951023963 | 909562636 | +| -61052572 | pao | | -61052572 | +| | pao | 2324496022054398308 | | +| -61052572 | pd | | -61052572 | +| 20063192 | pd | | 20063192 | +| 541213904 | pd | -6703882251128566584 | 541213904 | +| 245833700 | pd | -4190165201427712175 | 245833700 | +| 20063192 | pd | 50093696951023963 | 20063192 | +| | pd | 50093696951023963 | | +| | pd | 50093696951023963 | | +| | pd | 2324496022054398308 | | +| 582137681 | pd | 2324496022054398308 | 582137681 | +| 909562636 | phdg | -4190165201427712175 | 909562636 | +| 20063192 | phdg | -2663772559740694289 | 20063192 | +| 582137681 | phdg | 50093696951023963 | 582137681 | +| -975598861 | phdg | 2324496022054398308 | -975598861 | +| -975598861 | phdg | 2324496022054398308 | -975598861 | +| 541213904 | pi | -2663772559740694289 | 541213904 | +| -61052572 | pi | 50093696951023963 | -61052572 | +| 20063192 | pi | 50093696951023963 | 20063192 | +| 20063192 | pi | 86170753739202532 | 20063192 | +| 245833700 | pkhe | | 245833700 | +| 541213904 | pkhe | -4348034159383376037 | 541213904 | +| -975598861 | pkhe | 2324496022054398308 | -975598861 | +| 20063192 | poz | | 20063192 | +| | poz | | | +| 541213904 | poz | -4190165201427712175 | 541213904 | +| | poz | -2663772559740694289 | | +| 245833700 | poz | 86170753739202532 | 245833700 | +| -975598861 | poz | 86170753739202532 | -975598861 | +| 20063192 | ppvx | -6703882251128566584 | 20063192 | +| | ppvx | -4348034159383376037 | | +| | ppvx | -4190165201427712175 | | +| -61052572 | ppvx | 2324496022054398308 | -61052572 | +| -975598861 | qs | -6703882251128566584 | -975598861 | +| 245833700 | qs | 2324496022054398308 | 245833700 | +| -975598861 | qs | 2324496022054398308 | -975598861 | +| 582137681 | qt | -6703882251128566584 | 582137681 | +| -61052572 | qt | -4190165201427712175 | -61052572 | +| 909562636 | qt | -2663772559740694289 | 909562636 | +| -975598861 | qt | 86170753739202532 | -975598861 | +| 909562636 | qt | 2324496022054398308 | 909562636 | +| -61052572 | qt | 2324496022054398308 | -61052572 | +| -61052572 | rcdj | -4348034159383376037 | -61052572 | +| | rcdj | 50093696951023963 | | +| 909562636 | rcdj | 86170753739202532 | 909562636 | +| -61052572 | rcdj | 2324496022054398308 | -61052572 | +| 245833700 | rcz | -4348034159383376037 | 245833700 | +| 909562636 | ria | | 909562636 | +| | ria | -6703882251128566584 | | +| 582137681 | ria | -4348034159383376037 | 582137681 | +| 909562636 | ria | -4348034159383376037 | 909562636 | +| 541213904 | ria | -2663772559740694289 | 541213904 | +| 541213904 | rlmv | | 541213904 | +| 541213904 | rlmv | -2663772559740694289 | 541213904 | +| 245833700 | rlmv | -2663772559740694289 | 245833700 | +| 541213904 | rlmv | 50093696951023963 | 541213904 | +| 20063192 | rlmv | 2324496022054398308 | 20063192 | +| | s | | | +| 582137681 | s | -6703882251128566584 | 582137681 | +| -61052572 | s | -4348034159383376037 | -61052572 | +| 909562636 | s | -4348034159383376037 | 909562636 | +| -61052572 | s | -4348034159383376037 | -61052572 | +| 245833700 | s | -4190165201427712175 | 245833700 | +| 582137681 | s | -2663772559740694289 | 582137681 | +| | s | -2663772559740694289 | | +| | s | 50093696951023963 | | +| 909562636 | s | 50093696951023963 | 909562636 | +| 20063192 | s | 2324496022054398308 | 20063192 | +| 582137681 | s | 2324496022054398308 | 582137681 | +| -975598861 | s | 2324496022054398308 | -975598861 | +| -975598861 | s | 2324496022054398308 | -975598861 | +| -61052572 | sac | -4190165201427712175 | -61052572 | +| 909562636 | sac | -2663772559740694289 | 909562636 | +| 582137681 | sac | 50093696951023963 | 582137681 | +| 20063192 | sco | -2663772559740694289 | 20063192 | +| -61052572 | sco | -2663772559740694289 | -61052572 | +| | sco | 50093696951023963 | | +| 582137681 | smh | | 582137681 | +| 541213904 | smh | -6703882251128566584 | 541213904 | +| -61052572 | smh | -4348034159383376037 | -61052572 | +| -61052572 | smh | 2324496022054398308 | -61052572 | +| 20063192 | sr | -4348034159383376037 | 20063192 | +| -975598861 | sr | -2663772559740694289 | -975598861 | +| 20063192 | sr | 2324496022054398308 | 20063192 | +| 909562636 | suk | | 909562636 | +| -975598861 | suk | -4348034159383376037 | -975598861 | +| -975598861 | suk | -4348034159383376037 | -975598861 | +| 541213904 | suk | 2324496022054398308 | 541213904 | +| | suk | 2324496022054398308 | | +| -61052572 | suk | 2324496022054398308 | -61052572 | +| 541213904 | suk | 2324496022054398308 | 541213904 | +| 245833700 | sv | -6703882251128566584 | 245833700 | +| -61052572 | sv | -4190165201427712175 | -61052572 | +| 582137681 | sv | -4190165201427712175 | 582137681 | +| 541213904 | sv | -2663772559740694289 | 541213904 | +| 541213904 | t | -6703882251128566584 | 541213904 | +| -975598861 | t | -6703882251128566584 | -975598861 | +| 245833700 | t | -6703882251128566584 | 245833700 | +| -61052572 | t | -6703882251128566584 | -61052572 | +| | t | -4348034159383376037 | | +| 245833700 | t | -4190165201427712175 | 245833700 | +| 909562636 | t | -4190165201427712175 | 909562636 | +| 541213904 | t | -4190165201427712175 | 541213904 | +| 541213904 | t | -4190165201427712175 | 541213904 | +| | t | -4190165201427712175 | | +| -61052572 | t | -2663772559740694289 | -61052572 | +| -975598861 | t | -2663772559740694289 | -975598861 | +| 582137681 | t | 50093696951023963 | 582137681 | +| -61052572 | t | 86170753739202532 | -61052572 | +| 20063192 | t | 86170753739202532 | 20063192 | +| 20063192 | t | 86170753739202532 | 20063192 | +| 245833700 | t | 2324496022054398308 | 245833700 | +| -975598861 | taz | -4190165201427712175 | -975598861 | +| 245833700 | taz | 50093696951023963 | 245833700 | +| | taz | 86170753739202532 | | +| 245833700 | taz | 86170753739202532 | 245833700 | +| 909562636 | taz | 2324496022054398308 | 909562636 | +| 909562636 | usaq | | 909562636 | +| -61052572 | usaq | | -61052572 | +| 245833700 | usaq | -6703882251128566584 | 245833700 | +| 582137681 | usaq | -2663772559740694289 | 582137681 | +| 20063192 | usaq | 86170753739202532 | 20063192 | +| -975598861 | usaq | 2324496022054398308 | -975598861 | +| | usaq | 2324496022054398308 | | +| -975598861 | uzr | | -975598861 | +| 582137681 | uzr | | 582137681 | +| -61052572 | uzr | -6703882251128566584 | -61052572 | +| 20063192 | uzr | 50093696951023963 | 20063192 | +| 909562636 | uzr | 50093696951023963 | 909562636 | +| | uzr | 2324496022054398308 | | +| 541213904 | v | | 541213904 | +| | v | | | +| 20063192 | v | | 20063192 | +| 20063192 | v | | 20063192 | +| 245833700 | v | -6703882251128566584 | 245833700 | +| 909562636 | v | -4348034159383376037 | 909562636 | +| | v | -4348034159383376037 | | +| 245833700 | v | -4190165201427712175 | 245833700 | +| -975598861 | v | -4190165201427712175 | -975598861 | +| 20063192 | v | -4190165201427712175 | 20063192 | +| 541213904 | v | -2663772559740694289 | 541213904 | +| -975598861 | v | -2663772559740694289 | -975598861 | +| -975598861 | v | -2663772559740694289 | -975598861 | +| 909562636 | v | 50093696951023963 | 909562636 | +| 582137681 | v | 86170753739202532 | 582137681 | +| 20063192 | v | 2324496022054398308 | 20063192 | +| | v | 2324496022054398308 | | +| 20063192 | vz | -6703882251128566584 | 20063192 | +| 541213904 | vz | -6703882251128566584 | 541213904 | +| -61052572 | vz | -4348034159383376037 | -61052572 | +| 20063192 | vz | -2663772559740694289 | 20063192 | +| -61052572 | vz | 50093696951023963 | -61052572 | +| 20063192 | vzxl | -4348034159383376037 | 20063192 | +| 245833700 | vzxl | -4348034159383376037 | 245833700 | +| 541213904 | vzxl | 50093696951023963 | 541213904 | +| | vzxl | 86170753739202532 | | +| | vzxl | 2324496022054398308 | | +| 541213904 | vzxl | 2324496022054398308 | 541213904 | +| 245833700 | wc | -6703882251128566584 | 245833700 | +| 20063192 | wc | -4348034159383376037 | 20063192 | +| 20063192 | wc | -4190165201427712175 | 20063192 | +| -61052572 | wc | 50093696951023963 | -61052572 | +| 582137681 | whvg | | 582137681 | +| 582137681 | whvg | -4190165201427712175 | 582137681 | +| 245833700 | whvg | 50093696951023963 | 245833700 | +| 909562636 | whvg | 2324496022054398308 | 909562636 | +| -975598861 | wp | -6703882251128566584 | -975598861 | +| -975598861 | wp | -2663772559740694289 | -975598861 | +| 582137681 | wp | 50093696951023963 | 582137681 | +| 245833700 | wp | 86170753739202532 | 245833700 | +| 909562636 | wp | 2324496022054398308 | 909562636 | +| -975598861 | wp | 2324496022054398308 | -975598861 | +| 909562636 | x | | 909562636 | +| -61052572 | x | | -61052572 | +| | x | -6703882251128566584 | | +| -61052572 | x | -6703882251128566584 | -61052572 | +| -61052572 | x | -6703882251128566584 | -61052572 | +| -61052572 | x | -4348034159383376037 | -61052572 | +| 20063192 | x | -4190165201427712175 | 20063192 | +| 582137681 | x | -2663772559740694289 | 582137681 | +| -61052572 | x | -2663772559740694289 | -61052572 | +| 541213904 | x | -2663772559740694289 | 541213904 | +| 541213904 | x | 50093696951023963 | 541213904 | +| 541213904 | x | 50093696951023963 | 541213904 | +| 245833700 | x | 50093696951023963 | 245833700 | +| -61052572 | x | 86170753739202532 | -61052572 | +| -61052572 | x | 86170753739202532 | -61052572 | +| 245833700 | x | 2324496022054398308 | 245833700 | +| -975598861 | x | 2324496022054398308 | -975598861 | +| -61052572 | xn | | -61052572 | +| 20063192 | xn | -6703882251128566584 | 20063192 | +| -975598861 | xn | -4190165201427712175 | -975598861 | +| 582137681 | xn | 86170753739202532 | 582137681 | +| 245833700 | xn | 86170753739202532 | 245833700 | +| 541213904 | yck | | 541213904 | +| -975598861 | yck | -6703882251128566584 | -975598861 | +| -61052572 | yck | -6703882251128566584 | -61052572 | +| -975598861 | yck | -6703882251128566584 | -975598861 | +| -975598861 | yck | -4348034159383376037 | -975598861 | +| | yck | -2663772559740694289 | | +| | yck | -2663772559740694289 | | +| 245833700 | yck | 50093696951023963 | 245833700 | +| 541213904 | yck | 86170753739202532 | 541213904 | +| 245833700 | yck | 2324496022054398308 | 245833700 | +| 245833700 | ye | | 245833700 | +| -61052572 | ye | -4190165201427712175 | -61052572 | +| 245833700 | ye | -2663772559740694289 | 245833700 | +| -61052572 | ye | -2663772559740694289 | -61052572 | +| -975598861 | ye | 86170753739202532 | -975598861 | +| 541213904 | yi | -6703882251128566584 | 541213904 | +| -975598861 | yi | 2324496022054398308 | -975598861 | +| 909562636 | yl | -6703882251128566584 | 909562636 | +| 909562636 | yl | -4190165201427712175 | 909562636 | +| -61052572 | yl | 86170753739202532 | -61052572 | +| -975598861 | yna | | -975598861 | +| 245833700 | yna | -2663772559740694289 | 245833700 | +| | yna | -2663772559740694289 | | +| 909562636 | yna | 86170753739202532 | 909562636 | +| -61052572 | yna | 86170753739202532 | -61052572 | +| 20063192 | yna | 2324496022054398308 | 20063192 | +| 20063192 | yq | -4348034159383376037 | 20063192 | +| 541213904 | yq | -2663772559740694289 | 541213904 | +| -61052572 | yq | -2663772559740694289 | -61052572 | +| 582137681 | yq | 2324496022054398308 | 582137681 | +| -61052572 | z | -4348034159383376037 | -61052572 | +| -61052572 | z | -4190165201427712175 | -61052572 | +| 909562636 | z | -2663772559740694289 | 909562636 | +| | z | -2663772559740694289 | | +| -61052572 | z | 50093696951023963 | -61052572 | +| -61052572 | z | 50093696951023963 | -61052572 | +| 20063192 | z | 86170753739202532 | 20063192 | +| -975598861 | z | 2324496022054398308 | -975598861 | +| 541213904 | zdwq | | 541213904 | +| -61052572 | zdwq | -4348034159383376037 | -61052572 | +| 20063192 | zdwq | -2663772559740694289 | 20063192 | +| | zdwq | 86170753739202532 | | +| | zdwq | 86170753739202532 | | +| 20063192 | zdwq | 2324496022054398308 | 20063192 | +| 245833700 | zdwq | 2324496022054398308 | 245833700 | +| 909562636 | zizo | | 909562636 | +| 582137681 | zizo | -4190165201427712175 | 582137681 | +| -61052572 | zizo | 86170753739202532 | -61052572 | +| 909562636 | zizo | 2324496022054398308 | 909562636 | +| 541213904 | zkt | | 541213904 | +| 245833700 | zkt | -6703882251128566584 | 245833700 | +| -61052572 | zkt | -4348034159383376037 | -61052572 | +| 909562636 | zkt | -4190165201427712175 | 909562636 | +| 245833700 | zkt | -2663772559740694289 | 245833700 | +| 909562636 | zkt | 86170753739202532 | 909562636 | +| -61052572 | zo | 86170753739202532 | -61052572 | +| 909562636 | zrb | -6703882251128566584 | 909562636 | +| | zrb | -4190165201427712175 | | +| -975598861 | zrb | -4190165201427712175 | -975598861 | +| 245833700 | zrb | -2663772559740694289 | 245833700 | +| -61052572 | zrb | 50093696951023963 | -61052572 | +| | zrb | 50093696951023963 | | +| -975598861 | zrb | 86170753739202532 | -975598861 | +| -975598861 | zrb | 86170753739202532 | -975598861 | ++------------+------+----------------------+------------+ diff --git a/datafusion/core/output_v1.txt b/datafusion/core/output_v1.txt new file mode 100644 index 000000000000..8e20af5068b1 --- /dev/null +++ b/datafusion/core/output_v1.txt @@ -0,0 +1,131 @@ +[RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + -1552503027, + 1952867677, + 188349958, + -2006510098, + null, + -1552503027, + -1189484247, + -2006510098, + -1189484247, + -729320203, + 1721437720, + -2006510098, + -1647665320, +], StringArray +[ + null, + null, + "嫎\u{1047ab}鹎\u{9e77d}\u{9c52e}\u{ee69a}\u{76d47}\u{6b850}\u{64053}\u{efa71}\u{e1e24}\u{8ca06}\u{3b381}\u{dc7a6}\u{fd85d}흁\u{8c650}\u{71695}\u{3bcbc}\u{e6e02}\u{7a0ab}\u{9d690}\u{61a04}\u{87272}\u{1a177}\u{5c181}\u{9f447}𨬚\u{6e241}\u{ce6ba}\u{a817e}\u{fd826}\u{72f66}\u{d24b2}\u{10d44f}\u{d0fdc}\u{1ee3a}\u{ab697}\u{5a3df}\u{bac06}\u{b7479}\u{ab1df}\u{82215}", + "嫎\u{1047ab}鹎\u{9e77d}\u{9c52e}\u{ee69a}\u{76d47}\u{6b850}\u{64053}\u{efa71}\u{e1e24}\u{8ca06}\u{3b381}\u{dc7a6}\u{fd85d}흁\u{8c650}\u{71695}\u{3bcbc}\u{e6e02}\u{7a0ab}\u{9d690}\u{61a04}\u{87272}\u{1a177}\u{5c181}\u{9f447}𨬚\u{6e241}\u{ce6ba}\u{a817e}\u{fd826}\u{72f66}\u{d24b2}\u{10d44f}\u{d0fdc}\u{1ee3a}\u{ab697}\u{5a3df}\u{bac06}\u{b7479}\u{ab1df}\u{82215}", + "嫎\u{1047ab}鹎\u{9e77d}\u{9c52e}\u{ee69a}\u{76d47}\u{6b850}\u{64053}\u{efa71}\u{e1e24}\u{8ca06}\u{3b381}\u{dc7a6}\u{fd85d}흁\u{8c650}\u{71695}\u{3bcbc}\u{e6e02}\u{7a0ab}\u{9d690}\u{61a04}\u{87272}\u{1a177}\u{5c181}\u{9f447}𨬚\u{6e241}\u{ce6ba}\u{a817e}\u{fd826}\u{72f66}\u{d24b2}\u{10d44f}\u{d0fdc}\u{1ee3a}\u{ab697}\u{5a3df}\u{bac06}\u{b7479}\u{ab1df}\u{82215}", + "嫎\u{1047ab}鹎\u{9e77d}\u{9c52e}\u{ee69a}\u{76d47}\u{6b850}\u{64053}\u{efa71}\u{e1e24}\u{8ca06}\u{3b381}\u{dc7a6}\u{fd85d}흁\u{8c650}\u{71695}\u{3bcbc}\u{e6e02}\u{7a0ab}\u{9d690}\u{61a04}\u{87272}\u{1a177}\u{5c181}\u{9f447}𨬚\u{6e241}\u{ce6ba}\u{a817e}\u{fd826}\u{72f66}\u{d24b2}\u{10d44f}\u{d0fdc}\u{1ee3a}\u{ab697}\u{5a3df}\u{bac06}\u{b7479}\u{ab1df}\u{82215}", + "\u{e42e}\u{91766}\u{89c8b}\u{933d3}\u{37818}\u{3b2d4}눂\u{37e85}\u{3a5f0}\u{73efc}\u{c7d3b}𐳭𣍐\u{cdf1f}\u{77508}\u{4a9c5}嚷\u{d9230}\u{45896}\u{d2a39}\u{1003e1}\u{3827a}\u{89d05}𛇋\u{edd67}\u{7c7eb}\u{c19b6}\u{10bf25}\u{37931}\u{c9e46}葤\u{cf477}\u{62c01}\u{8920f}🧛\u{37c40}\u{4317f}\u{1a412}\u{63c6f}𭴖", + "\u{e42e}\u{91766}\u{89c8b}\u{933d3}\u{37818}\u{3b2d4}눂\u{37e85}\u{3a5f0}\u{73efc}\u{c7d3b}𐳭𣍐\u{cdf1f}\u{77508}\u{4a9c5}嚷\u{d9230}\u{45896}\u{d2a39}\u{1003e1}\u{3827a}\u{89d05}𛇋\u{edd67}\u{7c7eb}\u{c19b6}\u{10bf25}\u{37931}\u{c9e46}葤\u{cf477}\u{62c01}\u{8920f}🧛\u{37c40}\u{4317f}\u{1a412}\u{63c6f}𭴖", + "\u{7ba30}\u{90b2f}\u{a3bc9}\u{10bd13}\u{cb607}\u{79b45}", + "\u{7ba30}\u{90b2f}\u{a3bc9}\u{10bd13}\u{cb607}\u{79b45}", + "\u{7ba30}\u{90b2f}\u{a3bc9}\u{10bd13}\u{cb607}\u{79b45}", + "\u{7ba30}\u{90b2f}\u{a3bc9}\u{10bd13}\u{cb607}\u{79b45}", + "\u{7f898}𗂵\u{1061e1}\u{101a2b}\u{a85a7}\u{caa85}\u{7678f}𑌠\u{eaf22}\u{72bed}\u{d9a56}\u{16378}\u{539ef}\u{d142f}\u{457ef}\u{8fef6}\u{802bb}𨸻\u{b0920}\u{82ea8}鞣\u{858b7}\u{c1840}ⳝ\u{773d8}\u{1a7ad}\u{10d66e}\u{79e54}\u{5104e}\u{bf6d8}𪉜\u{4caef}\u{43b5a}\u{dec78}\u{34102}\u{7540a}\u{836e3}\u{46501}\u{c3448}\u{bb142}", +], PrimitiveArray +[ + -6667949724800521943, + -6667949724800521943, + 808956911292196769, + 1260943554524879296, + 808956911292196769, + 1260943554524879296, + 1260943554524879296, + 1260943554524879296, + -6667949724800521943, + 808956911292196769, + 1260943554524879296, + 1260943554524879296, + 1260943554524879296, +]], row_count: 13 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + 1766201792, + 1479223201, + -1453602088, + -1552503027, + -1453602088, + null, + 965520417, +], StringArray +[ + "\u{7f898}𗂵\u{1061e1}\u{101a2b}\u{a85a7}\u{caa85}\u{7678f}𑌠\u{eaf22}\u{72bed}\u{d9a56}\u{16378}\u{539ef}\u{d142f}\u{457ef}\u{8fef6}\u{802bb}𨸻\u{b0920}\u{82ea8}鞣\u{858b7}\u{c1840}ⳝ\u{773d8}\u{1a7ad}\u{10d66e}\u{79e54}\u{5104e}\u{bf6d8}𪉜\u{4caef}\u{43b5a}\u{dec78}\u{34102}\u{7540a}\u{836e3}\u{46501}\u{c3448}\u{bb142}", + "\u{7f898}𗂵\u{1061e1}\u{101a2b}\u{a85a7}\u{caa85}\u{7678f}𑌠\u{eaf22}\u{72bed}\u{d9a56}\u{16378}\u{539ef}\u{d142f}\u{457ef}\u{8fef6}\u{802bb}𨸻\u{b0920}\u{82ea8}鞣\u{858b7}\u{c1840}ⳝ\u{773d8}\u{1a7ad}\u{10d66e}\u{79e54}\u{5104e}\u{bf6d8}𪉜\u{4caef}\u{43b5a}\u{dec78}\u{34102}\u{7540a}\u{836e3}\u{46501}\u{c3448}\u{bb142}", + "\u{7f898}𗂵\u{1061e1}\u{101a2b}\u{a85a7}\u{caa85}\u{7678f}𑌠\u{eaf22}\u{72bed}\u{d9a56}\u{16378}\u{539ef}\u{d142f}\u{457ef}\u{8fef6}\u{802bb}𨸻\u{b0920}\u{82ea8}鞣\u{858b7}\u{c1840}ⳝ\u{773d8}\u{1a7ad}\u{10d66e}\u{79e54}\u{5104e}\u{bf6d8}𪉜\u{4caef}\u{43b5a}\u{dec78}\u{34102}\u{7540a}\u{836e3}\u{46501}\u{c3448}\u{bb142}", + "\u{7f898}𗂵\u{1061e1}\u{101a2b}\u{a85a7}\u{caa85}\u{7678f}𑌠\u{eaf22}\u{72bed}\u{d9a56}\u{16378}\u{539ef}\u{d142f}\u{457ef}\u{8fef6}\u{802bb}𨸻\u{b0920}\u{82ea8}鞣\u{858b7}\u{c1840}ⳝ\u{773d8}\u{1a7ad}\u{10d66e}\u{79e54}\u{5104e}\u{bf6d8}𪉜\u{4caef}\u{43b5a}\u{dec78}\u{34102}\u{7540a}\u{836e3}\u{46501}\u{c3448}\u{bb142}", + "\u{87d17}\u{a9638}\u{974ca}𓊠\u{542b2}\u{eb491}\u{aea18}\u{d931b}𬤰\u{10d21b}\u{10c86d}\u{9eed2}\u{36b61}\u{7565d}\u{9edf0}\u{b2de1}\u{ddf3d}", + "\u{87d17}\u{a9638}\u{974ca}𓊠\u{542b2}\u{eb491}\u{aea18}\u{d931b}𬤰\u{10d21b}\u{10c86d}\u{9eed2}\u{36b61}\u{7565d}\u{9edf0}\u{b2de1}\u{ddf3d}", + "\u{d683f}\u{7e2c0}\u{5f592}\u{54d96}谉𔄿𫵼", +], PrimitiveArray +[ + 1260943554524879296, + 1260943554524879296, + 808956911292196769, + 808956911292196769, + 808956911292196769, + 1260943554524879296, + 1260943554524879296, +]], row_count: 7 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + -1647665320, + -1647665320, +], StringArray +[ + "\u{d683f}\u{7e2c0}\u{5f592}\u{54d96}谉𔄿𫵼", + "\u{d683f}\u{7e2c0}\u{5f592}\u{54d96}谉𔄿𫵼", +], PrimitiveArray +[ + -6667949724800521943, + 808956911292196769, +]], row_count: 2 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + 293586299, + -1647665320, + -1552503027, +], StringArray +[ + "\u{e1e5a}\u{cb5f8}\u{7bf29}\u{6d517}\u{d99f9}\u{3d88b}\u{58e7f}\u{7c40b}\u{61442}\u{7de19}\u{a069b}\u{57e2c}\u{8d5b9}𥥼\u{86897}𝐵\u{3d342}𨌜\u{3a620}\u{7a0f1}瞕\u{3c03c}\u{b3107}𠣸\u{3505c}\u{5274c}", + "\u{e1e5a}\u{cb5f8}\u{7bf29}\u{6d517}\u{d99f9}\u{3d88b}\u{58e7f}\u{7c40b}\u{61442}\u{7de19}\u{a069b}\u{57e2c}\u{8d5b9}𥥼\u{86897}𝐵\u{3d342}𨌜\u{3a620}\u{7a0f1}瞕\u{3c03c}\u{b3107}𠣸\u{3505c}\u{5274c}", + "\u{e1e5a}\u{cb5f8}\u{7bf29}\u{6d517}\u{d99f9}\u{3d88b}\u{58e7f}\u{7c40b}\u{61442}\u{7de19}\u{a069b}\u{57e2c}\u{8d5b9}𥥼\u{86897}𝐵\u{3d342}𨌜\u{3a620}\u{7a0f1}瞕\u{3c03c}\u{b3107}𠣸\u{3505c}\u{5274c}", +], PrimitiveArray +[ + 808956911292196769, + 1260943554524879296, + 1260943554524879296, +]], row_count: 3 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +]], row_count: 0 }] +param: SessionContextParams { batch_size: 4, target_partitions: 1, sort_hint: true, skip_partial_params: SkipPartialParams { ratio_threshold: 1.0, rows_threshold: 18446744073709551615 } } diff --git a/datafusion/core/output_v2.txt b/datafusion/core/output_v2.txt new file mode 100644 index 000000000000..9dfd66406e1f --- /dev/null +++ b/datafusion/core/output_v2.txt @@ -0,0 +1,152 @@ +[RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + -357113469, + null, + null, + null, + -1279405755, + -444714478, + null, + 1774788067, + -1306952328, + null, + null, + 1770857641, + 1774788067, + -1792070317, + null, +], StringArray +[ + null, + null, + "i", + "jhgbzkuiwbgwkt", + "jhgbzkuiwbgwkt", + "jhgbzkuiwbgwkt", + "jhgbzkuiwbgwkt", + "na", + "na", + "na", + "na", + "na", + "niihllpeeyvd", + "niihllpeeyvd", + "niihllpeeyvd", +], PrimitiveArray +[ + null, + -2033270342133114175, + null, + -4200106050806947131, + null, + null, + -4200106050806947131, + null, + null, + null, + -3847918510752683269, + 8501589679279013149, + null, + null, + 7605775654001090772, +]], row_count: 15 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + null, + null, + 462257437, + null, + -1337912794, + null, + null, +], StringArray +[ + "npbbfobgibtgeeqhdn", + "npbbfobgibtgeeqhdn", + "spqsbsacoy", + "wesfsqwixzajgulo", + "wesfsqwixzajgulo", + "wesfsqwixzajgulo", + "wesfsqwixzajgulo", +], PrimitiveArray +[ + null, + null, + null, + 1072653868017529066, + null, + 510519871089534151, + -6306834322567809381, +]], row_count: 7 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + -411706700, + null, + -411706700, + null, +], StringArray +[ + "wesfsqwixzajgulo", + "xhazuofxdqkekigwsbgqdcetobrzb", + "xlba", + "xlba", +], PrimitiveArray +[ + 640559834438583325, + null, + 1072653868017529066, + -2419711412701188161, +]], row_count: 4 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + null, +], StringArray +[ + "xoyiatitmaso", +], PrimitiveArray +[ + null, +]], row_count: 1 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + null, +], StringArray +[ + "xoyiatitmaso", +], PrimitiveArray +[ + null, +]], row_count: 1 }] +param: SessionContextParams { batch_size: 2, target_partitions: 1, sort_hint: true, skip_partial_params: SkipPartialParams { ratio_threshold: 0.0, rows_threshold: 0 } } diff --git a/datafusion/core/output_v3.txt b/datafusion/core/output_v3.txt new file mode 100644 index 000000000000..1f3858cbacc6 --- /dev/null +++ b/datafusion/core/output_v3.txt @@ -0,0 +1,656 @@ +[RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + null, + null, + null, + 2104462536, + 11663347, + -620207880, + 20063192, + 11663347, + null, + 1580798191, + ...115 elements..., + null, + -1560869220, + 2104462536, + 1580798191, + null, + null, + 11663347, + 11663347, + null, + -1560869220, +], StringArray +[ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + ...115 elements..., + "am", + "am", + "am", + "am", + "am", + "am", + "am", + "am", + "am", + "ap", +], PrimitiveArray +[ + null, + -4348034159383376037, + null, + -2663772559740694289, + null, + null, + -2663772559740694289, + 5441019060555949345, + 1663610911169767797, + null, + ...115 elements..., + null, + null, + -6703882251128566584, + 1663610911169767797, + 50093696951023963, + 5441019060555949345, + null, + -6703882251128566584, + 1663610911169767797, + 50093696951023963, +]], row_count: 135 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + 11663347, + 20063192, + null, + null, + null, + 11663347, + -620207880, + null, + null, + -620207880, + ...46 elements..., + 2104462536, + 20063192, + null, + 20063192, + 11663347, + null, + 20063192, + null, + null, + 1580798191, +], StringArray +[ + "ap", + "ap", + "ap", + "ap", + "ap", + "ap", + "ast", + "ast", + "ast", + "ast", + ...46 elements..., + "izuy", + "izuy", + "izuy", + "j", + "j", + "j", + "j", + "j", + "j", + "j", +], PrimitiveArray +[ + 3769477137938712786, + null, + 50093696951023963, + 1663610911169767797, + 3769477137938712786, + null, + 3769477137938712786, + null, + null, + -2663772559740694289, + ...46 elements..., + null, + 3769477137938712786, + null, + 1663610911169767797, + null, + null, + 3769477137938712786, + null, + null, + 3769477137938712786, +]], row_count: 66 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + -620207880, + null, + null, + 1580798191, + null, + null, + null, + 2104462536, + null, + null, + ...15 elements..., + 1580798191, + 20063192, + -620207880, + null, + null, + 1580798191, + -620207880, + -620207880, + null, + null, +], StringArray +[ + "j", + "j", + "j", + "l", + "l", + "l", + "l", + "l", + "l", + "l", + ...15 elements..., + "qt", + "qt", + "qt", + "qt", + "qt", + "qt", + "qt", + "qt", + "rcz", + "rcz", +], PrimitiveArray +[ + -4348034159383376037, + 1663610911169767797, + 1663610911169767797, + -4348034159383376037, + null, + null, + null, + null, + 1663610911169767797, + 1663610911169767797, + ...15 elements..., + null, + null, + 3769477137938712786, + 50093696951023963, + null, + null, + null, + -4348034159383376037, + null, + -6703882251128566584, +]], row_count: 35 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + 2104462536, + null, + null, + 11663347, + null, + null, + null, + 11663347, +], StringArray +[ + "rcz", + "rcz", + "rcz", + "rcz", + "rcz", + "rcz", + "rcz", + "rcz", +], PrimitiveArray +[ + null, + null, + null, + 50093696951023963, + 1663610911169767797, + 3769477137938712786, + 50093696951023963, + -2663772559740694289, +]], row_count: 8 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + null, + 11663347, + 20063192, + -1270843045, + null, +], StringArray +[ + "rcz", + "rcz", + "rcz", + "uzr", + "uzr", +], PrimitiveArray +[ + -4348034159383376037, + null, + null, + null, + null, +]], row_count: 5 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + -1560869220, +], StringArray +[ + "uzr", +], PrimitiveArray +[ + 1663610911169767797, +]], row_count: 1 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ +], StringArray +[ +], PrimitiveArray +[ +]], row_count: 0 }, RecordBatch { schema: Schema { fields: [Field { name: "a", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "b", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "c", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, columns: [PrimitiveArray +[ + null, + -1270843045, + -1560869220, + 11663347, + 2104462536, + null, +], StringArray +[ + "uzr", + "uzr", + "uzr", + "uzr", + "uzr", + "uzr", +], PrimitiveArray +[ + 5441019060555949345, + -6703882251128566584, + null, + -6703882251128566584, + 1663610911169767797, + null, +]], row_count: 6 }] +param: SessionContextParams { batch_size: 116, target_partitions: 1, sort_hint: true, skip_partial_params: SkipPartialParams { ratio_threshold: 1.0, rows_threshold: 18446744073709551615 } } +expect: +------+----------------------------+ +| b | sum(DISTINCT fuzz_table.a) | ++------+----------------------------+ +| | 265067121 | +| am | 2136054854 | +| ap | -1529142681 | +| ast | 980653503 | +| bxhl | 2104462536 | +| etl | 865211809 | +| gma | 2434480874 | +| gv | 20063192 | +| izuy | 233474803 | +| j | 992316850 | +| l | 1825936341 | +| qt | 980653503 | +| rcz | 2136189075 | +| uzr | -715586382 | ++------+----------------------------+ +got: +------+----------------------------+ +| b | sum(DISTINCT fuzz_table.a) | ++------+----------------------------+ +| | 265067121 | +| am | 2136054854 | +| ap | -1529142681 | +| ast | 980653503 | +| bxhl | 2104462536 | +| etl | 865211809 | +| gma | 2434480874 | +| gv | 20063192 | +| izuy | 233474803 | +| j | 992316850 | +| gv | | +| l | 1825936341 | +| qt | 980653503 | +| rcz | 2136189075 | +| uzr | -715586382 | ++------+----------------------------+ +input: +-------------+------+----------------------+ +| a | b | c | ++-------------+------+----------------------+ +| | | | +| | | -4348034159383376037 | +| | | | +| 2104462536 | | -2663772559740694289 | +| 11663347 | | | +| -620207880 | | | +| 20063192 | | -2663772559740694289 | +| 11663347 | | 5441019060555949345 | +| | | 1663610911169767797 | +| 1580798191 | | | +| | | | +| 20063192 | | | +| | | | +| | | | +| | | | +| | | 3769477137938712786 | +| | | -4348034159383376037 | +| | | | +| -1560869220 | | | +| 2104462536 | | 3769477137938712786 | +| -620207880 | | | +| | | -2663772559740694289 | +| | | | +| 11663347 | | 5441019060555949345 | +| | | 5441019060555949345 | +| -1560869220 | | | +| | | | +| -1560869220 | | | +| | | -2663772559740694289 | +| | | 5441019060555949345 | +| 20063192 | | | +| 2104462536 | | 50093696951023963 | +| 1580798191 | | | +| | | | +| -1270843045 | | | +| -1560869220 | | -6703882251128566584 | +| 1580798191 | | -4348034159383376037 | +| -620207880 | | -6703882251128566584 | +| -1270843045 | | | +| | | -6703882251128566584 | +| -1270843045 | | -4348034159383376037 | +| -1270843045 | | -2663772559740694289 | +| 2104462536 | | 50093696951023963 | +| -1270843045 | | | +| 2104462536 | | | +| 20063192 | | -4348034159383376037 | +| 2104462536 | | 1663610911169767797 | +| | | 50093696951023963 | +| 20063192 | | 5441019060555949345 | +| 20063192 | | 3769477137938712786 | +| -1560869220 | | | +| | | | +| | | | +| | | 50093696951023963 | +| | | | +| 2104462536 | | | +| 11663347 | | -6703882251128566584 | +| 11663347 | | -6703882251128566584 | +| -1270843045 | | | +| 1580798191 | | | +| -1270843045 | | 5441019060555949345 | +| | | 1663610911169767797 | +| -1560869220 | | -4348034159383376037 | +| 1580798191 | | -6703882251128566584 | +| | | -2663772559740694289 | +| -1270843045 | | | +| -620207880 | | -4348034159383376037 | +| 11663347 | | 5441019060555949345 | +| 2104462536 | | | +| -1560869220 | | | +| 2104462536 | | 50093696951023963 | +| | | | +| | | | +| 1580798191 | | -2663772559740694289 | +| -620207880 | | -4348034159383376037 | +| 11663347 | | 5441019060555949345 | +| 2104462536 | | | +| -1560869220 | | | +| 1580798191 | | | +| | | 50093696951023963 | +| 20063192 | | | +| | | 1663610911169767797 | +| -620207880 | | | +| | | | +| 1580798191 | | | +| -620207880 | | -4348034159383376037 | +| 11663347 | | -2663772559740694289 | +| 2104462536 | | | +| -1270843045 | | 50093696951023963 | +| -620207880 | | | +| | | -2663772559740694289 | +| | | | +| | | | +| 1580798191 | | -4348034159383376037 | +| | | -6703882251128566584 | +| 2104462536 | | 5441019060555949345 | +| -620207880 | | -6703882251128566584 | +| -1560869220 | | -6703882251128566584 | +| -1560869220 | | -2663772559740694289 | +| 11663347 | | | +| 11663347 | | 5441019060555949345 | +| -1560869220 | | 3769477137938712786 | +| 11663347 | | -2663772559740694289 | +| | | 1663610911169767797 | +| 1580798191 | | | +| -1270843045 | | | +| | | | +| 1580798191 | | -2663772559740694289 | +| | | -6703882251128566584 | +| | | 50093696951023963 | +| 20063192 | | 50093696951023963 | +| | | -2663772559740694289 | +| 11663347 | | 1663610911169767797 | +| | | -2663772559740694289 | +| 1580798191 | | 1663610911169767797 | +| 11663347 | | | +| -620207880 | | | +| | | | +| | | | +| | | | +| | | -4348034159383376037 | +| | | | +| 2104462536 | | | +| | | -6703882251128566584 | +| | | -2663772559740694289 | +| | am | | +| -1560869220 | am | | +| 2104462536 | am | -6703882251128566584 | +| 1580798191 | am | 1663610911169767797 | +| | am | 50093696951023963 | +| | am | 5441019060555949345 | +| 11663347 | am | | +| 11663347 | am | -6703882251128566584 | +| | am | 1663610911169767797 | +| -1560869220 | ap | 50093696951023963 | +| 11663347 | ap | 3769477137938712786 | +| 20063192 | ap | | +| | ap | 50093696951023963 | +| | ap | 1663610911169767797 | +| | ap | 3769477137938712786 | +| 11663347 | ap | | +| -620207880 | ast | 3769477137938712786 | +| | ast | | +| | ast | | +| -620207880 | ast | -2663772559740694289 | +| 20063192 | ast | -2663772559740694289 | +| | ast | 3769477137938712786 | +| | ast | | +| 1580798191 | ast | -4348034159383376037 | +| | bxhl | 5441019060555949345 | +| 2104462536 | bxhl | -4348034159383376037 | +| | bxhl | -4348034159383376037 | +| | bxhl | -2663772559740694289 | +| | bxhl | -2663772559740694289 | +| | bxhl | | +| | bxhl | -6703882251128566584 | +| 11663347 | etl | | +| -1560869220 | etl | | +| | etl | | +| | etl | | +| -1560869220 | etl | 3769477137938712786 | +| 1580798191 | etl | | +| | etl | | +| 2104462536 | etl | -6703882251128566584 | +| | etl | | +| -1270843045 | etl | -4348034159383376037 | +| | gma | 50093696951023963 | +| 1580798191 | gma | | +| | gma | -4348034159383376037 | +| 20063192 | gma | | +| 2104462536 | gma | | +| | gma | | +| 1580798191 | gma | 5441019060555949345 | +| -1270843045 | gma | -2663772559740694289 | +| | gv | 1663610911169767797 | +| | gv | 3769477137938712786 | +| | gv | 1663610911169767797 | +| | gv | 3769477137938712786 | +| | gv | -2663772559740694289 | +| 20063192 | gv | | +| | izuy | -2663772559740694289 | +| | izuy | | +| -620207880 | izuy | 5441019060555949345 | +| | izuy | 50093696951023963 | +| 2104462536 | izuy | 3769477137938712786 | +| 2104462536 | izuy | 1663610911169767797 | +| | izuy | -2663772559740694289 | +| -620207880 | izuy | | +| -1270843045 | izuy | -6703882251128566584 | +| -1270843045 | izuy | 5441019060555949345 | +| -1270843045 | izuy | 5441019060555949345 | +| 2104462536 | izuy | | +| 20063192 | izuy | 3769477137938712786 | +| | izuy | | +| 20063192 | j | 1663610911169767797 | +| 11663347 | j | | +| | j | | +| 20063192 | j | 3769477137938712786 | +| | j | | +| | j | | +| 1580798191 | j | 3769477137938712786 | +| -620207880 | j | -4348034159383376037 | +| | j | 1663610911169767797 | +| | j | 1663610911169767797 | +| 1580798191 | l | -4348034159383376037 | +| | l | | +| | l | | +| | l | | +| 2104462536 | l | | +| | l | 1663610911169767797 | +| | l | 1663610911169767797 | +| 20063192 | l | | +| | l | -4348034159383376037 | +| -620207880 | l | 1663610911169767797 | +| | l | 3769477137938712786 | +| -1270843045 | l | -2663772559740694289 | +| -1270843045 | l | | +| | l | | +| -620207880 | l | | +| | l | | +| 11663347 | l | | +| | l | -4348034159383376037 | +| | l | | +| | l | 3769477137938712786 | +| 1580798191 | qt | 3769477137938712786 | +| | qt | -6703882251128566584 | +| 1580798191 | qt | | +| 20063192 | qt | | +| -620207880 | qt | 3769477137938712786 | +| | qt | 50093696951023963 | +| | qt | | +| 1580798191 | qt | | +| -620207880 | qt | | +| -620207880 | qt | -4348034159383376037 | +| | rcz | | +| | rcz | -6703882251128566584 | +| 2104462536 | rcz | | +| | rcz | | +| | rcz | | +| 11663347 | rcz | 50093696951023963 | +| | rcz | 1663610911169767797 | +| | rcz | 3769477137938712786 | +| | rcz | 50093696951023963 | +| 11663347 | rcz | -2663772559740694289 | +| | rcz | -4348034159383376037 | +| 11663347 | rcz | | +| 20063192 | rcz | | +| -1270843045 | uzr | | +| | uzr | | +| -1560869220 | uzr | 1663610911169767797 | +| | uzr | 5441019060555949345 | +| -1270843045 | uzr | -6703882251128566584 | +| -1560869220 | uzr | | +| 11663347 | uzr | -6703882251128566584 | +| 2104462536 | uzr | 1663610911169767797 | +| | uzr | | ++-------------+------+----------------------+ diff --git a/datafusion/core/tests/data/data.csv b/datafusion/core/tests/data/data.csv new file mode 100644 index 000000000000..b708b51df271 --- /dev/null +++ b/datafusion/core/tests/data/data.csv @@ -0,0 +1,2 @@ +c1,c2 +'a',1.1 \ No newline at end of file diff --git a/datafusion/core/tests/fuzz_cases/aggregate_fuzz.rs b/datafusion/core/tests/fuzz_cases/aggregate_fuzz.rs index 99f2bb38851b..176121e1da12 100644 --- a/datafusion/core/tests/fuzz_cases/aggregate_fuzz.rs +++ b/datafusion/core/tests/fuzz_cases/aggregate_fuzz.rs @@ -142,13 +142,14 @@ async fn test_basic_prim_aggr_group_by_single_string() { let data_gen_config = DatasetGeneratorConfig { columns, rows_num_range: (512, 1024), + // rows_num_range: (4, 12), sort_keys_set, }; // Build fuzzer let fuzzer = builder .data_gen_config(data_gen_config) - .data_gen_rounds(16) + .data_gen_rounds(1) // .add_sql("SELECT b, sum(a) FROM fuzz_table GROUP BY b") .add_sql("SELECT b, sum(distinct a) FROM fuzz_table GROUP BY b") // .add_sql("SELECT b, max(a) FROM fuzz_table GROUP BY b") diff --git a/datafusion/core/tests/fuzz_cases/aggregation_fuzzer/data_generator.rs b/datafusion/core/tests/fuzz_cases/aggregation_fuzzer/data_generator.rs index 9d45779295e7..a4225183af00 100644 --- a/datafusion/core/tests/fuzz_cases/aggregation_fuzzer/data_generator.rs +++ b/datafusion/core/tests/fuzz_cases/aggregation_fuzzer/data_generator.rs @@ -17,7 +17,7 @@ use std::sync::Arc; -use arrow_array::{ArrayRef, RecordBatch}; +use arrow_array::{Array, ArrayRef, Int32Array, Int64Array, RecordBatch, StringArray}; use arrow_schema::{DataType, Field, Schema}; use datafusion_common::{arrow_datafusion_err, DataFusionError, Result}; use datafusion_physical_expr::{expressions::col, PhysicalSortExpr}; @@ -93,12 +93,14 @@ impl DatasetGenerator { } } - pub fn generate(&self) -> Result> { + pub fn generate(&self, seed: Option) -> Result> { let mut datasets = Vec::with_capacity(self.sort_keys_set.len() + 1); // Generate the base batch - let base_batch = self.batch_generator.generate()?; - let batches = stagger_batch(base_batch.clone()); + let base_batch = self.batch_generator.generate(seed)?; + + // let batches = stagger_batch(base_batch.clone()); + let batches = vec![base_batch.clone()]; let dataset = Dataset::new(batches, Vec::new()); datasets.push(dataset); @@ -114,7 +116,10 @@ impl DatasetGenerator { .collect::>>()?; let sorted_batch = sort_batch(&base_batch, &sort_exprs, None)?; + // println!("sorted_batch: {:?}", sorted_batch); let batches = stagger_batch(sorted_batch); + // println!("bathes: {:?}", batches); + // let batches = vec![sorted_batch]; let dataset = Dataset::new(batches, sort_keys); datasets.push(dataset); } @@ -174,16 +179,18 @@ struct RecordBatchGenerator { } macro_rules! generate_string_array { - ($SELF:ident, $NUM_ROWS:ident, $BATCH_GEN_RNG:ident, $ARRAY_GEN_RNG:ident, $OFFSET_TYPE:ty) => {{ - let null_pct_idx = $BATCH_GEN_RNG.gen_range(0..$SELF.candidate_null_pcts.len()); + ($SELF:ident, $NUM_ROWS:ident, $ARRAY_GEN_RNG:ident, $OFFSET_TYPE:ty) => {{ + let null_pct_idx = $ARRAY_GEN_RNG.gen_range(0..$SELF.candidate_null_pcts.len()); let null_pct = $SELF.candidate_null_pcts[null_pct_idx]; - let max_len = $BATCH_GEN_RNG.gen_range(1..50); + let max_len = $ARRAY_GEN_RNG.gen_range(1..50); let num_distinct_strings = if $NUM_ROWS > 1 { - $BATCH_GEN_RNG.gen_range(1..$NUM_ROWS) + $ARRAY_GEN_RNG.gen_range(1..$NUM_ROWS) } else { $NUM_ROWS }; + let max_len = 4; + let mut generator = StringArrayGenerator { max_len, num_strings: $NUM_ROWS, @@ -197,16 +204,18 @@ macro_rules! generate_string_array { } macro_rules! generate_primitive_array { - ($SELF:ident, $NUM_ROWS:ident, $BATCH_GEN_RNG:ident, $ARRAY_GEN_RNG:ident, $DATA_TYPE:ident) => { + ($SELF:ident, $NUM_ROWS:ident, $ARRAY_GEN_RNG:ident, $DATA_TYPE:ident) => { paste::paste! {{ - let null_pct_idx = $BATCH_GEN_RNG.gen_range(0..$SELF.candidate_null_pcts.len()); + let null_pct_idx = $ARRAY_GEN_RNG.gen_range(0..$SELF.candidate_null_pcts.len()); let null_pct = $SELF.candidate_null_pcts[null_pct_idx]; let num_distinct_primitives = if $NUM_ROWS > 1 { - $BATCH_GEN_RNG.gen_range(1..$NUM_ROWS) + $ARRAY_GEN_RNG.gen_range(1..$NUM_ROWS) } else { $NUM_ROWS }; + let num_distinct_primitives = 8; + let mut generator = PrimitiveArrayGenerator { num_primitives: $NUM_ROWS, num_distinct_primitives, @@ -230,10 +239,15 @@ impl RecordBatchGenerator { } } - fn generate(&self) -> Result { - let mut rng = thread_rng(); - let num_rows = rng.gen_range(self.min_rows_nun..=self.max_rows_num); - let array_gen_rng = StdRng::from_seed(rng.gen()); + fn generate(&self, seed: Option) -> Result { + let seed = seed.unwrap_or_else(|| { + let mut rng = thread_rng(); + rng.gen::() + }); + println!("seed: {:?}", seed); + + let mut array_gen_rng = StdRng::seed_from_u64(seed); + let num_rows = array_gen_rng.gen_range(self.min_rows_nun..=self.max_rows_num); // Build arrays let mut arrays = Vec::with_capacity(self.columns.len()); @@ -241,12 +255,332 @@ impl RecordBatchGenerator { let array = self.generate_array_of_type( col.column_type.clone(), num_rows, - &mut rng, + // &mut rng, array_gen_rng.clone(), ); arrays.push(array); } + // println!("arrays: {:?}", arrays); + + // let first_column = vec![ + // None, // (empty) + // None, // (empty) + // None, // (empty) + // Some(2104462536), // 2104462536 + // Some(11663347), // 11663347 + // Some(-620207880), // -620207880 + // Some(20063192), // 20063192 + // Some(11663347), // 11663347 + // None, // (empty) + // Some(1580798191), // 1580798191 + // None, // (empty) + // Some(20063192), // 20063192 + // None, // (empty) + // None, // (empty) + // None, // (empty) + // None, // (empty) + // None, // (empty) + // Some(-1560869220), // -1560869220 + // Some(2104462536), // 2104462536 + // Some(-620207880), // -620207880 + // None, // (empty) + // None, // (empty) + // Some(11663347), // 11663347 + // None, // (empty) + // Some(-1560869220), // -1560869220 + // None, // (empty) + // Some(-1560869220), // -1560869220 + // None, // (empty) + // None, // (empty) + // Some(20063192), // 20063192 + // Some(2104462536), // 2104462536 + // Some(1580798191), // 1580798191 + // None, // (empty) + // Some(-1270843045), // -1270843045 + // Some(-1560869220), // -1560869220 + // Some(1580798191), // 1580798191 + // Some(-620207880), // -620207880 + // Some(-1270843045), // -1270843045 + // None, // (empty) + // Some(-1270843045), // -1270843045 + // Some(-1270843045), // -1270843045 + // Some(2104462536), // 2104462536 + // Some(-1270843045), // -1270843045 + // Some(2104462536), // 2104462536 + // Some(20063192), // 20063192 + // Some(2104462536), // 2104462536 + // None, // (empty) + // Some(20063192), // 20063192 + // Some(20063192), // 20063192 + // Some(-1560869220), // -1560869220 + // None, // (empty) + // None, // (empty) + // None, // (empty) + // None, // (empty) + // Some(2104462536), // 2104462536 + // Some(11663347), // 11663347 + // Some(11663347), // 11663347 + // Some(-1270843045), // -1270843045 + // Some(1580798191), // 1580798191 + // Some(-1270843045), // -1270843045 + // None, // (empty) + // Some(-1560869220), // -1560869220 + // Some(1580798191), // 1580798191 + // None, // (empty) + // Some(-1270843045), // -1270843045 + // Some(-620207880), // -620207880 + // Some(11663347), // 11663347 + // Some(2104462536), // 2104462536 + // Some(-1560869220), // -1560869220 + // Some(2104462536), // 2104462536 + // Some(2104462536), // 2104462536 + // Some(1580798191), // 1580798191 + // None, // (empty) + // Some(20063192), // 20063192 + // Some(1580798191), // 1580798191 + // Some(-620207880), // -620207880 + // Some(11663347), // 11663347 + // Some(2104462536), // 2104462536 + // Some(-1270843045), // -1270843045 + // Some(-620207880), // -620207880 + // None, // (empty) + // None, // (empty) + // Some(1580798191), // 1580798191 + // None, // (empty) + // Some(1580798191), // 1580798191 + // Some(20063192), // 20063192 + // None, // (empty) + // Some(11663347), // 11663347 + // None, // (empty) + // Some(1580798191), // 1580798191 + // None, // (empty) + // Some(11663347), // 11663347 + // ]; + // let i32_array = Arc::new(Int32Array::from(first_column)); + // let second_column = vec![ + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // None, + // Some("am".to_string()), + // Some("am".to_string()), + // Some("am".to_string()), + // Some("am".to_string()), + // Some("am".to_string()), + // Some("am".to_string()), + // Some("am".to_string()), + // Some("ap".to_string()), + // Some("ap".to_string()), + // Some("ap".to_string()), + // Some("ap".to_string()), + // Some("ap".to_string()), + // Some("ap".to_string()), + // Some("ast".to_string()), + // Some("ast".to_string()), + // Some("ast".to_string()), + // Some("ast".to_string()), + // Some("ast".to_string()), + // Some("ast".to_string()), + // Some("ast".to_string()), + // Some("ast".to_string()), + // Some("bxhl".to_string()), + // Some("bxhl".to_string()), + // Some("bxhl".to_string()), + // Some("bxhl".to_string()), + // Some("bxhl".to_string()), + // Some("bxhl".to_string()), + // Some("bxhl".to_string()), + // Some("bxhl".to_string()), + // Some("etl".to_string()), + // Some("etl".to_string()), + // Some("etl".to_string()), + // Some("etl".to_string()), + // Some("etl".to_string()), + // Some("etl".to_string()), + // Some("etl".to_string()), + // Some("etl".to_string()), + // Some("etl".to_string()), + // Some("gma".to_string()), + // Some("gma".to_string()), + // Some("gma".to_string()), + // Some("gma".to_string()), + // Some("gma".to_string()), + // Some("gma".to_string()), + // Some("gma".to_string()), + // Some("gma".to_string()), + // Some("gma".to_string()), + // Some("gv".to_string()), + // Some("gv".to_string()), + // Some("gv".to_string()), + // Some("gv".to_string()), + // Some("gv".to_string()), + // Some("gv".to_string()), + // Some("gv".to_string()), + // Some("izuy".to_string()), + // Some("izuy".to_string()), + // Some("izuy".to_string()), + // Some("izuy".to_string()), + // Some("izuy".to_string()), + // Some("izuy".to_string()), + // Some("izuy".to_string()), + // Some("izuy".to_string()), + // Some("izuy".to_string()), + // Some("izuy".to_string()), + // Some("j".to_string()), + // Some("j".to_string()), + // Some("j".to_string()), + // Some("j".to_string()), + // Some("j".to_string()), + // Some("j".to_string()), + // Some("j".to_string()), + // Some("j".to_string()), + // Some("j".to_string()), + // Some("l".to_string()), + // Some("l".to_string()), + // Some("l".to_string()), + // Some("l".to_string()), + // Some("l".to_string()), + // Some("l".to_string()), + // Some("l".to_string()), + // Some("l".to_string()), + // Some("l".to_string()), + // Some("l".to_string()), + // Some("l".to_string()), + // Some("qt".to_string()), + // Some("qt".to_string()), + // Some("qt".to_string()), + // Some("qt".to_string()), + // Some("qt".to_string()), + // Some("qt".to_string()), + // Some("qt".to_string()), + // Some("qt".to_string()), + // Some("qt".to_string()), + // Some("qt".to_string()), + // Some("qt".to_string()), + // Some("rcz".to_string()), + // Some("rcz".to_string()), + // Some("rcz".to_string()), + // Some("rcz".to_string()), + // Some("rcz".to_string()), + // Some("rcz".to_string()), + // Some("rcz".to_string()), + // Some("rcz".to_string()), + // Some("rcz".to_string()), + // Some("rcz".to_string()), + // Some("rcz".to_string()), + // Some("uzr".to_string()), + // Some("uzr".to_string()), + // Some("uzr".to_string()), + // Some("uzr".to_string()), + // Some("uzr".to_string()), + // Some("uzr".to_string()), + // Some("uzr".to_string()), + // Some("uzr".to_string()), + // ]; + + // let arr = StringArray::from(second_column); + // let len = arr.len(); + // let s_array = Arc::new(StringArray::from(arr)); + // let i64_array = Arc::new(Int64Array::from(vec![1; len])); + // arrays[0] = i32_array; + // arrays[1] = s_array; + // arrays[2] = i64_array; + // Build schema let fields = self .columns @@ -262,15 +596,17 @@ impl RecordBatchGenerator { &self, data_type: DataType, num_rows: usize, - batch_gen_rng: &mut ThreadRng, + // batch_gen_rng: &mut ThreadRng, array_gen_rng: StdRng, ) -> ArrayRef { + let mut array_gen_rng = array_gen_rng; + match data_type { DataType::Int8 => { generate_primitive_array!( self, num_rows, - batch_gen_rng, + // batch_gen_rng, array_gen_rng, i8 ) @@ -279,7 +615,7 @@ impl RecordBatchGenerator { generate_primitive_array!( self, num_rows, - batch_gen_rng, + // batch_gen_rng, array_gen_rng, i16 ) @@ -288,7 +624,7 @@ impl RecordBatchGenerator { generate_primitive_array!( self, num_rows, - batch_gen_rng, + // batch_gen_rng, array_gen_rng, i32 ) @@ -297,7 +633,7 @@ impl RecordBatchGenerator { generate_primitive_array!( self, num_rows, - batch_gen_rng, + // batch_gen_rng, array_gen_rng, i64 ) @@ -306,7 +642,7 @@ impl RecordBatchGenerator { generate_primitive_array!( self, num_rows, - batch_gen_rng, + // batch_gen_rng, array_gen_rng, u8 ) @@ -315,7 +651,7 @@ impl RecordBatchGenerator { generate_primitive_array!( self, num_rows, - batch_gen_rng, + // batch_gen_rng, array_gen_rng, u16 ) @@ -324,7 +660,7 @@ impl RecordBatchGenerator { generate_primitive_array!( self, num_rows, - batch_gen_rng, + // batch_gen_rng, array_gen_rng, u32 ) @@ -333,7 +669,7 @@ impl RecordBatchGenerator { generate_primitive_array!( self, num_rows, - batch_gen_rng, + // batch_gen_rng, array_gen_rng, u64 ) @@ -342,7 +678,7 @@ impl RecordBatchGenerator { generate_primitive_array!( self, num_rows, - batch_gen_rng, + // batch_gen_rng, array_gen_rng, f32 ) @@ -351,16 +687,16 @@ impl RecordBatchGenerator { generate_primitive_array!( self, num_rows, - batch_gen_rng, + // batch_gen_rng, array_gen_rng, f64 ) } DataType::Utf8 => { - generate_string_array!(self, num_rows, batch_gen_rng, array_gen_rng, i32) + generate_string_array!(self, num_rows, array_gen_rng, i32) } DataType::LargeUtf8 => { - generate_string_array!(self, num_rows, batch_gen_rng, array_gen_rng, i64) + generate_string_array!(self, num_rows, array_gen_rng, i64) } _ => unreachable!(), } @@ -400,7 +736,7 @@ mod test { }; let gen = DatasetGenerator::new(config); - let datasets = gen.generate().unwrap(); + let datasets = gen.generate(None).unwrap(); // Should Generate 2 datasets assert_eq!(datasets.len(), 2); diff --git a/datafusion/core/tests/fuzz_cases/aggregation_fuzzer/fuzzer.rs b/datafusion/core/tests/fuzz_cases/aggregation_fuzzer/fuzzer.rs index 4c600b4deeb4..39087050f669 100644 --- a/datafusion/core/tests/fuzz_cases/aggregation_fuzzer/fuzzer.rs +++ b/datafusion/core/tests/fuzz_cases/aggregation_fuzzer/fuzzer.rs @@ -16,11 +16,13 @@ // under the License. use core::task; -use std::sync::Arc; +use std::io::Write; +use std::{fs::File, sync::Arc}; use arrow::util::pretty::pretty_format_batches; use arrow_array::RecordBatch; -use rand::{thread_rng, Rng}; +use rand::rngs::StdRng; +use rand::{thread_rng, Rng, SeedableRng}; use tokio::task::JoinSet; use crate::fuzz_cases::aggregation_fuzzer::{ @@ -136,20 +138,26 @@ impl AggregationFuzzer { pub async fn run(&self) { let mut join_set = JoinSet::new(); let mut rng = thread_rng(); + // let seed = rng.gen::(); + let seed = 5334308113685840330; + println!("seed: {:?}", seed); + let mut std_rng = StdRng::seed_from_u64(seed); // Loop to generate datasets and its query for _ in 0..self.data_gen_rounds { // Generate datasets first let datasets = self .dataset_generator - .generate() + .generate(Some(seed)) .expect("should success to generate dataset"); + // println!("datasets: {:?}", datasets); + // Then for each of them, we random select a test sql for it let query_groups = datasets .into_iter() .map(|dataset| { - let sql_idx = rng.gen_range(0..self.candidate_sqls.len()); + let sql_idx = std_rng.gen_range(0..self.candidate_sqls.len()); let sql = self.candidate_sqls[sql_idx].clone(); QueryGroup { dataset, sql } @@ -166,7 +174,6 @@ impl AggregationFuzzer { while let Some(join_handle) = join_set.join_next().await { // propagate errors - println!("join_handle: {:?}", join_handle); join_handle.unwrap(); } } @@ -250,30 +257,53 @@ impl AggregationFuzzTestTask { fn check_result(&self, task_result: &[RecordBatch], expected_result: &[RecordBatch]) { let result = check_equality_of_batches(task_result, expected_result); if let Err(e) = result { - // If we found inconsistent result, we print the test details for reproducing at first + let mut file = File::create("output.txt").unwrap(); + writeln!(file, "{:?}", self.dataset_ref.batches).unwrap(); + writeln!(file, "param: {:?}", self.ctx_with_params.params).unwrap(); + + let e = pretty_format_batches(expected_result).unwrap(); + let got = pretty_format_batches(task_result).unwrap(); println!( - "##### AggregationFuzzer error report ##### - ### Sql:\n{}\n\ - ### Schema:\n{}\n\ - ### Session context params:\n{:?}\n\ - ### Inconsistent row:\n\ - - row_idx:{}\n\ - - task_row:{}\n\ - - expected_row:{}\n\ - ### Task total result:\n{}\n\ - ### Expected total result:\n{}\n\ - ### Input:\n{}\n\ - ", - self.sql, - self.dataset_ref.batches[0].schema_ref(), - self.ctx_with_params.params, - e.row_idx, - e.lhs_row, - e.rhs_row, - pretty_format_batches(task_result).unwrap(), - pretty_format_batches(expected_result).unwrap(), - pretty_format_batches(&self.dataset_ref.batches).unwrap(), + "self.dataset_ref.batches len: {:?}", + self.dataset_ref.batches.len() ); + let first_arr = self.dataset_ref.batches[0].column(0); + println!("first_arr: {:?}", first_arr); + let sec_arr = self.dataset_ref.batches[0].column(1); + let input = pretty_format_batches(&self.dataset_ref.batches).unwrap(); + writeln!(file, "expect: {}", e); + writeln!(file, "got: {}", got); + writeln!(file, "input: {}", input); + // writeln!(file, "first_arr: {}", first_arr); + + // println!("batches: {:?}", self.dataset_ref.batches); + // If we found inconsistent result, we print the test details for reproducing at first + // println!( + // "##### AggregationFuzzer error report ##### + // ### Sql:\n{}\n\ + // ### Schema:\n{}\n\ + // ### Session context params:\n{:?}\n\ + // ### Inconsistent row:\n\ + // - row_idx:{}\n\ + // - task_row:{}\n\ + // - expected_row:{}\n\ + // ### Task total result:\n{}\n\ + // ### Expected total result:\n{}\n\ + // ### Input:\n{}\n\ + // ", + // self.sql, + // self.dataset_ref.batches[0].schema_ref(), + // self.ctx_with_params.params, + // e.row_idx, + // e.lhs_row, + // e.rhs_row, + // // pretty_format_batches(task_result).unwrap(), + // // pretty_format_batches(expected_result).unwrap(), + // // pretty_format_batches(&self.dataset_ref.batches).unwrap(), + // "", + // "", + // "" + // ); // Then we just panic panic!("The result mismatch"); diff --git a/datafusion/functions-aggregate-common/src/aggregate/groups_accumulator/prim_op.rs b/datafusion/functions-aggregate-common/src/aggregate/groups_accumulator/prim_op.rs index 8bbcf756c37c..24f48c7bb839 100644 --- a/datafusion/functions-aggregate-common/src/aggregate/groups_accumulator/prim_op.rs +++ b/datafusion/functions-aggregate-common/src/aggregate/groups_accumulator/prim_op.rs @@ -94,6 +94,7 @@ where ) -> Result<()> { assert_eq!(values.len(), 1, "single argument to update_batch"); let values = values[0].as_primitive::(); + // println!("values: {:?}", values); // update values self.values.resize(total_num_groups, self.starting_value); diff --git a/datafusion/physical-plan/src/aggregates/group_values/column.rs b/datafusion/physical-plan/src/aggregates/group_values/column.rs index bad8e320541d..df4797d3c75d 100644 --- a/datafusion/physical-plan/src/aggregates/group_values/column.rs +++ b/datafusion/physical-plan/src/aggregates/group_values/column.rs @@ -81,11 +81,15 @@ pub struct GroupValuesColumn { random_state: RandomState, // current_hashes: Vec, + /// These values are used per batch, require initialization in `intern()` + // Reuse to avoid reallocation current_offsets: Vec, new_entries: Vec, need_equality_check: Vec, no_match: Vec, capacity: usize, + + /// The values are shared across batches, should carefully reinitialize in `intern` hash_table: Vec, hashes: Vec, } @@ -102,7 +106,6 @@ impl GroupValuesColumn { group_values_v2: vec![], hashes_buffer: Default::default(), random_state: Default::default(), - // current_hashes: Default::default(), current_offsets: Default::default(), new_entries: Default::default(), need_equality_check: Default::default(), @@ -272,6 +275,11 @@ impl GroupValues for GroupValuesColumn { batch_hashes.resize(n_rows, 0); create_hashes(cols, &self.random_state, batch_hashes)?; + let prev_group_len_true = self.group_values_v2[0].len(); + let mut row_to_append = vec![]; + + let ex_g = self.map.len(); + for (row, &target_hash) in batch_hashes.iter().enumerate() { let entry = self.map.get_mut(target_hash, |(exist_hash, group_idx)| { // Somewhat surprisingly, this closure can be called even if the @@ -309,6 +317,7 @@ impl GroupValues for GroupValuesColumn { // let group_idx = group_values.num_rows(); // group_values.push(group_rows.row(row)); + row_to_append.push(row); let mut checklen = 0; let group_idx = self.group_values_v2[0].len(); for (i, group_value) in self.group_values_v2.iter_mut().enumerate() { @@ -335,16 +344,59 @@ impl GroupValues for GroupValuesColumn { let groups_true = std::mem::take(groups); assert!(groups.is_empty()); - // self.second_app(cols, groups); - // if groups_true != *groups { - // println!("groups true: {:?}", groups_true); - // println!("groups: {:?}", groups); + let after_group_len_true = self.group_values_v2[0].len(); + assert_eq!(self.group_values[0].len(), self.hashes.len()); + let prev_group_len = self.group_values[0].len(); + + let hash_clone = self.hashes.clone(); + let hash_table_clone = self.hash_table.clone(); + + let row_toappedn = self.second_app(cols, groups); + assert_eq!(groups.len(), groups_true.len()); + let after_group_len = self.group_values[0].len(); + + // if prev_group_len_true != prev_group_len { + // println!("prev {} {}", prev_group_len_true, prev_group_len); // } + if after_group_len_true != after_group_len { + // return internal_err!("group mismatched {} {}", after_group_len_true, after_group_len); + let first_real_hash = self.hashes_buffer[0]; + println!("first_real_hash: {:?}", first_real_hash); + println!("fhash: {:?}", hash_clone); + let bit_mask = self.capacity - 1; + let hashes = hash_clone + .iter() + .cloned() + .map(|x| x & (bit_mask as u64)) + .collect::>(); + println!("fhashes: {:?}", hashes); + for (i, ht) in hash_table_clone.iter().enumerate() { + if *ht > 0 { + println!("i {:?}, ht: {:?}", i, ht); + } + } + let offests = hashes + .iter() + .cloned() + .map(|x| hash_table_clone[x as usize]) + .collect::>(); + println!("offests: {:?}", offests); + // println!("hash_table_clone: {:?}", hash_table_clone); + println!("after {} {}", after_group_len_true, after_group_len); + println!("row to append true: {:?}", row_to_append); + println!("row to append: {:?}", row_toappedn); + } + + if groups_true != *groups { + // println!("groups true: {:?}", groups_true); + // println!("groups: {:?}", groups); + // println!("jasjhes: {:?}", self.hashes.len()); + } // assert_eq!(groups_true.len(), groups.len()); groups.resize(groups_true.len(), 0); for i in 0..groups_true.len() { - groups[i] = groups_true[i]; + groups[i] = groups_true[i]; } // println!("groups new: {:?}",groups); // println!("cols: {:?}", cols); @@ -352,10 +404,10 @@ impl GroupValues for GroupValuesColumn { Ok(()) } - - fn size(&self) -> usize { - let group_values_size: usize = self.group_values_v2.iter().map(|v| v.size()).sum(); + let group_values_size_a: usize = self.group_values.iter().map(|v| v.size()).sum(); + let group_values_size: usize = + self.group_values_v2.iter().map(|v| v.size()).sum(); group_values_size + self.map_size + self.hashes_buffer.allocated_size() } @@ -365,48 +417,107 @@ impl GroupValues for GroupValuesColumn { fn len(&self) -> usize { if self.group_values_v2.is_empty() { + assert!(self.group_values.is_empty()); return 0; } + if self.group_values_v2[0].len() != self.group_values[0].len() { + println!( + "self.group_values_v2[0].len(): {:?}", + self.group_values_v2[0].len() + ); + println!( + "self.group_values[0].len(): {:?}", + self.group_values[0].len() + ); + } self.group_values_v2[0].len() } fn emit(&mut self, emit_to: EmitTo) -> Result> { let mut output = match emit_to { EmitTo::All => { + // TODO: remove + let group_values = std::mem::take(&mut self.group_values); + debug_assert!(self.group_values.is_empty()); + let incomeing = group_values + .into_iter() + .map(|v| v.build()) + .collect::>(); + let group_values = std::mem::take(&mut self.group_values_v2); debug_assert!(self.group_values_v2.is_empty()); - // println!("emit all"); - // let group_values = std::mem::take(&mut self.group_values); - // debug_assert!(self.group_values.is_empty()); - group_values + let res = group_values .into_iter() .map(|v| v.build()) - .collect::>() + .collect::>(); + + // if incomeing != res { + // println!("incoming: {:?}", incomeing); + // println!("res: {:?}", res); + // } + + res } EmitTo::First(n) => { - // println!("emit firstn"); + if self.group_values[0].len() < n { + println!("value < n {} {}", self.group_values[0].len(), n); + } + if self.group_values_v2[0].len() < n { + println!("valuev2 < n {} {}", self.group_values_v2[0].len(), n); + } let output = self .group_values_v2 .iter_mut() .map(|v| v.take_n(n)) .collect::>(); - // let output = self - // .group_values - // .iter_mut() - // .map(|v| v.take_n(n)) - // .collect::>(); + let output_new = self + .group_values + .iter_mut() + .map(|v| v.take_n(n)) + .collect::>(); - // self.hashes.drain(0..n); + let prev_len = self.hashes.len(); + self.hashes.drain(0..n); + if prev_len == 172 && n == 171 { + println!("remaining hash: {:?}", self.hashes); + } + // let mut cnt = 0; // for i in 0..self.capacity { // if self.hash_table[i] > 0 { - // self.hash_table[i] = self.hash_table[i].saturating_sub(n); + // let v = self.hash_table[i]; + // let val = v.saturating_sub(n); + // self.hash_table[i] = val; + // if val > 0 { + // cnt += 1; + // } else { + // // + // } // } // } + // assert_eq!(cnt, self.hashes.len()); + // self.hash_table.clear(); + // After emitting first N value, we should rehash the remaining value to get the expected hash table + // self.rehash_table_with_the_same_cap(); + // let mut new_table = vec![0; self.capacity]; + self.hash_table.clear(); + self.hash_table.resize(self.capacity, 0); + let bit_mask = self.capacity - 1; + for (i, hash) in self.hashes.iter().enumerate() { + let mut new_idx = *hash as usize & bit_mask; + let mut num_iter = 0; + while self.hash_table[new_idx] != 0 { + num_iter += 1; + new_idx += num_iter * num_iter; + new_idx &= bit_mask; + } + self.hash_table[new_idx] = i + 1; + } + // let hash_table_ptr = self.hash_table.as_mut_ptr(); // unsafe { // for i in 0..self.capacity { @@ -420,18 +531,30 @@ impl GroupValues for GroupValuesColumn { // } // } + let prev_len_true = self.map.len(); + unsafe { for bucket in self.map.iter() { // Decrement group index by n match bucket.as_ref().1.checked_sub(n) { // Group index was >= n, shift value down - Some(sub) => bucket.as_mut().1 = sub, + Some(sub) => { + bucket.as_mut().1 = sub; + if prev_len == 172 && n == 171 { + println!("real hash: {}", bucket.as_ref().0); + } + } // Group index was < n, so remove from table None => self.map.erase(bucket), } } } + + + let after_len_true = self.map.len(); + assert_eq!(prev_len_true, after_len_true + n); + output } }; @@ -456,6 +579,7 @@ impl GroupValues for GroupValuesColumn { fn clear_shrink(&mut self, batch: &RecordBatch) { let count = batch.num_rows(); self.group_values.clear(); + self.group_values_v2.clear(); self.map.clear(); self.map.shrink_to(count, |_| 0); // hasher does not matter since the map is cleared self.map_size = self.map.capacity() * std::mem::size_of::<(u64, usize)>(); @@ -467,7 +591,38 @@ impl GroupValues for GroupValuesColumn { } impl GroupValuesColumn { - fn second_app(&mut self, cols: &[ArrayRef], groups: &mut Vec) { + fn rehash_table_with_the_same_cap(&mut self) { + let mut new_table = vec![0; self.capacity]; + let bit_mask = self.capacity - 1; + + let table_ptr = self.hash_table.as_ptr(); + let hashes_ptr = self.hashes.as_ptr(); + let new_table_ptr = new_table.as_mut_ptr(); + + unsafe { + for i in 0..self.capacity { + let offset = *table_ptr.add(i); + if offset != 0 { + let hash = *hashes_ptr.add(offset as usize - 1); + + let mut new_idx = hash as usize & bit_mask; + let mut num_iter = 0; + while *new_table_ptr.add(new_idx) != 0 { + num_iter += 1; + new_idx += num_iter * num_iter; + new_idx &= bit_mask; + } + *new_table_ptr.add(new_idx) = offset; + } + } + } + + self.hash_table = new_table; + } + + fn second_app(&mut self, cols: &[ArrayRef], groups: &mut Vec) -> Vec { + let batch_hashes = &self.hashes_buffer; + let n_rows = cols[0].len(); // rehash if necessary @@ -509,7 +664,8 @@ impl GroupValuesColumn { let bit_mask = self.capacity - 1; self.current_offsets.resize(n_rows, 0); for row_idx in 0..n_rows { - let hash = self.hashes_buffer[row_idx]; + let hash = batch_hashes[row_idx]; + // let hash = self.hashes_buffer[row_idx]; let hash_table_idx = (hash as usize) & bit_mask; self.current_offsets[row_idx] = hash_table_idx; } @@ -522,6 +678,8 @@ impl GroupValuesColumn { self.no_match.resize(n_rows, 0); let mut num_iter = 1; + let mut row_toappedn = vec![]; + while remaining_entries > 0 { assert!(self.hashes.len() + remaining_entries <= self.capacity); @@ -532,12 +690,20 @@ impl GroupValuesColumn { .iter() .take(remaining_entries) .for_each(|&row_idx| { - let hash = self.hashes_buffer[row_idx]; + let hash = batch_hashes[row_idx]; + // let hash = self.hashes_buffer[row_idx]; let ht_offset = self.current_offsets[row_idx]; let offset = self.hash_table[ht_offset]; + if row_idx == 0 { + println!("row0 hash: {}, ht_offset:{}, offset:{}", hash, ht_offset, offset); + } + let is_empty_slot = offset == 0; if is_empty_slot { + // if row_idx == 0 { + // println!("hash: {:?} ht_offset: {:?}, offest: {:?}", hash, ht_offset, offset); + // } // the slot is empty, so we can create a new entry here self.new_entries[n_new_entries] = row_idx; n_new_entries += 1; @@ -545,9 +711,16 @@ impl GroupValuesColumn { // we increment the slot entry offset by 1 to reserve the special value // 0 for the scenario when the slot in the // hash table is unoccupied. - self.hash_table[ht_offset] = self.hashes.len() + 1; + let new_offset = self.hashes.len() + 1; + + self.hash_table[ht_offset] = new_offset; + + println!("hash: {} ht_offset: {} new_offset: {} iter: {}", hash, ht_offset, new_offset, num_iter); // also update hash for this slot so it can be used later self.hashes.push(hash); + + // 1-indexed + // self.hash_table_offsets[new_offset - 1] = ht_offset; } else if self.hashes[offset - 1] == hash { // slot is not empty, and hash value match, now need to do equality // check @@ -561,10 +734,12 @@ impl GroupValuesColumn { } }); + // Parallizable self.new_entries .iter() .take(n_new_entries) .for_each(|row_idx| { + row_toappedn.push(*row_idx); for (i, group_value) in self.group_values.iter_mut().enumerate() { group_value.append_val(&cols[i], *row_idx) } @@ -577,11 +752,20 @@ impl GroupValuesColumn { .map(|&row_idx| { let ht_offset = self.current_offsets[row_idx]; let offset = self.hash_table[ht_offset]; - let is_equal = self - .group_values - .iter() - .enumerate() - .all(|(j, g)| g.equal_to(offset - 1, &cols[j], row_idx)); + + let mut is_equal = true; + for (j, g) in self.group_values.iter().enumerate() { + if !g.equal_to(offset - 1, &cols[j], row_idx) { + is_equal = false; + break; + } + } + + // let is_equal = self + // .group_values + // .iter() + // .enumerate() + // .all(|(j, g)| g.equal_to(offset - 1, &cols[j], row_idx)); if !is_equal { self.no_match[n_no_match] = row_idx; n_no_match += 1; @@ -648,6 +832,8 @@ impl GroupValuesColumn { .take(n_rows) .map(|&hash_table_offset| self.hash_table[hash_table_offset] - 1), ); + + row_toappedn } } diff --git a/datafusion/physical-plan/src/memory.rs b/datafusion/physical-plan/src/memory.rs index 456f0ef2dcc8..097dac0bade3 100644 --- a/datafusion/physical-plan/src/memory.rs +++ b/datafusion/physical-plan/src/memory.rs @@ -39,6 +39,7 @@ use datafusion_physical_expr::utils::collect_columns; use datafusion_physical_expr::{EquivalenceProperties, LexOrdering}; use futures::Stream; +use itertools::Itertools; /// Execution plan for reading in-memory batches of data pub struct MemoryExec { @@ -138,8 +139,13 @@ impl ExecutionPlan for MemoryExec { fn execute( &self, partition: usize, - _context: Arc, + context: Arc, ) -> Result { + // let batch_size = context.session_config().batch_size(); + // let batch = self.partitions[partition]; + // let len = batch[0]. + + // (0..partitions[0].len()).chunk_by(key) Ok(Box::pin(MemoryStream::try_new( self.partitions[partition].clone(), Arc::clone(&self.projected_schema), diff --git a/datafusion/sqllogictest/test_files/test1.slt b/datafusion/sqllogictest/test_files/test1.slt new file mode 100644 index 000000000000..142aebb16432 --- /dev/null +++ b/datafusion/sqllogictest/test_files/test1.slt @@ -0,0 +1,50 @@ + +statement ok +set datafusion.execution.target_partitions = 1; + +# Make sure the query run in multiple partitions +statement ok +set datafusion.execution.batch_size = 2; + +statement ok +CREATE EXTERNAL TABLE agg_order ( + c1 VARCHAR, + c2 FLOAT +) +STORED AS CSV +LOCATION '../core/tests/data/data.csv' +OPTIONS ('format.has_header' 'true'); + +query TR +select * from agg_order; +---- +'a' 1.1 + +query error +select c2, sum(DISTINCT c1) from agg_order group by c2; +---- +DataFusion error: Error during planning: Execution error: User-defined coercion failed with Execution("Sum not supported for Utf8") No function matches the given name and argument types 'sum(Utf8)'. You might need to add explicit type casts. + Candidate functions: + sum(UserDefined) + + + +statement ok +set datafusion.execution.batch_size = 8192; + +query error +select c2, sum(DISTINCT c1) from agg_order group by c2; +---- +DataFusion error: Error during planning: Execution error: User-defined coercion failed with Execution("Sum not supported for Utf8") No function matches the given name and argument types 'sum(Utf8)'. You might need to add explicit type casts. + Candidate functions: + sum(UserDefined) + + +statement ok +drop table agg_order + +# statement ok +# create table t(a int, b varchar) as values (1, 'ac'), (2, 'ac'), (2, 'ac'), (4, 'b'), (4, 'a'), (3, 'a'), (3, 'ac'), (-6, 'ac'), (5, 'ac'), (5, 'a'), (3, null), (3, null), (4, null), (null,null),(null, 'a'); + +# query TI +# select b, sum(DISTINCT a) from t group by b; diff --git a/datafusion/sqllogictest/test_files/test2.slt b/datafusion/sqllogictest/test_files/test2.slt new file mode 100644 index 000000000000..71e2ee6bf952 --- /dev/null +++ b/datafusion/sqllogictest/test_files/test2.slt @@ -0,0 +1,87 @@ + +statement ok +set datafusion.execution.target_partitions = 1; + +# Make sure the query run in multiple partitions +statement ok +set datafusion.execution.batch_size = 2; + +statement ok +create table t1(a int, b varchar) as values +(-357113469, null), +(null, null), +(null, 'i'), +(null, 'jhgbzkuiwbgwkt'), +(-1279405755, 'jhgbzkuiwbgwkt'), +(-444714478, 'jhgbzkuiwbgwkt'), +(null, 'jhgbzkuiwbgwkt'), +(1774788067, 'na'), +(-1306952328, 'na'), +(null, 'na'), +(null, 'na'), +(1770857641, 'na'), +(1774788067, 'niihllpeeyvd'), +(-1792070317, 'niihllpeeyvd'), +(null, 'niihllpeeyvd'); + +statement ok +create table t2(a int, b varchar) as values +(null, 'npbbfobgibtgeeqhdn'), +(null, 'npbbfobgibtgeeqhdn'), +(462257437, 'spqsbsacoy'), +(null, 'wesfsqwixzajgulo'), +(-1337912794, 'wesfsqwixzajgulo'), +(null, 'wesfsqwixzajgulo'), +(null, 'wesfsqwixzajgulo'); + +statement ok +create table t3(a int, b varchar) as values +(-411706700, 'wesfsqwixzajgulo'), +(null, 'xhazuofxdqkekigwsbgqdcetobrzb'), +(-411706700, 'xlba'), +(null, 'xlba'); + +statement ok +create table t4(a int, b varchar) as values +(null, 'xoyiatitmaso'); + +statement ok +create table t5(a int, b varchar) as values +(null, 'xoyiatitmaso'); + +query TI rowsort +With T as + (select * from t1 UNION ALL select * from t2 UNION ALL select * from t3 UNION ALL select * from t4 UNION ALL select * from t5) +select b, sum(DISTINCT a) from T group by b; +---- +NULL -357113469 +i NULL +jhgbzkuiwbgwkt -1724120233 +na 2238693380 +niihllpeeyvd -17282250 +npbbfobgibtgeeqhdn NULL +spqsbsacoy 462257437 +wesfsqwixzajgulo -1749619494 +xhazuofxdqkekigwsbgqdcetobrzb NULL +xlba -411706700 +xoyiatitmaso NULL + +statement ok +set datafusion.execution.batch_size = 8192; + +query TI rowsort +With T as + (select * from t1 UNION ALL select * from t2 UNION ALL select * from t3 UNION ALL select * from t4 UNION ALL select * from t5) +select b, sum(DISTINCT a) from T group by b; +---- +NULL -357113469 +i NULL +jhgbzkuiwbgwkt -1724120233 +na 2238693380 +niihllpeeyvd -17282250 +npbbfobgibtgeeqhdn NULL +spqsbsacoy 462257437 +wesfsqwixzajgulo -1749619494 +xhazuofxdqkekigwsbgqdcetobrzb NULL +xlba -411706700 +xoyiatitmaso NULL diff --git a/datafusion/sqllogictest/test_files/test3.slt b/datafusion/sqllogictest/test_files/test3.slt new file mode 100644 index 000000000000..1c57c188eb9b --- /dev/null +++ b/datafusion/sqllogictest/test_files/test3.slt @@ -0,0 +1,128 @@ + +statement ok +CREATE EXTERNAL TABLE hits +STORED AS PARQUET +LOCATION '../../benchmarks/data/hits.parquet'; + +# query ITI +# SELECT "UserID", "SearchPhrase", COUNT(*) FROM hits GROUP BY "UserID", "SearchPhrase" LIMIT 10; +# ---- +# 949984827993538706 эфект 2 +# 950002213845432202 (empty) 1 +# 950004541571787848 салья машина 2 +# 950113409072788610 новости 1 +# 950113409072788610 нализация вология у под 1 +# 950113409072788610 наруто 2013 онлайн 1 +# 950138176938222777 (empty) 1 +# 950235578418183544 конденский рубеж смотреть сушуар 1 +# 950338919516514282 (empty) 1 +# 950338919516514282 ищу районам 1 + +query TTT +explainSELECT "RegionID", COUNT(DISTINCT "UserID") AS u FROM hits GROUP BY "RegionID" ORDER BY u DESC LIMIT 10; +---- +WatchID Int64 NO +JavaEnable Int16 NO +Title Utf8 NO +GoodEvent Int16 NO +EventTime Int64 NO +EventDate UInt16 NO +CounterID Int32 NO +ClientIP Int32 NO +RegionID Int32 NO +UserID Int64 NO +CounterClass Int16 NO +OS Int16 NO +UserAgent Int16 NO +URL Utf8 NO +Referer Utf8 NO +IsRefresh Int16 NO +RefererCategoryID Int16 NO +RefererRegionID Int32 NO +URLCategoryID Int16 NO +URLRegionID Int32 NO +ResolutionWidth Int16 NO +ResolutionHeight Int16 NO +ResolutionDepth Int16 NO +FlashMajor Int16 NO +FlashMinor Int16 NO +FlashMinor2 Utf8 NO +NetMajor Int16 NO +NetMinor Int16 NO +UserAgentMajor Int16 NO +UserAgentMinor Utf8 NO +CookieEnable Int16 NO +JavascriptEnable Int16 NO +IsMobile Int16 NO +MobilePhone Int16 NO +MobilePhoneModel Utf8 NO +Params Utf8 NO +IPNetworkID Int32 NO +TraficSourceID Int16 NO +SearchEngineID Int16 NO +SearchPhrase Utf8 NO +AdvEngineID Int16 NO +IsArtifical Int16 NO +WindowClientWidth Int16 NO +WindowClientHeight Int16 NO +ClientTimeZone Int16 NO +ClientEventTime Int64 NO +SilverlightVersion1 Int16 NO +SilverlightVersion2 Int16 NO +SilverlightVersion3 Int32 NO +SilverlightVersion4 Int16 NO +PageCharset Utf8 NO +CodeVersion Int32 NO +IsLink Int16 NO +IsDownload Int16 NO +IsNotBounce Int16 NO +FUniqID Int64 NO +OriginalURL Utf8 NO +HID Int32 NO +IsOldCounter Int16 NO +IsEvent Int16 NO +IsParameter Int16 NO +DontCountHits Int16 NO +WithHash Int16 NO +HitColor Utf8 NO +LocalEventTime Int64 NO +Age Int16 NO +Sex Int16 NO +Income Int16 NO +Interests Int16 NO +Robotness Int16 NO +RemoteIP Int32 NO +WindowName Int32 NO +OpenerName Int32 NO +HistoryLength Int16 NO +BrowserLanguage Utf8 NO +BrowserCountry Utf8 NO +SocialNetwork Utf8 NO +SocialAction Utf8 NO +HTTPError Int16 NO +SendTiming Int32 NO +DNSTiming Int32 NO +ConnectTiming Int32 NO +ResponseStartTiming Int32 NO +ResponseEndTiming Int32 NO +FetchTiming Int32 NO +SocialSourceNetworkID Int16 NO +SocialSourcePage Utf8 NO +ParamPrice Int64 NO +ParamOrderID Utf8 NO +ParamCurrency Utf8 NO +ParamCurrencyID Int16 NO +OpenstatServiceName Utf8 NO +OpenstatCampaignID Utf8 NO +OpenstatAdID Utf8 NO +OpenstatSourceID Utf8 NO +UTMSource Utf8 NO +UTMMedium Utf8 NO +UTMCampaign Utf8 NO +UTMContent Utf8 NO +UTMTerm Utf8 NO +FromTag Utf8 NO +HasGCLID Int16 NO +RefererHash Int64 NO +URLHash Int64 NO +CLID Int32 NO diff --git a/datafusion/sqllogictest/test_files/test4.slt b/datafusion/sqllogictest/test_files/test4.slt new file mode 100644 index 000000000000..0c95f1d72d86 --- /dev/null +++ b/datafusion/sqllogictest/test_files/test4.slt @@ -0,0 +1,71 @@ + +statement ok +CREATE EXTERNAL TABLE hits +STORED AS PARQUET +LOCATION '../../benchmarks/data/hits_partitioned/hits_28.parquet'; + +query TT +explain SELECT REGEXP_REPLACE("Referer", '^https?://(?:www\.)?([^/]+)/.*$', '\1') AS k, AVG(length("Referer")) AS l, COUNT(*) AS c, MIN("Referer") FROM hits WHERE "Referer" <> '' GROUP BY k HAVING COUNT(*) > 100000 ORDER BY l DESC LIMIT 25; +---- +logical_plan +01)Sort: l DESC NULLS FIRST, fetch=25 +02)--Projection: regexp_replace(hits.Referer,Utf8("^https?://(?:www\.)?([^/]+)/.*$"),Utf8("\1")) AS k, avg(character_length(hits.Referer)) AS l, count(*) AS c, min(hits.Referer) +03)----Filter: count(*) > Int64(100000) +04)------Aggregate: groupBy=[[regexp_replace(__common_expr_1 AS hits.Referer, Utf8("^https?://(?:www\.)?([^/]+)/.*$"), Utf8("\1"))]], aggr=[[avg(CAST(character_length(__common_expr_1 AS hits.Referer) AS Float64)), count(Int64(1)) AS count(*), min(hits.Referer)]] +05)--------Projection: CAST(hits.Referer AS Utf8) AS __common_expr_1, hits.Referer +06)----------Filter: hits.Referer != Binary("") +07)------------TableScan: hits projection=[Referer], partial_filters=[hits.Referer != Binary("")] +physical_plan +01)SortPreservingMergeExec: [l@1 DESC], fetch=25 +02)--SortExec: TopK(fetch=25), expr=[l@1 DESC], preserve_partitioning=[true] +03)----ProjectionExec: expr=[regexp_replace(hits.Referer,Utf8("^https?://(?:www\.)?([^/]+)/.*$"),Utf8("\1"))@0 as k, avg(character_length(hits.Referer))@1 as l, count(*)@2 as c, min(hits.Referer)@3 as min(hits.Referer)] +04)------CoalesceBatchesExec: target_batch_size=8192 +05)--------FilterExec: count(*)@2 > 100000 +06)----------AggregateExec: mode=FinalPartitioned, gby=[regexp_replace(hits.Referer,Utf8("^https?://(?:www\.)?([^/]+)/.*$"),Utf8("\1"))@0 as regexp_replace(hits.Referer,Utf8("^https?://(?:www\.)?([^/]+)/.*$"),Utf8("\1"))], aggr=[avg(character_length(hits.Referer)), count(*), min(hits.Referer)] +07)------------CoalesceBatchesExec: target_batch_size=8192 +08)--------------RepartitionExec: partitioning=Hash([regexp_replace(hits.Referer,Utf8("^https?://(?:www\.)?([^/]+)/.*$"),Utf8("\1"))@0], 4), input_partitions=4 +09)----------------AggregateExec: mode=Partial, gby=[regexp_replace(__common_expr_1@0, ^https?://(?:www\.)?([^/]+)/.*$, \1) as regexp_replace(hits.Referer,Utf8("^https?://(?:www\.)?([^/]+)/.*$"),Utf8("\1"))], aggr=[avg(character_length(hits.Referer)), count(*), min(hits.Referer)] +10)------------------ProjectionExec: expr=[CAST(Referer@0 AS Utf8) as __common_expr_1, Referer@0 as Referer] +11)--------------------CoalesceBatchesExec: target_batch_size=8192 +12)----------------------FilterExec: Referer@0 != +13)------------------------ParquetExec: file_groups={4 groups: [[WORKSPACE_ROOT/benchmarks/data/hits_partitioned/hits_28.parquet:0..40693102], [WORKSPACE_ROOT/benchmarks/data/hits_partitioned/hits_28.parquet:40693102..81386204], [WORKSPACE_ROOT/benchmarks/data/hits_partitioned/hits_28.parquet:81386204..122079306], [WORKSPACE_ROOT/benchmarks/data/hits_partitioned/hits_28.parquet:122079306..162772407]]}, projection=[Referer], predicate=Referer@14 != , pruning_predicate=CASE WHEN Referer_null_count@2 = Referer_row_count@3 THEN false ELSE Referer_min@0 != OR != Referer_max@1 END, required_guarantees=[Referer not in ()] + + +statement ok +create table t(Referer varchar) as values ('a'); + +query I +copy (select * from t) to '../../benchmarks/data/test/a.parquet' STORED AS PARQUET; +---- +1 + +statement ok +CREATE EXTERNAL TABLE t2 +STORED AS PARQUET +LOCATION '../../benchmarks/data/test/a.parquet'; + +query TT +explain SELECT REGEXP_REPLACE("Referer", '^https?://(?:www\.)?([^/]+)/.*$', '\1') AS k, AVG(length("Referer")) AS l, COUNT(*) AS c, MIN("Referer") FROM hits WHERE "Referer" <> '' GROUP BY k HAVING COUNT(*) > 100000 ORDER BY l DESC LIMIT 25; +---- +logical_plan +01)Sort: l DESC NULLS FIRST, fetch=25 +02)--Projection: regexp_replace(hits.Referer,Utf8("^https?://(?:www\.)?([^/]+)/.*$"),Utf8("\1")) AS k, avg(character_length(hits.Referer)) AS l, count(*) AS c, min(hits.Referer) +03)----Filter: count(*) > Int64(100000) +04)------Aggregate: groupBy=[[regexp_replace(__common_expr_1 AS hits.Referer, Utf8("^https?://(?:www\.)?([^/]+)/.*$"), Utf8("\1"))]], aggr=[[avg(CAST(character_length(__common_expr_1 AS hits.Referer) AS Float64)), count(Int64(1)) AS count(*), min(hits.Referer)]] +05)--------Projection: CAST(hits.Referer AS Utf8) AS __common_expr_1, hits.Referer +06)----------Filter: hits.Referer != Binary("") +07)------------TableScan: hits projection=[Referer], partial_filters=[hits.Referer != Binary("")] +physical_plan +01)SortPreservingMergeExec: [l@1 DESC], fetch=25 +02)--SortExec: TopK(fetch=25), expr=[l@1 DESC], preserve_partitioning=[true] +03)----ProjectionExec: expr=[regexp_replace(hits.Referer,Utf8("^https?://(?:www\.)?([^/]+)/.*$"),Utf8("\1"))@0 as k, avg(character_length(hits.Referer))@1 as l, count(*)@2 as c, min(hits.Referer)@3 as min(hits.Referer)] +04)------CoalesceBatchesExec: target_batch_size=8192 +05)--------FilterExec: count(*)@2 > 100000 +06)----------AggregateExec: mode=FinalPartitioned, gby=[regexp_replace(hits.Referer,Utf8("^https?://(?:www\.)?([^/]+)/.*$"),Utf8("\1"))@0 as regexp_replace(hits.Referer,Utf8("^https?://(?:www\.)?([^/]+)/.*$"),Utf8("\1"))], aggr=[avg(character_length(hits.Referer)), count(*), min(hits.Referer)] +07)------------CoalesceBatchesExec: target_batch_size=8192 +08)--------------RepartitionExec: partitioning=Hash([regexp_replace(hits.Referer,Utf8("^https?://(?:www\.)?([^/]+)/.*$"),Utf8("\1"))@0], 4), input_partitions=4 +09)----------------AggregateExec: mode=Partial, gby=[regexp_replace(__common_expr_1@0, ^https?://(?:www\.)?([^/]+)/.*$, \1) as regexp_replace(hits.Referer,Utf8("^https?://(?:www\.)?([^/]+)/.*$"),Utf8("\1"))], aggr=[avg(character_length(hits.Referer)), count(*), min(hits.Referer)] +10)------------------ProjectionExec: expr=[CAST(Referer@0 AS Utf8) as __common_expr_1, Referer@0 as Referer] +11)--------------------CoalesceBatchesExec: target_batch_size=8192 +12)----------------------FilterExec: Referer@0 != +13)------------------------ParquetExec: file_groups={4 groups: [[WORKSPACE_ROOT/benchmarks/data/hits_partitioned/hits_28.parquet:0..40693102], [WORKSPACE_ROOT/benchmarks/data/hits_partitioned/hits_28.parquet:40693102..81386204], [WORKSPACE_ROOT/benchmarks/data/hits_partitioned/hits_28.parquet:81386204..122079306], [WORKSPACE_ROOT/benchmarks/data/hits_partitioned/hits_28.parquet:122079306..162772407]]}, projection=[Referer], predicate=Referer@14 != , pruning_predicate=CASE WHEN Referer_null_count@2 = Referer_row_count@3 THEN false ELSE Referer_min@0 != OR != Referer_max@1 END, required_guarantees=[Referer not in ()] diff --git a/datafusion/sqllogictest/test_files/test5.slt b/datafusion/sqllogictest/test_files/test5.slt new file mode 100644 index 000000000000..a8a4c754b717 --- /dev/null +++ b/datafusion/sqllogictest/test_files/test5.slt @@ -0,0 +1,25 @@ +statement ok +create table t1(a int, id varchar, name varchar) as values (1, 'a', 'id1'), (2, 'b', 'id2'); + +statement ok +create table t2(a int, id varchar) as values (1, 'a'), (2, 'b'), (3, 'c'); + +query ITTIT +select * from t1 join t2 on t1.id = t2.id; +---- +1 a id1 1 a +2 b id2 2 b + +query TT +explain select * from t1 join t2 on t1.id = t2.id; +---- +logical_plan +01)Inner Join: t1.id = t2.id +02)--TableScan: t1 projection=[a, id, name] +03)--TableScan: t2 projection=[a, id] +physical_plan +01)ProjectionExec: expr=[a@2 as a, id@3 as id, name@4 as name, a@0 as a, id@1 as id] +02)--CoalesceBatchesExec: target_batch_size=8192 +03)----HashJoinExec: mode=Partitioned, join_type=Inner, on=[(id@1, id@1)] +04)------MemoryExec: partitions=1, partition_sizes=[1] +05)------MemoryExec: partitions=1, partition_sizes=[1] diff --git a/datafusion/sqllogictest/test_files/test6.slt b/datafusion/sqllogictest/test_files/test6.slt new file mode 100644 index 000000000000..2d425fc93d7b --- /dev/null +++ b/datafusion/sqllogictest/test_files/test6.slt @@ -0,0 +1,7 @@ +statement ok +create table t(a int[2]) as values ([1,2]); + +query T +select arrow_typeof(a) from t; +---- +FixedSizeList(Field { name: "item", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, 2) diff --git a/datafusion/sqllogictest/test_files/test7.slt b/datafusion/sqllogictest/test_files/test7.slt new file mode 100644 index 000000000000..0f38821d1884 --- /dev/null +++ b/datafusion/sqllogictest/test_files/test7.slt @@ -0,0 +1,33 @@ + + +statement ok +create table t1(a int, b varchar) as values +(null, 'a'), +(null, 'a'), +(null, 'b'), +(null, 'b'), +(null,null), +(null, 'b'); + +statement ok +create table t2(a int, b varchar) as values +(null,null), +(5, 'a'), +(null, 'a'), +(6, 'b'), +(7, 'b'), +(8, 'b'); + +query TI +With T as + (select * from t1 UNION ALL select * from t2) +select b, sum(DISTINCT a) from T group by b order by b; +---- +a 5 +b 21 +NULL NULL + +query TI +With T as + (select * from t1 UNION ALL select * from t2) +select b, sum(DISTINCT a) from T group by b order by b; \ No newline at end of file diff --git a/test-utils/src/array_gen/primitive.rs b/test-utils/src/array_gen/primitive.rs index f70ebf6686d0..74459c38e071 100644 --- a/test-utils/src/array_gen/primitive.rs +++ b/test-utils/src/array_gen/primitive.rs @@ -39,8 +39,10 @@ macro_rules! impl_gen_data { ($NATIVE_TYPE:ty, $ARROW_TYPE:ident) => { paste::paste! { pub fn [< gen_data_ $NATIVE_TYPE >](&mut self) -> ArrayRef { + let dist = self.num_distinct_primitives; // table of strings from which to draw let distinct_primitives: PrimitiveArray<$ARROW_TYPE> = (0..self.num_distinct_primitives) + // .map(|_| Some(self.rng.gen::<$NATIVE_TYPE>() % 32 as $NATIVE_TYPE)) .map(|_| Some(self.rng.gen::<$NATIVE_TYPE>())) .collect(); diff --git a/test-utils/src/array_gen/string.rs b/test-utils/src/array_gen/string.rs index fbfa2bb941e0..8c54abd5d0c0 100644 --- a/test-utils/src/array_gen/string.rs +++ b/test-utils/src/array_gen/string.rs @@ -66,13 +66,42 @@ fn random_string(rng: &mut StdRng, max_len: usize) -> String { // pick characters at random (not just ascii) match max_len { 0 => "".to_string(), - 1 => String::from(rng.gen::()), + 1 => { + let r = rng.gen::(); + String::from((b'a' + (r % 26) as u8) as char) + + // String::from(rng.gen::()) + } _ => { let len = rng.gen_range(1..=max_len); - rng.sample_iter::(rand::distributions::Standard) + // rng.sample_iter::(rand::distributions::Standard) + // .take(len) + // .map(char::from) + // .collect::() + // let a = vec![String::from("a"), String::from("b"), String::from("c")]; + rng.sample_iter::(rand::distributions::Standard) .take(len) - .map(char::from) + .map(|i| (b'a' + (i % 26) as u8) as char) .collect::() } } } + +#[cfg(test)] +mod tests { + use rand::{rngs::StdRng, SeedableRng}; + + use super::random_string; + + #[test] + fn test123() { + let mut rng = StdRng::seed_from_u64(1); + let a = random_string(&mut rng, 8); + println!("a: {:?}", a); + println!("a: {}", a); + + let code_p = [0x3b3eb]; + let p = char::from_u32(code_p[0]); + println!("p: {:?}", p); + } +} diff --git a/test-utils/src/lib.rs b/test-utils/src/lib.rs index 9db8920833ae..ec603ba21f19 100644 --- a/test-utils/src/lib.rs +++ b/test-utils/src/lib.rs @@ -99,6 +99,7 @@ pub fn stagger_batch_with_seed(batch: RecordBatch, seed: u64) -> Vec 0 { let batch_size = rng.gen_range(0..remainder.num_rows() + 1); @@ -107,6 +108,8 @@ pub fn stagger_batch_with_seed(batch: RecordBatch, seed: u64) -> Vec(); + assert_eq!(s, batch_s as u64); add_empty_batches(batches, &mut rng) }