[48/50] [abbrv] carbondata git commit: [CARBONDATA-2509][CARBONDATA-2510][CARBONDATA-2511][32K] Add validate for long string columns

2018-06-21 Thread jackylk
[CARBONDATA-2509][CARBONDATA-2510][CARBONDATA-2511][32K] Add validate for long 
string columns

Add validate for long string columns

1. long string columns cannot be sort_columns
2. long string columns cannot be dictionary include
3. long string columns cannot be dictionary exclude
4. long string columns can only be string columns

This closes #2380


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

Branch: refs/heads/carbonstore
Commit: 218a8deb614e0dc160ab8c7e38c71d80711eb1a7
Parents: 091a28b
Author: xuchuanyin 
Authored: Wed Jun 20 18:55:04 2018 +0800
Committer: kumarvishal09 
Committed: Thu Jun 21 12:00:34 2018 +0530

--
 .../VarcharDataTypesBasicTestCase.scala | 57 
 .../spark/sql/catalyst/CarbonDDLSqlParser.scala | 11 +++-
 2 files changed, 67 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/carbondata/blob/218a8deb/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/longstring/VarcharDataTypesBasicTestCase.scala
--
diff --git 
a/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/longstring/VarcharDataTypesBasicTestCase.scala
 
b/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/longstring/VarcharDataTypesBasicTestCase.scala
index 419b306..9ea3f1f 100644
--- 
a/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/longstring/VarcharDataTypesBasicTestCase.scala
+++ 
b/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/longstring/VarcharDataTypesBasicTestCase.scala
@@ -74,6 +74,63 @@ class VarcharDataTypesBasicTestCase extends QueryTest with 
BeforeAndAfterEach wi
 sql(s"drop table if exists $longStringTable")
   }
 
