Sailesh Mukil has posted comments on this change.

Change subject: IMPALA-3905: HdfsScanner::GetNext() for Avro, RC, and Seq scans.
......................................................................


Patch Set 5:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/6527/5/be/src/exec/kudu-scan-node.cc
File be/src/exec/kudu-scan-node.cc:

Line 179:       if 
(materialized_row_batches_->AddBatchWithTimeout(move(row_batch), 1000000)) {
> You could add an output parameter to BlockingPutWithTimeout() (rather than 
unique_ptr is already a move only class, which means it's limited to using move 
semantics and copying isn't allowed, something that rvalue refs try to provide 
for non-move-only classes/data types. That means that moving to an rvalue ref 
of a move only class is redundant, save for one subtle difference noted below. 
So the only difference between taking:

func(unique_ptr<> arg)

and

func(unique_ptr<>&& arg)

is that in the first case, the caller knows that after calling func, they're 
not supposed to use the unique_ptr member that was passed to arg.

In the second case, the value of the unique_ptr member passed is dependent on 
what func() does with arg. In the above code, we're relying on this behavior to 
conditionally relinquish or retain the ownership of row_batch.

Unless I got something wrong?


-- 
To view, visit http://gerrit.cloudera.org:8080/6527
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Ie18f57b0d3fe0052a8ccd361b6a5fcdf979d0669
Gerrit-PatchSet: 5
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Alex Behm <[email protected]>
Gerrit-Reviewer: Alex Behm <[email protected]>
Gerrit-Reviewer: Henry Robinson <[email protected]>
Gerrit-Reviewer: Marcel Kornacker <[email protected]>
Gerrit-Reviewer: Sailesh Mukil <[email protected]>
Gerrit-Reviewer: Tim Armstrong <[email protected]>
Gerrit-Reviewer: anujphadke <[email protected]>
Gerrit-HasComments: Yes

Reply via email to