yashmayya commented on code in PR #15244: URL: https://github.com/apache/pinot/pull/15244#discussion_r2000992074
########## pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/MultiStageEngineIntegrationTest.java: ########## @@ -1618,6 +1627,43 @@ 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); + TenantConfig tenantConfig = new TenantConfig(getBrokerTenant(), getServerTenant(), null); + tableConfig.setTenantConfig(tenantConfig); + addTableConfig(tableConfig); + createAndUploadSegmentFromFile(tableConfig, lookupTableSchema, DIM_TABLE_DATA_PATH, FileFormat.CSV, + DIM_NUMBER_OF_RECORDS, 60_000); + + // Compare total rows in the primary table with number of rows in the result of the join with lookup table + String query = "select count(*) from " + getTableName(); + JsonNode jsonNode = postQuery(query); + long totalRowsInTable = jsonNode.get("resultTable").get("rows").get(0).get(0).asLong(); + + query = "select /*+ joinOptions(join_strategy='lookup') */ AirlineID, DayOfWeek, dayName from " + getTableName() + + " join daysOfWeek ON DayOfWeek = dayId where dayName in ('Monday', 'Tuesday', 'Wednesday')"; + jsonNode = postQuery(query); + long result = jsonNode.get("resultTable").get("rows").size(); + assertTrue(result > 0); + assertTrue(result < totalRowsInTable); + + // Verify that LOOKUP_JOIN stage is present and HASH_JOIN stage is not present in the query plan + Set<String> stages = new HashSet<>(); + JsonNode currentNode = jsonNode.get("stageStats").get("children"); + while (currentNode != null) { + currentNode = currentNode.get(0); + stages.add(currentNode.get("type").asText()); + currentNode = currentNode.get("children"); + } + assertTrue(stages.contains("LOOKUP_JOIN"), "Could not find LOOKUP_JOIN stage in the query plan"); + assertFalse(stages.contains("HASH_JOIN"), "HASH_JOIN stage should not be present in the query plan"); Review Comment: nit: `LOOKUP_JOIN` and `HASH_JOIN` are _operators_, not _stages_. -- 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: commits-unsubscr...@pinot.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org