Repository: carbondata Updated Branches: refs/heads/master e1ef85ac7 -> 9aa3a8c22
[CARBONDATA-2503] Data write fails if empty value is provided for sort columns in sdk is fixed SortColumn with empty value was giving exception This closes #2326 Project: http://git-wip-us.apache.org/repos/asf/carbondata/repo Commit: http://git-wip-us.apache.org/repos/asf/carbondata/commit/9aa3a8c2 Tree: http://git-wip-us.apache.org/repos/asf/carbondata/tree/9aa3a8c2 Diff: http://git-wip-us.apache.org/repos/asf/carbondata/diff/9aa3a8c2 Branch: refs/heads/master Commit: 9aa3a8c22460f58691e0de7dee97dade5a567285 Parents: e1ef85a Author: rahulforallp <[email protected]> Authored: Mon May 21 15:17:10 2018 +0530 Committer: manishgupta88 <[email protected]> Committed: Tue May 22 17:25:53 2018 +0530 ---------------------------------------------------------------------- .../TestNonTransactionalCarbonTable.scala | 21 +++++++++++++++++--- .../sdk/file/CarbonWriterBuilder.java | 2 +- 2 files changed, 19 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/carbondata/blob/9aa3a8c2/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/createTable/TestNonTransactionalCarbonTable.scala ---------------------------------------------------------------------- diff --git a/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/createTable/TestNonTransactionalCarbonTable.scala b/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/createTable/TestNonTransactionalCarbonTable.scala index 1c74adc..afb9b2f 100644 --- a/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/createTable/TestNonTransactionalCarbonTable.scala +++ b/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/createTable/TestNonTransactionalCarbonTable.scala @@ -322,14 +322,12 @@ class TestNonTransactionalCarbonTable extends QueryTest with BeforeAndAfterAll { Row("robot0", 0, 0.0), Row("robot1", 1, 0.5), Row("robot2", 2, 1.0))) - new File(writerPath).listFiles().map(x => LOGGER.audit(x.getName +" : "+x.lastModified())) FileUtils.deleteDirectory(new File(writerPath)) // Thread.sleep is required because it is possible sometime deletion // and creation of new file can happen at same timestamp. Thread.sleep(1000) assert(!new File(writerPath).exists()) buildTestDataWithSameUUID(4, false, null, List("name")) - new File(writerPath).listFiles().map(x => LOGGER.audit(x.getName +" : "+x.lastModified())) checkAnswer(sql("select * from sdkOutputTable"), Seq( Row("robot0", 0, 0.0), Row("robot1", 1, 0.5), @@ -379,9 +377,26 @@ class TestNonTransactionalCarbonTable extends QueryTest with BeforeAndAfterAll { checkExistence(sql("describe formatted sdkOutputTable"), true, "name") + buildTestDataWithSortColumns(List()) + assert(new File(writerPath).exists()) + sql("DROP TABLE IF EXISTS sdkOutputTable") + + // with partition + sql( + s"""CREATE EXTERNAL TABLE sdkOutputTable(name string) PARTITIONED BY (age int) STORED BY + |'carbondata' LOCATION + |'$writerPath' """.stripMargin) + + sql("describe formatted sdkOutputTable").show(false) + sql("select * from sdkOutputTable").show() + + intercept[RuntimeException] { + buildTestDataWithSortColumns(List("")) + } + sql("DROP TABLE sdkOutputTable") // drop table should not delete the files - assert(new File(writerPath).exists()) + assert(!(new File(writerPath).exists())) cleanTestData() } http://git-wip-us.apache.org/repos/asf/carbondata/blob/9aa3a8c2/store/sdk/src/main/java/org/apache/carbondata/sdk/file/CarbonWriterBuilder.java ---------------------------------------------------------------------- diff --git a/store/sdk/src/main/java/org/apache/carbondata/sdk/file/CarbonWriterBuilder.java b/store/sdk/src/main/java/org/apache/carbondata/sdk/file/CarbonWriterBuilder.java index bf99e05..e846da4 100644 --- a/store/sdk/src/main/java/org/apache/carbondata/sdk/file/CarbonWriterBuilder.java +++ b/store/sdk/src/main/java/org/apache/carbondata/sdk/file/CarbonWriterBuilder.java @@ -377,7 +377,7 @@ public class CarbonWriterBuilder { } List<String> sortColumnsList = new ArrayList<>(); - if (sortColumns == null) { + if (sortColumns == null || sortColumns.length == 0) { // If sort columns are not specified, default set all dimensions to sort column. // When dimensions are default set to sort column, // Inverted index will be supported by default for sort columns.
