You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ng...@apache.org on 2017/11/01 15:32:29 UTC

hive git commit: HIVE-16663: String Caching For Rows (Beluga Behr, reviewed by Naveen Gangam, Ashutosh)

Repository: hive
Updated Branches:
  refs/heads/master c0a8c23da -> 497f2651d


HIVE-16663: String Caching For Rows (Beluga Behr, reviewed by Naveen Gangam, Ashutosh)


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

Branch: refs/heads/master
Commit: 497f2651dd84a0489b862ec66eb51369319fce54
Parents: c0a8c23
Author: Naveen Gangam <ng...@apache.org>
Authored: Wed Nov 1 11:27:36 2017 -0400
Committer: Naveen Gangam <ng...@apache.org>
Committed: Wed Nov 1 11:29:18 2017 -0400

----------------------------------------------------------------------
 .../src/java/org/apache/hive/beeline/Rows.java    | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/497f2651/beeline/src/java/org/apache/hive/beeline/Rows.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/Rows.java b/beeline/src/java/org/apache/hive/beeline/Rows.java
index cd90268..56c0069 100644
--- a/beeline/src/java/org/apache/hive/beeline/Rows.java
+++ b/beeline/src/java/org/apache/hive/beeline/Rows.java
@@ -154,18 +154,22 @@ abstract class Rows implements Iterator {
       } catch (Throwable t) {
       }
 
-      for (int i = 0; i < size; i++) {
+       for (int i = 0; i < size; i++) {
         Object o = rs.getObject(i + 1);
-        if(rs.wasNull()) {
-          values[i] = nullStr;
+        String value = null;
+
+        if (o == null) {
+          value = nullStr;
         } else if (o instanceof Number) {
-          values[i] = numberFormat != null ? numberFormat.format(o) : o.toString() ;
+          value = numberFormat != null ? numberFormat.format(o) : o.toString();
         } else if (o instanceof byte[]) {
-          values[i] = convertBinaryArray ? new String((byte[])o) : Arrays.toString((byte[])o);
+          value = convertBinaryArray ? new String((byte[])o) : Arrays.toString((byte[])o);
         } else {
-          values[i] = o.toString();
+          value = o.toString();
         }
-        sizes[i] = values[i].length();
+
+        values[i] = value.intern();
+        sizes[i] = value.length();
       }
     }
   }