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
