From fb656c5f2373ed286a4c8dea3520b6a0f1800ddd Mon Sep 17 00:00:00 2001 From: Xiang Fu Date: Wed, 4 Oct 2023 11:11:56 -0700 Subject: [PATCH] Throw exception when schema name doesn't match table name during table creation (#11591) * Throw exception when schema doesn't matche table name * Move the validation logic to TableConfigUtils --- .../broker/broker/HelixBrokerStarterTest.java | 1 + .../helix/core/PinotHelixResourceManager.java | 22 +-- ...notBrokerRestletResourceStatelessTest.java | 4 + .../controller/api/PinotFileUploadTest.java | 2 + .../api/PinotInstanceRestletResourceTest.java | 1 + .../api/PinotSegmentRestletResourceTest.java | 3 + .../api/PinotTableRestletResourceTest.java | 42 ++-- .../api/PinotTenantRestletResourceTest.java | 183 +++++++++--------- .../api/TableConfigsRestletResourceTest.java | 10 +- .../pinot/controller/api/TableViewsTest.java | 3 +- .../helix/ControllerInstanceToggleTest.java | 4 + .../helix/ControllerSentinelTest.java | 7 +- .../controller/helix/ControllerTest.java | 8 +- .../helix/PinotResourceManagerTest.java | 3 + .../controller/helix/TableCacheTest.java | 46 ++--- ...notHelixResourceManagerAssignmentTest.java | 3 + ...inotHelixResourceManagerStatelessTest.java | 7 + .../TableRebalancerClusterStatelessTest.java | 3 + .../tenant/TenantRebalancerTest.java | 4 + .../retention/SegmentLineageCleanupTest.java | 5 + .../ValidationManagerStatelessTest.java | 5 +- .../validation/ValidationManagerTest.java | 11 +- .../DimensionTableDataManagerTest.java | 2 +- .../RealtimeTableDataManagerTest.java | 2 +- .../tests/BaseClusterIntegrationTest.java | 34 ++-- ...ggregateMetricsClusterIntegrationTest.java | 2 +- .../tests/BaseClusterIntegrationTestSet.java | 4 +- ...ontrollerPeriodicTasksIntegrationTest.java | 10 + .../tests/DedupIntegrationTest.java | 5 - ...rgeRollupMinionClusterIntegrationTest.java | 14 +- .../tests/OfflineClusterIntegrationTest.java | 7 +- ...ClusterMemBasedBrokerQueryKillingTest.java | 2 +- ...ClusterMemBasedServerQueryKillingTest.java | 2 +- ...eClusterServerCPUTimeQueryKillingTest.java | 2 +- .../tests/RealtimeKinesisIntegrationTest.java | 2 +- ...eSegmentsMinionClusterIntegrationTest.java | 6 +- ...tionLLCRealtimeClusterIntegrationTest.java | 2 +- .../SimpleMinionClusterIntegrationTest.java | 3 + ...ompactionMinionClusterIntegrationTest.java | 5 - .../tests/UpsertTableIntegrationTest.java | 20 +- ...ertTableSegmentPreloadIntegrationTest.java | 5 - ...sertTableSegmentUploadIntegrationTest.java | 5 - .../pinot-plugins.tar.gz | Bin 0 -> 265848 bytes .../HadoopSegmentGenerationJobRunnerTest.java | 7 +- .../SparkSegmentGenerationJobRunnerTest.java | 8 +- .../SparkSegmentGenerationJobRunnerTest.java | 8 +- .../SegmentGenerationJobRunnerTest.java | 3 +- .../segment/local/utils/TableConfigUtils.java | 16 ++ .../spi/utils/builder/TableConfigBuilder.java | 7 - 49 files changed, 311 insertions(+), 249 deletions(-) create mode 100644 pinot-plugins/pinot-batch-ingestion/pinot-batch-ingestion-hadoop/pinot-plugins.tar.gz diff --git a/pinot-broker/src/test/java/org/apache/pinot/broker/broker/HelixBrokerStarterTest.java b/pinot-broker/src/test/java/org/apache/pinot/broker/broker/HelixBrokerStarterTest.java index edd3bae35e7..438836a4cfc 100644 --- a/pinot-broker/src/test/java/org/apache/pinot/broker/broker/HelixBrokerStarterTest.java +++ b/pinot-broker/src/test/java/org/apache/pinot/broker/broker/HelixBrokerStarterTest.java @@ -188,6 +188,7 @@ public void testResourceAndTagAssignment() } // Add a new table with same broker tenant + addDummySchema(newRawTableName); newTableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(newRawTableName) .setServerTenant(TagNameUtils.DEFAULT_TENANT_NAME).build(); _helixResourceManager.addTable(newTableConfig); diff --git a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManager.java b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManager.java index fe54d3cb7bc..7ecd25aab1f 100644 --- a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManager.java +++ b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManager.java @@ -316,7 +316,7 @@ public void onInstanceConfigChange(List instanceConfigs, Notific Map configs = _helixAdmin.getConfig(helixConfigScope, Arrays.asList(Helix.ENABLE_CASE_INSENSITIVE_KEY)); boolean caseInsensitive = Boolean.parseBoolean(configs.getOrDefault(Helix.ENABLE_CASE_INSENSITIVE_KEY, - Boolean.toString(Helix.DEFAULT_ENABLE_CASE_INSENSITIVE))); + Boolean.toString(Helix.DEFAULT_ENABLE_CASE_INSENSITIVE))); _tableCache = new TableCache(_propertyStore, caseInsensitive); } @@ -1556,6 +1556,10 @@ public void addTable(TableConfig tableConfig) PinotTableIdealStateBuilder.buildEmptyIdealStateFor(tableNameWithType, tableConfig.getReplication(), _enableBatchMessageMode); TableType tableType = tableConfig.getTableType(); + // Ensure that table is not created if schema is not present + if (ZKMetadataProvider.getSchema(_propertyStore, TableNameBuilder.extractRawTableName(tableNameWithType)) == null) { + throw new InvalidTableConfigException("No schema defined for table: " + tableNameWithType); + } if (tableType == TableType.OFFLINE) { try { // Add table config @@ -1571,18 +1575,6 @@ public void addTable(TableConfig tableConfig) } } else { Preconditions.checkState(tableType == TableType.REALTIME, "Invalid table type: %s", tableType); - - // Ensure that realtime table is not created if schema is not present - Schema schema = - ZKMetadataProvider.getSchema(_propertyStore, TableNameBuilder.extractRawTableName(tableNameWithType)); - if (schema == null) { - // Fall back to getting schema-name from table config if schema-name != table-name - String schemaName = tableConfig.getValidationConfig().getSchemaName(); - if (schemaName == null || ZKMetadataProvider.getSchema(_propertyStore, schemaName) == null) { - throw new InvalidTableConfigException("No schema defined for realtime table: " + tableNameWithType); - } - } - try { // Add table config ZKMetadataProvider.setTableConfig(_propertyStore, tableNameWithType, TableConfigUtils.toZNRecord(tableConfig)); @@ -2082,8 +2074,8 @@ public boolean addControllerJobToZK(String jobId, Map jobMetadat tasks.put(jobId, jobMetadata); if (tasks.size() > CommonConstants.ControllerJob.MAXIMUM_CONTROLLER_JOBS_IN_ZK) { tasks = tasks.entrySet().stream().sorted((v1, v2) -> Long.compare( - Long.parseLong(v2.getValue().get(CommonConstants.ControllerJob.SUBMISSION_TIME_MS)), - Long.parseLong(v1.getValue().get(CommonConstants.ControllerJob.SUBMISSION_TIME_MS)))) + Long.parseLong(v2.getValue().get(CommonConstants.ControllerJob.SUBMISSION_TIME_MS)), + Long.parseLong(v1.getValue().get(CommonConstants.ControllerJob.SUBMISSION_TIME_MS)))) .collect(Collectors.toList()).subList(0, CommonConstants.ControllerJob.MAXIMUM_CONTROLLER_JOBS_IN_ZK) .stream().collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); } diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotBrokerRestletResourceStatelessTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotBrokerRestletResourceStatelessTest.java index 5c0242c5c55..4d2b1b6a064 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotBrokerRestletResourceStatelessTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotBrokerRestletResourceStatelessTest.java @@ -140,6 +140,10 @@ public void testGetBrokers() Assert.assertEquals(_helixAdmin.getInstancesInClusterWithTag(getHelixClusterName(), "DefaultTenant_BROKER").size(), 10); + // Create schema + addDummySchema(TABLE_NAME_1); + addDummySchema(TABLE_NAME_2); + // Adding table _helixResourceManager .addTable(new TableConfigBuilder(TableType.OFFLINE).setTableName(TABLE_NAME_1).setNumReplicas(1).build()); diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotFileUploadTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotFileUploadTest.java index e499edf634e..51330ce48af 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotFileUploadTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotFileUploadTest.java @@ -46,6 +46,8 @@ public void setUp() throws Exception { TEST_INSTANCE.setupSharedStateAndValidate(); + // Create schema + TEST_INSTANCE.addDummySchema(TABLE_NAME); // Adding table TableConfig tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(TABLE_NAME) .setSegmentAssignmentStrategy("RandomAssignmentStrategy").setNumReplicas(2).build(); diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotInstanceRestletResourceTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotInstanceRestletResourceTest.java index 3bf0e2c70dd..93a142f221d 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotInstanceRestletResourceTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotInstanceRestletResourceTest.java @@ -230,6 +230,7 @@ public void instanceRetagHappyPathTest() public void instanceRetagServerDeficiencyTest() throws Exception { String tableName = "testTable"; + DEFAULT_INSTANCE.addDummySchema(tableName); TableConfig tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(tableName) .setNumReplicas(2).build(); // create table with replication as 2 so that DefaultTenant has a minimum server requirement as 2. diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotSegmentRestletResourceTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotSegmentRestletResourceTest.java index c8ba1dbd73a..eae4892009c 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotSegmentRestletResourceTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotSegmentRestletResourceTest.java @@ -59,6 +59,7 @@ public void testListSegmentLineage() throws Exception { // Adding table String rawTableName = "lineageTestTable"; + TEST_INSTANCE.addDummySchema(rawTableName); String offlineTableName = TableNameBuilder.OFFLINE.tableNameWithType(rawTableName); TableConfig tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(rawTableName).setNumReplicas(1).build(); @@ -116,6 +117,7 @@ public void testSegmentCrcApi() throws Exception { // Adding table String rawTableName = "crcTestTable"; + TEST_INSTANCE.addDummySchema(rawTableName); String offlineTableName = TableNameBuilder.OFFLINE.tableNameWithType(rawTableName); TableConfig tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(rawTableName).setNumReplicas(1).build(); @@ -171,6 +173,7 @@ public void testDeleteSegmentsWithTimeWindow() throws Exception { // Adding table and segment String rawTableName = "deleteWithTimeWindowTestTable"; + TEST_INSTANCE.addDummySchema(rawTableName); String offlineTableName = TableNameBuilder.OFFLINE.tableNameWithType(rawTableName); TableConfig tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(rawTableName).setNumReplicas(1) diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotTableRestletResourceTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotTableRestletResourceTest.java index 7203da38191..f1766835fd6 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotTableRestletResourceTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotTableRestletResourceTest.java @@ -65,16 +65,16 @@ public class PinotTableRestletResourceTest extends ControllerTest { public void setUp() throws Exception { DEFAULT_INSTANCE.setupSharedStateAndValidate(); - _createTableUrl = DEFAULT_INSTANCE.getControllerRequestURLBuilder().forTableCreate(); _offlineBuilder.setTableName(OFFLINE_TABLE_NAME).setTimeColumnName("timeColumn").setTimeType("DAYS") .setRetentionTimeUnit("DAYS").setRetentionTimeValue("5"); // add schema for realtime table DEFAULT_INSTANCE.addDummySchema(REALTIME_TABLE_NAME); + DEFAULT_INSTANCE.addDummySchema(OFFLINE_TABLE_NAME); StreamConfig streamConfig = FakeStreamConfigUtils.getDefaultLowLevelStreamConfigs(); _realtimeBuilder.setTableName(REALTIME_TABLE_NAME).setTimeColumnName("timeColumn").setTimeType("DAYS") - .setRetentionTimeUnit("DAYS").setRetentionTimeValue("5").setSchemaName(REALTIME_TABLE_NAME) + .setRetentionTimeUnit("DAYS").setRetentionTimeValue("5") .setStreamConfigs(streamConfig.getStreamConfigsMap()); } @@ -105,7 +105,18 @@ public void testCreateTable() assertTrue(e.getMessage().contains("Got error status code: 400")); } + // Creating an OFFLINE table without a valid schema should fail + offlineTableConfig = _offlineBuilder.setTableName("no_schema").build(); + try { + sendPostRequest(_createTableUrl, offlineTableConfig.toJsonString()); + fail("Creation of a OFFLINE table without a valid schema does not fail"); + } catch (IOException e) { + // Expected 400 Bad Request + assertTrue(e.getMessage().contains("Got error status code: 400")); + } + // Create an OFFLINE table with a valid name which should succeed + DEFAULT_INSTANCE.addDummySchema("valid_table_name"); offlineTableConfig = _offlineBuilder.setTableName("valid_table_name").build(); String offlineTableConfigString = offlineTableConfig.toJsonString(); sendPostRequest(_createTableUrl, offlineTableConfigString); @@ -143,7 +154,7 @@ public void testCreateTable() } // Creating a REALTIME table without a valid schema should fail - realtimeTableConfig = _realtimeBuilder.setTableName("noSchema").setSchemaName("noSchema").build(); + realtimeTableConfig = _realtimeBuilder.setTableName("noSchema").build(); try { sendPostRequest(_createTableUrl, realtimeTableConfig.toJsonString()); fail("Creation of a REALTIME table without a valid schema does not fail"); @@ -152,10 +163,6 @@ public void testCreateTable() assertTrue(e.getMessage().contains("Got error status code: 400")); } - // Creating a REALTIME table with a different schema name in the config should succeed (backwards compatibility) - realtimeTableConfig = _realtimeBuilder.setSchemaName(REALTIME_TABLE_NAME).build(); - sendPostRequest(_createTableUrl, realtimeTableConfig.toJsonString()); - // Create a REALTIME table with the invalid time column name should fail realtimeTableConfig = _realtimeBuilder.setTableName(REALTIME_TABLE_NAME).setTimeColumnName("invalidTimeColumn").build(); @@ -174,8 +181,10 @@ public void testCreateTable() } @Test - public void testTableCronSchedule() { + public void testTableCronSchedule() + throws IOException { String rawTableName = "test_table_cron_schedule"; + DEFAULT_INSTANCE.addDummySchema(rawTableName); // Failed to create a table TableConfig tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(rawTableName).setTaskConfig( new TableTaskConfig(ImmutableMap.of(MinionConstants.SegmentGenerationAndPushTask.TASK_TYPE, @@ -224,6 +233,7 @@ public void testTableMinReplication() private void testTableMinReplicationInternal(String tableName, int tableReplication) throws Exception { + DEFAULT_INSTANCE.addDummySchema(tableName); String tableJSONConfigString = _offlineBuilder.setTableName(tableName).setNumReplicas(tableReplication).build().toJsonString(); sendPostRequest(_createTableUrl, tableJSONConfigString); @@ -232,7 +242,6 @@ private void testTableMinReplicationInternal(String tableName, int tableReplicat assertEquals(tableConfig.getReplication(), Math.max(tableReplication, DEFAULT_MIN_NUM_REPLICAS)); - DEFAULT_INSTANCE.addDummySchema(tableName); tableJSONConfigString = _realtimeBuilder.setTableName(tableName).setNumReplicas(tableReplication).build().toJsonString(); sendPostRequest(_createTableUrl, tableJSONConfigString); @@ -299,6 +308,7 @@ private TableConfig getTableConfig(String tableName, String tableType) public void testUpdateTableConfig() throws Exception { String tableName = "updateTC"; + DEFAULT_INSTANCE.addDummySchema(tableName); String tableConfigString = _offlineBuilder.setTableName(tableName).setNumReplicas(2).build().toJsonString(); sendPostRequest(_createTableUrl, tableConfigString); // table creation should succeed @@ -365,12 +375,13 @@ public void testListTables() // post 2 offline, 1 realtime String rawTableName1 = "pqr"; + DEFAULT_INSTANCE.addDummySchema(rawTableName1); TableConfig offlineTableConfig1 = _offlineBuilder.setTableName(rawTableName1).build(); sendPostRequest(_createTableUrl, offlineTableConfig1.toJsonString()); - DEFAULT_INSTANCE.addDummySchema(rawTableName1); TableConfig realtimeTableConfig1 = _realtimeBuilder.setTableName(rawTableName1).setNumReplicas(2).build(); sendPostRequest(_createTableUrl, realtimeTableConfig1.toJsonString()); String rawTableName2 = "abc"; + DEFAULT_INSTANCE.addDummySchema(rawTableName2); TableConfig offlineTableConfig2 = _offlineBuilder.setTableName(rawTableName2).build(); sendPostRequest(_createTableUrl, offlineTableConfig2.toJsonString()); @@ -479,6 +490,7 @@ public void rebalanceTableWithoutSegments() public void testDeleteTable() throws IOException { // Case 1: Create a REALTIME table and delete it directly w/o using query param. + DEFAULT_INSTANCE.addDummySchema("table0"); TableConfig realtimeTableConfig = _realtimeBuilder.setTableName("table0").build(); String creationResponse = sendPostRequest(_createTableUrl, realtimeTableConfig.toJsonString()); assertEquals(creationResponse, @@ -501,6 +513,7 @@ public void testDeleteTable() assertEquals(deleteResponse, "{\"status\":\"Tables: [table0_OFFLINE] deleted\"}"); // Case 3: Create REALTIME and OFFLINE tables and delete both of them. + DEFAULT_INSTANCE.addDummySchema("table1"); TableConfig rtConfig1 = _realtimeBuilder.setTableName("table1").build(); creationResponse = sendPostRequest(_createTableUrl, rtConfig1.toJsonString()); assertEquals(creationResponse, @@ -516,6 +529,7 @@ public void testDeleteTable() assertEquals(deleteResponse, "{\"status\":\"Tables: [table1_OFFLINE, table1_REALTIME] deleted\"}"); // Case 4: Create REALTIME and OFFLINE tables and delete the realtime/offline table using query params. + DEFAULT_INSTANCE.addDummySchema("table2"); TableConfig rtConfig2 = _realtimeBuilder.setTableName("table2").build(); creationResponse = sendPostRequest(_createTableUrl, rtConfig2.toJsonString()); assertEquals(creationResponse, @@ -553,6 +567,7 @@ public void testDeleteTable() } // Case 6: Create REALTIME and OFFLINE tables and delete the realtime/offline table using query params and suffixes. + DEFAULT_INSTANCE.addDummySchema("table3"); TableConfig rtConfig3 = _realtimeBuilder.setTableName("table3").build(); creationResponse = sendPostRequest(_createTableUrl, rtConfig3.toJsonString()); assertEquals(creationResponse, @@ -577,13 +592,15 @@ public void testCheckTableState() throws IOException { // Create a valid REALTIME table - TableConfig realtimeTableConfig = _realtimeBuilder.setTableName("testTable").build(); + String tableName = "testTable"; + DEFAULT_INSTANCE.addDummySchema(tableName); + TableConfig realtimeTableConfig = _realtimeBuilder.setTableName(tableName).build(); String creationResponse = sendPostRequest(_createTableUrl, realtimeTableConfig.toJsonString()); assertEquals(creationResponse, "{\"unrecognizedProperties\":{},\"status\":\"Table testTable_REALTIME successfully added\"}"); // Create a valid OFFLINE table - TableConfig offlineTableConfig = _offlineBuilder.setTableName("testTable").build(); + TableConfig offlineTableConfig = _offlineBuilder.setTableName(tableName).build(); creationResponse = sendPostRequest(_createTableUrl, offlineTableConfig.toJsonString()); assertEquals(creationResponse, "{\"unrecognizedProperties\":{},\"status\":\"Table testTable_OFFLINE successfully added\"}"); @@ -708,6 +725,7 @@ public void testUnrecognizedProperties() // Create an OFFLINE table with a valid name but with unrecognizedProperties which should succeed // Should have unrecognizedProperties set correctly String tableName = "valid_table_name_extra_props"; + DEFAULT_INSTANCE.addDummySchema(tableName); TableConfig offlineTableConfig = _realtimeBuilder.setTableName("valid_table_name_extra_props").build(); JsonNode jsonNode = JsonUtils.objectToJsonNode(offlineTableConfig); ((ObjectNode) jsonNode).put("illegalKey1", 1); diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotTenantRestletResourceTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotTenantRestletResourceTest.java index 289f070a14b..28a0454d41b 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotTenantRestletResourceTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotTenantRestletResourceTest.java @@ -46,7 +46,6 @@ public class PinotTenantRestletResourceTest extends ControllerTest { private static final String RAW_TABLE_NAME = "toggleTable"; private static final String OFFLINE_TABLE_NAME = TableNameBuilder.OFFLINE.tableNameWithType(RAW_TABLE_NAME); - @BeforeClass public void setUp() throws Exception { @@ -56,91 +55,98 @@ public void setUp() @Test public void testTableListForTenant() throws Exception { - // Check that no tables on tenant works - String listTablesUrl = - TEST_INSTANCE.getControllerRequestURLBuilder().forTablesFromTenant(TagNameUtils.DEFAULT_TENANT_NAME); - JsonNode tableList = JsonUtils.stringToJsonNode(ControllerTest.sendGetRequest(listTablesUrl)); - assertEquals(tableList.get("tables").size(), 0); - - // Add some non default tag broker instances, UNTAGGED_BROKER_INSTANCE - String brokerTag2 = "brokerTag2"; - TEST_INSTANCE.addFakeBrokerInstanceToAutoJoinHelixCluster("broker_999", false); - TEST_INSTANCE.addFakeBrokerInstanceToAutoJoinHelixCluster("broker_1000", false); - TEST_INSTANCE.updateBrokerTenant("brokerTag2", 2); - - // Add a table - ControllerTest.sendPostRequest(TEST_INSTANCE.getControllerRequestURLBuilder().forTableCreate(), - new TableConfigBuilder(TableType.OFFLINE).setTableName(TABLE_NAME).build().toJsonString()); - - // Add a second table with a different broker tag - String table2 = "restletTable2_OFFLINE"; - ControllerTest.sendPostRequest(TEST_INSTANCE.getControllerRequestURLBuilder().forTableCreate(), - new TableConfigBuilder(TableType.OFFLINE).setTableName(table2).setBrokerTenant( - brokerTag2) - .build().toJsonString()); - - // There should be 2 tables on the tenant when querying default Tenant for servers w/o specifying ?type=server - tableList = JsonUtils.stringToJsonNode(ControllerTest.sendGetRequest(listTablesUrl)); - JsonNode tables = tableList.get("tables"); - assertEquals(tables.size(), 2); - - // There should be 2 tables even when specifying ?type=server as that is the default - listTablesUrl = - TEST_INSTANCE.getControllerRequestURLBuilder().forTablesFromTenant(TagNameUtils.DEFAULT_TENANT_NAME, - "server"); - tableList = JsonUtils.stringToJsonNode(ControllerTest.sendGetRequest(listTablesUrl)); - tables = tableList.get("tables"); - - // Check to make sure that test tables exists. - boolean found1 = false; - boolean found2 = false; - for (int i = 0; i < tables.size(); i++) { - found1 = found1 || tables.get(i).asText().equals(TABLE_NAME); - found2 = found2 || tables.get(i).asText().equals(table2); + try { + // Check that no tables on tenant works + String listTablesUrl = + TEST_INSTANCE.getControllerRequestURLBuilder().forTablesFromTenant(TagNameUtils.DEFAULT_TENANT_NAME); + JsonNode tableList = JsonUtils.stringToJsonNode(ControllerTest.sendGetRequest(listTablesUrl)); + assertEquals(tableList.get("tables").size(), 0); + + // Add some non default tag broker instances, UNTAGGED_BROKER_INSTANCE + String brokerTag2 = "brokerTag2"; + TEST_INSTANCE.addFakeBrokerInstanceToAutoJoinHelixCluster("broker_999", false); + TEST_INSTANCE.addFakeBrokerInstanceToAutoJoinHelixCluster("broker_1000", false); + TEST_INSTANCE.updateBrokerTenant("brokerTag2", 2); + + // Add a table + ControllerTest.sendPostRequest(TEST_INSTANCE.getControllerRequestURLBuilder().forSchemaCreate(), + createDummySchema(TableNameBuilder.extractRawTableName(TABLE_NAME)).toPrettyJsonString()); + + ControllerTest.sendPostRequest(TEST_INSTANCE.getControllerRequestURLBuilder().forTableCreate(), + new TableConfigBuilder(TableType.OFFLINE).setTableName(TABLE_NAME).build().toJsonString()); + + // Add a second table with a different broker tag + String table2 = "restletTable2_OFFLINE"; + ControllerTest.sendPostRequest(TEST_INSTANCE.getControllerRequestURLBuilder().forSchemaCreate(), + createDummySchema(TableNameBuilder.extractRawTableName(table2)).toPrettyJsonString()); + ControllerTest.sendPostRequest(TEST_INSTANCE.getControllerRequestURLBuilder().forTableCreate(), + new TableConfigBuilder(TableType.OFFLINE).setTableName(table2).setBrokerTenant( + brokerTag2) + .build().toJsonString()); + + // There should be 2 tables on the tenant when querying default Tenant for servers w/o specifying ?type=server + tableList = JsonUtils.stringToJsonNode(ControllerTest.sendGetRequest(listTablesUrl)); + JsonNode tables = tableList.get("tables"); + assertEquals(tables.size(), 2); + + // There should be 2 tables even when specifying ?type=server as that is the default + listTablesUrl = + TEST_INSTANCE.getControllerRequestURLBuilder().forTablesFromTenant(TagNameUtils.DEFAULT_TENANT_NAME, + "server"); + tableList = JsonUtils.stringToJsonNode(ControllerTest.sendGetRequest(listTablesUrl)); + tables = tableList.get("tables"); + + // Check to make sure that test tables exists. + boolean found1 = false; + boolean found2 = false; + for (int i = 0; i < tables.size(); i++) { + found1 = found1 || tables.get(i).asText().equals(TABLE_NAME); + found2 = found2 || tables.get(i).asText().equals(table2); + } + + // There should be only 1 table when specifying ?type=broker for the default tenant + listTablesUrl = + TEST_INSTANCE.getControllerRequestURLBuilder().forTablesFromTenant(TagNameUtils.DEFAULT_TENANT_NAME, + "broker"); + tableList = JsonUtils.stringToJsonNode(ControllerTest.sendGetRequest(listTablesUrl)); + tables = tableList.get("tables"); + assertEquals(tables.size(), 1); + + String defaultTenantTable = tables.get(0).asText(); + + // There should be only 1 table when specifying ?type=broker for the broker_untagged tenant + listTablesUrl = + TEST_INSTANCE.getControllerRequestURLBuilder().forTablesFromTenant(brokerTag2, + "broker"); + tableList = JsonUtils.stringToJsonNode(ControllerTest.sendGetRequest(listTablesUrl)); + tables = tableList.get("tables"); + assertEquals(tables.size(), 1); + + // This second table should not be the same as the one from the default tenant + assertTrue(!defaultTenantTable.equals(tables.get(0).asText())); + + // reset the ZK node to simulate corruption + ZkHelixPropertyStore propertyStore = TEST_INSTANCE.getPropertyStore(); + String zkPath = "/CONFIGS/TABLE/" + TABLE_NAME; + ZNRecord znRecord = propertyStore.get(zkPath, null, 0); + propertyStore.set(zkPath, new ZNRecord(znRecord.getId()), 1); + + // corrupt the other one also + zkPath = "/CONFIGS/TABLE/" + table2; + znRecord = propertyStore.get(zkPath, null, 0); + propertyStore.set(zkPath, new ZNRecord(znRecord.getId()), 1); + + // Now there should be no tables + tableList = JsonUtils.stringToJsonNode(ControllerTest.sendGetRequest(listTablesUrl)); + tables = tableList.get("tables"); + assertEquals(tables.size(), 0); + } finally { + // remove the additional, non-default table and broker instances + TEST_INSTANCE.dropOfflineTable("restletTable2_OFFLINE"); + TEST_INSTANCE.stopAndDropFakeInstance("broker_999"); + TEST_INSTANCE.stopAndDropFakeInstance("broker_1000"); + TEST_INSTANCE.deleteBrokerTenant("brokerTag2"); } - - // There should be only 1 table when specifying ?type=broker for the default tenant - listTablesUrl = - TEST_INSTANCE.getControllerRequestURLBuilder().forTablesFromTenant(TagNameUtils.DEFAULT_TENANT_NAME, - "broker"); - tableList = JsonUtils.stringToJsonNode(ControllerTest.sendGetRequest(listTablesUrl)); - tables = tableList.get("tables"); - assertEquals(tables.size(), 1); - - String defaultTenantTable = tables.get(0).asText(); - - // There should be only 1 table when specifying ?type=broker for the broker_untagged tenant - listTablesUrl = - TEST_INSTANCE.getControllerRequestURLBuilder().forTablesFromTenant(brokerTag2, - "broker"); - tableList = JsonUtils.stringToJsonNode(ControllerTest.sendGetRequest(listTablesUrl)); - tables = tableList.get("tables"); - assertEquals(tables.size(), 1); - - // This second table should not be the same as the one from the default tenant - assertTrue(!defaultTenantTable.equals(tables.get(0).asText())); - - // reset the ZK node to simulate corruption - ZkHelixPropertyStore propertyStore = TEST_INSTANCE.getPropertyStore(); - String zkPath = "/CONFIGS/TABLE/" + TABLE_NAME; - ZNRecord znRecord = propertyStore.get(zkPath, null, 0); - propertyStore.set(zkPath, new ZNRecord(znRecord.getId()), 1); - - // corrupt the other one also - zkPath = "/CONFIGS/TABLE/" + table2; - znRecord = propertyStore.get(zkPath, null, 0); - propertyStore.set(zkPath, new ZNRecord(znRecord.getId()), 1); - - // Now there should be no tables - tableList = JsonUtils.stringToJsonNode(ControllerTest.sendGetRequest(listTablesUrl)); - tables = tableList.get("tables"); - assertEquals(tables.size(), 0); - - // remove the additional, non-default table and broker instances - TEST_INSTANCE.dropOfflineTable(table2); - TEST_INSTANCE.stopAndDropFakeInstance("broker_999"); - TEST_INSTANCE.stopAndDropFakeInstance("broker_1000"); - TEST_INSTANCE.deleteBrokerTenant(brokerTag2); } @Test @@ -155,8 +161,10 @@ public void testListInstance() @Test public void testToggleTenantState() - throws Exception { + throws Exception { // Create an offline table + ControllerTest.sendPostRequest(TEST_INSTANCE.getControllerRequestURLBuilder().forSchemaCreate(), + createDummySchema(TableNameBuilder.extractRawTableName(RAW_TABLE_NAME)).toPrettyJsonString()); TableConfig tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(RAW_TABLE_NAME).setNumReplicas(DEFAULT_MIN_NUM_REPLICAS) .build(); @@ -221,7 +229,8 @@ public void testToggleTenantState() } @AfterClass - public void tearDown() { + public void tearDown() + throws IOException { TEST_INSTANCE.cleanup(); } } diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/api/TableConfigsRestletResourceTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/api/TableConfigsRestletResourceTest.java index 25b97606fe3..18ae1b14a54 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/api/TableConfigsRestletResourceTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/api/TableConfigsRestletResourceTest.java @@ -600,14 +600,10 @@ public void testUnrecognizedProperties() @Test public void testGetConfigCompatibility() throws IOException { - // Should not fail if schema name does not match raw table name in the case they are created separately - String schemaName = "schema1"; - Schema schema = createDummySchema(schemaName); - sendPostRequest(DEFAULT_INSTANCE.getControllerRequestURLBuilder().forSchemaCreate(), schema.toPrettyJsonString()); String tableName = "table1"; + DEFAULT_INSTANCE.addDummySchema(tableName); TableConfig offlineTableConfig = createOfflineTableConfig(tableName); SegmentsValidationAndRetentionConfig validationConfig = new SegmentsValidationAndRetentionConfig(); - validationConfig.setSchemaName(schemaName); validationConfig.setReplication("1"); offlineTableConfig.setValidationConfig(validationConfig); sendPostRequest(DEFAULT_INSTANCE.getControllerRequestURLBuilder().forTableCreate(), @@ -617,11 +613,11 @@ public void testGetConfigCompatibility() TableConfigs tableConfigsResponse = JsonUtils.stringToObject(response, TableConfigs.class); Assert.assertEquals(tableConfigsResponse.getTableName(), tableName); Assert.assertEquals(tableConfigsResponse.getOffline().getTableName(), offlineTableConfig.getTableName()); - Assert.assertEquals(tableConfigsResponse.getSchema().getSchemaName(), schema.getSchemaName()); + Assert.assertEquals(tableConfigsResponse.getSchema().getSchemaName(), tableName); // Delete sendDeleteRequest(DEFAULT_INSTANCE.getControllerRequestURLBuilder().forTableDelete(tableName)); - sendDeleteRequest(DEFAULT_INSTANCE.getControllerRequestURLBuilder().forSchemaDelete(schemaName)); + sendDeleteRequest(DEFAULT_INSTANCE.getControllerRequestURLBuilder().forSchemaDelete(tableName)); } @AfterClass diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/api/TableViewsTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/api/TableViewsTest.java index 279821537a1..178fb5720b5 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/api/TableViewsTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/api/TableViewsTest.java @@ -53,6 +53,7 @@ public void setUp() DEFAULT_INSTANCE.setupSharedStateAndValidate(); // Create the offline table and add one segment + DEFAULT_INSTANCE.addDummySchema(OFFLINE_TABLE_NAME); TableConfig tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(OFFLINE_TABLE_NAME).setNumReplicas(2).build(); assertEquals(DEFAULT_INSTANCE.getHelixManager().getInstanceType(), InstanceType.CONTROLLER); @@ -62,12 +63,12 @@ public void setUp() SegmentMetadataMockUtils.mockSegmentMetadata(OFFLINE_TABLE_NAME, OFFLINE_SEGMENT_NAME), "downloadUrl"); // Create the hybrid table + DEFAULT_INSTANCE.addDummySchema(HYBRID_TABLE_NAME); tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(HYBRID_TABLE_NAME) .setNumReplicas(DEFAULT_MIN_NUM_REPLICAS).build(); DEFAULT_INSTANCE.getHelixResourceManager().addTable(tableConfig); // add schema for realtime table - DEFAULT_INSTANCE.addDummySchema(HYBRID_TABLE_NAME); StreamConfig streamConfig = FakeStreamConfigUtils.getDefaultLowLevelStreamConfigs(4); tableConfig = new TableConfigBuilder(TableType.REALTIME).setTableName(HYBRID_TABLE_NAME) .setNumReplicas(DEFAULT_MIN_NUM_REPLICAS).setStreamConfigs(streamConfig.getStreamConfigsMap()).build(); diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/ControllerInstanceToggleTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/ControllerInstanceToggleTest.java index 6fe3e565761..d74a6fd0a3e 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/ControllerInstanceToggleTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/ControllerInstanceToggleTest.java @@ -50,6 +50,10 @@ public void setUp() @Test public void testInstanceToggle() throws Exception { + // Create schema + sendPostRequest(DEFAULT_INSTANCE.getControllerRequestURLBuilder().forSchemaCreate(), + createDummySchema(RAW_TABLE_NAME).toPrettyJsonString()); + // Create an offline table TableConfig tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(RAW_TABLE_NAME).setNumReplicas(DEFAULT_MIN_NUM_REPLICAS) diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/ControllerSentinelTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/ControllerSentinelTest.java index 1fd7b061409..0e6fea5abbd 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/ControllerSentinelTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/ControllerSentinelTest.java @@ -26,7 +26,7 @@ import org.apache.pinot.spi.utils.CommonConstants; import org.apache.pinot.spi.utils.builder.TableConfigBuilder; import org.apache.pinot.spi.utils.builder.TableNameBuilder; -import org.testng.annotations.AfterTest; +import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -45,6 +45,9 @@ public void setUp() @Test public void testOfflineTableLifeCycle() throws IOException { + // Create schema + sendPostRequest(DEFAULT_INSTANCE.getControllerRequestURLBuilder().forSchemaCreate(), + createDummySchema(TABLE_NAME).toPrettyJsonString()); // Create offline table creation request TableConfig tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(TABLE_NAME).setNumReplicas(DEFAULT_MIN_NUM_REPLICAS) @@ -83,7 +86,7 @@ public void testOfflineTableLifeCycle() TagNameUtils.getRealtimeTagForTenant(TagNameUtils.DEFAULT_TENANT_NAME)).size(), DEFAULT_NUM_SERVER_INSTANCES); } - @AfterTest + @AfterClass public void tearDown() { DEFAULT_INSTANCE.cleanup(); } diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/ControllerTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/ControllerTest.java index 43b7e4224ef..33932ee38b1 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/ControllerTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/ControllerTest.java @@ -88,6 +88,7 @@ import static org.apache.pinot.spi.utils.CommonConstants.Server.DEFAULT_ADMIN_API_PORT; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertTrue; import static org.testng.Assert.fail; @@ -792,9 +793,10 @@ public static String sendGetRequestRaw(String urlString) } public static String sendPostRequest(String urlString) - throws IOException { + throws IOException { return sendPostRequest(urlString, null); } + public static String sendPostRequest(String urlString, String payload) throws IOException { return sendPostRequest(urlString, payload, Collections.emptyMap()); @@ -1030,7 +1032,9 @@ public void setupSharedStateAndValidate() DEFAULT_NUM_SERVER_INSTANCES); // No pre-existing tables - assertEquals(getHelixResourceManager().getAllTables().size(), 0); + assertTrue(CollectionUtils.isEmpty(getHelixResourceManager().getAllTables())); + // No pre-existing schemas + assertTrue(CollectionUtils.isEmpty(getHelixResourceManager().getSchemaNames())); } /** diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/PinotResourceManagerTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/PinotResourceManagerTest.java index 6f4c87de04c..1ed304740f5 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/PinotResourceManagerTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/PinotResourceManagerTest.java @@ -61,6 +61,9 @@ public void setUp() _testInstance.setupSharedStateAndValidate(); _resourceManager = _testInstance.getHelixResourceManager(); + // Create schema + _testInstance.addDummySchema(RAW_TABLE_NAME); + // Adding an offline table TableConfig offlineTableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(RAW_TABLE_NAME).build(); _resourceManager.addTable(offlineTableConfig); diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/TableCacheTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/TableCacheTest.java index fff0ac890eb..56fe2464cfb 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/TableCacheTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/TableCacheTest.java @@ -43,7 +43,6 @@ public class TableCacheTest { private static final ControllerTest TEST_INSTANCE = ControllerTest.getInstance(); - private static final String SCHEMA_NAME = "cacheTestSchema"; private static final String RAW_TABLE_NAME = "cacheTestTable"; private static final String OFFLINE_TABLE_NAME = TableNameBuilder.OFFLINE.tableNameWithType(RAW_TABLE_NAME); private static final String REALTIME_TABLE_NAME = TableNameBuilder.REALTIME.tableNameWithType(RAW_TABLE_NAME); @@ -62,8 +61,6 @@ public void testTableCache(boolean isCaseInsensitive) throws Exception { TableCache tableCache = new TableCache(TEST_INSTANCE.getPropertyStore(), isCaseInsensitive); - assertNull(tableCache.getSchema(SCHEMA_NAME)); - assertNull(tableCache.getColumnNameMap(SCHEMA_NAME)); assertNull(tableCache.getSchema(RAW_TABLE_NAME)); assertNull(tableCache.getColumnNameMap(RAW_TABLE_NAME)); assertNull(tableCache.getTableConfig(OFFLINE_TABLE_NAME)); @@ -71,15 +68,15 @@ public void testTableCache(boolean isCaseInsensitive) // Add a schema Schema schema = - new Schema.SchemaBuilder().setSchemaName(SCHEMA_NAME).addSingleValueDimension("testColumn", DataType.INT) + new Schema.SchemaBuilder().setSchemaName(RAW_TABLE_NAME).addSingleValueDimension("testColumn", DataType.INT) .build(); TEST_INSTANCE.getHelixResourceManager().addSchema(schema, false, false); // Wait for at most 10 seconds for the callback to add the schema to the cache - TestUtils.waitForCondition(aVoid -> tableCache.getSchema(SCHEMA_NAME) != null, 10_000L, + TestUtils.waitForCondition(aVoid -> tableCache.getSchema(RAW_TABLE_NAME) != null, 10_000L, "Failed to add the schema to the cache"); // Schema can be accessed by the schema name, but not by the table name because table config is not added yet Schema expectedSchema = - new Schema.SchemaBuilder().setSchemaName(SCHEMA_NAME).addSingleValueDimension("testColumn", DataType.INT) + new Schema.SchemaBuilder().setSchemaName(RAW_TABLE_NAME).addSingleValueDimension("testColumn", DataType.INT) .addSingleValueDimension(BuiltInVirtualColumn.DOCID, DataType.INT) .addSingleValueDimension(BuiltInVirtualColumn.HOSTNAME, DataType.STRING) .addSingleValueDimension(BuiltInVirtualColumn.SEGMENTNAME, DataType.STRING).build(); @@ -88,16 +85,15 @@ public void testTableCache(boolean isCaseInsensitive) expectedColumnMap.put(isCaseInsensitive ? "$docid" : "$docId", "$docId"); expectedColumnMap.put(isCaseInsensitive ? "$hostname" : "$hostName", "$hostName"); expectedColumnMap.put(isCaseInsensitive ? "$segmentname" : "$segmentName", "$segmentName"); - assertEquals(tableCache.getSchema(SCHEMA_NAME), expectedSchema); - assertEquals(tableCache.getColumnNameMap(SCHEMA_NAME), expectedColumnMap); - assertNull(tableCache.getSchema(RAW_TABLE_NAME)); - assertNull(tableCache.getColumnNameMap(RAW_TABLE_NAME)); + assertEquals(tableCache.getSchema(RAW_TABLE_NAME), expectedSchema); + assertEquals(tableCache.getColumnNameMap(RAW_TABLE_NAME), expectedColumnMap); // Case-insensitive table name are handled based on the table config instead of the schema assertNull(tableCache.getActualTableName(RAW_TABLE_NAME)); // Add a table config TableConfig tableConfig = - new TableConfigBuilder(TableType.OFFLINE).setTableName(RAW_TABLE_NAME).setSchemaName(SCHEMA_NAME).build(); + new TableConfigBuilder(TableType.OFFLINE).setTableName(RAW_TABLE_NAME).build(); + TEST_INSTANCE.waitForEVToDisappear(tableConfig.getTableName()); TEST_INSTANCE.getHelixResourceManager().addTable(tableConfig); // Wait for at most 10 seconds for the callback to add the table config to the cache TestUtils.waitForCondition( @@ -108,8 +104,6 @@ public void testTableCache(boolean isCaseInsensitive) // It should only add OFFLINE and normal table. assertNull(tableCache.getActualTableName(REALTIME_TABLE_NAME)); // Schema can be accessed by both the schema name and the raw table name - assertEquals(tableCache.getSchema(SCHEMA_NAME), expectedSchema); - assertEquals(tableCache.getColumnNameMap(SCHEMA_NAME), expectedColumnMap); assertEquals(tableCache.getSchema(RAW_TABLE_NAME), expectedSchema); assertEquals(tableCache.getColumnNameMap(RAW_TABLE_NAME), expectedColumnMap); @@ -138,18 +132,14 @@ public void testTableCache(boolean isCaseInsensitive) expectedSchema.addField(new DimensionFieldSpec("newColumn", DataType.LONG, true)); expectedColumnMap.put(isCaseInsensitive ? "newcolumn" : "newColumn", "newColumn"); TestUtils.waitForCondition(aVoid -> { - assertNotNull(tableCache.getSchema(SCHEMA_NAME)); + assertNotNull(tableCache.getSchema(RAW_TABLE_NAME)); assertEquals(schemaChangeListener._schemaList.size(), 1); return schemaChangeListener._schemaList.get(0).equals(expectedSchema); }, 10_000L, "Failed to update the schema in the cache"); // Schema can be accessed by both the schema name and the raw table name - assertEquals(tableCache.getSchema(SCHEMA_NAME), expectedSchema); - assertEquals(tableCache.getColumnNameMap(SCHEMA_NAME), expectedColumnMap); assertEquals(tableCache.getSchema(RAW_TABLE_NAME), expectedSchema); assertEquals(tableCache.getColumnNameMap(RAW_TABLE_NAME), expectedColumnMap); - // Update the table config and drop the schema name - tableConfig.getValidationConfig().setSchemaName(null); TEST_INSTANCE.getHelixResourceManager().updateTableConfig(tableConfig); // Wait for at most 10 seconds for the callback to update the table config in the cache // NOTE: @@ -165,8 +155,8 @@ public void testTableCache(boolean isCaseInsensitive) // After dropping the schema name from the table config, schema can only be accessed by the schema name, but not by // the table name assertEquals(tableCache.getTableConfig(OFFLINE_TABLE_NAME), tableConfig); - assertNull(tableCache.getSchema(RAW_TABLE_NAME)); - assertNull(tableCache.getColumnNameMap(RAW_TABLE_NAME)); + assertNotNull(tableCache.getSchema(RAW_TABLE_NAME)); + assertNotNull(tableCache.getColumnNameMap(RAW_TABLE_NAME)); if (isCaseInsensitive) { assertEquals(tableCache.getActualTableName(MANGLED_RAW_TABLE_NAME), RAW_TABLE_NAME); assertEquals(tableCache.getActualTableName(MANGLED_OFFLINE_TABLE_NAME), OFFLINE_TABLE_NAME); @@ -177,8 +167,8 @@ public void testTableCache(boolean isCaseInsensitive) assertEquals(tableCache.getActualTableName(OFFLINE_TABLE_NAME), OFFLINE_TABLE_NAME); } assertNull(tableCache.getActualTableName(REALTIME_TABLE_NAME)); - assertEquals(tableCache.getSchema(SCHEMA_NAME), expectedSchema); - assertEquals(tableCache.getColumnNameMap(SCHEMA_NAME), expectedColumnMap); + assertEquals(tableCache.getSchema(RAW_TABLE_NAME), expectedSchema); + assertEquals(tableCache.getColumnNameMap(RAW_TABLE_NAME), expectedColumnMap); // Wait for external view to appear before deleting the table to prevent external view being created after the // waitForEVToDisappear() call @@ -194,21 +184,19 @@ public void testTableCache(boolean isCaseInsensitive) "Failed to remove the table config from the cache"); assertNull(tableCache.getTableConfig(OFFLINE_TABLE_NAME)); assertNull(tableCache.getActualTableName(RAW_TABLE_NAME)); - assertEquals(tableCache.getSchema(SCHEMA_NAME), expectedSchema); - assertEquals(tableCache.getColumnNameMap(SCHEMA_NAME), expectedColumnMap); - assertNull(tableCache.getSchema(RAW_TABLE_NAME)); - assertNull(tableCache.getColumnNameMap(RAW_TABLE_NAME)); + assertEquals(tableCache.getSchema(RAW_TABLE_NAME), expectedSchema); + assertEquals(tableCache.getColumnNameMap(RAW_TABLE_NAME), expectedColumnMap); // Remove the schema - TEST_INSTANCE.getHelixResourceManager().deleteSchema(SCHEMA_NAME); + TEST_INSTANCE.getHelixResourceManager().deleteSchema(RAW_TABLE_NAME); // Wait for at most 10 seconds for the callback to remove the schema from the cache // NOTE: // - Verify if the callback is fully done by checking the schema change lister because it is the last step of the // callback handling TestUtils.waitForCondition(aVoid -> schemaChangeListener._schemaList.isEmpty(), 10_000L, "Failed to remove the schema from the cache"); - assertNull(tableCache.getSchema(SCHEMA_NAME)); - assertNull(tableCache.getColumnNameMap(SCHEMA_NAME)); + assertNull(tableCache.getSchema(RAW_TABLE_NAME)); + assertNull(tableCache.getColumnNameMap(RAW_TABLE_NAME)); assertNull(tableCache.getSchema(RAW_TABLE_NAME)); assertNull(tableCache.getColumnNameMap(RAW_TABLE_NAME)); assertEquals(schemaChangeListener._schemaList.size(), 0); diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManagerAssignmentTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManagerAssignmentTest.java index 2c3b92ebc58..139f4eaba5e 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManagerAssignmentTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManagerAssignmentTest.java @@ -77,6 +77,8 @@ public void setUp() resetBrokerTags(); resetServerTags(); + + addDummySchema(RAW_TABLE_NAME); } private void untagBrokers() { @@ -129,6 +131,7 @@ public void testAssignTargetTier() TierConfig tierConfig = new TierConfig("tier1", TierFactory.FIXED_SEGMENT_SELECTOR_TYPE, null, Collections.singletonList("testSegment"), TierFactory.PINOT_SERVER_STORAGE_TYPE, coldOfflineServerTag, null, null); + addDummySchema(RAW_TABLE_NAME); TableConfig tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(RAW_TABLE_NAME).setBrokerTenant(BROKER_TENANT_NAME) .setTierConfigList(Collections.singletonList(tierConfig)).setServerTenant(SERVER_TENANT_NAME).build(); diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManagerStatelessTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManagerStatelessTest.java index 818a42e5346..77d2a8a8cc2 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManagerStatelessTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManagerStatelessTest.java @@ -114,6 +114,7 @@ public void setUp() resetBrokerTags(); resetServerTags(); + addDummySchema(RAW_TABLE_NAME); } private void untagBrokers() { @@ -239,6 +240,7 @@ public void testUpdateBrokerResource() assertEquals(untaggedBrokers.size(), 1); // Add a table + addDummySchema(RAW_TABLE_NAME); TableConfig offlineTableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(RAW_TABLE_NAME).setBrokerTenant(BROKER_TENANT_NAME) .setServerTenant(SERVER_TENANT_NAME).build(); @@ -297,6 +299,7 @@ private void checkBrokerResource(List expectedBrokers) { public void testRebuildBrokerResourceFromHelixTags() throws Exception { // Create the table + addDummySchema(RAW_TABLE_NAME); TableConfig tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(RAW_TABLE_NAME).setBrokerTenant(BROKER_TENANT_NAME) .setServerTenant(SERVER_TENANT_NAME).build(); @@ -761,6 +764,7 @@ public void testUpdateTargetTier() new TableConfigBuilder(TableType.OFFLINE).setTableName(RAW_TABLE_NAME).setBrokerTenant(BROKER_TENANT_NAME) .setTierConfigList(Collections.singletonList(tierConfig)).setServerTenant(SERVER_TENANT_NAME).build(); waitForEVToDisappear(tableConfig.getTableName()); + addDummySchema(RAW_TABLE_NAME); _helixResourceManager.addTable(tableConfig); String segmentName = "testSegment"; @@ -796,6 +800,7 @@ public void testUpdateTargetTier() @Test public void testSegmentReplacementWithCustomToSegments() throws Exception { // Create the table + addDummySchema(RAW_TABLE_NAME); TableConfig tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(RAW_TABLE_NAME).setBrokerTenant(BROKER_TENANT_NAME) .setServerTenant(SERVER_TENANT_NAME).build(); @@ -830,6 +835,7 @@ public void testSegmentReplacementWithCustomToSegments() throws Exception { public void testSegmentReplacementRegular() throws Exception { // Create the table + addDummySchema(RAW_TABLE_NAME); TableConfig tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(RAW_TABLE_NAME).setBrokerTenant(BROKER_TENANT_NAME) .setServerTenant(SERVER_TENANT_NAME).build(); @@ -1101,6 +1107,7 @@ public void testSegmentReplacementRegular() public void testSegmentReplacementForRefresh() throws Exception { // Create the table + addDummySchema(RAW_TABLE_NAME); IngestionConfig ingestionConfig = new IngestionConfig(); ingestionConfig.setBatchIngestionConfig(new BatchIngestionConfig(null, "REFRESH", "DAILY")); TableConfig tableConfig = diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/rebalance/TableRebalancerClusterStatelessTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/rebalance/TableRebalancerClusterStatelessTest.java index 8d6da2681a8..6bf4710578d 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/rebalance/TableRebalancerClusterStatelessTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/rebalance/TableRebalancerClusterStatelessTest.java @@ -104,6 +104,7 @@ public void testRebalance() assertEquals(rebalanceResult.getStatus(), RebalanceResult.Status.FAILED); // Create the table + addDummySchema(RAW_TABLE_NAME); _helixResourceManager.addTable(tableConfig); // Add the segments @@ -332,6 +333,7 @@ public void testRebalanceWithTiers() new TableConfigBuilder(TableType.OFFLINE).setTableName(TIERED_TABLE_NAME).setNumReplicas(NUM_REPLICAS) .setServerTenant(NO_TIER_NAME).build(); // Create the table + addDummySchema(TIERED_TABLE_NAME); _helixResourceManager.addTable(tableConfig); // Add the segments @@ -423,6 +425,7 @@ public void testRebalanceWithTiersAndInstanceAssignments() new TableConfigBuilder(TableType.OFFLINE).setTableName(TIERED_TABLE_NAME).setNumReplicas(NUM_REPLICAS) .setServerTenant("replicaAssignment" + NO_TIER_NAME).build(); // Create the table + addDummySchema(TIERED_TABLE_NAME); _helixResourceManager.addTable(tableConfig); // Add the segments diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/rebalance/tenant/TenantRebalancerTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/rebalance/tenant/TenantRebalancerTest.java index a4237fee3fc..6bb7fbebb13 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/rebalance/tenant/TenantRebalancerTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/rebalance/tenant/TenantRebalancerTest.java @@ -79,6 +79,10 @@ public void testRebalance() // tag all servers and brokers to test tenant addTenantTagToInstances(TENANT_NAME); + // create 2 schemas + addDummySchema(RAW_TABLE_NAME_A); + addDummySchema(RAW_TABLE_NAME_B); + // create 2 tables, one on each of test tenant and default tenant createTableWithSegments(RAW_TABLE_NAME_A, DEFAULT_TENANT_NAME); createTableWithSegments(RAW_TABLE_NAME_B, TENANT_NAME); diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/retention/SegmentLineageCleanupTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/retention/SegmentLineageCleanupTest.java index be1de7f92d5..5915dab1871 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/retention/SegmentLineageCleanupTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/retention/SegmentLineageCleanupTest.java @@ -36,6 +36,7 @@ import org.apache.pinot.spi.config.table.ingestion.BatchIngestionConfig; import org.apache.pinot.spi.config.table.ingestion.IngestionConfig; import org.apache.pinot.spi.utils.builder.TableConfigBuilder; +import org.apache.pinot.spi.utils.builder.TableNameBuilder; import org.apache.pinot.util.TestUtils; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; @@ -66,6 +67,10 @@ public void setUp() _retentionManager = new RetentionManager(_resourceManager, mock(LeadControllerManager.class), controllerConf, mock(ControllerMetrics.class)); + // Create a schema + TEST_INSTANCE.addDummySchema(TableNameBuilder.extractRawTableName(OFFLINE_TABLE_NAME)); + TEST_INSTANCE.addDummySchema(TableNameBuilder.extractRawTableName(REFRESH_OFFLINE_TABLE_NAME)); + // Update table config TableConfig tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(OFFLINE_TABLE_NAME).setNumReplicas(1).build(); diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/validation/ValidationManagerStatelessTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/validation/ValidationManagerStatelessTest.java index 20da2137572..f66230c6d12 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/validation/ValidationManagerStatelessTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/validation/ValidationManagerStatelessTest.java @@ -51,7 +51,9 @@ public void setUp() startController(); addFakeBrokerInstancesToAutoJoinHelixCluster(2, true); addFakeServerInstancesToAutoJoinHelixCluster(2, true); - + // Create a schema + addDummySchema(TEST_TABLE_NAME); + // Create a table _offlineTableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(TEST_TABLE_NAME).setNumReplicas(2).build(); _helixResourceManager.addTable(_offlineTableConfig); @@ -72,6 +74,7 @@ public void testRebuildBrokerResourceWhenBrokerAdded() _helixResourceManager.rebuildBrokerResourceFromHelixTags(partitionName); // Add another table that needs to be rebuilt + addDummySchema(TEST_TABLE_TWO); TableConfig offlineTableConfigTwo = new TableConfigBuilder(TableType.OFFLINE).setTableName(TEST_TABLE_TWO).build(); _helixResourceManager.addTable(offlineTableConfigTwo); String partitionNameTwo = offlineTableConfigTwo.getTableName(); diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/validation/ValidationManagerTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/validation/ValidationManagerTest.java index 4d576bb8cf0..7e2f22f1fda 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/validation/ValidationManagerTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/validation/ValidationManagerTest.java @@ -28,6 +28,8 @@ import org.apache.pinot.segment.spi.SegmentMetadata; import org.apache.pinot.spi.config.table.TableConfig; import org.apache.pinot.spi.config.table.TableType; +import org.apache.pinot.spi.data.FieldSpec; +import org.apache.pinot.spi.data.Schema; import org.apache.pinot.spi.utils.builder.TableConfigBuilder; import org.apache.pinot.spi.utils.builder.TableNameBuilder; import org.apache.pinot.util.TestUtils; @@ -58,7 +60,14 @@ public class ValidationManagerTest { public void setUp() throws Exception { TEST_INSTANCE.setupSharedStateAndValidate(); - + // Create a schema + Schema schema = new Schema.SchemaBuilder() + .setSchemaName(TEST_TABLE_NAME) + .addSingleValueDimension("dim1", FieldSpec.DataType.STRING) + .addMetric("metric1", FieldSpec.DataType.INT) + .build(); + TEST_INSTANCE.getHelixResourceManager().addSchema(schema, true, true); + // Create a table TableConfig offlineTableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(TEST_TABLE_NAME).setNumReplicas(2).build(); TEST_INSTANCE.getHelixResourceManager().addTable(offlineTableConfig); diff --git a/pinot-core/src/test/java/org/apache/pinot/core/data/manager/offline/DimensionTableDataManagerTest.java b/pinot-core/src/test/java/org/apache/pinot/core/data/manager/offline/DimensionTableDataManagerTest.java index 3381d9c3838..6816d015582 100644 --- a/pinot-core/src/test/java/org/apache/pinot/core/data/manager/offline/DimensionTableDataManagerTest.java +++ b/pinot-core/src/test/java/org/apache/pinot/core/data/manager/offline/DimensionTableDataManagerTest.java @@ -112,7 +112,7 @@ private Schema getSchema() { private TableConfig getTableConfig(boolean disablePreload) { DimensionTableConfig dimensionTableConfig = new DimensionTableConfig(disablePreload); - return new TableConfigBuilder(TableType.OFFLINE).setTableName("dimBaseballTeams").setSchemaName("dimBaseballTeams") + return new TableConfigBuilder(TableType.OFFLINE).setTableName("dimBaseballTeams") .setDimensionTableConfig(dimensionTableConfig).build(); } diff --git a/pinot-core/src/test/java/org/apache/pinot/core/data/manager/realtime/RealtimeTableDataManagerTest.java b/pinot-core/src/test/java/org/apache/pinot/core/data/manager/realtime/RealtimeTableDataManagerTest.java index a2838d543f1..211d2d08ad1 100644 --- a/pinot-core/src/test/java/org/apache/pinot/core/data/manager/realtime/RealtimeTableDataManagerTest.java +++ b/pinot-core/src/test/java/org/apache/pinot/core/data/manager/realtime/RealtimeTableDataManagerTest.java @@ -255,7 +255,7 @@ private static TableDataManagerConfig createTableDataManagerConfig() { private static TableConfig setupTableConfig(ZkHelixPropertyStore propertyStore) throws Exception { TableConfig tableConfig = - new TableConfigBuilder(TableType.REALTIME).setTableName(TABLE_NAME).setSchemaName(TABLE_NAME).build(); + new TableConfigBuilder(TableType.REALTIME).setTableName(TABLE_NAME).build(); ZNRecord tableConfigZNRecord = TableConfigUtils.toZNRecord(tableConfig); when(propertyStore.get(ZKMetadataProvider.constructPropertyStorePathForResourceConfig(TABLE_NAME_WITH_TYPE), null, AccessOption.PERSISTENT)).thenReturn(tableConfigZNRecord); diff --git a/pinot-integration-test-base/src/test/java/org/apache/pinot/integration/tests/BaseClusterIntegrationTest.java b/pinot-integration-test-base/src/test/java/org/apache/pinot/integration/tests/BaseClusterIntegrationTest.java index 41ece0290b9..3157174e047 100644 --- a/pinot-integration-test-base/src/test/java/org/apache/pinot/integration/tests/BaseClusterIntegrationTest.java +++ b/pinot-integration-test-base/src/test/java/org/apache/pinot/integration/tests/BaseClusterIntegrationTest.java @@ -116,10 +116,6 @@ protected String getTableName() { return DEFAULT_TABLE_NAME; } - protected String getSchemaName() { - return DEFAULT_SCHEMA_NAME; - } - protected String getSchemaFileName() { return DEFAULT_SCHEMA_FILE_NAME; } @@ -270,14 +266,9 @@ protected Schema createSchema() InputStream inputStream = BaseClusterIntegrationTest.class.getClassLoader().getResourceAsStream(getSchemaFileName()); Assert.assertNotNull(inputStream); - return Schema.fromInputStream(inputStream); - } - - /** - * Returns the schema in the cluster. - */ - protected Schema getSchema() { - return getSchema(getSchemaName()); + Schema schema = Schema.fromInputStream(inputStream); + schema.setSchemaName(getTableName()); + return schema; } protected Schema createSchema(File schemaFile) @@ -298,7 +289,7 @@ protected TableConfig createTableConfig(File tableConfigFile) * Creates a new OFFLINE table config. */ protected TableConfig createOfflineTableConfig() { - return new TableConfigBuilder(TableType.OFFLINE).setTableName(getTableName()).setSchemaName(getSchemaName()) + return new TableConfigBuilder(TableType.OFFLINE).setTableName(getTableName()) .setTimeColumnName(getTimeColumnName()).setSortedColumn(getSortedColumn()) .setInvertedIndexColumns(getInvertedIndexColumns()).setNoDictionaryColumns(getNoDictionaryColumns()) .setRangeIndexColumns(getRangeIndexColumns()).setBloomFilterColumns(getBloomFilterColumns()) @@ -352,7 +343,7 @@ protected Map getStreamConfigMap() { */ protected TableConfig createRealtimeTableConfig(File sampleAvroFile) { AvroFileSchemaKafkaAvroMessageDecoder._avroFile = sampleAvroFile; - return new TableConfigBuilder(TableType.REALTIME).setTableName(getTableName()).setSchemaName(getSchemaName()) + return new TableConfigBuilder(TableType.REALTIME).setTableName(getTableName()) .setTimeColumnName(getTimeColumnName()).setSortedColumn(getSortedColumn()) .setInvertedIndexColumns(getInvertedIndexColumns()).setNoDictionaryColumns(getNoDictionaryColumns()) .setRangeIndexColumns(getRangeIndexColumns()).setBloomFilterColumns(getBloomFilterColumns()) @@ -374,7 +365,7 @@ protected TableConfig createUpsertTableConfig(File sampleAvroFile, String primar UpsertConfig upsertConfig = new UpsertConfig(UpsertConfig.Mode.FULL); upsertConfig.setDeleteRecordColumn(deleteColumn); - return new TableConfigBuilder(TableType.REALTIME).setTableName(getTableName()).setSchemaName(getSchemaName()) + return new TableConfigBuilder(TableType.REALTIME).setTableName(getTableName()) .setTimeColumnName(getTimeColumnName()).setFieldConfigList(getFieldConfigs()).setNumReplicas(getNumReplicas()) .setSegmentVersion(getSegmentVersion()).setLoadMode(getLoadMode()).setTaskConfig(getTaskConfig()) .setBrokerTenant(getBrokerTenant()).setServerTenant(getServerTenant()).setIngestionConfig(getIngestionConfig()) @@ -406,12 +397,9 @@ protected Map getCSVDecoderProperties(@Nullable String delimiter /** * Creates a new Upsert enabled table config. */ - protected TableConfig createCSVUpsertTableConfig(String tableName, @Nullable String schemaName, - @Nullable String kafkaTopicName, int numPartitions, Map streamDecoderProperties, - UpsertConfig upsertConfig, String primaryKeyColumn) { - if (schemaName == null) { - schemaName = getSchemaName(); - } + protected TableConfig createCSVUpsertTableConfig(String tableName, @Nullable String kafkaTopicName, + int numPartitions, Map streamDecoderProperties, UpsertConfig upsertConfig, + String primaryKeyColumn) { Map columnPartitionConfigMap = new HashMap<>(); columnPartitionConfigMap.put(primaryKeyColumn, new ColumnPartitionConfig("Murmur", numPartitions)); @@ -428,7 +416,7 @@ protected TableConfig createCSVUpsertTableConfig(String tableName, @Nullable Str kafkaTopicName); streamConfigsMap.putAll(streamDecoderProperties); - return new TableConfigBuilder(TableType.REALTIME).setTableName(tableName).setSchemaName(schemaName) + return new TableConfigBuilder(TableType.REALTIME).setTableName(tableName) .setTimeColumnName(getTimeColumnName()).setFieldConfigList(getFieldConfigs()).setNumReplicas(getNumReplicas()) .setSegmentVersion(getSegmentVersion()).setLoadMode(getLoadMode()).setTaskConfig(getTaskConfig()) .setBrokerTenant(getBrokerTenant()).setServerTenant(getServerTenant()).setIngestionConfig(getIngestionConfig()) @@ -448,7 +436,7 @@ protected TableConfig createDedupTableConfig(File sampleAvroFile, String primary Map columnPartitionConfigMap = new HashMap<>(); columnPartitionConfigMap.put(primaryKeyColumn, new ColumnPartitionConfig("Murmur", numPartitions)); - return new TableConfigBuilder(TableType.REALTIME).setTableName(getTableName()).setSchemaName(getSchemaName()) + return new TableConfigBuilder(TableType.REALTIME).setTableName(getTableName()) .setTimeColumnName(getTimeColumnName()).setFieldConfigList(getFieldConfigs()).setNumReplicas(getNumReplicas()) .setSegmentVersion(getSegmentVersion()).setLoadMode(getLoadMode()).setTaskConfig(getTaskConfig()) .setBrokerTenant(getBrokerTenant()).setServerTenant(getServerTenant()).setIngestionConfig(getIngestionConfig()) diff --git a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/AggregateMetricsClusterIntegrationTest.java b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/AggregateMetricsClusterIntegrationTest.java index 7ad116a8c73..b7ba0103ab3 100644 --- a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/AggregateMetricsClusterIntegrationTest.java +++ b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/AggregateMetricsClusterIntegrationTest.java @@ -58,7 +58,7 @@ public void setUp() // Create and upload the schema and table config with reduced number of columns and aggregate metrics on Schema schema = - new Schema.SchemaBuilder().setSchemaName(getSchemaName()).addSingleValueDimension("Carrier", DataType.STRING) + new Schema.SchemaBuilder().setSchemaName(getTableName()).addSingleValueDimension("Carrier", DataType.STRING) .addSingleValueDimension("Origin", DataType.STRING).addMetric("AirTime", DataType.LONG) .addMetric("ArrDelay", DataType.DOUBLE) .addDateTime("DaysSinceEpoch", DataType.INT, "1:DAYS:EPOCH", "1:DAYS").build(); diff --git a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/BaseClusterIntegrationTestSet.java b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/BaseClusterIntegrationTestSet.java index f757ac54dea..bcda7532ed6 100644 --- a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/BaseClusterIntegrationTestSet.java +++ b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/BaseClusterIntegrationTestSet.java @@ -673,12 +673,12 @@ public boolean isReloadJobCompleted(String reloadJobId) /** * TODO: Support removing new added columns for MutableSegment and remove the new added columns before running the - * next test. Use this to replace {@link OfflineClusterIntegrationTest#testDefaultColumns()}. + * next test. Use this to replace {@link OfflineClusterIntegrationTest#testDefaultColumns(boolean)}. */ public void testReload(boolean includeOfflineTable) throws Exception { String rawTableName = getTableName(); - Schema schema = getSchema(); + Schema schema = getSchema(getTableName()); String selectStarQuery = "SELECT * FROM " + rawTableName; JsonNode queryResponse = postQuery(selectStarQuery); diff --git a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/ControllerPeriodicTasksIntegrationTest.java b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/ControllerPeriodicTasksIntegrationTest.java index 967ef11bb57..39e4855f635 100644 --- a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/ControllerPeriodicTasksIntegrationTest.java +++ b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/ControllerPeriodicTasksIntegrationTest.java @@ -183,14 +183,21 @@ public void testSegmentStatusChecker() String disabledTable = "disabledTable"; String tableWithOfflineSegment = "tableWithOfflineSegment"; + Schema schema = createSchema(); _currentTable = emptyTable; + schema.setSchemaName(_currentTable); + addSchema(schema); addTableConfig(createOfflineTableConfig()); _currentTable = disabledTable; + schema.setSchemaName(_currentTable); + addSchema(schema); addTableConfig(createOfflineTableConfig()); _helixAdmin.enableResource(getHelixClusterName(), TableNameBuilder.OFFLINE.tableNameWithType(disabledTable), false); _currentTable = tableWithOfflineSegment; + schema.setSchemaName(_currentTable); + addSchema(schema); addTableConfig(createOfflineTableConfig()); uploadSegments(_currentTable, _tarDir); // Turn one replica of a segment OFFLINE @@ -247,6 +254,9 @@ public void testSegmentStatusChecker() dropOfflineTable(emptyTable); dropOfflineTable(disabledTable); dropOfflineTable(tableWithOfflineSegment); + deleteSchema(emptyTable); + deleteSchema(disabledTable); + deleteSchema(tableWithOfflineSegment); } private boolean checkSegmentStatusCheckerMetrics(ControllerMetrics controllerMetrics, String tableNameWithType, diff --git a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/DedupIntegrationTest.java b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/DedupIntegrationTest.java index 3cb6003356c..0a56a49357a 100644 --- a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/DedupIntegrationTest.java +++ b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/DedupIntegrationTest.java @@ -86,11 +86,6 @@ protected String getSchemaFileName() { return "dedupIngestionTestSchema.schema"; } - @Override - protected String getSchemaName() { - return "dedupSchema"; - } - @Override protected String getAvroTarFileName() { return "dedupIngestionTestData.tar.gz"; diff --git a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/MergeRollupMinionClusterIntegrationTest.java b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/MergeRollupMinionClusterIntegrationTest.java index 2d5a8109c27..7eb32ccb0a6 100644 --- a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/MergeRollupMinionClusterIntegrationTest.java +++ b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/MergeRollupMinionClusterIntegrationTest.java @@ -113,6 +113,14 @@ public void setUp() // Create and upload the schema and table config Schema schema = createSchema(); addSchema(schema); + schema.setSchemaName(SINGLE_LEVEL_CONCAT_TEST_TABLE); + addSchema(schema); + schema.setSchemaName(SINGLE_LEVEL_ROLLUP_TEST_TABLE); + addSchema(schema); + schema.setSchemaName(MULTI_LEVEL_CONCAT_TEST_TABLE); + addSchema(schema); + schema.setSchemaName(SINGLE_LEVEL_CONCAT_METADATA_TEST_TABLE); + addSchema(schema); TableConfig singleLevelConcatTableConfig = createOfflineTableConfig(SINGLE_LEVEL_CONCAT_TEST_TABLE, getSingleLevelConcatTaskConfig()); TableConfig singleLevelRollupTableConfig = @@ -149,6 +157,8 @@ public void setUp() addTableConfig(tableConfig); _kafkaStarters.get(0) .createTopic(PROCESS_ALL_MODE_KAFKA_TOPIC, KafkaStarterUtils.getTopicCreationProps(getNumKafkaPartitions())); + schema.setSchemaName(MULTI_LEVEL_CONCAT_PROCESS_ALL_REALTIME_TABLE); + addSchema(schema); TableConfig singleLevelConcatProcessAllRealtimeTableConfig = createRealtimeTableConfigWithProcessAllMode(avroFiles.get(0), MULTI_LEVEL_CONCAT_PROCESS_ALL_REALTIME_TABLE, PROCESS_ALL_MODE_KAFKA_TOPIC); @@ -206,7 +216,7 @@ private TableConfig createOfflineTableConfig(String tableName, TableTaskConfig t private TableConfig createOfflineTableConfig(String tableName, TableTaskConfig taskConfig, @Nullable SegmentPartitionConfig partitionConfig) { - return new TableConfigBuilder(TableType.OFFLINE).setTableName(tableName).setSchemaName(getSchemaName()) + return new TableConfigBuilder(TableType.OFFLINE).setTableName(tableName) .setTimeColumnName(getTimeColumnName()).setSortedColumn(getSortedColumn()) .setInvertedIndexColumns(getInvertedIndexColumns()).setNoDictionaryColumns(getNoDictionaryColumns()) .setRangeIndexColumns(getRangeIndexColumns()).setBloomFilterColumns(getBloomFilterColumns()) @@ -236,7 +246,7 @@ protected TableConfig createRealtimeTableConfigWithProcessAllMode(File sampleAvr tableTaskConfigs.put("ActualElapsedTime.aggregationType", "min"); tableTaskConfigs.put("WeatherDelay.aggregationType", "sum"); tableTaskConfigs.put("mode", "processAll"); - return new TableConfigBuilder(TableType.REALTIME).setTableName(tableName).setSchemaName(getSchemaName()) + return new TableConfigBuilder(TableType.REALTIME).setTableName(tableName) .setTimeColumnName(getTimeColumnName()).setSortedColumn(getSortedColumn()) .setInvertedIndexColumns(getInvertedIndexColumns()).setNoDictionaryColumns(getNoDictionaryColumns()) .setRangeIndexColumns(getRangeIndexColumns()).setBloomFilterColumns(getBloomFilterColumns()) diff --git a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterIntegrationTest.java b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterIntegrationTest.java index dcec37ceefb..35678bbea8c 100644 --- a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterIntegrationTest.java +++ b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterIntegrationTest.java @@ -441,8 +441,11 @@ public void testUploadSameSegments() @Test public void testUploadSegmentRefreshOnly() throws Exception { + Schema schema = createSchema(); + schema.setSchemaName(SEGMENT_UPLOAD_TEST_TABLE); + addSchema(schema); TableConfig segmentUploadTestTableConfig = - new TableConfigBuilder(TableType.OFFLINE).setTableName(SEGMENT_UPLOAD_TEST_TABLE).setSchemaName(getSchemaName()) + new TableConfigBuilder(TableType.OFFLINE).setTableName(SEGMENT_UPLOAD_TEST_TABLE) .setTimeColumnName(getTimeColumnName()).setSortedColumn(getSortedColumn()) .setInvertedIndexColumns(getInvertedIndexColumns()).setNoDictionaryColumns(getNoDictionaryColumns()) .setRangeIndexColumns(getRangeIndexColumns()).setBloomFilterColumns(getBloomFilterColumns()) @@ -1432,7 +1435,7 @@ private void reloadWithMissingColumns() updateTableConfig(tableConfig); // Need to first delete then add the schema because removing columns is backward-incompatible change - deleteSchema(getSchemaName()); + deleteSchema(getTableName()); Schema schema = createSchema(); schema.removeField("AirlineID"); schema.removeField("ArrTime"); diff --git a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterMemBasedBrokerQueryKillingTest.java b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterMemBasedBrokerQueryKillingTest.java index 4170e526bcc..969f46ab7c2 100644 --- a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterMemBasedBrokerQueryKillingTest.java +++ b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterMemBasedBrokerQueryKillingTest.java @@ -198,7 +198,7 @@ protected String getTimeColumnName() { } protected TableConfig createOfflineTableConfig() { - return new TableConfigBuilder(TableType.OFFLINE).setTableName(getTableName()).setSchemaName(getSchemaName()) + return new TableConfigBuilder(TableType.OFFLINE).setTableName(getTableName()) .setTimeColumnName(getTimeColumnName()).setFieldConfigList(getFieldConfigs()).setNumReplicas(getNumReplicas()) .setSegmentVersion(getSegmentVersion()).setLoadMode(getLoadMode()).setTaskConfig(getTaskConfig()) .setBrokerTenant(getBrokerTenant()).setServerTenant(getServerTenant()).setIngestionConfig(getIngestionConfig()) diff --git a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterMemBasedServerQueryKillingTest.java b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterMemBasedServerQueryKillingTest.java index 7c762fa4a48..2e866805eaa 100644 --- a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterMemBasedServerQueryKillingTest.java +++ b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterMemBasedServerQueryKillingTest.java @@ -202,7 +202,7 @@ protected String getTimeColumnName() { } protected TableConfig createOfflineTableConfig() { - return new TableConfigBuilder(TableType.OFFLINE).setTableName(getTableName()).setSchemaName(getSchemaName()) + return new TableConfigBuilder(TableType.OFFLINE).setTableName(getTableName()) .setTimeColumnName(getTimeColumnName()).setFieldConfigList(getFieldConfigs()).setNumReplicas(getNumReplicas()) .setSegmentVersion(getSegmentVersion()).setLoadMode(getLoadMode()).setTaskConfig(getTaskConfig()) .setBrokerTenant(getBrokerTenant()).setServerTenant(getServerTenant()).setIngestionConfig(getIngestionConfig()) diff --git a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterServerCPUTimeQueryKillingTest.java b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterServerCPUTimeQueryKillingTest.java index 35d8ea3b5ee..f88450b7dee 100644 --- a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterServerCPUTimeQueryKillingTest.java +++ b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterServerCPUTimeQueryKillingTest.java @@ -205,7 +205,7 @@ protected String getTimeColumnName() { } protected TableConfig createOfflineTableConfig() { - return new TableConfigBuilder(TableType.OFFLINE).setTableName(getTableName()).setSchemaName(getSchemaName()) + return new TableConfigBuilder(TableType.OFFLINE).setTableName(getTableName()) .setTimeColumnName(getTimeColumnName()).setFieldConfigList(getFieldConfigs()).setNumReplicas(getNumReplicas()) .setSegmentVersion(getSegmentVersion()).setLoadMode(getLoadMode()).setTaskConfig(getTaskConfig()) .setBrokerTenant(getBrokerTenant()).setServerTenant(getServerTenant()).setIngestionConfig(getIngestionConfig()) diff --git a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/RealtimeKinesisIntegrationTest.java b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/RealtimeKinesisIntegrationTest.java index f2f66027667..f5709b44b3c 100644 --- a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/RealtimeKinesisIntegrationTest.java +++ b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/RealtimeKinesisIntegrationTest.java @@ -174,7 +174,7 @@ public Boolean apply(@Nullable Void aVoid) { } public TableConfig createKinesisTableConfig() { - return new TableConfigBuilder(TableType.REALTIME).setTableName(getTableName()).setSchemaName(getTableName()) + return new TableConfigBuilder(TableType.REALTIME).setTableName(getTableName()) .setTimeColumnName("DaysSinceEpoch").setFieldConfigList(getFieldConfigs()).setNumReplicas(getNumReplicas()) .setSegmentVersion(getSegmentVersion()).setLoadMode(getLoadMode()).setTaskConfig(getTaskConfig()) .setBrokerTenant(getBrokerTenant()).setServerTenant(getServerTenant()).setIngestionConfig(getIngestionConfig()) diff --git a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/RealtimeToOfflineSegmentsMinionClusterIntegrationTest.java b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/RealtimeToOfflineSegmentsMinionClusterIntegrationTest.java index ddfac35562f..043c654ef77 100644 --- a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/RealtimeToOfflineSegmentsMinionClusterIntegrationTest.java +++ b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/RealtimeToOfflineSegmentsMinionClusterIntegrationTest.java @@ -137,6 +137,8 @@ public void setUp() taskConfigsWithMetadata.put( BatchConfigProperties.PUSH_MODE, BatchConfigProperties.SegmentPushType.METADATA.toString()); String tableWithMetadataPush = "myTable2"; + schema.setSchemaName(tableWithMetadataPush); + addSchema(schema); TableConfig realtimeMetadataTableConfig = createRealtimeTableConfig(avroFiles.get(0), tableWithMetadataPush, new TableTaskConfig(Collections.singletonMap( MinionConstants.RealtimeToOfflineSegmentsTask.TASK_TYPE, taskConfigsWithMetadata))); @@ -191,7 +193,7 @@ public void setUp() private TableConfig createOfflineTableConfig(String tableName, @Nullable TableTaskConfig taskConfig, @Nullable SegmentPartitionConfig partitionConfig) { - return new TableConfigBuilder(TableType.OFFLINE).setTableName(tableName).setSchemaName(getSchemaName()) + return new TableConfigBuilder(TableType.OFFLINE).setTableName(tableName) .setTimeColumnName(getTimeColumnName()).setSortedColumn(getSortedColumn()) .setInvertedIndexColumns(getInvertedIndexColumns()).setNoDictionaryColumns(getNoDictionaryColumns()) .setRangeIndexColumns(getRangeIndexColumns()).setBloomFilterColumns(getBloomFilterColumns()) @@ -203,7 +205,7 @@ private TableConfig createOfflineTableConfig(String tableName, @Nullable TableTa protected TableConfig createRealtimeTableConfig(File sampleAvroFile, String tableName, TableTaskConfig taskConfig) { AvroFileSchemaKafkaAvroMessageDecoder._avroFile = sampleAvroFile; - return new TableConfigBuilder(TableType.REALTIME).setTableName(tableName).setSchemaName(getSchemaName()) + return new TableConfigBuilder(TableType.REALTIME).setTableName(tableName) .setTimeColumnName(getTimeColumnName()).setSortedColumn(getSortedColumn()) .setInvertedIndexColumns(getInvertedIndexColumns()).setNoDictionaryColumns(getNoDictionaryColumns()) .setRangeIndexColumns(getRangeIndexColumns()).setBloomFilterColumns(getBloomFilterColumns()) diff --git a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/SegmentPartitionLLCRealtimeClusterIntegrationTest.java b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/SegmentPartitionLLCRealtimeClusterIntegrationTest.java index 561cd67bc69..b7e2ac077af 100644 --- a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/SegmentPartitionLLCRealtimeClusterIntegrationTest.java +++ b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/SegmentPartitionLLCRealtimeClusterIntegrationTest.java @@ -83,7 +83,7 @@ public void setUp() _avroFiles = unpackAvroData(_tempDir); // Create and upload the schema and table config with reduced number of columns and partition config - Schema schema = new Schema.SchemaBuilder().setSchemaName(getSchemaName()) + Schema schema = new Schema.SchemaBuilder().setSchemaName(getTableName()) .addSingleValueDimension(PARTITION_COLUMN, DataType.STRING) .addDateTime("DaysSinceEpoch", DataType.INT, "1:DAYS:EPOCH", "1:DAYS").build(); addSchema(schema); diff --git a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/SimpleMinionClusterIntegrationTest.java b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/SimpleMinionClusterIntegrationTest.java index 766fdaabf38..86b4231776c 100644 --- a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/SimpleMinionClusterIntegrationTest.java +++ b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/SimpleMinionClusterIntegrationTest.java @@ -90,6 +90,9 @@ public void setUp() .forCluster(helixResourceManager.getHelixClusterName()).build(), properties); // Add 3 offline tables, where 2 of them have TestTask enabled + addDummySchema(TABLE_NAME_1); + addDummySchema(TABLE_NAME_2); + addDummySchema(TABLE_NAME_3); TableTaskConfig taskConfig = new TableTaskConfig(Collections.singletonMap(TASK_TYPE, Collections.emptyMap())); addTableConfig( new TableConfigBuilder(TableType.OFFLINE).setTableName(TABLE_NAME_1).setTaskConfig(taskConfig).build()); diff --git a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/UpsertCompactionMinionClusterIntegrationTest.java b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/UpsertCompactionMinionClusterIntegrationTest.java index de645ca7495..4e9038ba5d8 100644 --- a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/UpsertCompactionMinionClusterIntegrationTest.java +++ b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/UpsertCompactionMinionClusterIntegrationTest.java @@ -61,11 +61,6 @@ protected String getSchemaFileName() { return "upsert_upload_segment_test.schema"; } - @Override - protected String getSchemaName() { - return "upsertSchema"; - } - @Override protected String getAvroTarFileName() { return "upsert_compaction_test.tar.gz"; diff --git a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/UpsertTableIntegrationTest.java b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/UpsertTableIntegrationTest.java index a9aac6e37cd..e140020a39c 100644 --- a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/UpsertTableIntegrationTest.java +++ b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/UpsertTableIntegrationTest.java @@ -82,7 +82,7 @@ public void setUp() addSchema(schema); Map csvDecoderProperties = getCSVDecoderProperties(CSV_DELIMITER, CSV_SCHEMA_HEADER); - TableConfig tableConfig = createCSVUpsertTableConfig(getTableName(), getSchemaName(), getKafkaTopic(), + TableConfig tableConfig = createCSVUpsertTableConfig(getTableName(), getKafkaTopic(), getNumKafkaPartitions(), csvDecoderProperties, null, PRIMARY_KEY_COL); addTableConfig(tableConfig); @@ -112,11 +112,6 @@ protected String getSchemaFileName() { return "upsert_table_test.schema"; } - @Override - protected String getSchemaName() { - return "playerScores"; - } - @Nullable @Override protected String getTimeColumnName() { @@ -146,6 +141,7 @@ private Schema createSchema(String schemaFileName) Assert.assertNotNull(inputStream); return Schema.fromInputStream(inputStream); } + private long queryCountStarWithoutUpsert(String tableName) { return getPinotConnection().execute("SELECT COUNT(*) FROM " + tableName + " OPTION(skipUpsert=true)") .getResultSet(0).getLong(0); @@ -182,7 +178,10 @@ protected void testDeleteWithFullUpsert(String kafkaTopicName, String tableName, // SETUP // Create table with delete Record column Map csvDecoderProperties = getCSVDecoderProperties(CSV_DELIMITER, CSV_SCHEMA_HEADER); - TableConfig tableConfig = createCSVUpsertTableConfig(tableName, getSchemaName(), kafkaTopicName, + Schema upsertSchema = createSchema(); + upsertSchema.setSchemaName(tableName); + addSchema(upsertSchema); + TableConfig tableConfig = createCSVUpsertTableConfig(tableName, kafkaTopicName, getNumKafkaPartitions(), csvDecoderProperties, upsertConfig, PRIMARY_KEY_COL); addTableConfig(tableConfig); @@ -245,7 +244,6 @@ protected void testDeleteWithFullUpsert(String kafkaTopicName, String tableName, } }, 100L, 600_000L, "Failed to load all upsert records for testDeleteWithFullUpsert"); - // Validate: pk is queryable and all columns are overwritten with new value rs = getPinotConnection() .execute("SELECT playerId, name, game FROM " + tableName + " WHERE playerId = 100").getResultSet(0); @@ -277,7 +275,6 @@ public void testDeleteWithPartialUpsert() protected void testDeleteWithPartialUpsert(String kafkaTopicName, String tableName, UpsertConfig upsertConfig) throws Exception { - final String partialUpsertSchemaName = "playerScoresPartialUpsert"; final String inputDataTarFile = "gameScores_partial_upsert_csv.tar.gz"; Map partialUpsertStrategies = new HashMap<>(); @@ -288,7 +285,10 @@ protected void testDeleteWithPartialUpsert(String kafkaTopicName, String tableNa // Create table with delete Record column Map csvDecoderProperties = getCSVDecoderProperties(CSV_DELIMITER, CSV_SCHEMA_HEADER); - TableConfig tableConfig = createCSVUpsertTableConfig(tableName, partialUpsertSchemaName, kafkaTopicName, + Schema partialUpsertSchema = createSchema(PARTIAL_UPSERT_TABLE_SCHEMA); + partialUpsertSchema.setSchemaName(tableName); + addSchema(partialUpsertSchema); + TableConfig tableConfig = createCSVUpsertTableConfig(tableName, kafkaTopicName, getNumKafkaPartitions(), csvDecoderProperties, upsertConfig, PRIMARY_KEY_COL); addTableConfig(tableConfig); diff --git a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/UpsertTableSegmentPreloadIntegrationTest.java b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/UpsertTableSegmentPreloadIntegrationTest.java index 1a83754b965..b88f5fbdab8 100644 --- a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/UpsertTableSegmentPreloadIntegrationTest.java +++ b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/UpsertTableSegmentPreloadIntegrationTest.java @@ -140,11 +140,6 @@ protected String getSchemaFileName() { return "upsert_upload_segment_test.schema"; } - @Override - protected String getSchemaName() { - return "upsertSchema"; - } - @Override protected String getAvroTarFileName() { return "upsert_upload_segment_test.tar.gz"; diff --git a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/UpsertTableSegmentUploadIntegrationTest.java b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/UpsertTableSegmentUploadIntegrationTest.java index 28edcb23b3f..2e9f472d985 100644 --- a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/UpsertTableSegmentUploadIntegrationTest.java +++ b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/UpsertTableSegmentUploadIntegrationTest.java @@ -120,11 +120,6 @@ protected String getSchemaFileName() { return "upsert_upload_segment_test.schema"; } - @Override - protected String getSchemaName() { - return "upsertSchema"; - } - @Override protected String getAvroTarFileName() { return "upsert_upload_segment_test.tar.gz"; diff --git a/pinot-plugins/pinot-batch-ingestion/pinot-batch-ingestion-hadoop/pinot-plugins.tar.gz b/pinot-plugins/pinot-batch-ingestion/pinot-batch-ingestion-hadoop/pinot-plugins.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..ca43659467d990c3af492902cf6d12b649469953 GIT binary patch literal 265848 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%0AP@Z>xo!)o+6`Bp20{ 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

c4N?&iA_nmQ^Wa~!fO(KFt-w6k7vCA&fG)-S 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�#7fuEh@G8A{g88 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 z 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 0); _numReplicas = String.valueOf(numReplicas); @@ -434,7 +428,6 @@ public TableConfig build() { validationConfig.setSegmentAssignmentStrategy(_segmentAssignmentStrategy); validationConfig.setReplicaGroupStrategyConfig(_replicaGroupStrategyConfig); validationConfig.setCompletionConfig(_completionConfig); - validationConfig.setSchemaName(_schemaName); validationConfig.setReplication(_numReplicas); validationConfig.setPeerSegmentDownloadScheme(_peerSegmentDownloadScheme); validationConfig.setCrypterClassName(_crypterClassName);