+  test("long string columns cannot be dictionary include") {
+val exceptionCaught = intercept[Exception] {
+  sql(
+s"""
+   | CREATE TABLE if not exists $longStringTable(
+   | id INT, name STRING, description STRING, address STRING, note 
STRING
+   | ) STORED BY 'carbondata'
+   | TBLPROPERTIES('LONG_STRING_COLUMNS'='address, note', 
'dictionary_include'='address')
+   |""".
+  stripMargin)
+}
+assert(exceptionCaught.getMessage.contains("DICTIONARY_INCLUDE is 
unsupported for long string datatype column: address"))
+  }
+
+  test("long string columns cannot be dictionay exclude") {
+val exceptionCaught = intercept[Exception] {
+  sql(
+s"""
+   | CREATE TABLE if not exists $longStringTable(
+   | id INT, name STRING, description STRING, address STRING, note 
STRING
+   | ) STORED BY 'carbondata'
+   | TBLPROPERTIES('LONG_STRING_COLUMNS'='address, note', 
'dictionary_exclude'='address')
+   |""".
+  stripMargin)
+}
+assert(exceptionCaught.getMessage.contains("DICTIONARY_EXCLUDE is 
unsupported for long string datatype column: address"))
+  }
+
+  test("long string columns cannot be sort_columns") {
+val exceptionCaught = intercept[Exception] {
+  sql(
+s"""
+   | CREATE TABLE if not exists $longStringTable(
+   | id INT, name STRING, description STRING, address STRING, note 
STRING
+   | ) STORED BY 'carbondata'
+   | TBLPROPERTIES('LONG_STRING_COLUMNS'='name, note', 
'SORT_COLUMNS'='name, address')
+   |""".
+  stripMargin)
+}
+assert(exceptionCaught.getMessage.contains("sort_columns is unsupported 
for long string datatype column: name"))
+  }
+
+  test("long string columns can only be string columns") {
+val exceptionCaught = intercept[Exception] {
+  sql(
+s"""
+   | CREATE TABLE if not exists $longStringTable(
+   | id INT, name STRING, description STRING, address STRING, note 
STRING
+   | ) STORED BY 'carbondata'
+   | TBLPROPERTIES('LONG_STRING_COLUMNS'='id, note')
+   |""".
+  stripMargin)
+}
+assert(exceptionCaught.getMessage.contains("long_string_columns: id"))
+assert(exceptionCaught.getMessage.contains("its data type is not string"))
+  }
+
   private def prepareTable(): Unit = {
 sql(
   s"""

http://git-wip-us.apache.org/repos/asf/carbondata/blob/218a8deb/integration/spark-common/src/main/scala/org/apache/spark/sql/catalyst/CarbonDDLSqlParser.scala
--
diff --git 
a/integration/spark-common/src/main/scala/org/apache/spark/sql/catalyst/CarbonDDLSqlParser.scala
 
b/integration/s

carbondata git commit: [CARBONDATA-2509][CARBONDATA-2510][CARBONDATA-2511][32K] Add validate for long string columns

2018-06-20 Thread kumarvishal09
Repository: carbondata
Updated Branches:
  refs/heads/master 091a28bf8 -> 218a8deb6


[CARBONDATA-2509][CARBONDATA-2510][CARBONDATA-2511][32K] Add validate for long 
string columns

Add validate for long string columns

1. long string columns cannot be sort_columns
2. long string columns cannot be dictionary include
3. long string columns cannot be dictionary exclude
4. long string columns can only be string columns

This closes #2380


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

Branch: refs/heads/master
Commit: 218a8deb614e0dc160ab8c7e38c71d80711eb1a7
Parents: 091a28b
Author: xuchuanyin 
Authored: Wed Jun 20 18:55:04 2018 +0800
Committer: kumarvishal09 
Committed: Thu Jun 21 12:00:34 2018 +0530

--
 .../VarcharDataTypesBasicTestCase.scala | 57 
 .../spark/sql/catalyst/CarbonDDLSqlParser.scala | 11 +++-
 2 files changed, 67 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/carbondata/blob/218a8deb/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/longstring/VarcharDataTypesBasicTestCase.scala
--
diff --git 
a/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/longstring/VarcharDataTypesBasicTestCase.scala
 
b/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/longstring/VarcharDataTypesBasicTestCase.scala
index 419b306..9ea3f1f 100644
--- 
a/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/longstring/VarcharDataTypesBasicTestCase.scala
+++ 
b/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/longstring/VarcharDataTypesBasicTestCase.scala
@@ -74,6 +74,63 @@ class VarcharDataTypesBasicTestCase extends QueryTest with 
BeforeAndAfterEach wi
 sql(s"drop table if exists $longStringTable")
   }
 
+  test("long string columns cannot be dictionary include") {
+val exceptionCaught = intercept[Exception] {
+  sql(
+s"""
+   | CREATE TABLE if not exists $longStringTable(
+   | id INT, name STRING, description STRING, address STRING, note 
STRING
+   | ) STORED BY 'carbondata'
+   | TBLPROPERTIES('LONG_STRING_COLUMNS'='address, note', 
'dictionary_include'='address')
+   |""".
+  stripMargin)
+}
+assert(exceptionCaught.getMessage.contains("DICTIONARY_INCLUDE is 
unsupported for long string datatype column: address"))
+  }
+
+  test("long string columns cannot be dictionay exclude") {
+val exceptionCaught = intercept[Exception] {
+  sql(
+s"""
+   | CREATE TABLE if not exists $longStringTable(
+   | id INT, name STRING, description STRING, address STRING, note 
STRING
+   | ) STORED BY 'carbondata'
+   | TBLPROPERTIES('LONG_STRING_COLUMNS'='address, note', 
'dictionary_exclude'='address')
+   |""".
+  stripMargin)
+}
+assert(exceptionCaught.getMessage.contains("DICTIONARY_EXCLUDE is 
unsupported for long string datatype column: address"))
+  }
+
+  test("long string columns cannot be sort_columns") {
+val exceptionCaught = intercept[Exception] {
+  sql(
+s"""
+   | CREATE TABLE if not exists $longStringTable(
+   | id INT, name STRING, description STRING, address STRING, note 
STRING
+   | ) STORED BY 'carbondata'
+   | TBLPROPERTIES('LONG_STRING_COLUMNS'='name, note', 
'SORT_COLUMNS'='name, address')
+   |""".
+  stripMargin)
+}
+assert(exceptionCaught.getMessage.contains("sort_columns is unsupported 
for long string datatype column: name"))
+  }
+
+  test("long string columns can only be string columns") {
+val exceptionCaught = intercept[Exception] {
+  sql(
+s"""
+   | CREATE TABLE if not exists $longStringTable(
+   | id INT, name STRING, description STRING, address STRING, note 
STRING
+   | ) STORED BY 'carbondata'
+   | TBLPROPERTIES('LONG_STRING_COLUMNS'='id, note')
+   |""".
+  stripMargin)
+}
+assert(exceptionCaught.getMessage.contains("long_string_columns: id"))
+assert(exceptionCaught.getMessage.contains("its data type is not string"))
+  }
+
   private def prepareTable(): Unit = {
 sql(
   s"""

http://git-wip-us.apache.org/repos/asf/carbondata/blob/218a8deb/integration/spark-common/src/main/scala/org/apache/spark/sql/catalyst/CarbonDDLSqlParser.scala
--
diff --git 
a/integration/spark-common/src/ma