You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@carbondata.apache.org by ra...@apache.org on 2016/08/01 10:05:15 UTC

[17/47] incubator-carbondata git commit: no key columns (#856)

no key columns (#856)

when create table without key columns, it should  throw exception

Project: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/commit/f57a95c6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/tree/f57a95c6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/diff/f57a95c6

Branch: refs/heads/master
Commit: f57a95c65ddf70e2e5ccda45c16f5aab300facf0
Parents: 9089324
Author: Jay <li...@huawei.com>
Authored: Mon Jul 25 16:13:56 2016 +0800
Committer: sujith71955 <su...@gmail.com>
Committed: Mon Jul 25 13:43:56 2016 +0530

----------------------------------------------------------------------
 .../core/constants/CarbonCommonConstants.java          |  5 +++++
 .../scala/org/apache/spark/sql/CarbonSqlParser.scala   |  7 +++++++
 .../testsuite/createtable/TestCreateTableSyntax.scala  | 13 +++++++++++++
 3 files changed, 25 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/f57a95c6/core/src/main/java/org/carbondata/core/constants/CarbonCommonConstants.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/carbondata/core/constants/CarbonCommonConstants.java b/core/src/main/java/org/carbondata/core/constants/CarbonCommonConstants.java
index a7a8c07..739462e 100644
--- a/core/src/main/java/org/carbondata/core/constants/CarbonCommonConstants.java
+++ b/core/src/main/java/org/carbondata/core/constants/CarbonCommonConstants.java
@@ -736,6 +736,11 @@ public final class CarbonCommonConstants {
   public static final String CARBON_MERGE_SORT_PREFETCH = "carbon.merge.sort.prefetch";
   public static final String CARBON_MERGE_SORT_PREFETCH_DEFAULT = "true";
 
+  /**
+   *  default name of data base
+   */
+  public static final String DATABASE_DEFAULT_NAME = "default";
+
   // tblproperties
   public static final String COLUMN_GROUPS = "column_groups";
   public static final String DICTIONARY_EXCLUDE = "dictionary_exclude";

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/f57a95c6/integration/spark/src/main/scala/org/apache/spark/sql/CarbonSqlParser.scala
----------------------------------------------------------------------
diff --git a/integration/spark/src/main/scala/org/apache/spark/sql/CarbonSqlParser.scala b/integration/spark/src/main/scala/org/apache/spark/sql/CarbonSqlParser.scala
index 7033b85..4fd5f14 100644
--- a/integration/spark/src/main/scala/org/apache/spark/sql/CarbonSqlParser.scala
+++ b/integration/spark/src/main/scala/org/apache/spark/sql/CarbonSqlParser.scala
@@ -498,6 +498,13 @@ class CarbonSqlParser()
 
     val (dims: Seq[Field], noDictionaryDims: Seq[String]) = extractDimColsAndNoDictionaryFields(
       fields, tableProperties)
+    if (dims.length == 0) {
+      throw new MalformedCarbonCommandException(s"Table ${dbName.getOrElse(
+        CarbonCommonConstants.DATABASE_DEFAULT_NAME)}.$tableName"
+        + " can not be created without key columns. Please use DICTIONARY_INCLUDE or " +
+        "DICTIONARY_EXCLUDE to set at least one key column " +
+        "if all specified columns are numeric types")
+    }
     val msrs: Seq[Field] = extractMsrColsFromFields(fields, tableProperties)
 
     // column properties

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/f57a95c6/integration/spark/src/test/scala/org/carbondata/spark/testsuite/createtable/TestCreateTableSyntax.scala
----------------------------------------------------------------------
diff --git a/integration/spark/src/test/scala/org/carbondata/spark/testsuite/createtable/TestCreateTableSyntax.scala b/integration/spark/src/test/scala/org/carbondata/spark/testsuite/createtable/TestCreateTableSyntax.scala
index fe44336..3868928 100644
--- a/integration/spark/src/test/scala/org/carbondata/spark/testsuite/createtable/TestCreateTableSyntax.scala
+++ b/integration/spark/src/test/scala/org/carbondata/spark/testsuite/createtable/TestCreateTableSyntax.scala
@@ -99,6 +99,19 @@ class TestCreateTableSyntax extends QueryTest with BeforeAndAfterAll {
     sql("drop table if exists hivetable")
   }
 
+  test("create carbon table without dimensions") {
+    try {
+      sql("create table carbontable(msr1 int, msr2 double, msr3 bigint, msr4 decimal)" +
+        " stored by 'org.apache.carbondata.format'")
+      assert(false)
+    } catch {
+      case e : MalformedCarbonCommandException => {
+        assert(e.getMessage.equals("Table default.carbontable can not be created without " +
+          "key columns. Please use DICTIONARY_INCLUDE or DICTIONARY_EXCLUDE to " +
+          "set at least one key column if all specified columns are numeric types"))
+      }
+    }
+  }
   override def afterAll {
     sql("drop table if exists carbontable")
   }