Repository: carbondata Updated Branches: refs/heads/master f1a6c7cf5 -> 1c5b52659
[CARBONDATA-2468] addition of column to default sort_column is handled issue : default sort_column handling was missing solution : condition added for default sort_columns This closes #2293 Project: http://git-wip-us.apache.org/repos/asf/carbondata/repo Commit: http://git-wip-us.apache.org/repos/asf/carbondata/commit/1c5b5265 Tree: http://git-wip-us.apache.org/repos/asf/carbondata/tree/1c5b5265 Diff: http://git-wip-us.apache.org/repos/asf/carbondata/diff/1c5b5265 Branch: refs/heads/master Commit: 1c5b5265921e89f20c5f5b69c135c9a1acc2d1df Parents: f1a6c7c Author: rahulforallp <[email protected]> Authored: Thu May 10 16:17:39 2018 +0530 Committer: kumarvishal09 <[email protected]> Committed: Mon May 14 17:47:45 2018 +0530 ---------------------------------------------------------------------- .../TestNonTransactionalCarbonTable.scala | 28 +++++++++++++++++--- .../sdk/file/CarbonWriterBuilder.java | 8 +++++- 2 files changed, 32 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/carbondata/blob/1c5b5265/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 58ce5fa..fb9c862 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 @@ -98,9 +98,9 @@ class TestNonTransactionalCarbonTable extends QueryTest with BeforeAndAfterAll { buildTestData(3, false, options) } - def buildTestDataWithSortColumns(): Any = { + def buildTestDataWithSortColumns(sortColumns: List[String]): Any = { FileUtils.deleteDirectory(new File(writerPath)) - buildTestData(3, false, null, List("age", "name")) + buildTestData(3, false, null, sortColumns) } def buildTestData(rows: Int, persistSchema: Boolean, options: util.Map[String, String]): Any = { @@ -302,7 +302,7 @@ class TestNonTransactionalCarbonTable extends QueryTest with BeforeAndAfterAll { } test("test create external table with sort columns") { - buildTestDataWithSortColumns() + buildTestDataWithSortColumns(List("age","name")) assert(new File(writerPath).exists()) sql("DROP TABLE IF EXISTS sdkOutputTable") @@ -316,6 +316,28 @@ class TestNonTransactionalCarbonTable extends QueryTest with BeforeAndAfterAll { checkExistence(sql("describe formatted sdkOutputTable"), true, writerPath) + buildTestDataWithSortColumns(List("age")) + 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) + + checkExistence(sql("describe formatted sdkOutputTable"), true, "age") + + buildTestDataSingleFile() + 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) + + checkExistence(sql("describe formatted sdkOutputTable"), true, "name") + sql("DROP TABLE sdkOutputTable") // drop table should not delete the files assert(new File(writerPath).exists()) http://git-wip-us.apache.org/repos/asf/carbondata/blob/1c5b5265/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 00ba8a5..1816539 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 @@ -445,6 +445,7 @@ public class CarbonWriterBuilder { "column: " + sortColumn + " specified in sort columns does not exist in schema"); } } + int i = 0; for (Field field : fields) { if (null != field) { int isSortColumn = sortColumnsList.indexOf(field.getFieldName()); @@ -481,9 +482,14 @@ public class CarbonWriterBuilder { ColumnSchema columnSchema = tableSchemaBuilder .addColumn(new StructField(field.getFieldName(), field.getDataType()), valIndex, isSortColumn > -1); - columnSchema.setSortColumn(true); if (isSortColumn > -1) { + columnSchema.setSortColumn(true); sortColumnsSchemaList[isSortColumn] = columnSchema; + } else if (sortColumnsList.isEmpty() && columnSchema.isDimensionColumn() + && columnSchema.getNumberOfChild() < 1) { + columnSchema.setSortColumn(true); + sortColumnsSchemaList[i] = columnSchema; + i++; } } }
