From 7b9842bab17921d3611add965057610e5b92b6c3 Mon Sep 17 00:00:00 2001 From: "xiaolei.zl@alibaba-inc.com" Date: Wed, 22 Jan 2025 12:05:06 +0800 Subject: [PATCH] fix Committed-by: xiaolei.zl@alibaba-inc.com from Dev container Committed-by: xiaolei.zl@alibaba-inc.com from Dev container --- .../runtime/common/operators/retrieve/scan.cc | 25 ++++++++----------- .../runtime/common/operators/retrieve/scan.h | 5 ++-- .../runtime/execute/ops/retrieve/scan.cc | 11 ++++---- 3 files changed, 18 insertions(+), 23 deletions(-) diff --git a/flex/engines/graph_db/runtime/common/operators/retrieve/scan.cc b/flex/engines/graph_db/runtime/common/operators/retrieve/scan.cc index 3ebdb24caed9..158308472e22 100644 --- a/flex/engines/graph_db/runtime/common/operators/retrieve/scan.cc +++ b/flex/engines/graph_db/runtime/common/operators/retrieve/scan.cc @@ -19,14 +19,12 @@ namespace gs { namespace runtime { Context Scan::find_vertex_with_oid(const GraphReadInterface& graph, - label_t label, const Any& oid, int32_t alias, - int32_t limit) { + label_t label, const Any& oid, + int32_t alias) { SLVertexColumnBuilder builder(label); vid_t vid; - if (limit >= 1) { - if (graph.GetVertexIndex(label, oid, vid)) { - builder.push_back_opt(vid); - } + if (graph.GetVertexIndex(label, oid, vid)) { + builder.push_back_opt(vid); } Context ctx; ctx.set(alias, builder.finish()); @@ -34,16 +32,13 @@ Context Scan::find_vertex_with_oid(const GraphReadInterface& graph, } Context Scan::find_vertex_with_gid(const GraphReadInterface& graph, - label_t label, int64_t gid, int32_t alias, - int32_t limit) { + label_t label, int64_t gid, int32_t alias) { SLVertexColumnBuilder builder(label); - if (limit >= 1) { - if (GlobalId::get_label_id(gid) == label) { - builder.push_back_opt(GlobalId::get_vid(gid)); - } else { - LOG(ERROR) << "Invalid label id: " - << static_cast(GlobalId::get_label_id(gid)); - } + if (GlobalId::get_label_id(gid) == label) { + builder.push_back_opt(GlobalId::get_vid(gid)); + } else { + LOG(ERROR) << "Invalid label id: " + << static_cast(GlobalId::get_label_id(gid)); } Context ctx; ctx.set(alias, builder.finish()); diff --git a/flex/engines/graph_db/runtime/common/operators/retrieve/scan.h b/flex/engines/graph_db/runtime/common/operators/retrieve/scan.h index 9a930a618050..b35811c76afc 100644 --- a/flex/engines/graph_db/runtime/common/operators/retrieve/scan.h +++ b/flex/engines/graph_db/runtime/common/operators/retrieve/scan.h @@ -190,11 +190,10 @@ class Scan { static Context find_vertex_with_oid(const GraphReadInterface& graph, label_t label, const Any& pk, - int32_t alias, int32_t limit); + int32_t alias); static Context find_vertex_with_gid(const GraphReadInterface& graph, - label_t label, int64_t pk, int32_t alias, - int32_t limit); + label_t label, int64_t pk, int32_t alias); }; } // namespace runtime diff --git a/flex/engines/graph_db/runtime/execute/ops/retrieve/scan.cc b/flex/engines/graph_db/runtime/execute/ops/retrieve/scan.cc index 92c4243bd400..b055ff224f5a 100644 --- a/flex/engines/graph_db/runtime/execute/ops/retrieve/scan.cc +++ b/flex/engines/graph_db/runtime/execute/ops/retrieve/scan.cc @@ -176,7 +176,7 @@ class FilterOidsWithoutPredOpr : public IReadOperator { std::vector oids = oids_(params); if (params_.tables.size() == 1 && oids.size() == 1) { return Scan::find_vertex_with_oid(graph, params_.tables[0], oids[0], - params_.alias, params_.limit); + params_.alias); } return Scan::filter_oids( graph, params_, [](label_t, vid_t) { return true; }, oids); @@ -230,7 +230,7 @@ class FilterGidsWithoutPredOpr : public IReadOperator { } if (params_.tables.size() == 1 && gids.size() == 1) { return Scan::find_vertex_with_gid(graph, params_.tables[0], gids[0], - params_.alias, params_.limit); + params_.alias); } return Scan::filter_gids( graph, params_, [](label_t, vid_t) { return true; }, gids); @@ -566,15 +566,16 @@ std::pair, ContextMeta> ScanOprBuilder::Build( ScanParams scan_params; scan_params.alias = scan_opr.has_alias() ? scan_opr.alias().value() : -1; + scan_params.limit = std::numeric_limits::max(); if (scan_opr.params().has_limit()) { auto& limit_range = scan_opr.params().limit(); if (limit_range.lower() != 0) { LOG(FATAL) << "Scan with lower limit expect 0, but got " << limit_range.lower(); } - scan_params.limit = limit_range.upper(); - } else { - scan_params.limit = std::numeric_limits::max(); + if (limit_range.upper() > 0) { + scan_params.limit = limit_range.upper(); + } } for (auto& table : scan_opr.params().tables()) { // bug here, exclude invalid vertex label id