You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ku...@apache.org on 2019/10/24 08:08:31 UTC

[hive] branch master updated: HIVE-22330: Maximize smallBuffer usage in BytesColumnVector (Karen Coppage reviewed by Peter Vary)

This is an automated email from the ASF dual-hosted git repository.

kuczoram pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git


The following commit(s) were added to refs/heads/master by this push:
     new 0ff2354  HIVE-22330: Maximize smallBuffer usage in BytesColumnVector (Karen Coppage reviewed by Peter Vary)
0ff2354 is described below

commit 0ff23540d1bb9b7550955588051271125b515c35
Author: Karen Coppage <kc...@gmail.com>
AuthorDate: Thu Oct 24 10:07:55 2019 +0200

    HIVE-22330: Maximize smallBuffer usage in BytesColumnVector (Karen Coppage reviewed by Peter Vary)
---
 .../org/apache/hadoop/hive/ql/exec/vector/BytesColumnVector.java  | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/BytesColumnVector.java b/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/BytesColumnVector.java
index e386109..1e65449 100644
--- a/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/BytesColumnVector.java
+++ b/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/BytesColumnVector.java
@@ -307,11 +307,11 @@ public class BytesColumnVector extends ColumnVector {
       if ((nextFree + nextElemLength) > buffer.length) {
         int newLength = smallBuffer.length * 2;
         while (newLength < nextElemLength) {
-          if (newLength < 0) {
-            throw new RuntimeException("Overflow of newLength. smallBuffer.length="
-                + smallBuffer.length + ", nextElemLength=" + nextElemLength);
+          if (newLength > 0) {
+            newLength *= 2;
+          } else { // integer overflow happened; maximize size of next smallBuffer
+            newLength = Integer.MAX_VALUE;
           }
-          newLength *= 2;
         }
         smallBuffer = new byte[newLength];
         ++bufferAllocationCount;