You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by xi...@apache.org on 2020/07/18 20:58:57 UTC

[incubator-pinot] branch disallow_table_creation_with_dot created (now 6d0ae69)

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

xiangfu pushed a change to branch disallow_table_creation_with_dot
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git.


      at 6d0ae69  Disallow table creation with dot in the table name

This branch includes the following new commits:

     new 6d0ae69  Disallow table creation with dot in the table name

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


[incubator-pinot] 01/01: Disallow table creation with dot in the table name

Posted by xi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

xiangfu pushed a commit to branch disallow_table_creation_with_dot
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git

commit 6d0ae697191c5f9d68b8edf78d5bf0cdd2b58007
Author: Xiang Fu <fx...@gmail.com>
AuthorDate: Sat Jul 18 13:41:49 2020 -0700

    Disallow table creation with dot in the table name
---
 .../pinot/controller/api/PinotTableRestletResourceTest.java   | 11 +++++++++++
 .../java/org/apache/pinot/core/util/TableConfigUtils.java     |  9 +++++++++
 2 files changed, 20 insertions(+)

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 52ad0fa..d1cd559 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
@@ -96,6 +96,17 @@ public class PinotTableRestletResourceTest extends ControllerTest {
       Assert.assertTrue(e.getMessage().startsWith("Server returned HTTP response code: 400"));
     }
 
+    offlineTableConfig = _offlineBuilder.build();
+    offlineTableConfigJson = (ObjectNode) offlineTableConfig.toJsonNode();
+    offlineTableConfigJson.put(TableConfig.TABLE_NAME_KEY, "bad.table.with.dot");
+    try {
+      sendPostRequest(_createTableUrl, offlineTableConfigJson.toString());
+      Assert.fail("Creation of an OFFLINE table with dot in the table name does not fail");
+    } catch (IOException e) {
+      // Expected 400 Bad Request
+      Assert.assertTrue(e.getMessage().startsWith("Server returned HTTP response code: 400"));
+    }
+
     // Create an OFFLINE table with a valid name which should succeed
     offlineTableConfig = _offlineBuilder.setTableName("valid_table_name").build();
     String offlineTableConfigString = offlineTableConfig.toJsonString();
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/util/TableConfigUtils.java b/pinot-core/src/main/java/org/apache/pinot/core/util/TableConfigUtils.java
index de74e8e..99efa2f 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/util/TableConfigUtils.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/util/TableConfigUtils.java
@@ -53,11 +53,20 @@ public final class TableConfigUtils {
    * </ul>
    */
   public static void validate(TableConfig tableConfig) {
+    validateGeneralConfig(tableConfig);
     validateFieldConfigList(tableConfig);
     validateValidationConfig(tableConfig);
     validateIngestionConfig(tableConfig.getIngestionConfig());
   }
 
+  private static void validateGeneralConfig(TableConfig tableConfig) {
+    String tableName = tableConfig.getTableName();
+    if (tableName.contains(".")) {
+      throw new IllegalStateException(
+          "Table name: '" + tableName + "' containing '.' is not allowed");
+    }
+  }
+
   private static void validateFieldConfigList(TableConfig tableConfig) {
     List<FieldConfig> fieldConfigList = tableConfig.getFieldConfigList();
     if (fieldConfigList != null) {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org