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

Reply via email to