You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by om...@apache.org on 2017/07/19 16:58:59 UTC

[36/37] hive git commit: HIVE-17118. Move the hive-orc source files to make the package names unique.

http://git-wip-us.apache.org/repos/asf/hive/blob/df8921d8/orc/src/gen/protobuf-java/org/apache/hive/orc/OrcProto.java
----------------------------------------------------------------------
diff --git a/orc/src/gen/protobuf-java/org/apache/hive/orc/OrcProto.java b/orc/src/gen/protobuf-java/org/apache/hive/orc/OrcProto.java
new file mode 100644
index 0000000..963471b
--- /dev/null
+++ b/orc/src/gen/protobuf-java/org/apache/hive/orc/OrcProto.java
@@ -0,0 +1,20179 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: orc_proto.proto
+
+package org.apache.hive.orc;
+
+public final class OrcProto {
+  private OrcProto() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+  }
+  /**
+   * Protobuf enum {@code orc.proto.CompressionKind}
+   */
+  public enum CompressionKind
+      implements com.google.protobuf.ProtocolMessageEnum {
+    /**
+     * <code>NONE = 0;</code>
+     */
+    NONE(0, 0),
+    /**
+     * <code>ZLIB = 1;</code>
+     */
+    ZLIB(1, 1),
+    /**
+     * <code>SNAPPY = 2;</code>
+     */
+    SNAPPY(2, 2),
+    /**
+     * <code>LZO = 3;</code>
+     */
+    LZO(3, 3),
+    ;
+
+    /**
+     * <code>NONE = 0;</code>
+     */
+    public static final int NONE_VALUE = 0;
+    /**
+     * <code>ZLIB = 1;</code>
+     */
+    public static final int ZLIB_VALUE = 1;
+    /**
+     * <code>SNAPPY = 2;</code>
+     */
+    public static final int SNAPPY_VALUE = 2;
+    /**
+     * <code>LZO = 3;</code>
+     */
+    public static final int LZO_VALUE = 3;
+
+
+    public final int getNumber() { return value; }
+
+    public static CompressionKind valueOf(int value) {
+      switch (value) {
+        case 0: return NONE;
+        case 1: return ZLIB;
+        case 2: return SNAPPY;
+        case 3: return LZO;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap<CompressionKind>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static com.google.protobuf.Internal.EnumLiteMap<CompressionKind>
+        internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap<CompressionKind>() {
+            public CompressionKind findValueByNumber(int number) {
+              return CompressionKind.valueOf(number);
+            }
+          };
+
+    public final com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(index);
+    }
+    public final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return OrcProto.getDescriptor().getEnumTypes().get(0);
+    }
+
+    private static final CompressionKind[] VALUES = values();
+
+    public static CompressionKind valueOf(
+        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new java.lang.IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int index;
+    private final int value;
+
+    private CompressionKind(int index, int value) {
+      this.index = index;
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:orc.proto.CompressionKind)
+  }
+
+  public interface IntegerStatisticsOrBuilder
+      extends com.google.protobuf.MessageOrBuilder {
+
+    // optional sint64 minimum = 1;
+    /**
+     * <code>optional sint64 minimum = 1;</code>
+     */
+    boolean hasMinimum();
+    /**
+     * <code>optional sint64 minimum = 1;</code>
+     */
+    long getMinimum();
+
+    // optional sint64 maximum = 2;
+    /**
+     * <code>optional sint64 maximum = 2;</code>
+     */
+    boolean hasMaximum();
+    /**
+     * <code>optional sint64 maximum = 2;</code>
+     */
+    long getMaximum();
+
+    // optional sint64 sum = 3;
+    /**
+     * <code>optional sint64 sum = 3;</code>
+     */
+    boolean hasSum();
+    /**
+     * <code>optional sint64 sum = 3;</code>
+     */
+    long getSum();
+  }
+  /**
+   * Protobuf type {@code orc.proto.IntegerStatistics}
+   */
+  public static final class IntegerStatistics extends
+      com.google.protobuf.GeneratedMessage
+      implements IntegerStatisticsOrBuilder {
+    // Use IntegerStatistics.newBuilder() to construct.
+    private IntegerStatistics(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+      super(builder);
+      this.unknownFields = builder.getUnknownFields();
+    }
+    private IntegerStatistics(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+    private static final IntegerStatistics defaultInstance;
+    public static IntegerStatistics getDefaultInstance() {
+      return defaultInstance;
+    }
+
+    public IntegerStatistics getDefaultInstanceForType() {
+      return defaultInstance;
+    }
+
+    private final com.google.protobuf.UnknownFieldSet unknownFields;
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+        getUnknownFields() {
+      return this.unknownFields;
+    }
+    private IntegerStatistics(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      initFields();
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            default: {
+              if (!parseUnknownField(input, unknownFields,
+                                     extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+            case 8: {
+              bitField0_ |= 0x00000001;
+              minimum_ = input.readSInt64();
+              break;
+            }
+            case 16: {
+              bitField0_ |= 0x00000002;
+              maximum_ = input.readSInt64();
+              break;
+            }
+            case 24: {
+              bitField0_ |= 0x00000004;
+              sum_ = input.readSInt64();
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e.getMessage()).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return OrcProto.internal_static_orc_proto_IntegerStatistics_descriptor;
+    }
+
+    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return OrcProto.internal_static_orc_proto_IntegerStatistics_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              OrcProto.IntegerStatistics.class, OrcProto.IntegerStatistics.Builder.class);
+    }
+
+    public static com.google.protobuf.Parser<IntegerStatistics> PARSER =
+        new com.google.protobuf.AbstractParser<IntegerStatistics>() {
+      public IntegerStatistics parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new IntegerStatistics(input, extensionRegistry);
+      }
+    };
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<IntegerStatistics> getParserForType() {
+      return PARSER;
+    }
+
+    private int bitField0_;
+    // optional sint64 minimum = 1;
+    public static final int MINIMUM_FIELD_NUMBER = 1;
+    private long minimum_;
+    /**
+     * <code>optional sint64 minimum = 1;</code>
+     */
+    public boolean hasMinimum() {
+      return ((bitField0_ & 0x00000001) == 0x00000001);
+    }
+    /**
+     * <code>optional sint64 minimum = 1;</code>
+     */
+    public long getMinimum() {
+      return minimum_;
+    }
+
+    // optional sint64 maximum = 2;
+    public static final int MAXIMUM_FIELD_NUMBER = 2;
+    private long maximum_;
+    /**
+     * <code>optional sint64 maximum = 2;</code>
+     */
+    public boolean hasMaximum() {
+      return ((bitField0_ & 0x00000002) == 0x00000002);
+    }
+    /**
+     * <code>optional sint64 maximum = 2;</code>
+     */
+    public long getMaximum() {
+      return maximum_;
+    }
+
+    // optional sint64 sum = 3;
+    public static final int SUM_FIELD_NUMBER = 3;
+    private long sum_;
+    /**
+     * <code>optional sint64 sum = 3;</code>
+     */
+    public boolean hasSum() {
+      return ((bitField0_ & 0x00000004) == 0x00000004);
+    }
+    /**
+     * <code>optional sint64 sum = 3;</code>
+     */
+    public long getSum() {
+      return sum_;
+    }
+
+    private void initFields() {
+      minimum_ = 0L;
+      maximum_ = 0L;
+      sum_ = 0L;
+    }
+    private byte memoizedIsInitialized = -1;
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized != -1) return isInitialized == 1;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        output.writeSInt64(1, minimum_);
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        output.writeSInt64(2, maximum_);
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        output.writeSInt64(3, sum_);
+      }
+      getUnknownFields().writeTo(output);
+    }
+
+    private int memoizedSerializedSize = -1;
+    public int getSerializedSize() {
+      int size = memoizedSerializedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeSInt64Size(1, minimum_);
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeSInt64Size(2, maximum_);
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeSInt64Size(3, sum_);
+      }
+      size += getUnknownFields().getSerializedSize();
+      memoizedSerializedSize = size;
+      return size;
+    }
+
+    private static final long serialVersionUID = 0L;
+    @java.lang.Override
+    protected java.lang.Object writeReplace()
+        throws java.io.ObjectStreamException {
+      return super.writeReplace();
+    }
+
+    public static OrcProto.IntegerStatistics parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static OrcProto.IntegerStatistics parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static OrcProto.IntegerStatistics parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static OrcProto.IntegerStatistics parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static OrcProto.IntegerStatistics parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static OrcProto.IntegerStatistics parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+    public static OrcProto.IntegerStatistics parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input);
+    }
+    public static OrcProto.IntegerStatistics parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input, extensionRegistry);
+    }
+    public static OrcProto.IntegerStatistics parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static OrcProto.IntegerStatistics parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+
+    public static Builder newBuilder() { return Builder.create(); }
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder(OrcProto.IntegerStatistics prototype) {
+      return newBuilder().mergeFrom(prototype);
+    }
+    public Builder toBuilder() { return newBuilder(this); }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code orc.proto.IntegerStatistics}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessage.Builder<Builder>
+       implements OrcProto.IntegerStatisticsOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return OrcProto.internal_static_orc_proto_IntegerStatistics_descriptor;
+      }
+
+      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return OrcProto.internal_static_orc_proto_IntegerStatistics_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                OrcProto.IntegerStatistics.class, OrcProto.IntegerStatistics.Builder.class);
+      }
+
+      // Construct using OrcProto.IntegerStatistics.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+        }
+      }
+      private static Builder create() {
+        return new Builder();
+      }
+
+      public Builder clear() {
+        super.clear();
+        minimum_ = 0L;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        maximum_ = 0L;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        sum_ = 0L;
+        bitField0_ = (bitField0_ & ~0x00000004);
+        return this;
+      }
+
+      public Builder clone() {
+        return create().mergeFrom(buildPartial());
+      }
+
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return OrcProto.internal_static_orc_proto_IntegerStatistics_descriptor;
+      }
+
+      public OrcProto.IntegerStatistics getDefaultInstanceForType() {
+        return OrcProto.IntegerStatistics.getDefaultInstance();
+      }
+
+      public OrcProto.IntegerStatistics build() {
+        OrcProto.IntegerStatistics result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      public OrcProto.IntegerStatistics buildPartial() {
+        OrcProto.IntegerStatistics result = new OrcProto.IntegerStatistics(this);
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+          to_bitField0_ |= 0x00000001;
+        }
+        result.minimum_ = minimum_;
+        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+          to_bitField0_ |= 0x00000002;
+        }
+        result.maximum_ = maximum_;
+        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+          to_bitField0_ |= 0x00000004;
+        }
+        result.sum_ = sum_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
+      }
+
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof OrcProto.IntegerStatistics) {
+          return mergeFrom((OrcProto.IntegerStatistics)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(OrcProto.IntegerStatistics other) {
+        if (other == OrcProto.IntegerStatistics.getDefaultInstance()) return this;
+        if (other.hasMinimum()) {
+          setMinimum(other.getMinimum());
+        }
+        if (other.hasMaximum()) {
+          setMaximum(other.getMaximum());
+        }
+        if (other.hasSum()) {
+          setSum(other.getSum());
+        }
+        this.mergeUnknownFields(other.getUnknownFields());
+        return this;
+      }
+
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        OrcProto.IntegerStatistics parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (OrcProto.IntegerStatistics) e.getUnfinishedMessage();
+          throw e;
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      // optional sint64 minimum = 1;
+      private long minimum_ ;
+      /**
+       * <code>optional sint64 minimum = 1;</code>
+       */
+      public boolean hasMinimum() {
+        return ((bitField0_ & 0x00000001) == 0x00000001);
+      }
+      /**
+       * <code>optional sint64 minimum = 1;</code>
+       */
+      public long getMinimum() {
+        return minimum_;
+      }
+      /**
+       * <code>optional sint64 minimum = 1;</code>
+       */
+      public Builder setMinimum(long value) {
+        bitField0_ |= 0x00000001;
+        minimum_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional sint64 minimum = 1;</code>
+       */
+      public Builder clearMinimum() {
+        bitField0_ = (bitField0_ & ~0x00000001);
+        minimum_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      // optional sint64 maximum = 2;
+      private long maximum_ ;
+      /**
+       * <code>optional sint64 maximum = 2;</code>
+       */
+      public boolean hasMaximum() {
+        return ((bitField0_ & 0x00000002) == 0x00000002);
+      }
+      /**
+       * <code>optional sint64 maximum = 2;</code>
+       */
+      public long getMaximum() {
+        return maximum_;
+      }
+      /**
+       * <code>optional sint64 maximum = 2;</code>
+       */
+      public Builder setMaximum(long value) {
+        bitField0_ |= 0x00000002;
+        maximum_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional sint64 maximum = 2;</code>
+       */
+      public Builder clearMaximum() {
+        bitField0_ = (bitField0_ & ~0x00000002);
+        maximum_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      // optional sint64 sum = 3;
+      private long sum_ ;
+      /**
+       * <code>optional sint64 sum = 3;</code>
+       */
+      public boolean hasSum() {
+        return ((bitField0_ & 0x00000004) == 0x00000004);
+      }
+      /**
+       * <code>optional sint64 sum = 3;</code>
+       */
+      public long getSum() {
+        return sum_;
+      }
+      /**
+       * <code>optional sint64 sum = 3;</code>
+       */
+      public Builder setSum(long value) {
+        bitField0_ |= 0x00000004;
+        sum_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional sint64 sum = 3;</code>
+       */
+      public Builder clearSum() {
+        bitField0_ = (bitField0_ & ~0x00000004);
+        sum_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      // @@protoc_insertion_point(builder_scope:orc.proto.IntegerStatistics)
+    }
+
+    static {
+      defaultInstance = new IntegerStatistics(true);
+      defaultInstance.initFields();
+    }
+
+    // @@protoc_insertion_point(class_scope:orc.proto.IntegerStatistics)
+  }
+
+  public interface DoubleStatisticsOrBuilder
+      extends com.google.protobuf.MessageOrBuilder {
+
+    // optional double minimum = 1;
+    /**
+     * <code>optional double minimum = 1;</code>
+     */
+    boolean hasMinimum();
+    /**
+     * <code>optional double minimum = 1;</code>
+     */
+    double getMinimum();
+
+    // optional double maximum = 2;
+    /**
+     * <code>optional double maximum = 2;</code>
+     */
+    boolean hasMaximum();
+    /**
+     * <code>optional double maximum = 2;</code>
+     */
+    double getMaximum();
+
+    // optional double sum = 3;
+    /**
+     * <code>optional double sum = 3;</code>
+     */
+    boolean hasSum();
+    /**
+     * <code>optional double sum = 3;</code>
+     */
+    double getSum();
+  }
+  /**
+   * Protobuf type {@code orc.proto.DoubleStatistics}
+   */
+  public static final class DoubleStatistics extends
+      com.google.protobuf.GeneratedMessage
+      implements DoubleStatisticsOrBuilder {
+    // Use DoubleStatistics.newBuilder() to construct.
+    private DoubleStatistics(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+      super(builder);
+      this.unknownFields = builder.getUnknownFields();
+    }
+    private DoubleStatistics(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+    private static final DoubleStatistics defaultInstance;
+    public static DoubleStatistics getDefaultInstance() {
+      return defaultInstance;
+    }
+
+    public DoubleStatistics getDefaultInstanceForType() {
+      return defaultInstance;
+    }
+
+    private final com.google.protobuf.UnknownFieldSet unknownFields;
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+        getUnknownFields() {
+      return this.unknownFields;
+    }
+    private DoubleStatistics(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      initFields();
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            default: {
+              if (!parseUnknownField(input, unknownFields,
+                                     extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+            case 9: {
+              bitField0_ |= 0x00000001;
+              minimum_ = input.readDouble();
+              break;
+            }
+            case 17: {
+              bitField0_ |= 0x00000002;
+              maximum_ = input.readDouble();
+              break;
+            }
+            case 25: {
+              bitField0_ |= 0x00000004;
+              sum_ = input.readDouble();
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e.getMessage()).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return OrcProto.internal_static_orc_proto_DoubleStatistics_descriptor;
+    }
+
+    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return OrcProto.internal_static_orc_proto_DoubleStatistics_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              OrcProto.DoubleStatistics.class, OrcProto.DoubleStatistics.Builder.class);
+    }
+
+    public static com.google.protobuf.Parser<DoubleStatistics> PARSER =
+        new com.google.protobuf.AbstractParser<DoubleStatistics>() {
+      public DoubleStatistics parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new DoubleStatistics(input, extensionRegistry);
+      }
+    };
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<DoubleStatistics> getParserForType() {
+      return PARSER;
+    }
+
+    private int bitField0_;
+    // optional double minimum = 1;
+    public static final int MINIMUM_FIELD_NUMBER = 1;
+    private double minimum_;
+    /**
+     * <code>optional double minimum = 1;</code>
+     */
+    public boolean hasMinimum() {
+      return ((bitField0_ & 0x00000001) == 0x00000001);
+    }
+    /**
+     * <code>optional double minimum = 1;</code>
+     */
+    public double getMinimum() {
+      return minimum_;
+    }
+
+    // optional double maximum = 2;
+    public static final int MAXIMUM_FIELD_NUMBER = 2;
+    private double maximum_;
+    /**
+     * <code>optional double maximum = 2;</code>
+     */
+    public boolean hasMaximum() {
+      return ((bitField0_ & 0x00000002) == 0x00000002);
+    }
+    /**
+     * <code>optional double maximum = 2;</code>
+     */
+    public double getMaximum() {
+      return maximum_;
+    }
+
+    // optional double sum = 3;
+    public static final int SUM_FIELD_NUMBER = 3;
+    private double sum_;
+    /**
+     * <code>optional double sum = 3;</code>
+     */
+    public boolean hasSum() {
+      return ((bitField0_ & 0x00000004) == 0x00000004);
+    }
+    /**
+     * <code>optional double sum = 3;</code>
+     */
+    public double getSum() {
+      return sum_;
+    }
+
+    private void initFields() {
+      minimum_ = 0D;
+      maximum_ = 0D;
+      sum_ = 0D;
+    }
+    private byte memoizedIsInitialized = -1;
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized != -1) return isInitialized == 1;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        output.writeDouble(1, minimum_);
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        output.writeDouble(2, maximum_);
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        output.writeDouble(3, sum_);
+      }
+      getUnknownFields().writeTo(output);
+    }
+
+    private int memoizedSerializedSize = -1;
+    public int getSerializedSize() {
+      int size = memoizedSerializedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeDoubleSize(1, minimum_);
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeDoubleSize(2, maximum_);
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeDoubleSize(3, sum_);
+      }
+      size += getUnknownFields().getSerializedSize();
+      memoizedSerializedSize = size;
+      return size;
+    }
+
+    private static final long serialVersionUID = 0L;
+    @java.lang.Override
+    protected java.lang.Object writeReplace()
+        throws java.io.ObjectStreamException {
+      return super.writeReplace();
+    }
+
+    public static OrcProto.DoubleStatistics parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static OrcProto.DoubleStatistics parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static OrcProto.DoubleStatistics parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static OrcProto.DoubleStatistics parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static OrcProto.DoubleStatistics parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static OrcProto.DoubleStatistics parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+    public static OrcProto.DoubleStatistics parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input);
+    }
+    public static OrcProto.DoubleStatistics parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input, extensionRegistry);
+    }
+    public static OrcProto.DoubleStatistics parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static OrcProto.DoubleStatistics parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+
+    public static Builder newBuilder() { return Builder.create(); }
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder(OrcProto.DoubleStatistics prototype) {
+      return newBuilder().mergeFrom(prototype);
+    }
+    public Builder toBuilder() { return newBuilder(this); }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code orc.proto.DoubleStatistics}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessage.Builder<Builder>
+       implements OrcProto.DoubleStatisticsOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return OrcProto.internal_static_orc_proto_DoubleStatistics_descriptor;
+      }
+
+      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return OrcProto.internal_static_orc_proto_DoubleStatistics_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                OrcProto.DoubleStatistics.class, OrcProto.DoubleStatistics.Builder.class);
+      }
+
+      // Construct using OrcProto.DoubleStatistics.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+        }
+      }
+      private static Builder create() {
+        return new Builder();
+      }
+
+      public Builder clear() {
+        super.clear();
+        minimum_ = 0D;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        maximum_ = 0D;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        sum_ = 0D;
+        bitField0_ = (bitField0_ & ~0x00000004);
+        return this;
+      }
+
+      public Builder clone() {
+        return create().mergeFrom(buildPartial());
+      }
+
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return OrcProto.internal_static_orc_proto_DoubleStatistics_descriptor;
+      }
+
+      public OrcProto.DoubleStatistics getDefaultInstanceForType() {
+        return OrcProto.DoubleStatistics.getDefaultInstance();
+      }
+
+      public OrcProto.DoubleStatistics build() {
+        OrcProto.DoubleStatistics result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      public OrcProto.DoubleStatistics buildPartial() {
+        OrcProto.DoubleStatistics result = new OrcProto.DoubleStatistics(this);
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+          to_bitField0_ |= 0x00000001;
+        }
+        result.minimum_ = minimum_;
+        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+          to_bitField0_ |= 0x00000002;
+        }
+        result.maximum_ = maximum_;
+        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+          to_bitField0_ |= 0x00000004;
+        }
+        result.sum_ = sum_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
+      }
+
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof OrcProto.DoubleStatistics) {
+          return mergeFrom((OrcProto.DoubleStatistics)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(OrcProto.DoubleStatistics other) {
+        if (other == OrcProto.DoubleStatistics.getDefaultInstance()) return this;
+        if (other.hasMinimum()) {
+          setMinimum(other.getMinimum());
+        }
+        if (other.hasMaximum()) {
+          setMaximum(other.getMaximum());
+        }
+        if (other.hasSum()) {
+          setSum(other.getSum());
+        }
+        this.mergeUnknownFields(other.getUnknownFields());
+        return this;
+      }
+
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        OrcProto.DoubleStatistics parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (OrcProto.DoubleStatistics) e.getUnfinishedMessage();
+          throw e;
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      // optional double minimum = 1;
+      private double minimum_ ;
+      /**
+       * <code>optional double minimum = 1;</code>
+       */
+      public boolean hasMinimum() {
+        return ((bitField0_ & 0x00000001) == 0x00000001);
+      }
+      /**
+       * <code>optional double minimum = 1;</code>
+       */
+      public double getMinimum() {
+        return minimum_;
+      }
+      /**
+       * <code>optional double minimum = 1;</code>
+       */
+      public Builder setMinimum(double value) {
+        bitField0_ |= 0x00000001;
+        minimum_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional double minimum = 1;</code>
+       */
+      public Builder clearMinimum() {
+        bitField0_ = (bitField0_ & ~0x00000001);
+        minimum_ = 0D;
+        onChanged();
+        return this;
+      }
+
+      // optional double maximum = 2;
+      private double maximum_ ;
+      /**
+       * <code>optional double maximum = 2;</code>
+       */
+      public boolean hasMaximum() {
+        return ((bitField0_ & 0x00000002) == 0x00000002);
+      }
+      /**
+       * <code>optional double maximum = 2;</code>
+       */
+      public double getMaximum() {
+        return maximum_;
+      }
+      /**
+       * <code>optional double maximum = 2;</code>
+       */
+      public Builder setMaximum(double value) {
+        bitField0_ |= 0x00000002;
+        maximum_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional double maximum = 2;</code>
+       */
+      public Builder clearMaximum() {
+        bitField0_ = (bitField0_ & ~0x00000002);
+        maximum_ = 0D;
+        onChanged();
+        return this;
+      }
+
+      // optional double sum = 3;
+      private double sum_ ;
+      /**
+       * <code>optional double sum = 3;</code>
+       */
+      public boolean hasSum() {
+        return ((bitField0_ & 0x00000004) == 0x00000004);
+      }
+      /**
+       * <code>optional double sum = 3;</code>
+       */
+      public double getSum() {
+        return sum_;
+      }
+      /**
+       * <code>optional double sum = 3;</code>
+       */
+      public Builder setSum(double value) {
+        bitField0_ |= 0x00000004;
+        sum_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional double sum = 3;</code>
+       */
+      public Builder clearSum() {
+        bitField0_ = (bitField0_ & ~0x00000004);
+        sum_ = 0D;
+        onChanged();
+        return this;
+      }
+
+      // @@protoc_insertion_point(builder_scope:orc.proto.DoubleStatistics)
+    }
+
+    static {
+      defaultInstance = new DoubleStatistics(true);
+      defaultInstance.initFields();
+    }
+
+    // @@protoc_insertion_point(class_scope:orc.proto.DoubleStatistics)
+  }
+
+  public interface StringStatisticsOrBuilder
+      extends com.google.protobuf.MessageOrBuilder {
+
+    // optional string minimum = 1;
+    /**
+     * <code>optional string minimum = 1;</code>
+     */
+    boolean hasMinimum();
+    /**
+     * <code>optional string minimum = 1;</code>
+     */
+    java.lang.String getMinimum();
+    /**
+     * <code>optional string minimum = 1;</code>
+     */
+    com.google.protobuf.ByteString
+        getMinimumBytes();
+
+    // optional string maximum = 2;
+    /**
+     * <code>optional string maximum = 2;</code>
+     */
+    boolean hasMaximum();
+    /**
+     * <code>optional string maximum = 2;</code>
+     */
+    java.lang.String getMaximum();
+    /**
+     * <code>optional string maximum = 2;</code>
+     */
+    com.google.protobuf.ByteString
+        getMaximumBytes();
+
+    // optional sint64 sum = 3;
+    /**
+     * <code>optional sint64 sum = 3;</code>
+     *
+     * <pre>
+     * sum will store the total length of all strings in a stripe
+     * </pre>
+     */
+    boolean hasSum();
+    /**
+     * <code>optional sint64 sum = 3;</code>
+     *
+     * <pre>
+     * sum will store the total length of all strings in a stripe
+     * </pre>
+     */
+    long getSum();
+  }
+  /**
+   * Protobuf type {@code orc.proto.StringStatistics}
+   */
+  public static final class StringStatistics extends
+      com.google.protobuf.GeneratedMessage
+      implements StringStatisticsOrBuilder {
+    // Use StringStatistics.newBuilder() to construct.
+    private StringStatistics(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+      super(builder);
+      this.unknownFields = builder.getUnknownFields();
+    }
+    private StringStatistics(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+    private static final StringStatistics defaultInstance;
+    public static StringStatistics getDefaultInstance() {
+      return defaultInstance;
+    }
+
+    public StringStatistics getDefaultInstanceForType() {
+      return defaultInstance;
+    }
+
+    private final com.google.protobuf.UnknownFieldSet unknownFields;
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+        getUnknownFields() {
+      return this.unknownFields;
+    }
+    private StringStatistics(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      initFields();
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            default: {
+              if (!parseUnknownField(input, unknownFields,
+                                     extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+            case 10: {
+              bitField0_ |= 0x00000001;
+              minimum_ = input.readBytes();
+              break;
+            }
+            case 18: {
+              bitField0_ |= 0x00000002;
+              maximum_ = input.readBytes();
+              break;
+            }
+            case 24: {
+              bitField0_ |= 0x00000004;
+              sum_ = input.readSInt64();
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e.getMessage()).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return OrcProto.internal_static_orc_proto_StringStatistics_descriptor;
+    }
+
+    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return OrcProto.internal_static_orc_proto_StringStatistics_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              OrcProto.StringStatistics.class, OrcProto.StringStatistics.Builder.class);
+    }
+
+    public static com.google.protobuf.Parser<StringStatistics> PARSER =
+        new com.google.protobuf.AbstractParser<StringStatistics>() {
+      public StringStatistics parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new StringStatistics(input, extensionRegistry);
+      }
+    };
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<StringStatistics> getParserForType() {
+      return PARSER;
+    }
+
+    private int bitField0_;
+    // optional string minimum = 1;
+    public static final int MINIMUM_FIELD_NUMBER = 1;
+    private java.lang.Object minimum_;
+    /**
+     * <code>optional string minimum = 1;</code>
+     */
+    public boolean hasMinimum() {
+      return ((bitField0_ & 0x00000001) == 0x00000001);
+    }
+    /**
+     * <code>optional string minimum = 1;</code>
+     */
+    public java.lang.String getMinimum() {
+      java.lang.Object ref = minimum_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs =
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        if (bs.isValidUtf8()) {
+          minimum_ = s;
+        }
+        return s;
+      }
+    }
+    /**
+     * <code>optional string minimum = 1;</code>
+     */
+    public com.google.protobuf.ByteString
+        getMinimumBytes() {
+      java.lang.Object ref = minimum_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        minimum_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    // optional string maximum = 2;
+    public static final int MAXIMUM_FIELD_NUMBER = 2;
+    private java.lang.Object maximum_;
+    /**
+     * <code>optional string maximum = 2;</code>
+     */
+    public boolean hasMaximum() {
+      return ((bitField0_ & 0x00000002) == 0x00000002);
+    }
+    /**
+     * <code>optional string maximum = 2;</code>
+     */
+    public java.lang.String getMaximum() {
+      java.lang.Object ref = maximum_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs =
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        if (bs.isValidUtf8()) {
+          maximum_ = s;
+        }
+        return s;
+      }
+    }
+    /**
+     * <code>optional string maximum = 2;</code>
+     */
+    public com.google.protobuf.ByteString
+        getMaximumBytes() {
+      java.lang.Object ref = maximum_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        maximum_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    // optional sint64 sum = 3;
+    public static final int SUM_FIELD_NUMBER = 3;
+    private long sum_;
+    /**
+     * <code>optional sint64 sum = 3;</code>
+     *
+     * <pre>
+     * sum will store the total length of all strings in a stripe
+     * </pre>
+     */
+    public boolean hasSum() {
+      return ((bitField0_ & 0x00000004) == 0x00000004);
+    }
+    /**
+     * <code>optional sint64 sum = 3;</code>
+     *
+     * <pre>
+     * sum will store the total length of all strings in a stripe
+     * </pre>
+     */
+    public long getSum() {
+      return sum_;
+    }
+
+    private void initFields() {
+      minimum_ = "";
+      maximum_ = "";
+      sum_ = 0L;
+    }
+    private byte memoizedIsInitialized = -1;
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized != -1) return isInitialized == 1;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        output.writeBytes(1, getMinimumBytes());
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        output.writeBytes(2, getMaximumBytes());
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        output.writeSInt64(3, sum_);
+      }
+      getUnknownFields().writeTo(output);
+    }
+
+    private int memoizedSerializedSize = -1;
+    public int getSerializedSize() {
+      int size = memoizedSerializedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBytesSize(1, getMinimumBytes());
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBytesSize(2, getMaximumBytes());
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeSInt64Size(3, sum_);
+      }
+      size += getUnknownFields().getSerializedSize();
+      memoizedSerializedSize = size;
+      return size;
+    }
+
+    private static final long serialVersionUID = 0L;
+    @java.lang.Override
+    protected java.lang.Object writeReplace()
+        throws java.io.ObjectStreamException {
+      return super.writeReplace();
+    }
+
+    public static OrcProto.StringStatistics parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static OrcProto.StringStatistics parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static OrcProto.StringStatistics parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static OrcProto.StringStatistics parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static OrcProto.StringStatistics parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static OrcProto.StringStatistics parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+    public static OrcProto.StringStatistics parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input);
+    }
+    public static OrcProto.StringStatistics parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input, extensionRegistry);
+    }
+    public static OrcProto.StringStatistics parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static OrcProto.StringStatistics parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+
+    public static Builder newBuilder() { return Builder.create(); }
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder(OrcProto.StringStatistics prototype) {
+      return newBuilder().mergeFrom(prototype);
+    }
+    public Builder toBuilder() { return newBuilder(this); }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code orc.proto.StringStatistics}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessage.Builder<Builder>
+       implements OrcProto.StringStatisticsOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return OrcProto.internal_static_orc_proto_StringStatistics_descriptor;
+      }
+
+      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return OrcProto.internal_static_orc_proto_StringStatistics_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                OrcProto.StringStatistics.class, OrcProto.StringStatistics.Builder.class);
+      }
+
+      // Construct using OrcProto.StringStatistics.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+        }
+      }
+      private static Builder create() {
+        return new Builder();
+      }
+
+      public Builder clear() {
+        super.clear();
+        minimum_ = "";
+        bitField0_ = (bitField0_ & ~0x00000001);
+        maximum_ = "";
+        bitField0_ = (bitField0_ & ~0x00000002);
+        sum_ = 0L;
+        bitField0_ = (bitField0_ & ~0x00000004);
+        return this;
+      }
+
+      public Builder clone() {
+        return create().mergeFrom(buildPartial());
+      }
+
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return OrcProto.internal_static_orc_proto_StringStatistics_descriptor;
+      }
+
+      public OrcProto.StringStatistics getDefaultInstanceForType() {
+        return OrcProto.StringStatistics.getDefaultInstance();
+      }
+
+      public OrcProto.StringStatistics build() {
+        OrcProto.StringStatistics result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      public OrcProto.StringStatistics buildPartial() {
+        OrcProto.StringStatistics result = new OrcProto.StringStatistics(this);
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+          to_bitField0_ |= 0x00000001;
+        }
+        result.minimum_ = minimum_;
+        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+          to_bitField0_ |= 0x00000002;
+        }
+        result.maximum_ = maximum_;
+        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+          to_bitField0_ |= 0x00000004;
+        }
+        result.sum_ = sum_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
+      }
+
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof OrcProto.StringStatistics) {
+          return mergeFrom((OrcProto.StringStatistics)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(OrcProto.StringStatistics other) {
+        if (other == OrcProto.StringStatistics.getDefaultInstance()) return this;
+        if (other.hasMinimum()) {
+          bitField0_ |= 0x00000001;
+          minimum_ = other.minimum_;
+          onChanged();
+        }
+        if (other.hasMaximum()) {
+          bitField0_ |= 0x00000002;
+          maximum_ = other.maximum_;
+          onChanged();
+        }
+        if (other.hasSum()) {
+          setSum(other.getSum());
+        }
+        this.mergeUnknownFields(other.getUnknownFields());
+        return this;
+      }
+
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        OrcProto.StringStatistics parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (OrcProto.StringStatistics) e.getUnfinishedMessage();
+          throw e;
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      // optional string minimum = 1;
+      private java.lang.Object minimum_ = "";
+      /**
+       * <code>optional string minimum = 1;</code>
+       */
+      public boolean hasMinimum() {
+        return ((bitField0_ & 0x00000001) == 0x00000001);
+      }
+      /**
+       * <code>optional string minimum = 1;</code>
+       */
+      public java.lang.String getMinimum() {
+        java.lang.Object ref = minimum_;
+        if (!(ref instanceof java.lang.String)) {
+          java.lang.String s = ((com.google.protobuf.ByteString) ref)
+              .toStringUtf8();
+          minimum_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>optional string minimum = 1;</code>
+       */
+      public com.google.protobuf.ByteString
+          getMinimumBytes() {
+        java.lang.Object ref = minimum_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b =
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          minimum_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>optional string minimum = 1;</code>
+       */
+      public Builder setMinimum(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
+        minimum_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string minimum = 1;</code>
+       */
+      public Builder clearMinimum() {
+        bitField0_ = (bitField0_ & ~0x00000001);
+        minimum_ = getDefaultInstance().getMinimum();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string minimum = 1;</code>
+       */
+      public Builder setMinimumBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
+        minimum_ = value;
+        onChanged();
+        return this;
+      }
+
+      // optional string maximum = 2;
+      private java.lang.Object maximum_ = "";
+      /**
+       * <code>optional string maximum = 2;</code>
+       */
+      public boolean hasMaximum() {
+        return ((bitField0_ & 0x00000002) == 0x00000002);
+      }
+      /**
+       * <code>optional string maximum = 2;</code>
+       */
+      public java.lang.String getMaximum() {
+        java.lang.Object ref = maximum_;
+        if (!(ref instanceof java.lang.String)) {
+          java.lang.String s = ((com.google.protobuf.ByteString) ref)
+              .toStringUtf8();
+          maximum_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>optional string maximum = 2;</code>
+       */
+      public com.google.protobuf.ByteString
+          getMaximumBytes() {
+        java.lang.Object ref = maximum_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b =
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          maximum_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>optional string maximum = 2;</code>
+       */
+      public Builder setMaximum(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000002;
+        maximum_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string maximum = 2;</code>
+       */
+      public Builder clearMaximum() {
+        bitField0_ = (bitField0_ & ~0x00000002);
+        maximum_ = getDefaultInstance().getMaximum();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string maximum = 2;</code>
+       */
+      public Builder setMaximumBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000002;
+        maximum_ = value;
+        onChanged();
+        return this;
+      }
+
+      // optional sint64 sum = 3;
+      private long sum_ ;
+      /**
+       * <code>optional sint64 sum = 3;</code>
+       *
+       * <pre>
+       * sum will store the total length of all strings in a stripe
+       * </pre>
+       */
+      public boolean hasSum() {
+        return ((bitField0_ & 0x00000004) == 0x00000004);
+      }
+      /**
+       * <code>optional sint64 sum = 3;</code>
+       *
+       * <pre>
+       * sum will store the total length of all strings in a stripe
+       * </pre>
+       */
+      public long getSum() {
+        return sum_;
+      }
+      /**
+       * <code>optional sint64 sum = 3;</code>
+       *
+       * <pre>
+       * sum will store the total length of all strings in a stripe
+       * </pre>
+       */
+      public Builder setSum(long value) {
+        bitField0_ |= 0x00000004;
+        sum_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional sint64 sum = 3;</code>
+       *
+       * <pre>
+       * sum will store the total length of all strings in a stripe
+       * </pre>
+       */
+      public Builder clearSum() {
+        bitField0_ = (bitField0_ & ~0x00000004);
+        sum_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      // @@protoc_insertion_point(builder_scope:orc.proto.StringStatistics)
+    }
+
+    static {
+      defaultInstance = new StringStatistics(true);
+      defaultInstance.initFields();
+    }
+
+    // @@protoc_insertion_point(class_scope:orc.proto.StringStatistics)
+  }
+
+  public interface BucketStatisticsOrBuilder
+      extends com.google.protobuf.MessageOrBuilder {
+
+    // repeated uint64 count = 1 [packed = true];
+    /**
+     * <code>repeated uint64 count = 1 [packed = true];</code>
+     */
+    java.util.List<java.lang.Long> getCountList();
+    /**
+     * <code>repeated uint64 count = 1 [packed = true];</code>
+     */
+    int getCountCount();
+    /**
+     * <code>repeated uint64 count = 1 [packed = true];</code>
+     */
+    long getCount(int index);
+  }
+  /**
+   * Protobuf type {@code orc.proto.BucketStatistics}
+   */
+  public static final class BucketStatistics extends
+      com.google.protobuf.GeneratedMessage
+      implements BucketStatisticsOrBuilder {
+    // Use BucketStatistics.newBuilder() to construct.
+    private BucketStatistics(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+      super(builder);
+      this.unknownFields = builder.getUnknownFields();
+    }
+    private BucketStatistics(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+    private static final BucketStatistics defaultInstance;
+    public static BucketStatistics getDefaultInstance() {
+      return defaultInstance;
+    }
+
+    public BucketStatistics getDefaultInstanceForType() {
+      return defaultInstance;
+    }
+
+    private final com.google.protobuf.UnknownFieldSet unknownFields;
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+        getUnknownFields() {
+      return this.unknownFields;
+    }
+    private BucketStatistics(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      initFields();
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            default: {
+              if (!parseUnknownField(input, unknownFields,
+                                     extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+            case 8: {
+              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
+                count_ = new java.util.ArrayList<java.lang.Long>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              count_.add(input.readUInt64());
+              break;
+            }
+            case 10: {
+              int length = input.readRawVarint32();
+              int limit = input.pushLimit(length);
+              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001) && input.getBytesUntilLimit() > 0) {
+                count_ = new java.util.ArrayList<java.lang.Long>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              while (input.getBytesUntilLimit() > 0) {
+                count_.add(input.readUInt64());
+              }
+              input.popLimit(limit);
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e.getMessage()).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
+          count_ = java.util.Collections.unmodifiableList(count_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return OrcProto.internal_static_orc_proto_BucketStatistics_descriptor;
+    }
+
+    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return OrcProto.internal_static_orc_proto_BucketStatistics_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              OrcProto.BucketStatistics.class, OrcProto.BucketStatistics.Builder.class);
+    }
+
+    public static com.google.protobuf.Parser<BucketStatistics> PARSER =
+        new com.google.protobuf.AbstractParser<BucketStatistics>() {
+      public BucketStatistics parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new BucketStatistics(input, extensionRegistry);
+      }
+    };
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<BucketStatistics> getParserForType() {
+      return PARSER;
+    }
+
+    // repeated uint64 count = 1 [packed = true];
+    public static final int COUNT_FIELD_NUMBER = 1;
+    private java.util.List<java.lang.Long> count_;
+    /**
+     * <code>repeated uint64 count = 1 [packed = true];</code>
+     */
+    public java.util.List<java.lang.Long>
+        getCountList() {
+      return count_;
+    }
+    /**
+     * <code>repeated uint64 count = 1 [packed = true];</code>
+     */
+    public int getCountCount() {
+      return count_.size();
+    }
+    /**
+     * <code>repeated uint64 count = 1 [packed = true];</code>
+     */
+    public long getCount(int index) {
+      return count_.get(index);
+    }
+    private int countMemoizedSerializedSize = -1;
+
+    private void initFields() {
+      count_ = java.util.Collections.emptyList();
+    }
+    private byte memoizedIsInitialized = -1;
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized != -1) return isInitialized == 1;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      if (getCountList().size() > 0) {
+        output.writeRawVarint32(10);
+        output.writeRawVarint32(countMemoizedSerializedSize);
+      }
+      for (int i = 0; i < count_.size(); i++) {
+        output.writeUInt64NoTag(count_.get(i));
+      }
+      getUnknownFields().writeTo(output);
+    }
+
+    private int memoizedSerializedSize = -1;
+    public int getSerializedSize() {
+      int size = memoizedSerializedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      {
+        int dataSize = 0;
+        for (int i = 0; i < count_.size(); i++) {
+          dataSize += com.google.protobuf.CodedOutputStream
+            .computeUInt64SizeNoTag(count_.get(i));
+        }
+        size += dataSize;
+        if (!getCountList().isEmpty()) {
+          size += 1;
+          size += com.google.protobuf.CodedOutputStream
+              .computeInt32SizeNoTag(dataSize);
+        }
+        countMemoizedSerializedSize = dataSize;
+      }
+      size += getUnknownFields().getSerializedSize();
+      memoizedSerializedSize = size;
+      return size;
+    }
+
+    private static final long serialVersionUID = 0L;
+    @java.lang.Override
+    protected java.lang.Object writeReplace()
+        throws java.io.ObjectStreamException {
+      return super.writeReplace();
+    }
+
+    public static OrcProto.BucketStatistics parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static OrcProto.BucketStatistics parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static OrcProto.BucketStatistics parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static OrcProto.BucketStatistics parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static OrcProto.BucketStatistics parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static OrcProto.BucketStatistics parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+    public static OrcProto.BucketStatistics parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input);
+    }
+    public static OrcProto.BucketStatistics parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input, extensionRegistry);
+    }
+    public static OrcProto.BucketStatistics parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static OrcProto.BucketStatistics parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+
+    public static Builder newBuilder() { return Builder.create(); }
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder(OrcProto.BucketStatistics prototype) {
+      return newBuilder().mergeFrom(prototype);
+    }
+    public Builder toBuilder() { return newBuilder(this); }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code orc.proto.BucketStatistics}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessage.Builder<Builder>
+       implements OrcProto.BucketStatisticsOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return OrcProto.internal_static_orc_proto_BucketStatistics_descriptor;
+      }
+
+      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return OrcProto.internal_static_orc_proto_BucketStatistics_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                OrcProto.BucketStatistics.class, OrcProto.BucketStatistics.Builder.class);
+      }
+
+      // Construct using OrcProto.BucketStatistics.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+        }
+      }
+      private static Builder create() {
+        return new Builder();
+      }
+
+      public Builder clear() {
+        super.clear();
+        count_ = java.util.Collections.emptyList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        return this;
+      }
+
+      public Builder clone() {
+        return create().mergeFrom(buildPartial());
+      }
+
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return OrcProto.internal_static_orc_proto_BucketStatistics_descriptor;
+      }
+
+      public OrcProto.BucketStatistics getDefaultInstanceForType() {
+        return OrcProto.BucketStatistics.getDefaultInstance();
+      }
+
+      public OrcProto.BucketStatistics build() {
+        OrcProto.BucketStatistics result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      public OrcProto.BucketStatistics buildPartial() {
+        OrcProto.BucketStatistics result = new OrcProto.BucketStatistics(this);
+        int from_bitField0_ = bitField0_;
+        if (((bitField0_ & 0x00000001) == 0x00000001)) {
+          count_ = java.util.Collections.unmodifiableList(count_);
+          bitField0_ = (bitField0_ & ~0x00000001);
+        }
+        result.count_ = count_;
+        onBuilt();
+        return result;
+      }
+
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof OrcProto.BucketStatistics) {
+          return mergeFrom((OrcProto.BucketStatistics)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(OrcProto.BucketStatistics other) {
+        if (other == OrcProto.BucketStatistics.getDefaultInstance()) return this;
+        if (!other.count_.isEmpty()) {
+          if (count_.isEmpty()) {
+            count_ = other.count_;
+            bitField0_ = (bitField0_ & ~0x00000001);
+          } else {
+            ensureCountIsMutable();
+            count_.addAll(other.count_);
+          }
+          onChanged();
+        }
+        this.mergeUnknownFields(other.getUnknownFields());
+        return this;
+      }
+
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        OrcProto.BucketStatistics parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (OrcProto.BucketStatistics) e.getUnfinishedMessage();
+          throw e;
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      // repeated uint64 count = 1 [packed = true];
+      private java.util.List<java.lang.Long> count_ = java.util.Collections.emptyList();
+      private void ensureCountIsMutable() {
+        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
+          count_ = new java.util.ArrayList<java.lang.Long>(count_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+      /**
+       * <code>repeated uint64 count = 1 [packed = true];</code>
+       */
+      public java.util.List<java.lang.Long>
+          getCountList() {
+        return java.util.Collections.unmodifiableList(count_);
+      }
+      /**
+       * <code>repeated uint64 count = 1 [packed = true];</code>
+       */
+      public int getCountCount() {
+        return count_.size();
+      }
+      /**
+       * <code>repeated uint64 count = 1 [packed = true];</code>
+       */
+      public long getCount(int index) {
+        return count_.get(index);
+      }
+      /**
+       * <code>repeated uint64 count = 1 [packed = true];</code>
+       */
+      public Builder setCount(
+          int index, long value) {
+        ensureCountIsMutable();
+        count_.set(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated uint64 count = 1 [packed = true];</code>
+       */
+      public Builder addCount(long value) {
+        ensureCountIsMutable();
+        count_.add(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated uint64 count = 1 [packed = true];</code>
+       */
+      public Builder addAllCount(
+          java.lang.Iterable<? extends java.lang.Long> values) {
+        ensureCountIsMutable();
+        super.addAll(values, count_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated uint64 count = 1 [packed = true];</code>
+       */
+      public Builder clearCount() {
+        count_ = java.util.Collections.emptyList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        onChanged();
+        return this;
+      }
+
+      // @@protoc_insertion_point(builder_scope:orc.proto.BucketStatistics)
+    }
+
+    static {
+      defaultInstance = new BucketStatistics(true);
+      defaultInstance.initFields();
+    }
+
+    // @@protoc_insertion_point(class_scope:orc.proto.BucketStatistics)
+  }
+
+  public interface DecimalStatisticsOrBuilder
+      extends com.google.protobuf.MessageOrBuilder {
+
+    // optional string minimum = 1;
+    /**
+     * <code>optional string minimum = 1;</code>
+     */
+    boolean hasMinimum();
+    /**
+     * <code>optional string minimum = 1;</code>
+     */
+    java.lang.String getMinimum();
+    /**
+     * <code>optional string minimum = 1;</code>
+     */
+    com.google.protobuf.ByteString
+        getMinimumBytes();
+
+    // optional string maximum = 2;
+    /**
+     * <code>optional string maximum = 2;</code>
+     */
+    boolean hasMaximum();
+    /**
+     * <code>optional string maximum = 2;</code>
+     */
+    java.lang.String getMaximum();
+    /**
+     * <code>optional string maximum = 2;</code>
+     */
+    com.google.protobuf.ByteString
+        getMaximumBytes();
+
+    // optional string sum = 3;
+    /**
+     * <code>optional string sum = 3;</code>
+     */
+    boolean hasSum();
+    /**
+     * <code>optional string sum = 3;</code>
+     */
+    java.lang.String getSum();
+    /**
+     * <code>optional string sum = 3;</code>
+     */
+    com.google.protobuf.ByteString
+        getSumBytes();
+  }
+  /**
+   * Protobuf type {@code orc.proto.DecimalStatistics}
+   */
+  public static final class DecimalStatistics extends
+      com.google.protobuf.GeneratedMessage
+      implements DecimalStatisticsOrBuilder {
+    // Use DecimalStatistics.newBuilder() to construct.
+    private DecimalStatistics(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+      super(builder);
+      this.unknownFields = builder.getUnknownFields();
+    }
+    private DecimalStatistics(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+    private static final DecimalStatistics defaultInstance;
+    public static DecimalStatistics getDefaultInstance() {
+      return defaultInstance;
+    }
+
+    public DecimalStatistics getDefaultInstanceForType() {
+      return defaultInstance;
+    }
+
+    private final com.google.protobuf.UnknownFieldSet unknownFields;
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+        getUnknownFields() {
+      return this.unknownFields;
+    }
+    private DecimalStatistics(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      initFields();
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            default: {
+              if (!parseUnknownField(input, unknownFields,
+                                     extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+            case 10: {
+              bitField0_ |= 0x00000001;
+              minimum_ = input.readBytes();
+              break;
+            }
+            case 18: {
+              bitField0_ |= 0x00000002;
+              maximum_ = input.readBytes();
+              break;
+            }
+            case 26: {
+              bitField0_ |= 0x00000004;
+              sum_ = input.readBytes();
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e.getMessage()).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return OrcProto.internal_static_orc_proto_DecimalStatistics_descriptor;
+    }
+
+    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return OrcProto.internal_static_orc_proto_DecimalStatistics_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              OrcProto.DecimalStatistics.class, OrcProto.DecimalStatistics.Builder.class);
+    }
+
+    public static com.google.protobuf.Parser<DecimalStatistics> PARSER =
+        new com.google.protobuf.AbstractParser<DecimalStatistics>() {
+      public DecimalStatistics parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new DecimalStatistics(input, extensionRegistry);
+      }
+    };
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<DecimalStatistics> getParserForType() {
+      return PARSER;
+    }
+
+    private int bitField0_;
+    // optional string minimum = 1;
+    public static final int MINIMUM_FIELD_NUMBER = 1;
+    private java.lang.Object minimum_;
+    /**
+     * <code>optional string minimum = 1;</code>
+     */
+    public boolean hasMinimum() {
+      return ((bitField0_ & 0x00000001) == 0x00000001);
+    }
+    /**
+     * <code>optional string minimum = 1;</code>
+     */
+    public java.lang.String getMinimum() {
+      java.lang.Object ref = minimum_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs =
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        if (bs.isValidUtf8()) {
+          minimum_ = s;
+        }
+        return s;
+      }
+    }
+    /**
+     * <code>optional string minimum = 1;</code>
+     */
+    public com.google.protobuf.ByteString
+        getMinimumBytes() {
+      java.lang.Object ref = minimum_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        minimum_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    // optional string maximum = 2;
+    public static final int MAXIMUM_FIELD_NUMBER = 2;
+    private java.lang.Object maximum_;
+    /**
+     * <code>optional string maximum = 2;</code>
+     */
+    public boolean hasMaximum() {
+      return ((bitField0_ & 0x00000002) == 0x00000002);
+    }
+    /**
+     * <code>optional string maximum = 2;</code>
+     */
+    public java.lang.String getMaximum() {
+      java.lang.Object ref = maximum_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs =
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        if (bs.isValidUtf8()) {
+          maximum_ = s;
+        }
+        return s;
+      }
+    }
+    /**
+     * <code>optional string maximum = 2;</code>
+     */
+    public com.google.protobuf.ByteString
+        getMaximumBytes() {
+      java.lang.Object ref = maximum_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        maximum_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    // optional string sum = 3;
+    public static final int SUM_FIELD_NUMBER = 3;
+    private java.lang.Object sum_;
+    /**
+     * <code>optional string sum = 3;</code>
+     */
+    public boolean hasSum() {
+      return ((bitField0_ & 0x00000004) == 0x00000004);
+    }
+    /**
+     * <code>optional string sum = 3;</code>
+     */
+    public java.lang.String getSum() {
+      java.lang.Object ref = sum_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs =
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        if (bs.isValidUtf8()) {
+          sum_ = s;
+        }
+        return s;
+  

<TRUNCATED>