Skip to content
Merged
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 number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public void testCast() {
verifyLogical(root, expectedLogical);

// TODO there is no SAFE_CAST() in Spark, the Spark CAST is always safe (return null).
String expectedSparkSql = "SELECT SAFE_CAST(`MGR` AS STRING) `a`\nFROM `scott`.`EMP`";
String expectedSparkSql = "SELECT TRY_CAST(`MGR` AS STRING) `a`\nFROM `scott`.`EMP`";
verifyPPLToSparkSQL(root, expectedSparkSql);
}

Expand All @@ -40,7 +40,7 @@ public void testCastInsensitive() {
"" + "LogicalProject(a=[SAFE_CAST($3)])\n" + " LogicalTableScan(table=[[scott, EMP]])\n";
verifyLogical(root, expectedLogical);

String expectedSparkSql = "SELECT SAFE_CAST(`MGR` AS STRING) `a`\nFROM `scott`.`EMP`";
String expectedSparkSql = "SELECT TRY_CAST(`MGR` AS STRING) `a`\nFROM `scott`.`EMP`";
verifyPPLToSparkSQL(root, expectedSparkSql);
}

Expand All @@ -56,7 +56,7 @@ public void testCastOverriding() {

String expectedSparkSql =
"SELECT `EMPNO`, `ENAME`, `JOB`, `MGR`, `HIREDATE`, `SAL`, `COMM`, `DEPTNO`,"
+ " SAFE_CAST(`MGR` AS STRING) `age`\n"
+ " TRY_CAST(`MGR` AS STRING) `age`\n"
+ "FROM `scott`.`EMP`";
verifyPPLToSparkSQL(root, expectedSparkSql);
}
Expand All @@ -83,7 +83,7 @@ public void testChainedCast() {
verifyLogical(root, expectedLogical);

String expectedSparkSql =
"" + "SELECT SAFE_CAST(SAFE_CAST(`MGR` AS STRING) AS INTEGER) `a`\n" + "FROM `scott`.`EMP`";
"" + "SELECT TRY_CAST(TRY_CAST(`MGR` AS STRING) AS INTEGER) `a`\n" + "FROM `scott`.`EMP`";
verifyPPLToSparkSQL(root, expectedSparkSql);
}

