yashmayya commented on code in PR #15244:
URL: https://github.com/apache/pinot/pull/15244#discussion_r1991094698
##########
pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/MultiStageEngineIntegrationTest.java:
##########
@@ -1596,6 +1606,32 @@ public void testNumServersQueried() throws Exception {
}
@Test
+ public void testLookupJoin() throws Exception {
+
+ Schema lookupTableSchema = createSchema(DIM_TABLE_SCHEMA_PATH);
+ addSchema(lookupTableSchema);
+ TableConfig tableConfig = createTableConfig(DIM_TABLE_TABLE_CONFIG_PATH);
+ addTableConfig(tableConfig);
+ createAndUploadSegmentFromFile(tableConfig, lookupTableSchema,
DIM_TABLE_DATA_PATH, FileFormat.CSV,
+ DIM_NUMBER_OF_RECORDS, 60_000);
+
+ Schema primaryTableSchema = createSchema(PRIMARY_TABLE_SCHEMA_PATH);
+ addSchema(primaryTableSchema);
+ TableConfig primaryTableConfig =
createTableConfig(PRIMARY_TABLE_TABLE_CONFIG_PATH);
+ addTableConfig(primaryTableConfig);
+ createAndUploadSegmentFromFile(primaryTableConfig, primaryTableSchema,
PRIMARY_TABLE_DATA_PATH, FileFormat.CSV,
+ PRIMARY_NUMBER_OF_RECORDS, 60_000);
+
+ String query = "select /*+ joinOptions(join_strategy='lookup') */ yearID,
teamName from baseballStats "
+ + "join dimBaseballTeams ON baseballStats.teamID =
dimBaseballTeams.teamID where playerId = 'aardsda01'";
+ JsonNode jsonNode = postQuery(query);
+ long result = jsonNode.get("resultTable").get("rows").size();
+ assertEquals(result, 3);
Review Comment:
Can we also make assertions to verify that the lookup join strategy is
actually being used? Few ideas off the top of my head:
- `EXPLAIN PLAN FOR...` output for the query should have an exchange
attached only to the non-dimensional table side of the join and not the
dimensional side. And I believe the distribution type should be singleton as
opposed to a hash distribution.
- Similarly, `EXPLAIN IMPLEMENTATION PLAN FOR...` output for the query
should have `MAIL_SEND` / `MAIL_RECEIVE` operators only on the non dimensional
table side of the join.
- The actual query response should have the `LOOKUP_JOIN` operator in the
query stats.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]