You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by js...@apache.org on 2014/11/29 20:16:19 UTC

[07/10] drill git commit: DRILL-1787: Fix memory leak in kvgen function.

DRILL-1787: Fix memory leak in kvgen function.


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

Branch: refs/heads/master
Commit: 0ded8997580125944487c1a7a7b793e7763f1462
Parents: 86a775f
Author: Jacques Nadeau <ja...@apache.org>
Authored: Thu Nov 20 18:09:58 2014 -0800
Committer: Jason Altekruse <al...@gmail.com>
Committed: Fri Nov 28 22:28:25 2014 -0800

----------------------------------------------------------------------
 .../main/java/org/apache/drill/exec/expr/fn/impl/Mappify.java  | 2 +-
 .../org/apache/drill/exec/expr/fn/impl/MappifyUtility.java     | 6 ++++--
 2 files changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/drill/blob/0ded8997/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/Mappify.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/Mappify.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/Mappify.java
index 7f340e1..da9009c 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/Mappify.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/Mappify.java
@@ -61,7 +61,7 @@ public class Mappify {
     }
 
     public void eval() {
-      org.apache.drill.exec.expr.fn.impl.MappifyUtility.mappify(reader, writer, buffer);
+      buffer = org.apache.drill.exec.expr.fn.impl.MappifyUtility.mappify(reader, writer, buffer);
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/drill/blob/0ded8997/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/MappifyUtility.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/MappifyUtility.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/MappifyUtility.java
index 160910c..349c709 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/MappifyUtility.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/MappifyUtility.java
@@ -37,7 +37,7 @@ public class MappifyUtility {
   public static final String fieldKey = "key";
   public static final String fieldValue = "value";
 
-  public static void mappify(FieldReader reader, BaseWriter.ComplexWriter writer, DrillBuf buffer) {
+  public static DrillBuf mappify(FieldReader reader, BaseWriter.ComplexWriter writer, DrillBuf buffer) {
     // Currently we expect single map as input
     if (!(reader instanceof SingleMapReaderImpl)) {
       throw new DrillRuntimeException("kvgen function only supports Simple maps as input");
@@ -64,7 +64,7 @@ public class MappifyUtility {
       // write "key":"columnname" into the map
       VarCharHolder vh = new VarCharHolder();
       byte[] b = str.getBytes(Charsets.UTF_8);
-      buffer.reallocIfNeeded(b.length);
+      buffer = buffer.reallocIfNeeded(b.length);
       buffer.setBytes(0, b);
       vh.start = 0;
       vh.end = b.length;
@@ -77,6 +77,8 @@ public class MappifyUtility {
       mapWriter.end();
     }
     listWriter.end();
+
+    return buffer;
   }
 }