diff --git a/docker/test/fasttest/run.sh b/docker/test/fasttest/run.sh index 1108088b1af..c53bf65aa68 100755 --- a/docker/test/fasttest/run.sh +++ b/docker/test/fasttest/run.sh @@ -185,7 +185,6 @@ function clone_submodules contrib/dragonbox contrib/fast_float contrib/NuRaft - contrib/datasketches-cpp ) git submodule sync @@ -206,7 +205,6 @@ function run_cmake "-DENABLE_THINLTO=0" "-DUSE_UNWIND=1" "-DENABLE_NURAFT=1" - "-DENABLE_DATASKETCHES=1" ) # TODO remove this? we don't use ccache anyway. An option would be to download it @@ -313,6 +311,7 @@ function run_tests 01533_collate_in_nullable 01542_collate_in_array 01543_collate_in_tuple + 01798_uniq_theta_sketch _orc_ arrow avro diff --git a/tests/queries/0_stateless/00212_long_shard_aggregate_function_uniq.reference b/tests/queries/0_stateless/00212_long_shard_aggregate_function_uniq.reference index a441a4dba78..33a2bb5437f 100644 --- a/tests/queries/0_stateless/00212_long_shard_aggregate_function_uniq.reference +++ b/tests/queries/0_stateless/00212_long_shard_aggregate_function_uniq.reference @@ -1065,217 +1065,3 @@ uniqCombined remote() 1 1 1 -uniqThetaSketch -1 1 -3 1 -6 1 -7 1 -9 1 -11 1 -14 1 -17 1 -19 1 -20 2 -26 1 -31 1 -35 1 -36 1 -0 162 -1 162 -3 162 -6 162 -7 163 -9 163 -10 81 -11 163 -13 162 -14 162 -17 162 -19 162 -20 162 -21 162 -22 162 -26 162 -31 162 -35 162 -36 162 -0 55018 -1 54020 -3 53774 -6 53947 -7 53839 -9 54408 -10 26876 -11 54985 -13 53479 -14 53516 -17 53331 -19 53680 -20 54211 -21 53054 -22 54690 -26 53716 -31 54139 -35 52331 -36 53766 -uniqThetaSketch round(float) -0.125 1 -0.5 1 -0.05 1 -0.143 1 -0.056 1 -0.048 2 -0.083 1 -0.25 1 -0.1 1 -0.028 1 -0.027 1 -0.031 1 -0.067 1 -0.037 1 -0.045 162 -0.125 163 -0.5 162 -0.05 162 -0.143 162 -0.091 81 -0.056 162 -0.048 162 -0.083 163 -0.25 162 -1 162 -0.1 163 -0.028 162 -0.027 162 -0.031 162 -0.067 162 -0.043 162 -0.037 162 -0.071 162 -0.045 53054 -0.125 53839 -0.5 54020 -0.05 53680 -0.143 53947 -0.091 26876 -0.056 53331 -0.048 54211 -0.083 54985 -0.25 53774 -1 55018 -0.1 54408 -0.028 52331 -0.027 53766 -0.031 54139 -0.067 53516 -0.043 54690 -0.037 53716 -0.071 53479 -uniqThetaSketch round(toFloat32()) -0.5 1 -0.05 1 -0.25 1 -0.048 2 -0.083 1 -0.125 1 -0.031 1 -0.143 1 -0.028 1 -0.067 1 -0.027 1 -0.056 1 -0.037 1 -0.1 1 -0.5 162 -0.05 162 -0.25 162 -0.048 162 -0.091 81 -0.043 162 -0.071 162 -0.083 163 -0.125 163 -0.031 162 -0.143 162 -0.028 162 -0.067 162 -0.045 162 -0.027 162 -0.056 162 -0.037 162 -0.1 163 -1 162 -0.5 54020 -0.05 53680 -0.25 53774 -0.048 54211 -0.091 26876 -0.043 54690 -0.071 53479 -0.083 54985 -0.125 53839 -0.031 54139 -0.143 53947 -0.028 52331 -0.067 53516 -0.045 53054 -0.027 53766 -0.056 53331 -0.037 53716 -0.1 54408 -1 55018 -uniqThetaSketch IPv4NumToString -1 1 -3 1 -6 1 -7 1 -9 1 -11 1 -14 1 -17 1 -19 1 -20 2 -26 1 -31 1 -35 1 -36 1 -0 162 -1 162 -3 162 -6 162 -7 163 -9 163 -10 81 -11 163 -13 162 -14 162 -17 162 -19 162 -20 162 -21 162 -22 162 -26 162 -31 162 -35 162 -36 162 -0 54929 -1 53802 -3 54706 -6 54700 -7 53592 -9 54036 -10 27392 -11 53768 -13 54566 -14 53104 -17 54243 -19 55003 -20 53398 -21 53831 -22 54603 -26 54607 -31 54012 -35 54826 -36 54910 -uniqThetaSketch remote() -1 diff --git a/tests/queries/0_stateless/00212_long_shard_aggregate_function_uniq.sql b/tests/queries/0_stateless/00212_long_shard_aggregate_function_uniq.sql index 6dcfdb350dc..f1b3c82fec3 100644 --- a/tests/queries/0_stateless/00212_long_shard_aggregate_function_uniq.sql +++ b/tests/queries/0_stateless/00212_long_shard_aggregate_function_uniq.sql @@ -132,33 +132,3 @@ SELECT uniqCombined(dummy) FROM remote('127.0.0.{2,3}', system.one); SELECT uniqCombined(12)(dummy) FROM remote('127.0.0.{2,3}', system.one); SELECT uniqCombined(17)(dummy) FROM remote('127.0.0.{2,3}', system.one); SELECT uniqCombined(20)(dummy) FROM remote('127.0.0.{2,3}', system.one); - --- uniqThetaSketch - -SELECT 'uniqThetaSketch'; - -SELECT Y, uniqThetaSketch(X) FROM (SELECT number AS X, (3*X*X - 7*X + 11) % 37 AS Y FROM system.numbers LIMIT 15) GROUP BY Y; -SELECT Y, uniqThetaSketch(X) FROM (SELECT number AS X, (3*X*X - 7*X + 11) % 37 AS Y FROM system.numbers LIMIT 3000) GROUP BY Y; -SELECT Y, uniqThetaSketch(X) FROM (SELECT number AS X, (3*X*X - 7*X + 11) % 37 AS Y FROM system.numbers LIMIT 1000000) GROUP BY Y; - -SELECT 'uniqThetaSketch round(float)'; - -SELECT Y, uniqThetaSketch(X) FROM (SELECT number AS X, round(1/(1 + (3*X*X - 7*X + 11) % 37), 3) AS Y FROM system.numbers LIMIT 15) GROUP BY Y; -SELECT Y, uniqThetaSketch(X) FROM (SELECT number AS X, round(1/(1 + (3*X*X - 7*X + 11) % 37), 3) AS Y FROM system.numbers LIMIT 3000) GROUP BY Y; -SELECT Y, uniqThetaSketch(X) FROM (SELECT number AS X, round(1/(1 + (3*X*X - 7*X + 11) % 37), 3) AS Y FROM system.numbers LIMIT 1000000) GROUP BY Y; - -SELECT 'uniqThetaSketch round(toFloat32())'; - -SELECT Y, uniqThetaSketch(X) FROM (SELECT number AS X, round(toFloat32(1/(1 + (3*X*X - 7*X + 11) % 37)), 3) AS Y FROM system.numbers LIMIT 15) GROUP BY Y; -SELECT Y, uniqThetaSketch(X) FROM (SELECT number AS X, round(toFloat32(1/(1 + (3*X*X - 7*X + 11) % 37)), 3) AS Y FROM system.numbers LIMIT 3000) GROUP BY Y; -SELECT Y, uniqThetaSketch(X) FROM (SELECT number AS X, round(toFloat32(1/(1 + (3*X*X - 7*X + 11) % 37)), 3) AS Y FROM system.numbers LIMIT 1000000) GROUP BY Y; - -SELECT 'uniqThetaSketch IPv4NumToString'; - -SELECT Y, uniqThetaSketch(Z) FROM (SELECT number AS X, IPv4NumToString(toUInt32(X)) AS Z, (3*X*X - 7*X + 11) % 37 AS Y FROM system.numbers LIMIT 15) GROUP BY Y; -SELECT Y, uniqThetaSketch(Z) FROM (SELECT number AS X, IPv4NumToString(toUInt32(X)) AS Z, (3*X*X - 7*X + 11) % 37 AS Y FROM system.numbers LIMIT 3000) GROUP BY Y; -SELECT Y, uniqThetaSketch(Z) FROM (SELECT number AS X, IPv4NumToString(toUInt32(X)) AS Z, (3*X*X - 7*X + 11) % 37 AS Y FROM system.numbers LIMIT 1000000) GROUP BY Y; - -SELECT 'uniqThetaSketch remote()'; - -SELECT uniqThetaSketch(dummy) FROM remote('127.0.0.{2,3}', system.one); diff --git a/tests/queries/0_stateless/00264_uniq_many_args.reference b/tests/queries/0_stateless/00264_uniq_many_args.reference index 6433bfbcd4e..12aeed56e8b 100644 --- a/tests/queries/0_stateless/00264_uniq_many_args.reference +++ b/tests/queries/0_stateless/00264_uniq_many_args.reference @@ -1,11 +1,11 @@ -10 10 100 100 1000 1000 10 10 100 100 1000 1000 10 10 100 100 1000 1000 10 10 101 101 1006 1006 10 10 100 100 1000 1000 6 6 6 6 6 6 10 10 100 100 1000 1000 -17 10 10 100 100 610 610 10 10 100 100 610 610 10 10 100 100 610 610 10 10 101 101 616 616 10 10 100 100 610 610 6 6 6 6 6 6 10 10 100 100 610 610 766 -52 10 10 100 100 608 608 10 10 100 100 608 608 10 10 100 100 608 608 10 10 101 101 611 611 10 10 100 100 608 608 6 6 6 6 6 6 10 10 100 100 608 608 766 -5 10 10 100 100 609 609 10 10 100 100 609 609 10 10 100 100 609 609 10 10 101 101 608 608 10 10 100 100 609 609 6 6 6 6 6 6 10 10 100 100 608 608 765 -9 10 10 100 100 608 608 10 10 100 100 608 608 10 10 100 100 608 608 10 10 101 101 618 618 10 10 100 100 608 608 6 6 6 6 6 6 10 10 100 100 608 608 765 -13 10 10 100 100 607 607 10 10 100 100 607 607 10 10 100 100 607 607 10 10 101 101 610 610 10 10 100 100 607 607 6 6 6 6 6 6 10 10 100 100 607 607 765 -46 10 10 100 100 607 607 10 10 100 100 607 607 10 10 100 100 607 607 10 10 101 101 611 611 10 10 100 100 607 607 6 6 6 6 6 6 10 10 100 100 607 607 765 -48 10 10 100 100 609 609 10 10 100 100 609 609 10 10 100 100 609 609 10 10 101 101 617 617 10 10 100 100 609 609 6 6 6 6 6 6 10 10 100 100 609 609 765 -50 10 10 100 100 608 608 10 10 100 100 608 608 10 10 100 100 608 608 10 10 101 101 614 614 10 10 100 100 608 608 6 6 6 6 6 6 10 10 100 100 608 608 765 -54 10 10 100 100 609 609 10 10 100 100 609 609 10 10 100 100 609 609 10 10 101 101 615 615 10 10 100 100 609 609 6 6 6 6 6 6 10 10 100 100 609 609 765 -56 10 10 100 100 608 608 10 10 100 100 608 608 10 10 100 100 608 608 10 10 101 101 614 614 10 10 100 100 608 608 6 6 6 6 6 6 10 10 100 100 608 608 765 +10 10 100 100 1000 1000 10 10 100 100 1000 1000 10 10 100 100 1000 1000 10 10 101 101 1006 1006 10 10 100 100 1000 1000 6 6 6 6 6 6 +17 10 10 100 100 610 610 10 10 100 100 610 610 10 10 100 100 610 610 10 10 101 101 616 616 10 10 100 100 610 610 6 6 6 6 6 6 766 +52 10 10 100 100 608 608 10 10 100 100 608 608 10 10 100 100 608 608 10 10 101 101 611 611 10 10 100 100 608 608 6 6 6 6 6 6 766 +5 10 10 100 100 609 609 10 10 100 100 609 609 10 10 100 100 609 609 10 10 101 101 608 608 10 10 100 100 609 609 6 6 6 6 6 6 765 +9 10 10 100 100 608 608 10 10 100 100 608 608 10 10 100 100 608 608 10 10 101 101 618 618 10 10 100 100 608 608 6 6 6 6 6 6 765 +13 10 10 100 100 607 607 10 10 100 100 607 607 10 10 100 100 607 607 10 10 101 101 610 610 10 10 100 100 607 607 6 6 6 6 6 6 765 +46 10 10 100 100 607 607 10 10 100 100 607 607 10 10 100 100 607 607 10 10 101 101 611 611 10 10 100 100 607 607 6 6 6 6 6 6 765 +48 10 10 100 100 609 609 10 10 100 100 609 609 10 10 100 100 609 609 10 10 101 101 617 617 10 10 100 100 609 609 6 6 6 6 6 6 765 +50 10 10 100 100 608 608 10 10 100 100 608 608 10 10 100 100 608 608 10 10 101 101 614 614 10 10 100 100 608 608 6 6 6 6 6 6 765 +54 10 10 100 100 609 609 10 10 100 100 609 609 10 10 100 100 609 609 10 10 101 101 615 615 10 10 100 100 609 609 6 6 6 6 6 6 765 +56 10 10 100 100 608 608 10 10 100 100 608 608 10 10 100 100 608 608 10 10 101 101 614 614 10 10 100 100 608 608 6 6 6 6 6 6 765 diff --git a/tests/queries/0_stateless/00264_uniq_many_args.sql b/tests/queries/0_stateless/00264_uniq_many_args.sql index 756359eb66e..847d753a36b 100644 --- a/tests/queries/0_stateless/00264_uniq_many_args.sql +++ b/tests/queries/0_stateless/00264_uniq_many_args.sql @@ -4,8 +4,7 @@ SELECT uniqCombined(17)(x), uniqCombined(17)((x)), uniqCombined(17)(x, y), uniqCombined(17)((x, y)), uniqCombined(17)(x, y, z), uniqCombined(17)((x, y, z)), uniqHLL12(x), uniqHLL12((x)), uniqHLL12(x, y), uniqHLL12((x, y)), uniqHLL12(x, y, z), uniqHLL12((x, y, z)), uniqExact(x), uniqExact((x)), uniqExact(x, y), uniqExact((x, y)), uniqExact(x, y, z), uniqExact((x, y, z)), - uniqUpTo(5)(x), uniqUpTo(5)((x)), uniqUpTo(5)(x, y), uniqUpTo(5)((x, y)), uniqUpTo(5)(x, y, z), uniqUpTo(5)((x, y, z)), - uniqThetaSketch(x), uniqThetaSketch((x)), uniqThetaSketch(x, y), uniqThetaSketch((x, y)), uniqThetaSketch(x, y, z), uniqThetaSketch((x, y, z)) + uniqUpTo(5)(x), uniqUpTo(5)((x)), uniqUpTo(5)(x, y), uniqUpTo(5)((x, y)), uniqUpTo(5)(x, y, z), uniqUpTo(5)((x, y, z)) FROM ( SELECT @@ -23,7 +22,6 @@ SELECT k, uniqHLL12(x), uniqHLL12((x)), uniqHLL12(x, y), uniqHLL12((x, y)), uniqHLL12(x, y, z), uniqHLL12((x, y, z)), uniqExact(x), uniqExact((x)), uniqExact(x, y), uniqExact((x, y)), uniqExact(x, y, z), uniqExact((x, y, z)), uniqUpTo(5)(x), uniqUpTo(5)((x)), uniqUpTo(5)(x, y), uniqUpTo(5)((x, y)), uniqUpTo(5)(x, y, z), uniqUpTo(5)((x, y, z)), - uniqThetaSketch(x), uniqThetaSketch((x)), uniqThetaSketch(x, y), uniqThetaSketch((x, y)), uniqThetaSketch(x, y, z), uniqThetaSketch((x, y, z)), count() AS c FROM ( diff --git a/tests/queries/0_stateless/00350_count_distinct.reference b/tests/queries/0_stateless/00350_count_distinct.reference index 9f374f0a730..8a8dc498102 100644 --- a/tests/queries/0_stateless/00350_count_distinct.reference +++ b/tests/queries/0_stateless/00350_count_distinct.reference @@ -4,5 +4,3 @@ 143 123 143 -123 -143 diff --git a/tests/queries/0_stateless/00350_count_distinct.sql b/tests/queries/0_stateless/00350_count_distinct.sql index ecc5231b9fd..5800c5eb90b 100644 --- a/tests/queries/0_stateless/00350_count_distinct.sql +++ b/tests/queries/0_stateless/00350_count_distinct.sql @@ -7,6 +7,3 @@ SELECT count(DISTINCT x, y) FROM (SELECT number % 11 AS x, number % 13 AS y FROM SET count_distinct_implementation = 'uniqExact'; SELECT count(DISTINCT x) FROM (SELECT number % 123 AS x FROM system.numbers LIMIT 1000); SELECT count(DISTINCT x, y) FROM (SELECT number % 11 AS x, number % 13 AS y FROM system.numbers LIMIT 1000); -SET count_distinct_implementation = 'uniqThetaSketch'; -SELECT count(DISTINCT x) FROM (SELECT number % 123 AS x FROM system.numbers LIMIT 1000); -SELECT count(DISTINCT x, y) FROM (SELECT number % 11 AS x, number % 13 AS y FROM system.numbers LIMIT 1000); diff --git a/tests/queries/0_stateless/00533_uniq_array.reference b/tests/queries/0_stateless/00533_uniq_array.reference index 29696e9540b..c76a5c8a358 100644 --- a/tests/queries/0_stateless/00533_uniq_array.reference +++ b/tests/queries/0_stateless/00533_uniq_array.reference @@ -4,5 +4,3 @@ 3 2 3 -2 -3 diff --git a/tests/queries/0_stateless/00533_uniq_array.sql b/tests/queries/0_stateless/00533_uniq_array.sql index fc3e746b48a..653d47cade8 100644 --- a/tests/queries/0_stateless/00533_uniq_array.sql +++ b/tests/queries/0_stateless/00533_uniq_array.sql @@ -4,5 +4,3 @@ SELECT uniqExactArray([0, 1, 1], [0, 1, 1], [0, 1, 1]); SELECT uniqExactArray([0, 1, 1], [0, 1, 1], [0, 1, 0]); SELECT uniqUpToArray(10)([0, 1, 1], [0, 1, 1], [0, 1, 1]); SELECT uniqUpToArray(10)([0, 1, 1], [0, 1, 1], [0, 1, 0]); -SELECT uniqThetaSketchArray([0, 1, 1], [0, 1, 1], [0, 1, 1]); -SELECT uniqThetaSketchArray([0, 1, 1], [0, 1, 1], [0, 1, 0]); diff --git a/tests/queries/0_stateless/00608_uniq_array.reference b/tests/queries/0_stateless/00608_uniq_array.reference index 463fa270292..1f242fa6f00 100644 --- a/tests/queries/0_stateless/00608_uniq_array.reference +++ b/tests/queries/0_stateless/00608_uniq_array.reference @@ -1,4 +1,3 @@ 3 3 3 -3 diff --git a/tests/queries/0_stateless/00608_uniq_array.sql b/tests/queries/0_stateless/00608_uniq_array.sql index a657008b77b..d4b0efd8fb4 100644 --- a/tests/queries/0_stateless/00608_uniq_array.sql +++ b/tests/queries/0_stateless/00608_uniq_array.sql @@ -1,4 +1,3 @@ SELECT uniq(x) FROM (SELECT arrayJoin([[1, 2], [1, 2], [1, 2, 3], []]) AS x); SELECT uniqExact(x) FROM (SELECT arrayJoin([[1, 2], [1, 2], [1, 2, 3], []]) AS x); SELECT uniqUpTo(2)(x) FROM (SELECT arrayJoin([[1, 2], [1, 2], [1, 2, 3], []]) AS x); -SELECT uniqThetaSketch(x) FROM (SELECT arrayJoin([[1, 2], [1, 2], [1, 2, 3], []]) AS x); diff --git a/tests/queries/0_stateless/00666_uniq_complex_types.reference b/tests/queries/0_stateless/00666_uniq_complex_types.reference index 85721bc707a..c902b43b680 100644 --- a/tests/queries/0_stateless/00666_uniq_complex_types.reference +++ b/tests/queries/0_stateless/00666_uniq_complex_types.reference @@ -25,12 +25,3 @@ 3 3 3 -3 -3 -3 -3 -3 -3 -3 -3 -3 diff --git a/tests/queries/0_stateless/00666_uniq_complex_types.sql b/tests/queries/0_stateless/00666_uniq_complex_types.sql index e1c009c6cc4..3b43331c64e 100644 --- a/tests/queries/0_stateless/00666_uniq_complex_types.sql +++ b/tests/queries/0_stateless/00666_uniq_complex_types.sql @@ -27,13 +27,3 @@ SELECT uniqUpTo(3)((x, x)) FROM (SELECT arrayJoin([[], ['a'], ['a', 'b'], []]) A SELECT uniqUpTo(3)((x, arrayMap(elem -> [elem, elem], x))) FROM (SELECT arrayJoin([[], ['a'], ['a', 'b'], []]) AS x); SELECT uniqUpTo(3)((x, toString(x))) FROM (SELECT arrayJoin([[], ['a'], ['a', 'b'], []]) AS x); SELECT uniqUpTo(3)(x) FROM (SELECT arrayJoin([[], ['a'], ['a', NULL, 'b'], []]) AS x); - -SELECT uniqThetaSketch(x) FROM (SELECT arrayJoin([[], ['a'], ['a', 'b'], []]) AS x); -SELECT uniqThetaSketch(x) FROM (SELECT arrayJoin([[[]], [['a', 'b']], [['a'], ['b']], [['a', 'b']]]) AS x); -SELECT uniqThetaSketch(x, x) FROM (SELECT arrayJoin([[], ['a'], ['a', 'b'], []]) AS x); -SELECT uniqThetaSketch(x, arrayMap(elem -> [elem, elem], x)) FROM (SELECT arrayJoin([[], ['a'], ['a', 'b'], []]) AS x); -SELECT uniqThetaSketch(x, toString(x)) FROM (SELECT arrayJoin([[], ['a'], ['a', 'b'], []]) AS x); -SELECT uniqThetaSketch((x, x)) FROM (SELECT arrayJoin([[], ['a'], ['a', 'b'], []]) AS x); -SELECT uniqThetaSketch((x, arrayMap(elem -> [elem, elem], x))) FROM (SELECT arrayJoin([[], ['a'], ['a', 'b'], []]) AS x); -SELECT uniqThetaSketch((x, toString(x))) FROM (SELECT arrayJoin([[], ['a'], ['a', 'b'], []]) AS x); -SELECT uniqThetaSketch(x) FROM (SELECT arrayJoin([[], ['a'], ['a', NULL, 'b'], []]) AS x); diff --git a/tests/queries/0_stateless/00700_decimal_aggregates.reference b/tests/queries/0_stateless/00700_decimal_aggregates.reference index 93ab0b3029e..251445675a2 100644 --- a/tests/queries/0_stateless/00700_decimal_aggregates.reference +++ b/tests/queries/0_stateless/00700_decimal_aggregates.reference @@ -5,7 +5,7 @@ -1275.0000 -424.99999983 -255.00000000 -1275.0000 -424.99999983 -255.00000000 101.0000 101.00000000 101.00000000 101.0000 101.00000000 101.00000000 -101.0000 -101.00000000 -101.00000000 -101.0000 -101.00000000 -101.00000000 -(101,101,101) (101,101,101) (101,101,101) (101,101,101) (102,100,101) (101,101,101) +(101,101,101) (101,101,101) (101,101,101) (101,101,101) (102,100,101) 5 5 5 10 10 10 -50.0000 -50.0000 -16.66666666 -16.66666666 -10.00000000 -10.00000000 diff --git a/tests/queries/0_stateless/00700_decimal_aggregates.sql b/tests/queries/0_stateless/00700_decimal_aggregates.sql index 3a7ee1752cc..a1814fc866f 100644 --- a/tests/queries/0_stateless/00700_decimal_aggregates.sql +++ b/tests/queries/0_stateless/00700_decimal_aggregates.sql @@ -24,8 +24,7 @@ SELECT (uniq(a), uniq(b), uniq(c)), (uniqCombined(a), uniqCombined(b), uniqCombined(c)), (uniqCombined(17)(a), uniqCombined(17)(b), uniqCombined(17)(c)), (uniqExact(a), uniqExact(b), uniqExact(c)), - (uniqHLL12(a), uniqHLL12(b), uniqHLL12(c)), - (uniqThetaSketch(a), uniqThetaSketch(b), uniqThetaSketch(c)) + (uniqHLL12(a), uniqHLL12(b), uniqHLL12(c)) FROM (SELECT * FROM decimal ORDER BY a); SELECT uniqUpTo(10)(a), uniqUpTo(10)(b), uniqUpTo(10)(c) FROM decimal WHERE a >= 0 AND a < 5; diff --git a/tests/queries/0_stateless/00700_decimal_empty_aggregates.reference b/tests/queries/0_stateless/00700_decimal_empty_aggregates.reference index 81092f4056a..b079e91fddc 100644 --- a/tests/queries/0_stateless/00700_decimal_empty_aggregates.reference +++ b/tests/queries/0_stateless/00700_decimal_empty_aggregates.reference @@ -5,7 +5,7 @@ 0.0000 0.0000000 0.00000000 0.0000 0.0000000 0.00000000 0.0000 0.0000000 0.00000000 0.0000 0.0000000 0.00000000 0.0000 0.0000000 0.00000000 0.0000 0.0000000 0.00000000 -(0,0,0) (0,0,0) (0,0,0) (0,0,0) (0,0,0) (0,0,0) +(0,0,0) (0,0,0) (0,0,0) (0,0,0) (0,0,0) 0 0 0 0 0 0 0.0000 0.0000 0.0000000 0.0000000 0.00000000 0.00000000 diff --git a/tests/queries/0_stateless/00700_decimal_empty_aggregates.sql b/tests/queries/0_stateless/00700_decimal_empty_aggregates.sql index 0a00b738691..c77f605a4c2 100644 --- a/tests/queries/0_stateless/00700_decimal_empty_aggregates.sql +++ b/tests/queries/0_stateless/00700_decimal_empty_aggregates.sql @@ -20,8 +20,7 @@ SELECT (uniq(a), uniq(b), uniq(c)), (uniqCombined(a), uniqCombined(b), uniqCombined(c)), (uniqCombined(17)(a), uniqCombined(17)(b), uniqCombined(17)(c)), (uniqExact(a), uniqExact(b), uniqExact(c)), - (uniqHLL12(a), uniqHLL12(b), uniqHLL12(c)), - (uniqThetaSketch(a), uniqThetaSketch(b), uniqThetaSketch(c)) + (uniqHLL12(a), uniqHLL12(b), uniqHLL12(c)) FROM (SELECT * FROM decimal ORDER BY a); SELECT uniqUpTo(10)(a), uniqUpTo(10)(b), uniqUpTo(10)(c) FROM decimal WHERE a >= 0 AND a < 5; diff --git a/tests/queries/0_stateless/01390_remove_injective_in_uniq.reference b/tests/queries/0_stateless/01390_remove_injective_in_uniq.reference index c93167080c4..94e1dbc5da7 100644 --- a/tests/queries/0_stateless/01390_remove_injective_in_uniq.reference +++ b/tests/queries/0_stateless/01390_remove_injective_in_uniq.reference @@ -3,8 +3,7 @@ SELECT uniqExact(x), uniqHLL12(x), uniqCombined(x), - uniqCombined64(x), - uniqThetaSketch(x) + uniqCombined64(x) FROM ( SELECT number % 2 AS x @@ -15,8 +14,7 @@ SELECT uniqExact(x + y), uniqHLL12(x + y), uniqCombined(x + y), - uniqCombined64(x + y), - uniqThetaSketch(x + y) + uniqCombined64(x + y) FROM ( SELECT @@ -29,8 +27,7 @@ SELECT uniqExact(x), uniqHLL12(x), uniqCombined(x), - uniqCombined64(x), - uniqThetaSketch(x) + uniqCombined64(x) FROM ( SELECT number % 2 AS x @@ -41,8 +38,7 @@ SELECT uniqExact(x), uniqHLL12(x), uniqCombined(x), - uniqCombined64(x), - uniqThetaSketch(x) + uniqCombined64(x) FROM ( SELECT number % 2 AS x @@ -53,8 +49,7 @@ SELECT uniqExact(x), uniqHLL12(x), uniqCombined(x), - uniqCombined64(x), - uniqThetaSketch(x) + uniqCombined64(x) FROM ( SELECT number % 2 AS x @@ -65,8 +60,7 @@ SELECT uniqExact(x), uniqHLL12(x), uniqCombined(x), - uniqCombined64(x), - uniqThetaSketch(x) + uniqCombined64(x) FROM ( SELECT number % 2 AS x @@ -85,8 +79,7 @@ SELECT uniqExact(x), uniqHLL12(x), uniqCombined(x), - uniqCombined64(x), - uniqThetaSketch(x) + uniqCombined64(x) FROM ( SELECT number % 2 AS x @@ -97,8 +90,7 @@ SELECT uniqExact(x + y), uniqHLL12(x + y), uniqCombined(x + y), - uniqCombined64(x + y), - uniqThetaSketch(x + y) + uniqCombined64(x + y) FROM ( SELECT @@ -111,8 +103,7 @@ SELECT uniqExact(-x), uniqHLL12(-x), uniqCombined(-x), - uniqCombined64(-x), - uniqThetaSketch(-x) + uniqCombined64(-x) FROM ( SELECT number % 2 AS x @@ -123,8 +114,7 @@ SELECT uniqExact(bitNot(x)), uniqHLL12(bitNot(x)), uniqCombined(bitNot(x)), - uniqCombined64(bitNot(x)), - uniqThetaSketch(bitNot(x)) + uniqCombined64(bitNot(x)) FROM ( SELECT number % 2 AS x @@ -135,8 +125,7 @@ SELECT uniqExact(bitNot(-x)), uniqHLL12(bitNot(-x)), uniqCombined(bitNot(-x)), - uniqCombined64(bitNot(-x)), - uniqThetaSketch(bitNot(-x)) + uniqCombined64(bitNot(-x)) FROM ( SELECT number % 2 AS x @@ -147,8 +136,7 @@ SELECT uniqExact(-bitNot(-x)), uniqHLL12(-bitNot(-x)), uniqCombined(-bitNot(-x)), - uniqCombined64(-bitNot(-x)), - uniqThetaSketch(-bitNot(-x)) + uniqCombined64(-bitNot(-x)) FROM ( SELECT number % 2 AS x diff --git a/tests/queries/0_stateless/01390_remove_injective_in_uniq.sql b/tests/queries/0_stateless/01390_remove_injective_in_uniq.sql index 8aee576aa77..7753a8faea3 100644 --- a/tests/queries/0_stateless/01390_remove_injective_in_uniq.sql +++ b/tests/queries/0_stateless/01390_remove_injective_in_uniq.sql @@ -1,21 +1,21 @@ set optimize_injective_functions_inside_uniq = 1; -EXPLAIN SYNTAX select uniq(x), uniqExact(x), uniqHLL12(x), uniqCombined(x), uniqCombined64(x), uniqThetaSketch(x) +EXPLAIN SYNTAX select uniq(x), uniqExact(x), uniqHLL12(x), uniqCombined(x), uniqCombined64(x) from (select number % 2 as x from numbers(10)); -EXPLAIN SYNTAX select uniq(x + y), uniqExact(x + y), uniqHLL12(x + y), uniqCombined(x + y), uniqCombined64(x + y), uniqThetaSketch(x + y) +EXPLAIN SYNTAX select uniq(x + y), uniqExact(x + y), uniqHLL12(x + y), uniqCombined(x + y), uniqCombined64(x + y) from (select number % 2 as x, number % 3 y from numbers(10)); -EXPLAIN SYNTAX select uniq(-x), uniqExact(-x), uniqHLL12(-x), uniqCombined(-x), uniqCombined64(-x), uniqThetaSketch(-x) +EXPLAIN SYNTAX select uniq(-x), uniqExact(-x), uniqHLL12(-x), uniqCombined(-x), uniqCombined64(-x) from (select number % 2 as x from numbers(10)); -EXPLAIN SYNTAX select uniq(bitNot(x)), uniqExact(bitNot(x)), uniqHLL12(bitNot(x)), uniqCombined(bitNot(x)), uniqCombined64(bitNot(x)), uniqThetaSketch(bitNot(x)) +EXPLAIN SYNTAX select uniq(bitNot(x)), uniqExact(bitNot(x)), uniqHLL12(bitNot(x)), uniqCombined(bitNot(x)), uniqCombined64(bitNot(x)) from (select number % 2 as x from numbers(10)); -EXPLAIN SYNTAX select uniq(bitNot(-x)), uniqExact(bitNot(-x)), uniqHLL12(bitNot(-x)), uniqCombined(bitNot(-x)), uniqCombined64(bitNot(-x)), uniqThetaSketch(bitNot(-x)) +EXPLAIN SYNTAX select uniq(bitNot(-x)), uniqExact(bitNot(-x)), uniqHLL12(bitNot(-x)), uniqCombined(bitNot(-x)), uniqCombined64(bitNot(-x)) from (select number % 2 as x from numbers(10)); -EXPLAIN SYNTAX select uniq(-bitNot(-x)), uniqExact(-bitNot(-x)), uniqHLL12(-bitNot(-x)), uniqCombined(-bitNot(-x)), uniqCombined64(-bitNot(-x)), uniqThetaSketch(-bitNot(-x)) +EXPLAIN SYNTAX select uniq(-bitNot(-x)), uniqExact(-bitNot(-x)), uniqHLL12(-bitNot(-x)), uniqCombined(-bitNot(-x)), uniqCombined64(-bitNot(-x)) from (select number % 2 as x from numbers(10)); EXPLAIN SYNTAX select count(distinct -bitNot(-x)) from (select number % 2 as x from numbers(10)); @@ -24,22 +24,22 @@ EXPLAIN SYNTAX select uniq(concatAssumeInjective('x', 'y')) from numbers(10); set optimize_injective_functions_inside_uniq = 0; -EXPLAIN SYNTAX select uniq(x), uniqExact(x), uniqHLL12(x), uniqCombined(x), uniqCombined64(x), uniqThetaSketch(x) +EXPLAIN SYNTAX select uniq(x), uniqExact(x), uniqHLL12(x), uniqCombined(x), uniqCombined64(x) from (select number % 2 as x from numbers(10)); -EXPLAIN SYNTAX select uniq(x + y), uniqExact(x + y), uniqHLL12(x + y), uniqCombined(x + y), uniqCombined64(x + y), uniqThetaSketch(x + y) +EXPLAIN SYNTAX select uniq(x + y), uniqExact(x + y), uniqHLL12(x + y), uniqCombined(x + y), uniqCombined64(x + y) from (select number % 2 as x, number % 3 y from numbers(10)); -EXPLAIN SYNTAX select uniq(-x), uniqExact(-x), uniqHLL12(-x), uniqCombined(-x), uniqCombined64(-x), uniqThetaSketch(-x) +EXPLAIN SYNTAX select uniq(-x), uniqExact(-x), uniqHLL12(-x), uniqCombined(-x), uniqCombined64(-x) from (select number % 2 as x from numbers(10)); -EXPLAIN SYNTAX select uniq(bitNot(x)), uniqExact(bitNot(x)), uniqHLL12(bitNot(x)), uniqCombined(bitNot(x)), uniqCombined64(bitNot(x)), uniqThetaSketch(bitNot(x)) +EXPLAIN SYNTAX select uniq(bitNot(x)), uniqExact(bitNot(x)), uniqHLL12(bitNot(x)), uniqCombined(bitNot(x)), uniqCombined64(bitNot(x)) from (select number % 2 as x from numbers(10)); -EXPLAIN SYNTAX select uniq(bitNot(-x)), uniqExact(bitNot(-x)), uniqHLL12(bitNot(-x)), uniqCombined(bitNot(-x)), uniqCombined64(bitNot(-x)), uniqThetaSketch(bitNot(-x)) +EXPLAIN SYNTAX select uniq(bitNot(-x)), uniqExact(bitNot(-x)), uniqHLL12(bitNot(-x)), uniqCombined(bitNot(-x)), uniqCombined64(bitNot(-x)) from (select number % 2 as x from numbers(10)); -EXPLAIN SYNTAX select uniq(-bitNot(-x)), uniqExact(-bitNot(-x)), uniqHLL12(-bitNot(-x)), uniqCombined(-bitNot(-x)), uniqCombined64(-bitNot(-x)), uniqThetaSketch(-bitNot(-x)) +EXPLAIN SYNTAX select uniq(-bitNot(-x)), uniqExact(-bitNot(-x)), uniqHLL12(-bitNot(-x)), uniqCombined(-bitNot(-x)), uniqCombined64(-bitNot(-x)) from (select number % 2 as x from numbers(10)); EXPLAIN SYNTAX select count(distinct -bitNot(-x)) from (select number % 2 as x from numbers(10)); diff --git a/tests/queries/0_stateless/01798_uniq_theta_sketch.sql b/tests/queries/0_stateless/01798_uniq_theta_sketch.sql index 733c292132b..dcbd9f4072d 100644 --- a/tests/queries/0_stateless/01798_uniq_theta_sketch.sql +++ b/tests/queries/0_stateless/01798_uniq_theta_sketch.sql @@ -1,5 +1,135 @@ DROP TABLE IF EXISTS stored_aggregates; +SELECT 'uniqThetaSketch'; + +SELECT Y, uniqThetaSketch(X) FROM (SELECT number AS X, (3*X*X - 7*X + 11) % 37 AS Y FROM system.numbers LIMIT 15) GROUP BY Y; +SELECT Y, uniqThetaSketch(X) FROM (SELECT number AS X, (3*X*X - 7*X + 11) % 37 AS Y FROM system.numbers LIMIT 3000) GROUP BY Y; +SELECT Y, uniqThetaSketch(X) FROM (SELECT number AS X, (3*X*X - 7*X + 11) % 37 AS Y FROM system.numbers LIMIT 1000000) GROUP BY Y; + +SELECT 'uniqThetaSketch round(float)'; + +SELECT Y, uniqThetaSketch(X) FROM (SELECT number AS X, round(1/(1 + (3*X*X - 7*X + 11) % 37), 3) AS Y FROM system.numbers LIMIT 15) GROUP BY Y; +SELECT Y, uniqThetaSketch(X) FROM (SELECT number AS X, round(1/(1 + (3*X*X - 7*X + 11) % 37), 3) AS Y FROM system.numbers LIMIT 3000) GROUP BY Y; +SELECT Y, uniqThetaSketch(X) FROM (SELECT number AS X, round(1/(1 + (3*X*X - 7*X + 11) % 37), 3) AS Y FROM system.numbers LIMIT 1000000) GROUP BY Y; + +SELECT 'uniqThetaSketch round(toFloat32())'; + +SELECT Y, uniqThetaSketch(X) FROM (SELECT number AS X, round(toFloat32(1/(1 + (3*X*X - 7*X + 11) % 37)), 3) AS Y FROM system.numbers LIMIT 15) GROUP BY Y; +SELECT Y, uniqThetaSketch(X) FROM (SELECT number AS X, round(toFloat32(1/(1 + (3*X*X - 7*X + 11) % 37)), 3) AS Y FROM system.numbers LIMIT 3000) GROUP BY Y; +SELECT Y, uniqThetaSketch(X) FROM (SELECT number AS X, round(toFloat32(1/(1 + (3*X*X - 7*X + 11) % 37)), 3) AS Y FROM system.numbers LIMIT 1000000) GROUP BY Y; + +SELECT 'uniqThetaSketch IPv4NumToString'; + +SELECT Y, uniqThetaSketch(Z) FROM (SELECT number AS X, IPv4NumToString(toUInt32(X)) AS Z, (3*X*X - 7*X + 11) % 37 AS Y FROM system.numbers LIMIT 15) GROUP BY Y; +SELECT Y, uniqThetaSketch(Z) FROM (SELECT number AS X, IPv4NumToString(toUInt32(X)) AS Z, (3*X*X - 7*X + 11) % 37 AS Y FROM system.numbers LIMIT 3000) GROUP BY Y; +SELECT Y, uniqThetaSketch(Z) FROM (SELECT number AS X, IPv4NumToString(toUInt32(X)) AS Z, (3*X*X - 7*X + 11) % 37 AS Y FROM system.numbers LIMIT 1000000) GROUP BY Y; + +SELECT 'uniqThetaSketch remote()'; + +SELECT uniqThetaSketch(dummy) FROM remote('127.0.0.{2,3}', system.one); + +SELECT 'uniqThetaSketch many agrs'; + +SELECT + uniqThetaSketch(x), uniqThetaSketch((x)), uniqThetaSketch(x, y), uniqThetaSketch((x, y)), uniqThetaSketch(x, y, z), uniqThetaSketch((x, y, z)) +FROM +( + SELECT + number % 10 AS x, + intDiv(number, 10) % 10 AS y, + toString(intDiv(number, 100) % 10) AS z + FROM system.numbers LIMIT 1000 +); + + +SELECT k, + uniqThetaSketch(x), uniqThetaSketch((x)), uniqThetaSketch(x, y), uniqThetaSketch((x, y)), uniqThetaSketch(x, y, z), uniqThetaSketch((x, y, z)), + count() AS c +FROM +( + SELECT + (number + 0x8ffcbd8257219a26) * 0x66bb3430c06d2353 % 131 AS k, + number % 10 AS x, + intDiv(number, 10) % 10 AS y, + toString(intDiv(number, 100) % 10) AS z + FROM system.numbers LIMIT 100000 +) +GROUP BY k +ORDER BY c DESC, k ASC +LIMIT 10; + + +SELECT 'uniqThetaSketch distinct'; + +SET count_distinct_implementation = 'uniqThetaSketch'; +SELECT count(DISTINCT x) FROM (SELECT number % 123 AS x FROM system.numbers LIMIT 1000); +SELECT count(DISTINCT x, y) FROM (SELECT number % 11 AS x, number % 13 AS y FROM system.numbers LIMIT 1000); + + +SELECT 'uniqThetaSketch arrays'; + +SELECT uniqThetaSketchArray([0, 1, 1], [0, 1, 1], [0, 1, 1]); +SELECT uniqThetaSketchArray([0, 1, 1], [0, 1, 1], [0, 1, 0]); +SELECT uniqThetaSketch(x) FROM (SELECT arrayJoin([[1, 2], [1, 2], [1, 2, 3], []]) AS x); + + +SELECT 'uniqThetaSketch complex types'; + +SELECT uniqThetaSketch(x) FROM (SELECT arrayJoin([[], ['a'], ['a', 'b'], []]) AS x); +SELECT uniqThetaSketch(x) FROM (SELECT arrayJoin([[[]], [['a', 'b']], [['a'], ['b']], [['a', 'b']]]) AS x); +SELECT uniqThetaSketch(x, x) FROM (SELECT arrayJoin([[], ['a'], ['a', 'b'], []]) AS x); +SELECT uniqThetaSketch(x, arrayMap(elem -> [elem, elem], x)) FROM (SELECT arrayJoin([[], ['a'], ['a', 'b'], []]) AS x); +SELECT uniqThetaSketch(x, toString(x)) FROM (SELECT arrayJoin([[], ['a'], ['a', 'b'], []]) AS x); +SELECT uniqThetaSketch((x, x)) FROM (SELECT arrayJoin([[], ['a'], ['a', 'b'], []]) AS x); +SELECT uniqThetaSketch((x, arrayMap(elem -> [elem, elem], x))) FROM (SELECT arrayJoin([[], ['a'], ['a', 'b'], []]) AS x); +SELECT uniqThetaSketch((x, toString(x))) FROM (SELECT arrayJoin([[], ['a'], ['a', 'b'], []]) AS x); +SELECT uniqThetaSketch(x) FROM (SELECT arrayJoin([[], ['a'], ['a', NULL, 'b'], []]) AS x); + + +SELECT 'uniqThetaSketch decimals'; + +DROP TABLE IF EXISTS decimal; +CREATE TABLE decimal +( + a Decimal32(4), + b Decimal64(8), + c Decimal128(8) +) ENGINE = Memory; + +SELECT (uniqThetaSketch(a), uniqThetaSketch(b), uniqThetaSketch(c)) +FROM (SELECT * FROM decimal ORDER BY a); + +INSERT INTO decimal (a, b, c) +SELECT toDecimal32(number - 50, 4), toDecimal64(number - 50, 8) / 3, toDecimal128(number - 50, 8) / 5 +FROM system.numbers LIMIT 101; + +SELECT (uniqThetaSketch(a), uniqThetaSketch(b), uniqThetaSketch(c)) +FROM (SELECT * FROM decimal ORDER BY a); + +DROP TABLE decimal; + + +SELECT 'uniqThetaSketch remove injective'; + +set optimize_injective_functions_inside_uniq = 1; + +EXPLAIN SYNTAX select uniqThetaSketch(x) from (select number % 2 as x from numbers(10)); +EXPLAIN SYNTAX select uniqThetaSketch(x + y) from (select number % 2 as x, number % 3 y from numbers(10)); +EXPLAIN SYNTAX select uniqThetaSketch(-x) from (select number % 2 as x from numbers(10)); +EXPLAIN SYNTAX select uniqThetaSketch(bitNot(x)) from (select number % 2 as x from numbers(10)); +EXPLAIN SYNTAX select uniqThetaSketch(bitNot(-x)) from (select number % 2 as x from numbers(10)); +EXPLAIN SYNTAX select uniqThetaSketch(-bitNot(-x)) from (select number % 2 as x from numbers(10)); + +set optimize_injective_functions_inside_uniq = 0; + +EXPLAIN SYNTAX select uniqThetaSketch(x) from (select number % 2 as x from numbers(10)); +EXPLAIN SYNTAX select uniqThetaSketch(x + y) from (select number % 2 as x, number % 3 y from numbers(10)); +EXPLAIN SYNTAX select uniqThetaSketch(-x) from (select number % 2 as x from numbers(10)); +EXPLAIN SYNTAX select uniqThetaSketch(bitNot(x)) from (select number % 2 as x from numbers(10)); +EXPLAIN SYNTAX select uniqThetaSketch(bitNot(-x)) from (select number % 2 as x from numbers(10)); +EXPLAIN SYNTAX select uniqThetaSketch(-bitNot(-x)) from (select number % 2 as x from numbers(10)); + + -- simple CREATE TABLE stored_aggregates ( diff --git a/tests/queries/0_stateless/arcadia_skip_list.txt b/tests/queries/0_stateless/arcadia_skip_list.txt index 1b333a6baec..b97e2a63638 100644 --- a/tests/queries/0_stateless/arcadia_skip_list.txt +++ b/tests/queries/0_stateless/arcadia_skip_list.txt @@ -224,3 +224,4 @@ 01306_polygons_intersection 01702_system_query_log 01759_optimize_skip_unused_shards_zero_shards +01798_uniq_theta_sketch