Repository: incubator-impala
Updated Branches:
  refs/heads/master 585ed5aaa -> 290db20db


IMPALA-4554: fix projection of nested collections with mt_dop > 0

Change-Id: I42e72eae8dfa78f7d53708eb8f2f0da8b780692d
Reviewed-on: http://gerrit.cloudera.org:8080/5270
Tested-by: Internal Jenkins
Reviewed-by: Tim Armstrong <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/incubator-impala/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-impala/commit/290db20d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-impala/tree/290db20d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-impala/diff/290db20d

Branch: refs/heads/master
Commit: 290db20dbc364c102c40ea2022535b896bf1c45c
Parents: 585ed5a
Author: Tim Armstrong <[email protected]>
Authored: Tue Nov 29 17:04:29 2016 -0800
Committer: Tim Armstrong <[email protected]>
Committed: Wed Nov 30 17:18:36 2016 +0000

----------------------------------------------------------------------
 be/src/exec/hdfs-scan-node-mt.cc                 |  1 +
 be/src/exec/unnest-node.cc                       |  1 +
 .../queries/QueryTest/mt-dop-parquet.test        | 19 +++++++++++++++++++
 3 files changed, 21 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/290db20d/be/src/exec/hdfs-scan-node-mt.cc
----------------------------------------------------------------------
diff --git a/be/src/exec/hdfs-scan-node-mt.cc b/be/src/exec/hdfs-scan-node-mt.cc
index 8c61326..84e3eef 100644
--- a/be/src/exec/hdfs-scan-node-mt.cc
+++ b/be/src/exec/hdfs-scan-node-mt.cc
@@ -97,6 +97,7 @@ Status HdfsScanNodeMt::GetNext(RuntimeState* state, RowBatch* 
row_batch, bool* e
     num_owned_io_buffers_.Add(-row_batch->num_io_buffers());
     return status;
   }
+  InitNullCollectionValues(row_batch);
 
   num_rows_returned_ += row_batch->num_rows();
   if (ReachedLimit()) {

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/290db20d/be/src/exec/unnest-node.cc
----------------------------------------------------------------------
diff --git a/be/src/exec/unnest-node.cc b/be/src/exec/unnest-node.cc
index f6b3747..bf467bd 100644
--- a/be/src/exec/unnest-node.cc
+++ b/be/src/exec/unnest-node.cc
@@ -135,6 +135,7 @@ Status UnnestNode::GetNext(RuntimeState* state, RowBatch* 
row_batch, bool* eos)
 
   // Populate the output row_batch with tuples from the collection.
   DCHECK(coll_value_ != NULL);
+  DCHECK_GE(coll_value_->num_tuples, 0);
   while (item_idx_ < coll_value_->num_tuples) {
     Tuple* item =
         reinterpret_cast<Tuple*>(coll_value_->ptr + item_idx_ * 
item_byte_size_);

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/290db20d/testdata/workloads/functional-query/queries/QueryTest/mt-dop-parquet.test
----------------------------------------------------------------------
diff --git 
a/testdata/workloads/functional-query/queries/QueryTest/mt-dop-parquet.test 
b/testdata/workloads/functional-query/queries/QueryTest/mt-dop-parquet.test
index 39ec4b3..cbd14ef 100644
--- a/testdata/workloads/functional-query/queries/QueryTest/mt-dop-parquet.test
+++ b/testdata/workloads/functional-query/queries/QueryTest/mt-dop-parquet.test
@@ -5,3 +5,22 @@ select * from functional_parquet.bad_metadata_len
 ---- CATCH
 Invalid metadata size in file footer
 ====
+---- QUERY
+# IMPALA-4554: Memory corruption of nested collection with MT_DOP > 0.
+select id, cnt
+from functional_parquet.complextypestbl t,
+  (select count(item) cnt from t.int_array) v
+order by id
+limit 10
+---- RESULTS
+1,3
+2,3
+3,0
+4,0
+5,0
+6,0
+7,0
+8,1
+---- TYPES
+bigint,bigint
+====

Reply via email to