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 d420fa89389f7284a46464010df76e824ebbcc85
Author: Hongtao Gao <[email protected]>
AuthorDate: Wed May 13 09:46:10 2026 +0000

    chore(query/measure): mark row-path Analyze/DistributedAnalyze as deprecated
    
    The row-based logical measure-query plan (Analyze, DistributedAnalyze, the
    indexScan + GroupBy + Aggregation + Top + Limit logical nodes, and the
    resultMIterator pipeline) will be replaced by a separate vec measure
    subsystem with its own analyzer and plan tree — no leaf substitution into
    the row plan (see .omc/g8-plan.md).
    
    Mark the two row-path entry points with `// Deprecated:` comments so any
    new cross-package use fires SA1019. The two existing production call
    sites (banyand/query/processor.go:213 and banyand/dquery/measure.go:78)
    are quieted with `//nolint:staticcheck` until G8d's top-level dispatch
    routes around them.
    
    No behavior change. Tests and lint clean.
---
 banyand/dquery/measure.go                     |  1 +
 banyand/query/processor.go                    |  1 +
 pkg/query/logical/measure/measure_analyzer.go | 11 +++++++++++
 3 files changed, 13 insertions(+)

diff --git a/banyand/dquery/measure.go b/banyand/dquery/measure.go
index 3bfaaea45..bbca92f24 100644
--- a/banyand/dquery/measure.go
+++ b/banyand/dquery/measure.go
@@ -74,6 +74,7 @@ func (p *measureQueryProcessor) Rev(ctx context.Context, 
message bus.Message) (r
                schemas = append(schemas, s)
        }
 
+       // nolint:staticcheck // SA1019 — row-path DistributedAnalyze is the 
only production path until G8 ships.
        plan, err := logical_measure.DistributedAnalyze(queryCriteria, schemas)
        if err != nil {
                resp = bus.NewMessage(bus.MessageID(now), common.NewError("fail 
to analyze the query request for measure %s: %v", queryCriteria.Name, err))
diff --git a/banyand/query/processor.go b/banyand/query/processor.go
index 0ebd31a3e..e0d6f7b2e 100644
--- a/banyand/query/processor.go
+++ b/banyand/query/processor.go
@@ -209,6 +209,7 @@ func executeMeasurePlan(
        mctx *measureExecutionContext,
        emitPartial bool,
 ) (executor.MIterator, logical.Plan, error) {
+       // nolint:staticcheck // SA1019 — row-path Analyze is the only 
production path until G8 ships.
        plan, planErr := logical_measure.Analyze(queryCriteria, mctx.metadata, 
mctx.schemas, mctx.ecc, emitPartial)
        if planErr != nil {
                return nil, nil, fmt.Errorf("fail to analyze the query request 
for measure %s: %w", queryCriteria.GetName(), planErr)
diff --git a/pkg/query/logical/measure/measure_analyzer.go 
b/pkg/query/logical/measure/measure_analyzer.go
index 06c1f4a8d..224327d2b 100644
--- a/pkg/query/logical/measure/measure_analyzer.go
+++ b/pkg/query/logical/measure/measure_analyzer.go
@@ -54,6 +54,13 @@ func BuildSchema(md *databasev1.Measure, indexRules 
[]*databasev1.IndexRule) (lo
 }
 
 // Analyze converts logical expressions to executable operation tree 
represented by Plan.
+//
+// Deprecated: This is the row-based measure query analyzer. The vec measure
+// subsystem (.omc/g8-plan.md) will replace this with a separate vec analyzer
+// that produces a vec plan tree (no leaf substitution into the row plan).
+// Do not extend with new features; the dispatch from 
`banyand/query/processor.go`
+// will route to the vec analyzer when `VectorizedConfig.Enabled` is true once
+// G8 lands.
 func Analyze(criteria *measurev1.QueryRequest, metadata []*commonv1.Metadata, 
ss []logical.Schema,
        ecc []executor.MeasureExecutionContext, emitPartial bool,
 ) (logical.Plan, error) {
@@ -150,6 +157,10 @@ func Analyze(criteria *measurev1.QueryRequest, metadata 
[]*commonv1.Metadata, ss
 }
 
 // DistributedAnalyze converts logical expressions to executable operation 
tree represented by Plan.
+//
+// Deprecated: Row-based distributed-query analyzer; see Analyze for the
+// replacement plan. The vec measure subsystem (G8) will provide a
+// vec-distributed variant once standalone-vec parity is stable.
 func DistributedAnalyze(criteria *measurev1.QueryRequest, ss []logical.Schema) 
(logical.Plan, error) {
        var groupByTags [][]*logical.Tag
        if criteria.GetGroupBy() != nil {

Reply via email to