This is an automated email from the ASF dual-hosted git repository.
siddteotia pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new 9176db4c71 [multistage] add more query types for testing (#9068)
9176db4c71 is described below
commit 9176db4c71e784ff679914160e375a1e1e7a43d4
Author: Rong Rong <[email protected]>
AuthorDate: Mon Jul 18 12:04:17 2022 -0700
[multistage] add more query types for testing (#9068)
* function on JOIN key
* adding sub-query test
Co-authored-by: Rong Rong <[email protected]>
---
.../org/apache/pinot/query/QueryEnvironmentTestBase.java | 4 ++++
.../java/org/apache/pinot/query/runtime/QueryRunnerTest.java | 12 +++++++++---
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git
a/pinot-query-planner/src/test/java/org/apache/pinot/query/QueryEnvironmentTestBase.java
b/pinot-query-planner/src/test/java/org/apache/pinot/query/QueryEnvironmentTestBase.java
index 1c6ad7ff29..a146f5ca3d 100644
---
a/pinot-query-planner/src/test/java/org/apache/pinot/query/QueryEnvironmentTestBase.java
+++
b/pinot-query-planner/src/test/java/org/apache/pinot/query/QueryEnvironmentTestBase.java
@@ -56,6 +56,10 @@ public class QueryEnvironmentTestBase {
+ " GROUP BY a.col1, a.col2"},
new Object[]{"SELECT a.col1, AVG(b.col3) FROM a JOIN b ON a.col1 =
b.col2 "
+ " WHERE a.col3 >= 0 AND a.col2 = 'a' AND b.col3 < 0 GROUP BY
a.col1"},
+ new Object[]{"SELECT a.col1, a.col3, b.col3 FROM a JOIN b ON
MOD(a.col3, 2) = MOD(b.col3, 2)"},
+ new Object[]{"SELECT a.col1, a.col3, i.maxVal FROM a JOIN "
+ + " (SELECT b.col1 AS joinKey, MAX(b.col3) AS maxVal FROM b GROUP
BY b.col1) AS i "
+ + " ON a.col1 = i.joinKey"},
};
}
}
diff --git
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/QueryRunnerTest.java
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/QueryRunnerTest.java
index abf3b2a89d..1142210de8 100644
---
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/QueryRunnerTest.java
+++
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/QueryRunnerTest.java
@@ -159,9 +159,10 @@ public class QueryRunnerTest {
// thus the final JOIN result will be 15 x 1 = 15.
new Object[]{"SELECT * FROM a JOIN b on a.col1 = b.col1", 15},
- // Specifically table A has 15 rows (10 on server1 and 5 on server2)
and table B has 5 rows (all on server1),
- // thus the final JOIN result will be 15 x 1 = 15.
- new Object[]{"SELECT * FROM a JOIN b on a.col1 = b.col1 AND a.col2 =
b.col2", 15},
+ // Query with function in JOIN keys, table A and B are both (1, 2, 42,
1, 2), with table A cycling 3 times.
+ // Final result would have 6 x 2 = 12 (6 (1)s on with MOD result 1, on
both tables)
+ // + 9 x 1 = 9 (6 (2)s & 3 (42)s on table A MOD 2 = 0, 1 (42)s on
table B MOD 3 = 0): 21 rows in total.
+ new Object[]{"SELECT a.col1, a.col3, b.col3 FROM a JOIN b ON
MOD(a.col3, 2) = MOD(b.col3, 3)", 21},
// Specifically table A has 15 rows (10 on server1 and 5 on server2)
and table B has 5 rows (all on server1),
// thus the final JOIN result will be 15 x 1 = 15.
@@ -206,6 +207,11 @@ public class QueryRunnerTest {
// only 3 GROUP BY key exist because b.col2 cycles between "foo",
"bar", "alice".
new Object[]{"SELECT a.col1, SUM(b.col3) FROM a JOIN b ON a.col1 =
b.col2 "
+ " WHERE a.col3 >= 0 GROUP BY a.col1", 3},
+
+ // Sub-query
+ new Object[]{"SELECT b.col1, b.col3, i.maxVal FROM b JOIN "
+ + " (SELECT a.col2 AS joinKey, MAX(a.col3) AS maxVal FROM a GROUP
BY a.col2) AS i "
+ + " ON b.col1 = i.joinKey", 3}
};
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]