You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@carbondata.apache.org by ma...@apache.org on 2018/05/17 14:30:57 UTC
[44/50] [abbrv] carbondata git commit: [CARBONDATA-2468] addition of
column to default sort_column is handled
[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/spark-2.3
Commit: 1c5b5265921e89f20c5f5b69c135c9a1acc2d1df
Parents: f1a6c7c
Author: rahulforallp <ra...@knoldus.in>
Authored: Thu May 10 16:17:39 2018 +0530
Committer: kumarvishal09 <ku...@gmail.com>
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++;
}
}
}