This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb.git
The following commit(s) were added to refs/heads/main by this push:
new 38148cad Fix NPE (#639)
38148cad is described below
commit 38148cadf62deb2c5c8decc90979d6a6e045b9d8
Author: Gao Hongtao <[email protected]>
AuthorDate: Wed Apr 2 13:08:46 2025 +0800
Fix NPE (#639)
---
banyand/stream/index.go | 6 +++++-
pkg/query/logical/stream/index_filter.go | 20 ++++++++++++--------
2 files changed, 17 insertions(+), 9 deletions(-)
diff --git a/banyand/stream/index.go b/banyand/stream/index.go
index 0d776078..cb2b2ebc 100644
--- a/banyand/stream/index.go
+++ b/banyand/stream/index.go
@@ -90,11 +90,15 @@ func (e *elementIndex) Search(ctx context.Context,
seriesList []uint64, filter i
continue
}
if result == nil {
- result, resultTS = pl, plTS
+ result = pl
} else {
if err := result.Union(pl); err != nil {
return nil, nil, err
}
+ }
+ if resultTS == nil {
+ resultTS = plTS
+ } else {
if err := resultTS.Union(plTS); err != nil {
return nil, nil, err
}
diff --git a/pkg/query/logical/stream/index_filter.go
b/pkg/query/logical/stream/index_filter.go
index 7b875862..be3f090b 100644
--- a/pkg/query/logical/stream/index_filter.go
+++ b/pkg/query/logical/stream/index_filter.go
@@ -211,22 +211,26 @@ func execute(searcher index.GetSearcher, seriesID
common.SeriesID, n *node, lp l
if err != nil {
return nil, nil, err
}
- if result == nil {
- result = r
- continue
- }
- result, err = lp.merge(result, r)
- if err != nil {
+ if result, err = merge(result, r, lp); err != nil {
return nil, nil, err
}
- resultTS, err = lp.merge(resultTS, rt)
- if err != nil {
+ if resultTS, err = merge(resultTS, rt, lp); err != nil {
return nil, nil, err
}
}
return result, resultTS, nil
}
+func merge(result posting.List, list posting.List, lp logicalOP)
(posting.List, error) {
+ if result == nil {
+ return list, nil
+ }
+ if list == nil {
+ return result, nil
+ }
+ return lp.merge(result, list)
+}
+
type andNode struct {
*node
}