Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line numberDiff line numberDiff line change
Expand Up@@ -128,118 +128,111 @@ CreateDataSourceTableAsSelectCommand `spark_catalog`.`default`.`t_double_1_5_thr


-- !query
SELECT split(kll_sketch_to_string_bigint(agg), '\n')[1] LIKE '%Kll%' AS str_contains_kll,
SELECT lower(kll_sketch_to_string_bigint(agg)) LIKE '%kll%' AS str_contains_kll,
abs(kll_sketch_get_quantile_bigint(agg, 0.5) - 4) < 1 AS median_close_to_4,
abs(kll_sketch_get_rank_bigint(agg, 3) - 0.4) < 0.1 AS rank3_close_to_0_4
FROM (
SELECT kll_sketch_agg_bigint(col1) AS agg
FROM t_byte_1_5_through_7_11
)
-- !query analysis
Project [split(kll_sketch_to_string_bigint(agg#x),
, -1)[1] LIKE %Kll% AS str_contains_kll#x, (abs((kll_sketch_get_quantile_bigint(agg#x, cast(0.5 as double)) - cast(4 as bigint))) < cast(1 as bigint)) AS median_close_to_4#x, (abs((kll_sketch_get_rank_bigint(agg#x, cast(3 as bigint)) - cast(0.4 as double))) < cast(0.1 as double)) AS rank3_close_to_0_4#x]
Project [lower(kll_sketch_to_string_bigint(agg#x)) LIKE %kll% AS str_contains_kll#x, (abs((kll_sketch_get_quantile_bigint(agg#x, cast(0.5 as double)) - cast(4 as bigint))) < cast(1 as bigint)) AS median_close_to_4#x, (abs((kll_sketch_get_rank_bigint(agg#x, cast(3 as bigint)) - cast(0.4 as double))) < cast(0.1 as double)) AS rank3_close_to_0_4#x]
+- SubqueryAlias __auto_generated_subquery_name
+- Aggregate [kll_sketch_agg_bigint(col1#x, None, 0, 0) AS agg#x]
+- SubqueryAlias spark_catalog.default.t_byte_1_5_through_7_11
+- Relation spark_catalog.default.t_byte_1_5_through_7_11[col1#x,col2#x] parquet


-- !query
SELECT split(kll_sketch_to_string_bigint(agg), '\n')[1] LIKE '%Kll%' AS str_contains_kll,
SELECT lower(kll_sketch_to_string_bigint(agg)) LIKE '%kll%' AS str_contains_kll,
abs(kll_sketch_get_quantile_bigint(agg, 0.5) - 4) < 1 AS median_close_to_4,
abs(kll_sketch_get_rank_bigint(agg, 3) - 0.4) < 0.1 AS rank3_close_to_0_4
FROM (
SELECT kll_sketch_agg_bigint(col1) AS agg
FROM t_int_1_5_through_7_11
)
-- !query analysis
Project [split(kll_sketch_to_string_bigint(agg#x),
, -1)[1] LIKE %Kll% AS str_contains_kll#x, (abs((kll_sketch_get_quantile_bigint(agg#x, cast(0.5 as double)) - cast(4 as bigint))) < cast(1 as bigint)) AS median_close_to_4#x, (abs((kll_sketch_get_rank_bigint(agg#x, cast(3 as bigint)) - cast(0.4 as double))) < cast(0.1 as double)) AS rank3_close_to_0_4#x]
Project [lower(kll_sketch_to_string_bigint(agg#x)) LIKE %kll% AS str_contains_kll#x, (abs((kll_sketch_get_quantile_bigint(agg#x, cast(0.5 as double)) - cast(4 as bigint))) < cast(1 as bigint)) AS median_close_to_4#x, (abs((kll_sketch_get_rank_bigint(agg#x, cast(3 as bigint)) - cast(0.4 as double))) < cast(0.1 as double)) AS rank3_close_to_0_4#x]
+- SubqueryAlias __auto_generated_subquery_name
+- Aggregate [kll_sketch_agg_bigint(col1#x, None, 0, 0) AS agg#x]
+- SubqueryAlias spark_catalog.default.t_int_1_5_through_7_11
+- Relation spark_catalog.default.t_int_1_5_through_7_11[col1#x,col2#x] parquet


-- !query
SELECT split(kll_sketch_to_string_bigint(agg), '\n')[1] LIKE '%Kll%' AS str_contains_kll,
SELECT lower(kll_sketch_to_string_bigint(agg)) LIKE '%kll%' AS str_contains_kll,
abs(kll_sketch_get_quantile_bigint(agg, 0.5) - 4) < 1 AS median_close_to_4,
abs(kll_sketch_get_rank_bigint(agg, 3) - 0.4) < 0.1 AS rank3_close_to_0_4
FROM (
SELECT kll_sketch_agg_bigint(col1) AS agg
FROM t_long_1_5_through_7_11
)
-- !query analysis
Project [split(kll_sketch_to_string_bigint(agg#x),
, -1)[1] LIKE %Kll% AS str_contains_kll#x, (abs((kll_sketch_get_quantile_bigint(agg#x, cast(0.5 as double)) - cast(4 as bigint))) < cast(1 as bigint)) AS median_close_to_4#x, (abs((kll_sketch_get_rank_bigint(agg#x, cast(3 as bigint)) - cast(0.4 as double))) < cast(0.1 as double)) AS rank3_close_to_0_4#x]
Project [lower(kll_sketch_to_string_bigint(agg#x)) LIKE %kll% AS str_contains_kll#x, (abs((kll_sketch_get_quantile_bigint(agg#x, cast(0.5 as double)) - cast(4 as bigint))) < cast(1 as bigint)) AS median_close_to_4#x, (abs((kll_sketch_get_rank_bigint(agg#x, cast(3 as bigint)) - cast(0.4 as double))) < cast(0.1 as double)) AS rank3_close_to_0_4#x]
+- SubqueryAlias __auto_generated_subquery_name
+- Aggregate [kll_sketch_agg_bigint(col1#xL, None, 0, 0) AS agg#x]
+- SubqueryAlias spark_catalog.default.t_long_1_5_through_7_11
+- Relation spark_catalog.default.t_long_1_5_through_7_11[col1#xL,col2#xL] parquet


-- !query
SELECT split(kll_sketch_to_string_bigint(agg), '\n')[1] LIKE '%Kll%' AS str_contains_kll,
SELECT lower(kll_sketch_to_string_bigint(agg)) LIKE '%kll%' AS str_contains_kll,
abs(kll_sketch_get_quantile_bigint(agg, 0.5) - 4) < 1 AS median_close_to_4,
abs(kll_sketch_get_rank_bigint(agg, 3) - 0.4) < 0.1 AS rank3_close_to_0_4
FROM (
SELECT kll_sketch_agg_bigint(col1) AS agg
FROM t_short_1_5_through_7_11
)
-- !query analysis
Project [split(kll_sketch_to_string_bigint(agg#x),
, -1)[1] LIKE %Kll% AS str_contains_kll#x, (abs((kll_sketch_get_quantile_bigint(agg#x, cast(0.5 as double)) - cast(4 as bigint))) < cast(1 as bigint)) AS median_close_to_4#x, (abs((kll_sketch_get_rank_bigint(agg#x, cast(3 as bigint)) - cast(0.4 as double))) < cast(0.1 as double)) AS rank3_close_to_0_4#x]
Project [lower(kll_sketch_to_string_bigint(agg#x)) LIKE %kll% AS str_contains_kll#x, (abs((kll_sketch_get_quantile_bigint(agg#x, cast(0.5 as double)) - cast(4 as bigint))) < cast(1 as bigint)) AS median_close_to_4#x, (abs((kll_sketch_get_rank_bigint(agg#x, cast(3 as bigint)) - cast(0.4 as double))) < cast(0.1 as double)) AS rank3_close_to_0_4#x]
+- SubqueryAlias __auto_generated_subquery_name
+- Aggregate [kll_sketch_agg_bigint(col1#x, None, 0, 0) AS agg#x]
+- SubqueryAlias spark_catalog.default.t_short_1_5_through_7_11
+- Relation spark_catalog.default.t_short_1_5_through_7_11[col1#x,col2#x] parquet


-- !query
SELECT split(kll_sketch_to_string_float(agg), '\n')[1] LIKE '%Kll%' AS str_contains_kll,
SELECT lower(kll_sketch_to_string_float(agg)) LIKE '%kll%' AS str_contains_kll,
abs(kll_sketch_get_quantile_float(agg, 0.5) - 4.0) < 0.5 AS median_close_to_4,
abs(kll_sketch_get_rank_float(agg, 3) - 0.4) < 0.1 AS rank3_close_to_0_4
FROM (
SELECT kll_sketch_agg_float(col1) AS agg
FROM t_float_1_5_through_7_11
)
-- !query analysis
Project [split(kll_sketch_to_string_float(agg#x),
, -1)[1] LIKE %Kll% AS str_contains_kll#x, (abs((cast(kll_sketch_get_quantile_float(agg#x, cast(0.5 as double)) as double) - cast(4.0 as double))) < cast(0.5 as double)) AS median_close_to_4#x, (abs((kll_sketch_get_rank_float(agg#x, cast(3 as float)) - cast(0.4 as double))) < cast(0.1 as double)) AS rank3_close_to_0_4#x]
Project [lower(kll_sketch_to_string_float(agg#x)) LIKE %kll% AS str_contains_kll#x, (abs((cast(kll_sketch_get_quantile_float(agg#x, cast(0.5 as double)) as double) - cast(4.0 as double))) < cast(0.5 as double)) AS median_close_to_4#x, (abs((kll_sketch_get_rank_float(agg#x, cast(3 as float)) - cast(0.4 as double))) < cast(0.1 as double)) AS rank3_close_to_0_4#x]
+- SubqueryAlias __auto_generated_subquery_name
+- Aggregate [kll_sketch_agg_float(col1#x, None, 0, 0) AS agg#x]
+- SubqueryAlias spark_catalog.default.t_float_1_5_through_7_11
+- Relation spark_catalog.default.t_float_1_5_through_7_11[col1#x,col2#x] parquet


-- !query
SELECT split(kll_sketch_to_string_double(agg), '\n')[1] LIKE '%Kll%' AS str_contains_kll,
SELECT lower(kll_sketch_to_string_double(agg)) LIKE '%kll%' AS str_contains_kll,
abs(kll_sketch_get_quantile_double(agg, 0.5) - 4.0) < 0.5 AS median_close_to_4,
abs(kll_sketch_get_rank_double(agg, 3) - 0.4) < 0.1 AS rank3_close_to_0_4
FROM (
SELECT kll_sketch_agg_double(col1) AS agg
FROM t_double_1_5_through_7_11
)
-- !query analysis
Project [split(kll_sketch_to_string_double(agg#x),
, -1)[1] LIKE %Kll% AS str_contains_kll#x, (abs((kll_sketch_get_quantile_double(agg#x, cast(0.5 as double)) - cast(4.0 as double))) < cast(0.5 as double)) AS median_close_to_4#x, (abs((kll_sketch_get_rank_double(agg#x, cast(3 as double)) - cast(0.4 as double))) < cast(0.1 as double)) AS rank3_close_to_0_4#x]
Project [lower(kll_sketch_to_string_double(agg#x)) LIKE %kll% AS str_contains_kll#x, (abs((kll_sketch_get_quantile_double(agg#x, cast(0.5 as double)) - cast(4.0 as double))) < cast(0.5 as double)) AS median_close_to_4#x, (abs((kll_sketch_get_rank_double(agg#x, cast(3 as double)) - cast(0.4 as double))) < cast(0.1 as double)) AS rank3_close_to_0_4#x]
+- SubqueryAlias __auto_generated_subquery_name
+- Aggregate [kll_sketch_agg_double(col1#x, None, 0, 0) AS agg#x]
+- SubqueryAlias spark_catalog.default.t_double_1_5_through_7_11
+- Relation spark_catalog.default.t_double_1_5_through_7_11[col1#x,col2#x] parquet


-- !query
SELECT split(kll_sketch_to_string_double(agg), '\n')[1] LIKE '%Kll%' AS str_contains_kll,
SELECT lower(kll_sketch_to_string_double(agg)) LIKE '%kll%' AS str_contains_kll,
abs(kll_sketch_get_quantile_double(agg, 0.5) - 4.0) < 0.5 AS median_close_to_4,
abs(kll_sketch_get_rank_double(agg, 3) - 0.4) < 0.1 AS rank3_close_to_0_4
FROM (
SELECT kll_sketch_agg_double(col1) AS agg
FROM t_float_1_5_through_7_11
)
-- !query analysis
Project [split(kll_sketch_to_string_double(agg#x),
, -1)[1] LIKE %Kll% AS str_contains_kll#x, (abs((kll_sketch_get_quantile_double(agg#x, cast(0.5 as double)) - cast(4.0 as double))) < cast(0.5 as double)) AS median_close_to_4#x, (abs((kll_sketch_get_rank_double(agg#x, cast(3 as double)) - cast(0.4 as double))) < cast(0.1 as double)) AS rank3_close_to_0_4#x]
Project [lower(kll_sketch_to_string_double(agg#x)) LIKE %kll% AS str_contains_kll#x, (abs((kll_sketch_get_quantile_double(agg#x, cast(0.5 as double)) - cast(4.0 as double))) < cast(0.5 as double)) AS median_close_to_4#x, (abs((kll_sketch_get_rank_double(agg#x, cast(3 as double)) - cast(0.4 as double))) < cast(0.1 as double)) AS rank3_close_to_0_4#x]
+- SubqueryAlias __auto_generated_subquery_name
+- Aggregate [kll_sketch_agg_double(col1#x, None, 0, 0) AS agg#x]
+- SubqueryAlias spark_catalog.default.t_float_1_5_through_7_11
Expand DownExpand Up@@ -549,7 +542,7 @@ Aggregate [kll_sketch_get_n_bigint(kll_sketch_agg_bigint(col1#xL, Some(100), 0,


-- !query
SELECT split(kll_sketch_to_string_bigint(agg), '\n')[1] LIKE '%Kll%' AS str_contains_kll,
SELECT lower(kll_sketch_to_string_bigint(agg)) LIKE '%kll%' AS str_contains_kll,
abs(kll_sketch_get_quantile_bigint(agg, 0.5) - 4) < 1 AS median_close_to_4,
abs(kll_sketch_get_rank_bigint(agg, 3) - 0.4) < 0.1 AS rank3_close_to_0_4
FROM (
Expand All@@ -571,15 +564,15 @@ org.apache.spark.sql.catalyst.ExtendedAnalysisException
"queryContext" : [ {
"objectType" : "",
"objectName" : "",
"startIndex" : 273,
"stopIndex" : 299,
"startIndex" : 264,
"stopIndex" : 290,
"fragment" : "kll_sketch_agg_bigint(col1)"
} ]
}


-- !query
SELECT split(kll_sketch_to_string_bigint(agg), '\n')[1] LIKE '%Kll%' AS str_contains_kll,
SELECT lower(kll_sketch_to_string_bigint(agg)) LIKE '%kll%' AS str_contains_kll,
abs(kll_sketch_get_quantile_bigint(agg, 0.5) - 4) < 1 AS median_close_to_4,
abs(kll_sketch_get_rank_bigint(agg, 3) - 0.4) < 0.1 AS rank3_close_to_0_4
FROM (
Expand All@@ -601,15 +594,15 @@ org.apache.spark.sql.catalyst.ExtendedAnalysisException
"queryContext" : [ {
"objectType" : "",
"objectName" : "",
"startIndex" : 273,
"stopIndex" : 299,
"startIndex" : 264,
"stopIndex" : 290,
"fragment" : "kll_sketch_agg_bigint(col1)"
} ]
}


-- !query
SELECT split(kll_sketch_to_string_float(agg), '\n')[1] LIKE '%Kll%' AS str_contains_kll,
SELECT lower(kll_sketch_to_string_float(agg)) LIKE '%kll%' AS str_contains_kll,
abs(kll_sketch_get_quantile_float(agg, 0.5) - 4.0) < 0.5 AS median_close_to_4,
abs(kll_sketch_get_rank_float(agg, 3) - 0.4) < 0.1 AS rank3_close_to_0_4
FROM (
Expand All@@ -631,8 +624,8 @@ org.apache.spark.sql.catalyst.ExtendedAnalysisException
"queryContext" : [ {
"objectType" : "",
"objectName" : "",
"startIndex" : 274,
"stopIndex" : 299,
"startIndex" : 265,
"stopIndex" : 290,
"fragment" : "kll_sketch_agg_float(col1)"
} ]
}
Expand DownExpand Up@@ -931,13 +924,13 @@ Project [isnotnull(kll_sketch_get_quantile_float(agg#x, cast(0.5 as double))) AS


-- !query
SELECT kll_sketch_to_string_double(agg) LIKE '%Kll%' AS contains_kll_header
SELECT lower(kll_sketch_to_string_double(agg)) LIKE '%kll%' AS contains_kll_header
FROM (
SELECT kll_sketch_agg_bigint(col1) AS agg
FROM t_long_1_5_through_7_11
)
-- !query analysis
Project [kll_sketch_to_string_double(agg#x) LIKE %Kll% AS contains_kll_header#x]
Project [lower(kll_sketch_to_string_double(agg#x)) LIKE %kll% AS contains_kll_header#x]
+- SubqueryAlias __auto_generated_subquery_name
+- Aggregate [kll_sketch_agg_bigint(col1#xL, None, 0, 0) AS agg#x]
+- SubqueryAlias spark_catalog.default.t_long_1_5_through_7_11
Expand Down
22 changes: 11 additions & 11 deletions sql/core/src/test/resources/sql-tests/inputs/kllquantiles.sql
Original file line numberDiff line numberDiff line change
Expand Up@@ -64,31 +64,31 @@ VALUES
(CAST(7 AS DOUBLE), CAST(11 AS DOUBLE)) AS tab(col1, col2);

-- BIGINT sketches
SELECT split(kll_sketch_to_string_bigint(agg), '\n')[1] LIKE '%Kll%' AS str_contains_kll,
SELECT lower(kll_sketch_to_string_bigint(agg)) LIKE '%kll%' AS str_contains_kll,
abs(kll_sketch_get_quantile_bigint(agg, 0.5) - 4) < 1 AS median_close_to_4,
abs(kll_sketch_get_rank_bigint(agg, 3) - 0.4) < 0.1 AS rank3_close_to_0_4
FROM (
SELECT kll_sketch_agg_bigint(col1) AS agg
FROM t_byte_1_5_through_7_11
);

SELECT split(kll_sketch_to_string_bigint(agg), '\n')[1] LIKE '%Kll%' AS str_contains_kll,
SELECT lower(kll_sketch_to_string_bigint(agg)) LIKE '%kll%' AS str_contains_kll,
abs(kll_sketch_get_quantile_bigint(agg, 0.5) - 4) < 1 AS median_close_to_4,
abs(kll_sketch_get_rank_bigint(agg, 3) - 0.4) < 0.1 AS rank3_close_to_0_4
FROM (
SELECT kll_sketch_agg_bigint(col1) AS agg
FROM t_int_1_5_through_7_11
);

SELECT split(kll_sketch_to_string_bigint(agg), '\n')[1] LIKE '%Kll%' AS str_contains_kll,
SELECT lower(kll_sketch_to_string_bigint(agg)) LIKE '%kll%' AS str_contains_kll,
abs(kll_sketch_get_quantile_bigint(agg, 0.5) - 4) < 1 AS median_close_to_4,
abs(kll_sketch_get_rank_bigint(agg, 3) - 0.4) < 0.1 AS rank3_close_to_0_4
FROM (
SELECT kll_sketch_agg_bigint(col1) AS agg
FROM t_long_1_5_through_7_11
);

SELECT split(kll_sketch_to_string_bigint(agg), '\n')[1] LIKE '%Kll%' AS str_contains_kll,
SELECT lower(kll_sketch_to_string_bigint(agg)) LIKE '%kll%' AS str_contains_kll,
abs(kll_sketch_get_quantile_bigint(agg, 0.5) - 4) < 1 AS median_close_to_4,
abs(kll_sketch_get_rank_bigint(agg, 3) - 0.4) < 0.1 AS rank3_close_to_0_4
FROM (
Expand All@@ -97,7 +97,7 @@ FROM (
);

-- FLOAT sketches (only accepts float types to avoid precision loss)
SELECT split(kll_sketch_to_string_float(agg), '\n')[1] LIKE '%Kll%' AS str_contains_kll,
SELECT lower(kll_sketch_to_string_float(agg)) LIKE '%kll%' AS str_contains_kll,
abs(kll_sketch_get_quantile_float(agg, 0.5) - 4.0) < 0.5 AS median_close_to_4,
abs(kll_sketch_get_rank_float(agg, 3) - 0.4) < 0.1 AS rank3_close_to_0_4
FROM (
Expand All@@ -106,7 +106,7 @@ FROM (
);

-- DOUBLE sketches (accepts float and double types to avoid precision loss from integer conversion)
SELECT split(kll_sketch_to_string_double(agg), '\n')[1] LIKE '%Kll%' AS str_contains_kll,
SELECT lower(kll_sketch_to_string_double(agg)) LIKE '%kll%' AS str_contains_kll,
abs(kll_sketch_get_quantile_double(agg, 0.5) - 4.0) < 0.5 AS median_close_to_4,
abs(kll_sketch_get_rank_double(agg, 3) - 0.4) < 0.1 AS rank3_close_to_0_4
FROM (
Expand All@@ -115,7 +115,7 @@ FROM (
);

-- Test float column with double sketch (valid type promotion)
SELECT split(kll_sketch_to_string_double(agg), '\n')[1] LIKE '%Kll%' AS str_contains_kll,
SELECT lower(kll_sketch_to_string_double(agg)) LIKE '%kll%' AS str_contains_kll,
abs(kll_sketch_get_quantile_double(agg, 0.5) - 4.0) < 0.5 AS median_close_to_4,
abs(kll_sketch_get_rank_double(agg, 3) - 0.4) < 0.1 AS rank3_close_to_0_4
FROM (
Expand DownExpand Up@@ -268,7 +268,7 @@ FROM t_long_1_5_through_7_11;
-- These queries should fail with type mismatch or validation errors

-- Type mismatch: BIGINT sketch does not accept DOUBLE columns
SELECT split(kll_sketch_to_string_bigint(agg), '\n')[1] LIKE '%Kll%' AS str_contains_kll,
SELECT lower(kll_sketch_to_string_bigint(agg)) LIKE '%kll%' AS str_contains_kll,
abs(kll_sketch_get_quantile_bigint(agg, 0.5) - 4) < 1 AS median_close_to_4,
abs(kll_sketch_get_rank_bigint(agg, 3) - 0.4) < 0.1 AS rank3_close_to_0_4
FROM (
Expand All@@ -277,7 +277,7 @@ FROM (
);

-- Type mismatch: BIGINT sketch does not accept FLOAT columns
SELECT split(kll_sketch_to_string_bigint(agg), '\n')[1] LIKE '%Kll%' AS str_contains_kll,
SELECT lower(kll_sketch_to_string_bigint(agg)) LIKE '%kll%' AS str_contains_kll,
abs(kll_sketch_get_quantile_bigint(agg, 0.5) - 4) < 1 AS median_close_to_4,
abs(kll_sketch_get_rank_bigint(agg, 3) - 0.4) < 0.1 AS rank3_close_to_0_4
FROM (
Expand All@@ -286,7 +286,7 @@ FROM (
);

-- Type mismatch: FLOAT sketch does not accept DOUBLE columns
SELECT split(kll_sketch_to_string_float(agg), '\n')[1] LIKE '%Kll%' AS str_contains_kll,
SELECT lower(kll_sketch_to_string_float(agg)) LIKE '%kll%' AS str_contains_kll,
abs(kll_sketch_get_quantile_float(agg, 0.5) - 4.0) < 0.5 AS median_close_to_4,
abs(kll_sketch_get_rank_float(agg, 3) - 0.4) < 0.1 AS rank3_close_to_0_4
FROM (
Expand DownExpand Up@@ -378,7 +378,7 @@ FROM (
-- interpret the binary data. This query succeeds even though we're using a DOUBLE
-- to_string function on a BIGINT sketch. The function reads the binary representation
-- and produces output, but the numeric values will be incorrectly interpreted.
SELECT kll_sketch_to_string_double(agg) LIKE '%Kll%' AS contains_kll_header
SELECT lower(kll_sketch_to_string_double(agg)) LIKE '%kll%' AS contains_kll_header
FROM (
SELECT kll_sketch_agg_bigint(col1) AS agg
FROM t_long_1_5_through_7_11
Expand Down
Loading