diff --git a/src/storage/query/ScanEdgeProcessor.cpp b/src/storage/query/ScanEdgeProcessor.cpp index ae328d406b5..1c63165595d 100644 --- a/src/storage/query/ScanEdgeProcessor.cpp +++ b/src/storage/query/ScanEdgeProcessor.cpp @@ -101,8 +101,14 @@ StoragePlan ScanEdgeProcessor::buildPlan( edges.emplace_back( std::make_unique(context, &edgeContext_, ec.first, &ec.second)); } - auto output = std::make_unique( - context, std::move(edges), enableReadFollower_, limit_, cursors, result, expCtx, filter_); + auto output = std::make_unique(context, + std::move(edges), + enableReadFollower_, + limit_, + cursors, + result, + expCtx, + filter_ == nullptr ? nullptr : filter_->clone()); plan.addNode(std::move(output)); return plan; diff --git a/src/storage/query/ScanVertexProcessor.cpp b/src/storage/query/ScanVertexProcessor.cpp index 6dafcda714d..7806daebfdd 100644 --- a/src/storage/query/ScanVertexProcessor.cpp +++ b/src/storage/query/ScanVertexProcessor.cpp @@ -104,8 +104,15 @@ StoragePlan ScanVertexProcessor::buildPlan( for (const auto& tc : tagContext_.propContexts_) { tags.emplace_back(std::make_unique(context, &tagContext_, tc.first, &tc.second)); } - auto output = std::make_unique( - context, std::move(tags), enableReadFollower_, limit_, cursors, result, expCtx, filter_); + auto output = + std::make_unique(context, + std::move(tags), + enableReadFollower_, + limit_, + cursors, + result, + expCtx, + filter_ == nullptr ? nullptr : filter_->clone()); plan.addNode(std::move(output)); return plan;