You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by ja...@apache.org on 2014/12/05 19:14:21 UTC

[6/6] drill git commit: DRILL-1814: Check if writer state is OK before performing copy in copyAsValue() and copyAsField()

DRILL-1814: Check if writer state is OK before performing copy in copyAsValue() and copyAsField()


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

Branch: refs/heads/0.7.0
Commit: 142e5776115663af2278d3e4dfc68ea529595a47
Parents: 0ed30a8
Author: Mehant Baid <me...@gmail.com>
Authored: Thu Dec 4 18:37:36 2014 -0800
Committer: Jacques Nadeau <ja...@apache.org>
Committed: Fri Dec 5 10:13:10 2014 -0800

----------------------------------------------------------------------
 .../main/codegen/templates/ComplexReaders.java  | 24 +++++++++++++-------
 .../complex/impl/RepeatedListReaderImpl.java    |  4 ++--
 .../complex/impl/RepeatedMapReaderImpl.java     |  4 ++--
 .../complex/impl/SingleMapReaderImpl.java       | 12 ++++++----
 4 files changed, 28 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/drill/blob/142e5776/exec/java-exec/src/main/codegen/templates/ComplexReaders.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/codegen/templates/ComplexReaders.java b/exec/java-exec/src/main/codegen/templates/ComplexReaders.java
