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]