Copying patch for HIVE-13332. Signed-off-by: Owen O'Malley <[email protected]>
Project: http://git-wip-us.apache.org/repos/asf/orc/repo Commit: http://git-wip-us.apache.org/repos/asf/orc/commit/bfbdc504 Tree: http://git-wip-us.apache.org/repos/asf/orc/tree/bfbdc504 Diff: http://git-wip-us.apache.org/repos/asf/orc/diff/bfbdc504 Branch: refs/heads/master Commit: bfbdc504afd13e95a737824dd5e8bb0001eb33c8 Parents: 7bde940 Author: Owen O'Malley <[email protected]> Authored: Thu May 26 13:39:13 2016 -0700 Committer: Owen O'Malley <[email protected]> Committed: Thu May 26 13:48:31 2016 -0700 ---------------------------------------------------------------------- .../src/java/org/apache/orc/tools/FileDump.java | 24 +++++++++++++++----- .../java/org/apache/orc/tools/JsonFileDump.java | 10 ++++++-- 2 files changed, 26 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/orc/blob/bfbdc504/java/core/src/java/org/apache/orc/tools/FileDump.java ---------------------------------------------------------------------- diff --git a/java/core/src/java/org/apache/orc/tools/FileDump.java b/java/core/src/java/org/apache/orc/tools/FileDump.java index e32027f..1a1d8ab 100644 --- a/java/core/src/java/org/apache/orc/tools/FileDump.java +++ b/java/core/src/java/org/apache/orc/tools/FileDump.java @@ -96,7 +96,7 @@ public final class FileDump { public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); - List<Integer> rowIndexCols = null; + List<Integer> rowIndexCols = new ArrayList<Integer>(0); Options opts = createOptions(); CommandLine cli = new GnuParser().parse(opts, args); @@ -115,10 +115,15 @@ public final class FileDump { } if (cli.hasOption("r")) { - String[] colStrs = cli.getOptionValue("r").split(","); - rowIndexCols = new ArrayList<Integer>(colStrs.length); - for (String colStr : colStrs) { - rowIndexCols.add(Integer.parseInt(colStr)); + String val = cli.getOptionValue("r"); + if (val != null && val.trim().equals("*")) { + rowIndexCols = null; // All the columns + } else { + String[] colStrs = cli.getOptionValue("r").split(","); + rowIndexCols = new ArrayList<Integer>(colStrs.length); + for (String colStr : colStrs) { + rowIndexCols.add(Integer.parseInt(colStr)); + } } } @@ -317,7 +322,7 @@ public final class FileDump { } private static void printMetaDataImpl(final String filename, - final Configuration conf, final List<Integer> rowIndexCols, final boolean printTimeZone, + final Configuration conf, List<Integer> rowIndexCols, final boolean printTimeZone, final List<String> corruptFiles) throws IOException { Path file = new Path(filename); Reader reader = getReader(file, conf, corruptFiles); @@ -348,6 +353,12 @@ public final class FileDump { } ColumnStatistics[] stats = reader.getStatistics(); int colCount = stats.length; + if (rowIndexCols == null) { + rowIndexCols = new ArrayList<>(colCount); + for (int i = 0; i < colCount; ++i) { + rowIndexCols.add(i); + } + } System.out.println("\nFile Statistics:"); for (int i = 0; i < stats.length; ++i) { System.out.println(" Column " + i + ": " + stats[i].toString()); @@ -712,6 +723,7 @@ public final class FileDump { return paddedBytes; } + @SuppressWarnings("static-access") static Options createOptions() { Options result = new Options(); http://git-wip-us.apache.org/repos/asf/orc/blob/bfbdc504/java/core/src/java/org/apache/orc/tools/JsonFileDump.java ---------------------------------------------------------------------- diff --git a/java/core/src/java/org/apache/orc/tools/JsonFileDump.java b/java/core/src/java/org/apache/orc/tools/JsonFileDump.java index 75153a2..e2048ea 100644 --- a/java/core/src/java/org/apache/orc/tools/JsonFileDump.java +++ b/java/core/src/java/org/apache/orc/tools/JsonFileDump.java @@ -18,6 +18,7 @@ package org.apache.orc.tools; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import java.util.Set; @@ -114,6 +115,12 @@ public class JsonFileDump { ColumnStatistics[] stats = reader.getStatistics(); int colCount = stats.length; + if (rowIndexCols == null) { + rowIndexCols = new ArrayList<>(colCount); + for (int i = 0; i < colCount; ++i) { + rowIndexCols.add(i); + } + } writer.key("fileStatistics").array(); for (int i = 0; i < stats.length; ++i) { writer.object(); @@ -165,8 +172,7 @@ public class JsonFileDump { writer.endObject(); } writer.endArray(); - - if (rowIndexCols != null && !rowIndexCols.isEmpty()) { + if (!rowIndexCols.isEmpty()) { // include the columns that are specified, only if the columns are included, bloom filter // will be read boolean[] sargColumns = new boolean[colCount];