index a6f2f04..027f61d 100644
--- a/exec/java-exec/src/main/codegen/templates/ComplexReaders.java
+++ b/exec/java-exec/src/main/codegen/templates/ComplexReaders.java
@@ -75,13 +75,17 @@ public class ${nullMode}${name}ReaderImpl extends AbstractFieldReader {
   <#if mode == "Repeated">
 
   public void copyAsValue(${minor.class?cap_first}Writer writer){
-    Repeated${minor.class?cap_first}WriterImpl impl = (Repeated${minor.class?cap_first}WriterImpl) writer;
-    impl.inform(impl.vector.copyFromSafe(idx(), impl.idx(), vector));
+    if (writer.ok()) {
+      Repeated${minor.class?cap_first}WriterImpl impl = (Repeated${minor.class?cap_first}WriterImpl) writer;
+      impl.inform(impl.vector.copyFromSafe(idx(), impl.idx(), vector));
+    }
   }
   
   public void copyAsField(String name, MapWriter writer){
-    Repeated${minor.class?cap_first}WriterImpl impl = (Repeated${minor.class?cap_first}WriterImpl)  writer.list(name).${lowerName}();
-    impl.inform(impl.vector.copyFromSafe(idx(), impl.idx(), vector));
+    if (writer.ok()) {
+      Repeated${minor.class?cap_first}WriterImpl impl = (Repeated${minor.class?cap_first}WriterImpl)  writer.list(name).${lowerName}();
+      impl.inform(impl.vector.copyFromSafe(idx(), impl.idx(), vector));
+    }
   }
   
   public int size(){
@@ -107,13 +111,17 @@ public class ${nullMode}${name}ReaderImpl extends AbstractFieldReader {
   <#else>
   
   public void copyAsValue(${minor.class?cap_first}Writer writer){
-    ${nullMode}${minor.class?cap_first}WriterImpl impl = (${nullMode}${minor.class?cap_first}WriterImpl) writer;
-    impl.inform(impl.vector.copyFromSafe(idx(), impl.idx(), vector));
+    if (writer.ok()) {
+      ${nullMode}${minor.class?cap_first}WriterImpl impl = (${nullMode}${minor.class?cap_first}WriterImpl) writer;
+      impl.inform(impl.vector.copyFromSafe(idx(), impl.idx(), vector));
+    }
   }
   
   public void copyAsField(String name, MapWriter writer){
-    ${nullMode}${minor.class?cap_first}WriterImpl impl = (${nullMode}${minor.class?cap_first}WriterImpl) writer.${lowerName}(name);
-    impl.inform(impl.vector.copyFromSafe(idx(), impl.idx(), vector));
+    if (writer.ok()) {
+      ${nullMode}${minor.class?cap_first}WriterImpl impl = (${nullMode}${minor.class?cap_first}WriterImpl) writer.${lowerName}(name);
+      impl.inform(impl.vector.copyFromSafe(idx(), impl.idx(), vector));
+    }
   }
   
   public void read(Nullable${minor.class?cap_first}Holder h){

http://git-wip-us.apache.org/repos/asf/drill/blob/142e5776/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/impl/RepeatedListReaderImpl.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/impl/RepeatedListReaderImpl.java b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/impl/RepeatedListReaderImpl.java
index d21100b..c60730c 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/impl/RepeatedListReaderImpl.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/impl/RepeatedListReaderImpl.java
@@ -49,7 +49,7 @@ public class RepeatedListReaderImpl extends AbstractFieldReader{
 
   @Override
   public void copyAsValue(ListWriter writer) {
-    if (currentOffset == NO_VALUES) {
+    if (currentOffset == NO_VALUES || writer.ok() == false) {
       return;
     }
     RepeatedListWriter impl = (RepeatedListWriter) writer;
@@ -58,7 +58,7 @@ public class RepeatedListReaderImpl extends AbstractFieldReader{
 
   @Override
   public void copyAsField(String name, MapWriter writer) {
-    if (currentOffset == NO_VALUES) {
+    if (currentOffset == NO_VALUES || writer.ok() == false) {
       return;
     }
     RepeatedListWriter impl = (RepeatedListWriter) writer.list(name);

http://git-wip-us.apache.org/repos/asf/drill/blob/142e5776/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/impl/RepeatedMapReaderImpl.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/impl/RepeatedMapReaderImpl.java b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/impl/RepeatedMapReaderImpl.java
index e57e37c..15f8a2b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/impl/RepeatedMapReaderImpl.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/impl/RepeatedMapReaderImpl.java
@@ -149,7 +149,7 @@ public class RepeatedMapReaderImpl extends AbstractFieldReader{
 
   @Override
   public void copyAsValue(MapWriter writer) {
-    if (currentOffset == NO_VALUES) {
+    if (currentOffset == NO_VALUES || writer.ok() == false) {
       return;
     }
     RepeatedMapWriter impl = (RepeatedMapWriter) writer;
@@ -157,7 +157,7 @@ public class RepeatedMapReaderImpl extends AbstractFieldReader{
   }
 
   public void copyAsValueSingle(MapWriter writer) {
-    if (currentOffset == NO_VALUES) {
+    if (currentOffset == NO_VALUES || writer.ok() == false) {
       return;
     }
     SingleMapWriter impl = (SingleMapWriter) writer;

http://git-wip-us.apache.org/repos/asf/drill/blob/142e5776/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/impl/SingleMapReaderImpl.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/impl/SingleMapReaderImpl.java b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/impl/SingleMapReaderImpl.java
index c2d96b1..3ec66ff 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/impl/SingleMapReaderImpl.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/impl/SingleMapReaderImpl.java
@@ -93,14 +93,18 @@ public class SingleMapReaderImpl extends AbstractFieldReader{
 
   @Override
   public void copyAsValue(MapWriter writer){
-    SingleMapWriter impl = (SingleMapWriter) writer;
-    impl.inform(impl.container.copyFromSafe(idx(), impl.idx(), vector));
+    if (writer.ok()) {
+      SingleMapWriter impl = (SingleMapWriter) writer;
+      impl.inform(impl.container.copyFromSafe(idx(), impl.idx(), vector));
+    }
   }
 
   @Override
   public void copyAsField(String name, MapWriter writer){
-    SingleMapWriter impl = (SingleMapWriter) writer.map(name);
-    impl.inform(impl.container.copyFromSafe(idx(), impl.idx(), vector));
+    if (writer.ok()) {
+      SingleMapWriter impl = (SingleMapWriter) writer.map(name);
+      impl.inform(impl.container.copyFromSafe(idx(), impl.idx(), vector));
+    }
   }