Tim Armstrong has uploaded a new patch set (#2). ( 
http://gerrit.cloudera.org:8080/11155 )

Change subject: IMPALA-7403: fix child batch mem mgmt in analytic
......................................................................

IMPALA-7403: fix child batch mem mgmt in analytic

The core of the fix is in ProcessChildBatches(), where we copy
'prev_input_tuple_' to 'prev_input_tuple_pool_' and reset
the child batch *before* the call to child(0)->GetNext(). This
solves a couple of problems:
* prev_input_tuple_ may be referencing memory from the child
  that had the needs_deep_copy() flag set and therefore will
  be freed or recycled when calling child(0)->GetNext() again.
* 'prev_child_batch_' may have been holding onto resources that
  the child had flushed, which means they need to be freed before
  the next GetNext() call.

Also refactors the logic around child_cmp_row_ to make the variable
lifetime and data flow clearer.

Testing:
Add regression test. The test passes both with this patch alone and with
IMPALA-7333 reapplied.

Change-Id: I09eb6213d47287f2addb72f8c1304085d2d48c55
---
M be/src/exec/analytic-eval-node.cc
M be/src/exec/analytic-eval-node.h
M be/src/exprs/scalar-expr-evaluator.cc
M be/src/exprs/scalar-expr-evaluator.h
M testdata/workloads/functional-query/queries/QueryTest/analytic-fns-tpcds.test
5 files changed, 131 insertions(+), 93 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/55/11155/2
--
To view, visit http://gerrit.cloudera.org:8080/11155
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I09eb6213d47287f2addb72f8c1304085d2d48c55
Gerrit-Change-Number: 11155
Gerrit-PatchSet: 2
Gerrit-Owner: Tim Armstrong <tarmstr...@cloudera.com>

Reply via email to