This is an automated email from the ASF dual-hosted git repository. hanahmily pushed a commit to branch vectorized-query in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb.git
commit 4e432ecb134472f6e6394e31f520724bb25dd5b5 Author: Hongtao Gao <[email protected]> AuthorDate: Sun May 3 11:46:40 2026 +0000 chore: fix lint issues in vectorized/measure package - gci import-block alignment in cursor_test.go (auto-fixed by make format) - godot section-comment punctuation in extract_test.go - revive unexported-return in cursor.go: rename SeriesCursor.NextRow → nextRow (only consumed in-package; seriesRow stays package-private) - revive if-return in scan.go: collapse fillFromCurrent terminal check to direct return fillFields(...) --- pkg/query/vectorized/measure/cursor.go | 6 +++-- pkg/query/vectorized/measure/cursor_test.go | 38 ++++++++++++++-------------- pkg/query/vectorized/measure/extract_test.go | 14 +++++----- pkg/query/vectorized/measure/scan.go | 5 +--- 4 files changed, 31 insertions(+), 32 deletions(-) diff --git a/pkg/query/vectorized/measure/cursor.go b/pkg/query/vectorized/measure/cursor.go index bf183c1d8..c2630c553 100644 --- a/pkg/query/vectorized/measure/cursor.go +++ b/pkg/query/vectorized/measure/cursor.go @@ -92,14 +92,16 @@ func (c *SeriesCursor) Advance(n int) { } } -// NextRow returns the next row across series boundaries. +// nextRow returns the next row across series boundaries. It is unexported +// because seriesRow is package-private; BatchScan reads rows via the public +// Current/Advance bulk API. // // Returns: // - (row, nil) when a row is available; // - (zero, nil) on clean EOF; // - (zero, stickyErr) if a storage error has been observed; subsequent calls // return the same error until Init is called again. -func (c *SeriesCursor) NextRow() (seriesRow, error) { +func (c *SeriesCursor) nextRow() (seriesRow, error) { if c.err != nil { return seriesRow{}, c.err } diff --git a/pkg/query/vectorized/measure/cursor_test.go b/pkg/query/vectorized/measure/cursor_test.go index eb6d64d8c..b14a2776c 100644 --- a/pkg/query/vectorized/measure/cursor_test.go +++ b/pkg/query/vectorized/measure/cursor_test.go @@ -37,18 +37,18 @@ func TestSeriesCursor_NextRow_AdvancesWithinSeries(t *testing.T) { qr := &fakeMeasureQueryResult{seq: []*model.MeasureResult{mkResult(1, 10, 20, 30)}} var c SeriesCursor c.Init(qr) - r1, err := c.NextRow() + r1, err := c.nextRow() if err != nil { t.Fatal(err) } if r1.timestamp != 10 || r1.sid != 1 { t.Fatalf("row 1: ts=%d sid=%d", r1.timestamp, r1.sid) } - r2, _ := c.NextRow() + r2, _ := c.nextRow() if r2.timestamp != 20 { t.Fatalf("row 2: ts=%d", r2.timestamp) } - r3, _ := c.NextRow() + r3, _ := c.nextRow() if r3.timestamp != 30 { t.Fatalf("row 3: ts=%d", r3.timestamp) } @@ -61,9 +61,9 @@ func TestSeriesCursor_NextRow_CrossesSeriesBoundary(t *testing.T) { }} var c SeriesCursor c.Init(qr) - _, _ = c.NextRow() // ts=100, sid=1 - _, _ = c.NextRow() // ts=200, sid=1 - r, err := c.NextRow() + _, _ = c.nextRow() // ts=100, sid=1 + _, _ = c.nextRow() // ts=200, sid=1 + r, err := c.nextRow() if err != nil { t.Fatal(err) } @@ -75,13 +75,13 @@ func TestSeriesCursor_NextRow_CrossesSeriesBoundary(t *testing.T) { func TestSeriesCursor_NextRow_SkipsEmptyMeasureResult(t *testing.T) { qr := &fakeMeasureQueryResult{seq: []*model.MeasureResult{ mkResult(1, 100), - mkResult(2), // empty — must be skipped + mkResult(2), // empty — must be skipped mkResult(3, 300), }} var c SeriesCursor c.Init(qr) - _, _ = c.NextRow() // sid=1 - r, _ := c.NextRow() + _, _ = c.nextRow() // sid=1 + r, _ := c.nextRow() if r.sid != 3 || r.timestamp != 300 { t.Fatalf("expected to skip empty series 2; got sid=%d ts=%d", r.sid, r.timestamp) } @@ -91,8 +91,8 @@ func TestSeriesCursor_NextRow_EOF_ReturnsZeroValueAndNilErr(t *testing.T) { qr := &fakeMeasureQueryResult{seq: []*model.MeasureResult{mkResult(1, 100)}} var c SeriesCursor c.Init(qr) - _, _ = c.NextRow() - r, err := c.NextRow() + _, _ = c.nextRow() + r, err := c.nextRow() if err != nil { t.Fatalf("EOF must return nil err, got %v", err) } @@ -106,7 +106,7 @@ func TestSeriesCursor_StorageError_StickyOnFirstCall(t *testing.T) { qr := &fakeMeasureQueryResult{seq: []*model.MeasureResult{mkResultErr(boom)}} var c SeriesCursor c.Init(qr) - _, err := c.NextRow() + _, err := c.nextRow() if !errors.Is(err, boom) { t.Fatalf("first NextRow must surface storage error, got %v", err) } @@ -120,7 +120,7 @@ func TestSeriesCursor_StorageError_StickyOnSubsequentCalls(t *testing.T) { var c SeriesCursor c.Init(qr) for i := range 3 { - _, err := c.NextRow() + _, err := c.nextRow() if !errors.Is(err, boom) { t.Fatalf("call %d: storage error must remain sticky, got %v", i, err) } @@ -134,11 +134,11 @@ func TestSeriesCursor_RemainingInSeries_DropsAsPosAdvances(t *testing.T) { if c.RemainingInSeries() != 3 { t.Fatalf("initial RemainingInSeries: want 3, got %d", c.RemainingInSeries()) } - _, _ = c.NextRow() + _, _ = c.nextRow() if c.RemainingInSeries() != 2 { t.Fatalf("after 1 NextRow: want 2, got %d", c.RemainingInSeries()) } - _, _ = c.NextRow() + _, _ = c.nextRow() if c.RemainingInSeries() != 1 { t.Fatalf("after 2 NextRows: want 1, got %d", c.RemainingInSeries()) } @@ -152,7 +152,7 @@ func TestSeriesCursor_Current_ReturnsCurrentResultAndPos(t *testing.T) { if cur == nil || cur.SID != 7 || pos != 0 { t.Fatalf("Current after Init: got cur=%v pos=%d", cur, pos) } - _, _ = c.NextRow() + _, _ = c.nextRow() cur, pos = c.Current() if cur == nil || pos != 1 { t.Fatalf("Current after 1 NextRow: pos=%d", pos) @@ -167,7 +167,7 @@ func TestSeriesCursor_Advance_CrossesSeriesWhenPosReachesEnd(t *testing.T) { var c SeriesCursor c.Init(qr) c.Advance(3) // exhaust series 1 - r, err := c.NextRow() + r, err := c.nextRow() if err != nil { t.Fatal(err) } @@ -180,8 +180,8 @@ func TestSeriesCursor_Close_Idempotent_SafeAfterEOF(t *testing.T) { qr := &fakeMeasureQueryResult{seq: []*model.MeasureResult{mkResult(1, 100)}} var c SeriesCursor c.Init(qr) - _, _ = c.NextRow() - _, _ = c.NextRow() // EOF + _, _ = c.nextRow() + _, _ = c.nextRow() // EOF defer func() { if r := recover(); r != nil { t.Fatalf("Close must not panic: %v", r) diff --git a/pkg/query/vectorized/measure/extract_test.go b/pkg/query/vectorized/measure/extract_test.go index 76b146a59..f81557004 100644 --- a/pkg/query/vectorized/measure/extract_test.go +++ b/pkg/query/vectorized/measure/extract_test.go @@ -85,7 +85,7 @@ func preallocInt64(c *vectorized.TypedColumn[int64], n int) { } } -// === extractTagRow positives === +// extractTagRow positives. func TestExtractTagRow_Int_WritesValue(t *testing.T) { col := vectorized.NewInt64Column(4) @@ -125,7 +125,7 @@ func TestExtractTagRow_Timestamp_WritesUnixNano(t *testing.T) { } } -// === extractTagRow defensive-copy parity-killers === +// extractTagRow defensive-copy parity-killers. func TestExtractTagRow_BinaryData_DefensiveCopy(t *testing.T) { src := []byte("abc") @@ -169,7 +169,7 @@ func TestExtractTagRow_StrArray_DefensiveCopy(t *testing.T) { } } -// === extractTagRow Null === +// extractTagRow Null. func TestExtractTagRow_Null_MarksValidityWithoutGrowingLen(t *testing.T) { col := vectorized.NewInt64Column(4) @@ -186,7 +186,7 @@ func TestExtractTagRow_Null_MarksValidityWithoutGrowingLen(t *testing.T) { } } -// === extractTagRow error paths === +// extractTagRow error paths. func TestExtractTagRow_UnknownVariant_ReturnsError(t *testing.T) { tv := &modelv1.TagValue{} // Value is nil — no oneof set @@ -213,7 +213,7 @@ func TestExtractTagRow_ColumnTypeMismatch_ReturnsError(t *testing.T) { } } -// === extractFieldRow positives === +// extractFieldRow positives. func TestExtractFieldRow_Int_WritesValue(t *testing.T) { col := vectorized.NewInt64Column(2) @@ -273,7 +273,7 @@ func TestExtractFieldRow_Null_MarksValidity(t *testing.T) { } } -// === extractFieldRow error paths === +// extractFieldRow error paths. func TestExtractFieldRow_UnknownVariant_ReturnsError(t *testing.T) { fv := &modelv1.FieldValue{} @@ -300,7 +300,7 @@ func TestExtractFieldRow_ColumnTypeMismatch_ReturnsError(t *testing.T) { } } -// === extract*Bulk === +// extract bulk variants. func TestExtractTagBulk_HappyPath(t *testing.T) { col := vectorized.NewStringColumn(4) diff --git a/pkg/query/vectorized/measure/scan.go b/pkg/query/vectorized/measure/scan.go index 6f06b6d1e..678346a83 100644 --- a/pkg/query/vectorized/measure/scan.go +++ b/pkg/query/vectorized/measure/scan.go @@ -112,10 +112,7 @@ func (s *BatchScan) fillFromCurrent(b *vectorized.RecordBatch, n int) error { if fillErr := fillTags(b, s.schema, cur, pos, offset, n); fillErr != nil { return fillErr } - if fillErr := fillFields(b, s.schema, cur, pos, offset, n); fillErr != nil { - return fillErr - } - return nil + return fillFields(b, s.schema, cur, pos, offset, n) } // fillMetadata populates the timestamp, version, series-id, and shard-id
