[HOTFIX] carbon reader support open another reader without closing previous reader
[HOTFIX] carbon reader support open another reader without closing previous reader This closes #2790 Project: http://git-wip-us.apache.org/repos/asf/carbondata/repo Commit: http://git-wip-us.apache.org/repos/asf/carbondata/commit/6ef4e46b Tree: http://git-wip-us.apache.org/repos/asf/carbondata/tree/6ef4e46b Diff: http://git-wip-us.apache.org/repos/asf/carbondata/diff/6ef4e46b Branch: refs/heads/branch-1.5 Commit: 6ef4e46b0df2d3954788222943df09bf07fdb120 Parents: 9ca985f Author: ajantha-bhat <ajanthab...@gmail.com> Authored: Fri Sep 28 20:24:39 2018 +0530 Committer: ravipesala <ravi.pes...@gmail.com> Committed: Wed Oct 3 20:06:05 2018 +0530 ---------------------------------------------------------------------- .../hadoop/api/CarbonInputFormat.java | 26 ++++---------------- .../sdk/file/CarbonReaderBuilder.java | 7 ++---- .../carbondata/sdk/file/CarbonReaderTest.java | 3 +-- 3 files changed, 8 insertions(+), 28 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/carbondata/blob/6ef4e46b/hadoop/src/main/java/org/apache/carbondata/hadoop/api/CarbonInputFormat.java ---------------------------------------------------------------------- diff --git a/hadoop/src/main/java/org/apache/carbondata/hadoop/api/CarbonInputFormat.java b/hadoop/src/main/java/org/apache/carbondata/hadoop/api/CarbonInputFormat.java index db93cbd..ed82e13 100644 --- a/hadoop/src/main/java/org/apache/carbondata/hadoop/api/CarbonInputFormat.java +++ b/hadoop/src/main/java/org/apache/carbondata/hadoop/api/CarbonInputFormat.java @@ -774,29 +774,13 @@ m filterExpression */ public String[] projectAllColumns(CarbonTable carbonTable) { List<ColumnSchema> colList = carbonTable.getTableInfo().getFactTable().getListOfColumns(); - List<String> projectColumn = new ArrayList<>(); - // childCount will recursively count the number of children for any parent + List<String> projectColumns = new ArrayList<>(); // complex type and add just the parent column name while skipping the child columns. - int childDimCount = 0; - for (ColumnSchema cols : colList) { - if (cols.getSchemaOrdinal() != -1) { - if (childDimCount == 0) { - projectColumn.add(cols.getColumnName()); - } - if (childDimCount > 0) { - childDimCount--; - } - if (cols.getDataType().isComplexType()) { - childDimCount += cols.getNumberOfChild(); - } + for (ColumnSchema col : colList) { + if (!col.getColumnName().contains(".")) { + projectColumns.add(col.getColumnName()); } } - String[] projectionColumns = new String[projectColumn.size()]; - int i = 0; - for (String columnName : projectColumn) { - projectionColumns[i] = columnName; - i++; - } - return projectionColumns; + return projectColumns.toArray(new String[projectColumns.size()]); } } http://git-wip-us.apache.org/repos/asf/carbondata/blob/6ef4e46b/store/sdk/src/main/java/org/apache/carbondata/sdk/file/CarbonReaderBuilder.java ---------------------------------------------------------------------- diff --git a/store/sdk/src/main/java/org/apache/carbondata/sdk/file/CarbonReaderBuilder.java b/store/sdk/src/main/java/org/apache/carbondata/sdk/file/CarbonReaderBuilder.java index 151d57c..9651a8f 100644 --- a/store/sdk/src/main/java/org/apache/carbondata/sdk/file/CarbonReaderBuilder.java +++ b/store/sdk/src/main/java/org/apache/carbondata/sdk/file/CarbonReaderBuilder.java @@ -131,11 +131,8 @@ public class CarbonReaderBuilder { hadoopConf = FileFactory.getConfiguration(); } CarbonTable table; - if (filterExpression != null) { - table = CarbonTable.buildTable(tablePath, tableName, hadoopConf); - } else { - table = CarbonTable.buildDummyTable(tablePath); - } + // now always infer schema. TODO:Refactor in next version. + table = CarbonTable.buildTable(tablePath, tableName, hadoopConf); final CarbonFileInputFormat format = new CarbonFileInputFormat(); final Job job = new Job(hadoopConf); format.setTableInfo(job.getConfiguration(), table.getTableInfo()); http://git-wip-us.apache.org/repos/asf/carbondata/blob/6ef4e46b/store/sdk/src/test/java/org/apache/carbondata/sdk/file/CarbonReaderTest.java ---------------------------------------------------------------------- diff --git a/store/sdk/src/test/java/org/apache/carbondata/sdk/file/CarbonReaderTest.java b/store/sdk/src/test/java/org/apache/carbondata/sdk/file/CarbonReaderTest.java index 8d95456..ba8a49d 100644 --- a/store/sdk/src/test/java/org/apache/carbondata/sdk/file/CarbonReaderTest.java +++ b/store/sdk/src/test/java/org/apache/carbondata/sdk/file/CarbonReaderTest.java @@ -90,8 +90,6 @@ public class CarbonReaderTest extends TestCase { } Assert.assertEquals(i, 200); - reader.close(); - // Read again CarbonReader reader2 = CarbonReader .builder(path, "_temp") @@ -108,6 +106,7 @@ public class CarbonReaderTest extends TestCase { } Assert.assertEquals(i, 200); reader2.close(); + reader.close(); FileUtils.deleteDirectory(new File(path)); }