Expand Down Expand Up @@ -117,7 +117,7 @@ public void testChainedCast2() {

String expectedSparkSql =
""
+ "SELECT SAFE_CAST(CONCAT(SAFE_CAST(`MGR` AS STRING), '0') AS INTEGER) `a`\n"
+ "SELECT TRY_CAST(CONCAT(TRY_CAST(`MGR` AS STRING), '0') AS INTEGER) `a`\n"
+ "FROM `scott`.`EMP`";
verifyPPLToSparkSQL(root, expectedSparkSql);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,14 +111,14 @@ public void testChartWithMultipleGroupKeys() {
"SELECT `t2`.`gender`, CASE WHEN `t2`.`age` IS NULL THEN 'NULL' WHEN"
+ " `t9`.`_row_number_chart_` <= 10 THEN `t2`.`age` ELSE 'OTHER' END `age`,"
+ " AVG(`t2`.`avg(balance)`) `avg(balance)`\n"
+ "FROM (SELECT `gender`, SAFE_CAST(`age` AS STRING) `age`, AVG(`balance`)"
+ "FROM (SELECT `gender`, TRY_CAST(`age` AS STRING) `age`, AVG(`balance`)"
+ " `avg(balance)`\n"
+ "FROM `scott`.`bank`\n"
+ "WHERE `gender` IS NOT NULL AND `balance` IS NOT NULL\n"
+ "GROUP BY `gender`, `age`) `t2`\n"
+ "LEFT JOIN (SELECT `age`, SUM(`avg(balance)`) `__grand_total__`, ROW_NUMBER() OVER"
+ " (ORDER BY SUM(`avg(balance)`) DESC) `_row_number_chart_`\n"
+ "FROM (SELECT SAFE_CAST(`age` AS STRING) `age`, AVG(`balance`) `avg(balance)`\n"
+ "FROM (SELECT TRY_CAST(`age` AS STRING) `age`, AVG(`balance`) `avg(balance)`\n"
+ "FROM `scott`.`bank`\n"
+ "WHERE `gender` IS NOT NULL AND `balance` IS NOT NULL\n"
+ "GROUP BY `gender`, `age`) `t6`\n"
Expand All @@ -139,14 +139,14 @@ public void testChartWithMultipleGroupKeysAlternativeSyntax() {
"SELECT `t2`.`gender`, CASE WHEN `t2`.`age` IS NULL THEN 'NULL' WHEN"
+ " `t9`.`_row_number_chart_` <= 10 THEN `t2`.`age` ELSE 'OTHER' END `age`,"
+ " AVG(`t2`.`avg(balance)`) `avg(balance)`\n"
+ "FROM (SELECT `gender`, SAFE_CAST(`age` AS STRING) `age`, AVG(`balance`)"
+ "FROM (SELECT `gender`, TRY_CAST(`age` AS STRING) `age`, AVG(`balance`)"
+ " `avg(balance)`\n"
+ "FROM `scott`.`bank`\n"
+ "WHERE `gender` IS NOT NULL AND `balance` IS NOT NULL\n"
+ "GROUP BY `gender`, `age`) `t2`\n"
+ "LEFT JOIN (SELECT `age`, SUM(`avg(balance)`) `__grand_total__`, ROW_NUMBER() OVER"
+ " (ORDER BY SUM(`avg(balance)`) DESC) `_row_number_chart_`\n"
+ "FROM (SELECT SAFE_CAST(`age` AS STRING) `age`, AVG(`balance`) `avg(balance)`\n"
+ "FROM (SELECT TRY_CAST(`age` AS STRING) `age`, AVG(`balance`) `avg(balance)`\n"
+ "FROM `scott`.`bank`\n"
+ "WHERE `gender` IS NOT NULL AND `balance` IS NOT NULL\n"
+ "GROUP BY `gender`, `age`) `t6`\n"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public void testEventstatsEarliestWithoutSecondArgument() {
verifyLogical(root, expectedLogical);

String expectedSparkSql =
"SELECT `server`, `level`, `message`, `@timestamp`, `created_at`, MIN_BY (`message`,"
"SELECT `server`, `level`, `message`, `@timestamp`, `created_at`, MIN_BY(`message`,"
+ " `@timestamp`) OVER (RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)"
+ " `earliest_message`\n"
+ "FROM `POST`.`LOGS`";
Expand All @@ -66,7 +66,7 @@ public void testEventstatsLatestWithoutSecondArgument() {
verifyLogical(root, expectedLogical);

String expectedSparkSql =
"SELECT `server`, `level`, `message`, `@timestamp`, `created_at`, MAX_BY (`message`,"
"SELECT `server`, `level`, `message`, `@timestamp`, `created_at`, MAX_BY(`message`,"
+ " `@timestamp`) OVER (RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)"
+ " `latest_message`\n"
+ "FROM `POST`.`LOGS`";
Expand All @@ -84,7 +84,7 @@ public void testEventstatsEarliestByServerWithoutSecondArgument() {
verifyLogical(root, expectedLogical);

String expectedSparkSql =
"SELECT `server`, `level`, `message`, `@timestamp`, `created_at`, MIN_BY (`message`,"
"SELECT `server`, `level`, `message`, `@timestamp`, `created_at`, MIN_BY(`message`,"
+ " `@timestamp`) OVER (PARTITION BY `server` RANGE BETWEEN UNBOUNDED PRECEDING AND"
+ " UNBOUNDED FOLLOWING) `earliest_message`\n"
+ "FROM `POST`.`LOGS`";
Expand All @@ -102,7 +102,7 @@ public void testEventstatsLatestByServerWithoutSecondArgument() {
verifyLogical(root, expectedLogical);

String expectedSparkSql =
"SELECT `server`, `level`, `message`, `@timestamp`, `created_at`, MAX_BY (`message`,"
"SELECT `server`, `level`, `message`, `@timestamp`, `created_at`, MAX_BY(`message`,"
+ " `@timestamp`) OVER (PARTITION BY `server` RANGE BETWEEN UNBOUNDED PRECEDING AND"
+ " UNBOUNDED FOLLOWING) `latest_message`\n"
+ "FROM `POST`.`LOGS`";
Expand All @@ -122,7 +122,7 @@ public void testEventstatsEarliestWithOtherAggregatesWithoutSecondArgument() {
verifyLogical(root, expectedLogical);

String expectedSparkSql =
"SELECT `server`, `level`, `message`, `@timestamp`, `created_at`, MIN_BY (`message`,"
"SELECT `server`, `level`, `message`, `@timestamp`, `created_at`, MIN_BY(`message`,"
+ " `@timestamp`) OVER (PARTITION BY `server` RANGE BETWEEN UNBOUNDED PRECEDING AND"
+ " UNBOUNDED FOLLOWING) `earliest_message`, COUNT(*) OVER (PARTITION BY `server` RANGE"
+ " BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) `cnt`\n"
Expand All @@ -141,7 +141,7 @@ public void testEventstatsEarliestWithExplicitTimestampField() {
verifyLogical(root, expectedLogical);

String expectedSparkSql =
"SELECT `server`, `level`, `message`, `@timestamp`, `created_at`, MIN_BY (`message`,"
"SELECT `server`, `level`, `message`, `@timestamp`, `created_at`, MIN_BY(`message`,"
+ " `created_at`) OVER (RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)"
+ " `earliest_message`\n"
+ "FROM `POST`.`LOGS`";
Expand All @@ -159,7 +159,7 @@ public void testEventstatsLatestWithExplicitTimestampField() {
verifyLogical(root, expectedLogical);

String expectedSparkSql =
"SELECT `server`, `level`, `message`, `@timestamp`, `created_at`, MAX_BY (`message`,"
"SELECT `server`, `level`, `message`, `@timestamp`, `created_at`, MAX_BY(`message`,"
+ " `created_at`) OVER (RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)"
+ " `latest_message`\n"
+ "FROM `POST`.`LOGS`";
Expand All @@ -180,9 +180,9 @@ public void testEventstatsEarliestLatestCombined() {
verifyLogical(root, expectedLogical);

String expectedSparkSql =
"SELECT `server`, `level`, `message`, `@timestamp`, `created_at`, MIN_BY (`message`,"
"SELECT `server`, `level`, `message`, `@timestamp`, `created_at`, MIN_BY(`message`,"
+ " `@timestamp`) OVER (PARTITION BY `server` RANGE BETWEEN UNBOUNDED PRECEDING AND"
+ " UNBOUNDED FOLLOWING) `earliest_msg`, MAX_BY (`message`, `@timestamp`) OVER"
+ " UNBOUNDED FOLLOWING) `earliest_msg`, MAX_BY(`message`, `@timestamp`) OVER"
+ " (PARTITION BY `server` RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)"
+ " `latest_msg`\n"
+ "FROM `POST`.`LOGS`";
Expand Down
Loading
Loading