This is an automated email from the ASF dual-hosted git repository.

snlee pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new 17cee10ceb Make GET /tableConfigs backwards compatible in case schema 
does not match raw table name (#9922)
17cee10ceb is described below

commit 17cee10ceb838fd792af7720c23955a74c99ee0c
Author: Tim Santos <[email protected]>
AuthorDate: Wed Dec 7 20:13:05 2022 -0800

    Make GET /tableConfigs backwards compatible in case schema does not match 
raw table name (#9922)
    
    * Make GET /tableConfigs backwards compatible in case schema does not match 
raw table name
    
    * Cleanup unit test
---
 .../api/resources/TableConfigsRestletResource.java |  2 +-
 .../api/TableConfigsRestletResourceTest.java       | 31 ++++++++++++++++++++++
 2 files changed, 32 insertions(+), 1 deletion(-)

diff --git 
a/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/TableConfigsRestletResource.java
 
b/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/TableConfigsRestletResource.java
index b11642fe53..8d8daff4d5 100644
--- 
a/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/TableConfigsRestletResource.java
+++ 
b/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/TableConfigsRestletResource.java
@@ -141,7 +141,7 @@ public class TableConfigsRestletResource {
       @ApiParam(value = "Raw table name", required = true) 
@PathParam("tableName") String tableName) {
 
     try {
-      Schema schema = _pinotHelixResourceManager.getSchema(tableName);
+      Schema schema = _pinotHelixResourceManager.getTableSchema(tableName);
       TableConfig offlineTableConfig = 
_pinotHelixResourceManager.getOfflineTableConfig(tableName);
       TableConfig realtimeTableConfig = 
_pinotHelixResourceManager.getRealtimeTableConfig(tableName);
       TableConfigs config = new TableConfigs(tableName, schema, 
offlineTableConfig, realtimeTableConfig);
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 a24e774981..a506f38ac3 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
@@ -27,6 +27,7 @@ import java.util.List;
 import org.apache.pinot.controller.helix.ControllerTest;
 import org.apache.pinot.core.realtime.impl.fakestream.FakeStreamConfigUtils;
 import org.apache.pinot.spi.config.TableConfigs;
+import org.apache.pinot.spi.config.table.SegmentsValidationAndRetentionConfig;
 import org.apache.pinot.spi.config.table.TableConfig;
 import org.apache.pinot.spi.config.table.TableType;
 import org.apache.pinot.spi.config.table.TunerConfig;
@@ -554,6 +555,36 @@ public class TableConfigsRestletResourceTest extends 
ControllerTest {
     
sendDeleteRequest(DEFAULT_INSTANCE.getControllerRequestURLBuilder().forTableConfigsDelete(tableName));
   }
 
+  /**
+   * Tests get TableConfigs for backwards compatibility
+   */
+  @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";
+    TableConfig offlineTableConfig = createOfflineTableConfig(tableName);
+    SegmentsValidationAndRetentionConfig validationConfig = new 
SegmentsValidationAndRetentionConfig();
+    validationConfig.setSchemaName(schemaName);
+    validationConfig.setReplication("1");
+    offlineTableConfig.setValidationConfig(validationConfig);
+    
sendPostRequest(DEFAULT_INSTANCE.getControllerRequestURLBuilder().forTableCreate(),
+        offlineTableConfig.toJsonString());
+
+    String response = 
sendGetRequest(DEFAULT_INSTANCE.getControllerRequestURLBuilder().forTableConfigsGet(tableName));
+    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());
+
+    // Delete
+    
sendDeleteRequest(DEFAULT_INSTANCE.getControllerRequestURLBuilder().forTableDelete(tableName));
+    
sendDeleteRequest(DEFAULT_INSTANCE.getControllerRequestURLBuilder().forSchemaDelete(schemaName));
+  }
+
   @AfterClass
   public void tearDown() {
     DEFAULT_INSTANCE.cleanup();


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to