Skip to content

Commit 99f1f7a

Browse files
Remove extra field (#3427)
Co-authored-by: Sophie <[email protected]>
1 parent 9fbe164 commit 99f1f7a

File tree

7 files changed

+29
-31
lines changed

7 files changed

+29
-31
lines changed

src/clients/storage/StorageClientBase-inl.h

-1
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,6 @@ StorageClientBase<ClientType>::getHostPartsWithCursor(GraphSpaceID spaceId) cons
357357

358358
// TODO support cursor
359359
cpp2::ScanCursor c;
360-
c.set_has_next(false);
361360
auto parts = status.value();
362361
for (auto partId = 1; partId <= parts; partId++) {
363362
auto leader = getLeader(spaceId, partId);

src/interface/storage.thrift

+1-2
Original file line numberDiff line numberDiff line change
@@ -561,9 +561,8 @@ struct LookupAndTraverseRequest {
561561
*/
562562

563563
struct ScanCursor {
564-
3: bool has_next,
565564
// next start key of scan, only valid when has_next is true
566-
4: optional binary next_cursor,
565+
1: optional binary next_cursor,
567566
}
568567

569568
struct ScanVertexRequest {

src/storage/exec/ScanNode.h

-6
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,7 @@ class ScanVertexPropNode : public QueryNode<Cursor> {
9292

9393
cpp2::ScanCursor c;
9494
if (iter->valid()) {
95-
c.set_has_next(true);
9695
c.set_next_cursor(iter->key().str());
97-
} else {
98-
c.set_has_next(false);
9996
}
10097
cursors_->emplace(partId, std::move(c));
10198
return nebula::cpp2::ErrorCode::SUCCEEDED;
@@ -246,10 +243,7 @@ class ScanEdgePropNode : public QueryNode<Cursor> {
246243

247244
cpp2::ScanCursor c;
248245
if (iter->valid()) {
249-
c.set_has_next(true);
250246
c.set_next_cursor(iter->key().str());
251-
} else {
252-
c.set_has_next(false);
253247
}
254248
cursors_->emplace(partId, std::move(c));
255249
return nebula::cpp2::ErrorCode::SUCCEEDED;

src/storage/query/ScanEdgeProcessor.cpp

+9-7
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,8 @@ void ScanEdgeProcessor::runInSingleThread(const cpp2::ScanEdgeRequest& req) {
136136
auto partId = partEntry.first;
137137
auto cursor = partEntry.second;
138138

139-
auto ret = plan.go(partId, cursor.get_has_next() ? *cursor.get_next_cursor() : "");
139+
auto ret = plan.go(
140+
partId, cursor.next_cursor_ref().has_value() ? cursor.next_cursor_ref().value() : "");
140141
if (ret != nebula::cpp2::ErrorCode::SUCCEEDED &&
141142
failedParts.find(partId) == failedParts.end()) {
142143
failedParts.emplace(partId);
@@ -158,12 +159,13 @@ void ScanEdgeProcessor::runInMultipleThread(const cpp2::ScanEdgeRequest& req) {
158159
size_t i = 0;
159160
std::vector<folly::Future<std::pair<nebula::cpp2::ErrorCode, PartitionID>>> futures;
160161
for (const auto& [partId, cursor] : req.get_parts()) {
161-
futures.emplace_back(runInExecutor(&contexts_[i],
162-
&results_[i],
163-
&cursorsOfPart_[i],
164-
partId,
165-
cursor.get_has_next() ? *cursor.get_next_cursor() : "",
166-
&expCtxs_[i]));
162+
futures.emplace_back(
163+
runInExecutor(&contexts_[i],
164+
&results_[i],
165+
&cursorsOfPart_[i],
166+
partId,
167+
cursor.next_cursor_ref().has_value() ? cursor.next_cursor_ref().value() : "",
168+
&expCtxs_[i]));
167169
i++;
168170
}
169171

src/storage/query/ScanVertexProcessor.cpp

+9-7
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,8 @@ void ScanVertexProcessor::runInSingleThread(const cpp2::ScanVertexRequest& req)
140140
auto partId = partEntry.first;
141141
auto cursor = partEntry.second;
142142

143-
auto ret = plan.go(partId, cursor.get_has_next() ? *cursor.get_next_cursor() : "");
143+
auto ret = plan.go(
144+
partId, cursor.next_cursor_ref().has_value() ? cursor.next_cursor_ref().value() : "");
144145
if (ret != nebula::cpp2::ErrorCode::SUCCEEDED &&
145146
failedParts.find(partId) == failedParts.end()) {
146147
failedParts.emplace(partId);
@@ -162,12 +163,13 @@ void ScanVertexProcessor::runInMultipleThread(const cpp2::ScanVertexRequest& req
162163
size_t i = 0;
163164
std::vector<folly::Future<std::pair<nebula::cpp2::ErrorCode, PartitionID>>> futures;
164165
for (const auto& [partId, cursor] : req.get_parts()) {
165-
futures.emplace_back(runInExecutor(&contexts_[i],
166-
&results_[i],
167-
&cursorsOfPart_[i],
168-
partId,
169-
cursor.get_has_next() ? *cursor.get_next_cursor() : "",
170-
&expCtxs_[i]));
166+
futures.emplace_back(
167+
runInExecutor(&contexts_[i],
168+
&results_[i],
169+
&cursorsOfPart_[i],
170+
partId,
171+
cursor.next_cursor_ref().has_value() ? cursor.next_cursor_ref().value() : "",
172+
&expCtxs_[i]));
171173
i++;
172174
}
173175

src/storage/test/ScanEdgeTest.cpp

+5-4
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,9 @@ cpp2::ScanEdgeRequest buildRequest(
2828
CHECK_EQ(partIds.size(), cursors.size());
2929
std::unordered_map<PartitionID, cpp2::ScanCursor> parts;
3030
for (std::size_t i = 0; i < partIds.size(); ++i) {
31-
c.set_has_next(!cursors[i].empty());
32-
c.set_next_cursor(cursors[i]);
31+
if (!cursors[i].empty()) {
32+
c.set_next_cursor(cursors[i]);
33+
}
3334
parts.emplace(partIds[i], c);
3435
}
3536
req.set_parts(std::move(parts));
@@ -168,7 +169,7 @@ TEST(ScanEdgeTest, CursorTest) {
168169

169170
ASSERT_EQ(0, resp.result.failed_parts.size());
170171
checkResponse(*resp.props_ref(), edge, edge.second.size(), totalRowCount);
171-
hasNext = resp.get_cursors().at(partId).get_has_next();
172+
hasNext = resp.get_cursors().at(partId).next_cursor_ref().has_value();
172173
if (hasNext) {
173174
CHECK(resp.get_cursors().at(partId).next_cursor_ref().has_value());
174175
cursor = *resp.get_cursors().at(partId).next_cursor_ref();
@@ -195,7 +196,7 @@ TEST(ScanEdgeTest, CursorTest) {
195196

196197
ASSERT_EQ(0, resp.result.failed_parts.size());
197198
checkResponse(*resp.props_ref(), edge, edge.second.size(), totalRowCount);
198-
hasNext = resp.get_cursors().at(partId).get_has_next();
199+
hasNext = resp.get_cursors().at(partId).next_cursor_ref().has_value();
199200
if (hasNext) {
200201
CHECK(resp.get_cursors().at(partId).next_cursor_ref().has_value());
201202
cursor = *resp.get_cursors().at(partId).next_cursor_ref();

src/storage/test/ScanVertexTest.cpp

+5-4
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,9 @@ cpp2::ScanVertexRequest buildRequest(
2828
CHECK_EQ(partIds.size(), cursors.size());
2929
std::unordered_map<PartitionID, cpp2::ScanCursor> parts;
3030
for (std::size_t i = 0; i < partIds.size(); ++i) {
31-
c.set_has_next(!cursors[i].empty());
32-
c.set_next_cursor(cursors[i]);
31+
if (!cursors[i].empty()) {
32+
c.set_next_cursor(cursors[i]);
33+
}
3334
parts.emplace(partIds[i], c);
3435
}
3536
req.set_parts(std::move(parts));
@@ -183,7 +184,7 @@ TEST(ScanVertexTest, CursorTest) {
183184

184185
ASSERT_EQ(0, resp.result.failed_parts.size());
185186
checkResponse(*resp.props_ref(), tag, tag.second.size() + 1 /* kVid */, totalRowCount);
186-
hasNext = resp.get_cursors().at(partId).get_has_next();
187+
hasNext = resp.get_cursors().at(partId).next_cursor_ref().has_value();
187188
if (hasNext) {
188189
CHECK(resp.get_cursors().at(partId).next_cursor_ref());
189190
cursor = *resp.get_cursors().at(partId).next_cursor_ref();
@@ -209,7 +210,7 @@ TEST(ScanVertexTest, CursorTest) {
209210

210211
ASSERT_EQ(0, resp.result.failed_parts.size());
211212
checkResponse(*resp.props_ref(), tag, tag.second.size() + 1 /* kVid */, totalRowCount);
212-
hasNext = resp.get_cursors().at(partId).get_has_next();
213+
hasNext = resp.get_cursors().at(partId).next_cursor_ref().has_value();
213214
if (hasNext) {
214215
CHECK(resp.get_cursors().at(partId).next_cursor_ref());
215216
cursor = *resp.get_cursors().at(partId).next_cursor_ref();

0 commit comments

Comments
 (0)