Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id E9322200B67 for ; Mon, 1 Aug 2016 12:05:06 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id E7ABF160A5D; Mon, 1 Aug 2016 10:05:06 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 1A704160AAB for ; Mon, 1 Aug 2016 12:05:05 +0200 (CEST) Received: (qmail 44477 invoked by uid 500); 1 Aug 2016 10:05:05 -0000 Mailing-List: contact commits-help@carbondata.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@carbondata.incubator.apache.org Delivered-To: mailing list commits@carbondata.incubator.apache.org Received: (qmail 44461 invoked by uid 99); 1 Aug 2016 10:05:05 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Aug 2016 10:05:05 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id DEADFC041B for ; Mon, 1 Aug 2016 10:05:04 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -4.646 X-Spam-Level: X-Spam-Status: No, score=-4.646 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-1.426] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id eH0XMchB-pkb for ; Mon, 1 Aug 2016 10:05:03 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with SMTP id 1022360E4F for ; Mon, 1 Aug 2016 10:05:00 +0000 (UTC) Received: (qmail 44106 invoked by uid 99); 1 Aug 2016 10:04:59 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Aug 2016 10:04:59 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id AAC72EEE1B; Mon, 1 Aug 2016 10:04:59 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: ravipesala@apache.org To: commits@carbondata.incubator.apache.org Date: Mon, 01 Aug 2016 10:05:15 -0000 Message-Id: <44def066a6f94765b0584f7cd2c2701e@git.apache.org> In-Reply-To: <93a77719f5c2419fb49cbe562dfc678d@git.apache.org> References: <93a77719f5c2419fb49cbe562dfc678d@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [17/47] incubator-carbondata git commit: no key columns (#856) archived-at: Mon, 01 Aug 2016 10:05:07 -0000 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 Authored: Mon Jul 25 16:13:56 2016 +0800 Committer: sujith71955 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") }