You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@orc.apache.org by om...@apache.org on 2017/03/06 18:01:48 UTC

orc git commit: ORC-143. Delta encoding may use too many bits for deltas.

Repository: orc
Updated Branches:
  refs/heads/master 06d88690f -> b72e6e82f


ORC-143. Delta encoding may use too many bits for deltas.

Fixes #94

Signed-off-by: Owen O'Malley <om...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/orc/repo
Commit: http://git-wip-us.apache.org/repos/asf/orc/commit/b72e6e82
Tree: http://git-wip-us.apache.org/repos/asf/orc/tree/b72e6e82
Diff: http://git-wip-us.apache.org/repos/asf/orc/diff/b72e6e82

Branch: refs/heads/master
Commit: b72e6e82f3f0d3aa54625ec353c2e32e859d2e56
Parents: 06d8869
Author: Owen O'Malley <om...@apache.org>
Authored: Fri Feb 17 12:59:13 2017 -0800
Committer: Owen O'Malley <om...@apache.org>
Committed: Mon Mar 6 10:01:12 2017 -0800

----------------------------------------------------------------------
 .../java/org/apache/orc/impl/RunLengthIntegerWriterV2.java    | 4 ++--
 java/tools/src/test/org/apache/orc/impl/TestRLEv2.java        | 7 +++++++
 2 files changed, 9 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/orc/blob/b72e6e82/java/core/src/java/org/apache/orc/impl/RunLengthIntegerWriterV2.java
----------------------------------------------------------------------
diff --git a/java/core/src/java/org/apache/orc/impl/RunLengthIntegerWriterV2.java b/java/core/src/java/org/apache/orc/impl/RunLengthIntegerWriterV2.java
index 29cbebf..e4c2a05 100644
--- a/java/core/src/java/org/apache/orc/impl/RunLengthIntegerWriterV2.java
+++ b/java/core/src/java/org/apache/orc/impl/RunLengthIntegerWriterV2.java
@@ -430,8 +430,8 @@ public class RunLengthIntegerWriterV2 implements IntegerWriter {
     this.min = literals[0];
     long max = literals[0];
     final long initialDelta = literals[1] - literals[0];
-    long currDelta = initialDelta;
-    long deltaMax = initialDelta;
+    long currDelta = 0;
+    long deltaMax = 0;
     this.adjDeltas[0] = initialDelta;
 
     for (int i = 1; i < numLiterals; i++) {

http://git-wip-us.apache.org/repos/asf/orc/blob/b72e6e82/java/tools/src/test/org/apache/orc/impl/TestRLEv2.java
----------------------------------------------------------------------
diff --git a/java/tools/src/test/org/apache/orc/impl/TestRLEv2.java b/java/tools/src/test/org/apache/orc/impl/TestRLEv2.java
index 6558023..4e55c54 100644
--- a/java/tools/src/test/org/apache/orc/impl/TestRLEv2.java
+++ b/java/tools/src/test/org/apache/orc/impl/TestRLEv2.java
@@ -386,4 +386,11 @@ public class TestRLEv2 {
     TestOutputCatcher output = encodeV2(input, false);
     output.compareBytes(0xc6, 0x09, 0x02, 0x02, 0x22, 0x42, 0x42, 0x46);
   }
+
+  @Test
+  public void testDelta2Example() throws Exception {
+    long[] input = {0, 10000, 10001, 10001, 10002, 10003, 10003};
+    TestOutputCatcher output = encodeV2(input, false);
+    output.compareBytes(0xc2, 0x06, 0x0, 0xa0, 0x9c, 0x01, 0x45, 0x0);
+  }
 }