diff --git a/velox/connectors/Connector.h b/velox/connectors/Connector.h index 2529fe8e249..2f841a3bf1c 100644 --- a/velox/connectors/Connector.h +++ b/velox/connectors/Connector.h @@ -357,7 +357,7 @@ class IndexSource { velox::ContinueFuture& future) = 0; }; - virtual std::unique_ptr lookup( + virtual std::shared_ptr lookup( const LookupRequest& request) = 0; virtual std::unordered_map runtimeStats() = 0; diff --git a/velox/exec/IndexLookupJoin.cpp b/velox/exec/IndexLookupJoin.cpp index 89d0d9b23d9..ebecea5c56f 100644 --- a/velox/exec/IndexLookupJoin.cpp +++ b/velox/exec/IndexLookupJoin.cpp @@ -64,7 +64,6 @@ IndexLookupJoin::IndexLookupJoin( expressionEvaluator_(connectorQueryCtx_->expressionEvaluator()), connector_(connector::getConnector(lookupTableHandle_->connectorId())), joinNode_{joinNode} { - VELOX_CHECK_EQ(joinNode_->sources()[1], joinNode_->lookupSource()); duplicateJoinKeyCheck(joinNode_->leftKeys()); duplicateJoinKeyCheck(joinNode_->rightKeys()); } diff --git a/velox/exec/IndexLookupJoin.h b/velox/exec/IndexLookupJoin.h index 69644c0141c..5931f96b171 100644 --- a/velox/exec/IndexLookupJoin.h +++ b/velox/exec/IndexLookupJoin.h @@ -125,7 +125,7 @@ class IndexLookupJoin : public Operator { ContinueFuture lookupFuture_{ContinueFuture::makeEmpty()}; // Used to fetch lookup results for each input batch, and reset after // processing all the outputs from the result. - std::unique_ptr + std::shared_ptr lookupResultIter_; // Used to store the lookup result fetched from 'lookupResultIter_' for output // processing. We might split the output result into multiple output batches diff --git a/velox/exec/tests/utils/TestIndexStorageConnector.cpp b/velox/exec/tests/utils/TestIndexStorageConnector.cpp index 1d86a246f2a..cc92f706ec0 100644 --- a/velox/exec/tests/utils/TestIndexStorageConnector.cpp +++ b/velox/exec/tests/utils/TestIndexStorageConnector.cpp @@ -48,7 +48,7 @@ TestIndexSource::TestIndexSource( initOutputProjections(); } -std::unique_ptr +std::shared_ptr TestIndexSource::lookup(const LookupRequest& request) { const auto numInputRows = request.input->size(); auto& hashTable = tableHandle_->indexTable()->table; @@ -67,7 +67,7 @@ TestIndexSource::lookup(const LookupRequest& request) { auto& rows = lookup->rows; rows.resize(request.input->size()); std::iota(rows.begin(), rows.end(), 0); - return std::make_unique( + return std::make_shared( this->shared_from_this(), request, std::move(lookup), diff --git a/velox/exec/tests/utils/TestIndexStorageConnector.h b/velox/exec/tests/utils/TestIndexStorageConnector.h index 0f75aee3adb..668eafc2bba 100644 --- a/velox/exec/tests/utils/TestIndexStorageConnector.h +++ b/velox/exec/tests/utils/TestIndexStorageConnector.h @@ -114,7 +114,7 @@ class TestIndexSource : public connector::IndexSource, connector::ConnectorQueryCtx* connectorQueryCtx, folly::Executor* executor); - std::unique_ptr lookup( + std::shared_ptr lookup( const LookupRequest& request) override; std::unordered_map runtimeStats() override {