This is an automated email from the ASF dual-hosted git repository.

hanahmily pushed a commit to branch sidx/interface
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb.git

commit fb39bf2acd6e6da66fd336479d609fbfeeebc9e0
Author: Gao Hongtao <hanahm...@gmail.com>
AuthorDate: Tue Aug 19 10:08:19 2025 +0700

    Refactor error handling and context usage in SIDX examples
---
 banyand/internal/sidx/interfaces.go               |  3 ++-
 banyand/internal/sidx/interfaces_examples.go      | 18 +++++++++---------
 banyand/internal/sidx/interfaces_examples_test.go |  4 ++--
 3 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/banyand/internal/sidx/interfaces.go 
b/banyand/internal/sidx/interfaces.go
index 59831ab7..cd68c3db 100644
--- a/banyand/internal/sidx/interfaces.go
+++ b/banyand/internal/sidx/interfaces.go
@@ -498,9 +498,10 @@ func (qr *QueryRequest) CopyFrom(other *QueryRequest) {
 //             },
 //     }
 
+//nolint:godot
 // Interface Design Principles.
 //
-// 1. **Single Responsibility**: Each interface has a focused, well-defined 
purpose
+// 1. **Single Responsibility**: Each interface has a focused, well-defined 
purpose.
 // 2. **Minimal Surface Area**: Interfaces expose only essential methods
 // 3. **Composability**: Interfaces can be combined to create larger systems
 // 4. **Testability**: Small interfaces are easy to mock and test
diff --git a/banyand/internal/sidx/interfaces_examples.go 
b/banyand/internal/sidx/interfaces_examples.go
index fbeaebec..d14ba4f6 100644
--- a/banyand/internal/sidx/interfaces_examples.go
+++ b/banyand/internal/sidx/interfaces_examples.go
@@ -184,14 +184,14 @@ func (e *InterfaceUsageExamples) FlushAndMergeExample(ctx 
context.Context) error
                stats.MemoryUsageBytes, stats.DiskUsageBytes, stats.PartCount)
 
        // Trigger flush to persist memory parts
-       if err := e.sidx.Flush(); err != nil {
-               return fmt.Errorf("flush operation failed: %w", err)
+       if flushErr := e.sidx.Flush(); flushErr != nil {
+               return fmt.Errorf("flush operation failed: %w", flushErr)
        }
        log.Println("Flush completed successfully")
 
        // Trigger merge to compact parts
-       if err := e.sidx.Merge(); err != nil {
-               return fmt.Errorf("merge operation failed: %w", err)
+       if mergeErr := e.sidx.Merge(); mergeErr != nil {
+               return fmt.Errorf("merge operation failed: %w", mergeErr)
        }
        log.Println("Merge completed successfully")
 
@@ -384,7 +384,7 @@ func int64ToBytes(val int64) []byte {
 // In production, this would be replaced with the actual SIDX implementation.
 type mockSIDX struct{}
 
-func (m *mockSIDX) Write(ctx context.Context, reqs []WriteRequest) error {
+func (m *mockSIDX) Write(_ context.Context, reqs []WriteRequest) error {
        if len(reqs) == 0 {
                return fmt.Errorf("empty write request")
        }
@@ -396,7 +396,7 @@ func (m *mockSIDX) Write(ctx context.Context, reqs 
[]WriteRequest) error {
        return nil
 }
 
-func (m *mockSIDX) Query(ctx context.Context, req QueryRequest) (QueryResult, 
error) {
+func (m *mockSIDX) Query(_ context.Context, req QueryRequest) (QueryResult, 
error) {
        if req.Name == "" {
                return nil, fmt.Errorf("query name cannot be empty")
        }
@@ -406,7 +406,7 @@ func (m *mockSIDX) Query(ctx context.Context, req 
QueryRequest) (QueryResult, er
        return &mockQueryResult{}, nil
 }
 
-func (m *mockSIDX) Stats(ctx context.Context) (Stats, error) {
+func (m *mockSIDX) Stats(_ context.Context) (Stats, error) {
        return Stats{
                MemoryUsageBytes: 1024 * 1024 * 100, // 100MB
                DiskUsageBytes:   1024 * 1024 * 500, // 500MB
@@ -471,9 +471,9 @@ func (m *mockQueryResult) Release() {
 // The following section provides contract specifications for each interface
 // to guide testing and implementation verification.
 
-// SIDXContract defines the behavioral contract for SIDX implementations.
+// Contract defines the behavioral contract for SIDX implementations.
 // All SIDX implementations must satisfy these contracts.
-type SIDXContract struct {
+type Contract struct {
        // Write Contract:
        // - MUST accept batch writes with pre-sorted elements
        // - MUST validate WriteRequest fields (non-zero SeriesID, valid tags)
diff --git a/banyand/internal/sidx/interfaces_examples_test.go 
b/banyand/internal/sidx/interfaces_examples_test.go
index 4dd2ef81..cf5144da 100644
--- a/banyand/internal/sidx/interfaces_examples_test.go
+++ b/banyand/internal/sidx/interfaces_examples_test.go
@@ -48,7 +48,7 @@ func TestInterfaceUsageExamples(t *testing.T) {
                assert.NoError(t, err)
        })
 
-       t.Run("ErrorHandlingExample", func(t *testing.T) {
+       t.Run("ErrorHandlingExample", func(_ *testing.T) {
                // This example doesn't return errors, just demonstrates error 
handling
                examples.ErrorHandlingExample(ctx)
        })
@@ -162,7 +162,7 @@ func TestMockQueryResult(t *testing.T) {
                assert.Nil(t, response)
        })
 
-       t.Run("Release doesn't panic", func(t *testing.T) {
+       t.Run("Release doesn't panic", func(_ *testing.T) {
                // Should not panic
                result.Release()
        })

Reply via email to