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 {
