This is an automated email from the ASF dual-hosted git repository. hanahmily pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb.git
The following commit(s) were added to refs/heads/main by this push: new 06fa02d move legacy impl to v1 packages (#51) 06fa02d is described below commit 06fa02df8d3364c6650937fe64b8ef4d0d46cea1 Author: Jiajing LU <lujiajing1...@gmail.com> AuthorDate: Sat Sep 25 14:09:04 2021 +0800 move legacy impl to v1 packages (#51) --- banyand/internal/cmd/standalone.go | 4 +- banyand/liaison/grpc/trace.go | 2 +- banyand/liaison/grpc/trace_test.go | 18 ++++----- banyand/query/{ => v1}/processor.go | 6 +-- banyand/query/{ => v1}/processor_test.go | 30 +++++++-------- banyand/query/{ => v1}/query.go | 2 +- banyand/series/trace/common_test.go | 4 +- banyand/series/trace/query.go | 12 +++--- banyand/series/trace/service.go | 10 ++--- banyand/series/trace/trace.go | 4 +- banyand/series/trace/write_test.go | 4 +- pkg/pb/{ => v1}/database.go | 2 +- pkg/pb/{ => v1}/fields.go | 2 +- pkg/pb/{ => v1}/query.go | 2 +- pkg/pb/{ => v1}/write.go | 2 +- pkg/query/{ => v1}/executor/interface.go | 0 pkg/query/{ => v1}/logical/analyzer.go | 0 pkg/query/{ => v1}/logical/analyzer_test.go | 46 +++++++++++------------ pkg/query/{ => v1}/logical/common_test.go | 26 +++++++------ pkg/query/{ => v1}/logical/expr.go | 0 pkg/query/{ => v1}/logical/expr_literal.go | 0 pkg/query/{ => v1}/logical/format.go | 0 pkg/query/{ => v1}/logical/interface.go | 2 +- pkg/query/{ => v1}/logical/plan.go | 2 +- pkg/query/{ => v1}/logical/plan_execution_test.go | 44 +++++++++++----------- pkg/query/{ => v1}/logical/plan_indexscan.go | 2 +- pkg/query/{ => v1}/logical/plan_orderby.go | 2 +- pkg/query/{ => v1}/logical/plan_tablescan.go | 2 +- pkg/query/{ => v1}/logical/plan_traceid.go | 2 +- pkg/query/{ => v1}/logical/schema.go | 0 30 files changed, 117 insertions(+), 115 deletions(-) diff --git a/banyand/internal/cmd/standalone.go b/banyand/internal/cmd/standalone.go index 5ee6c22..9173ae5 100644 --- a/banyand/internal/cmd/standalone.go +++ b/banyand/internal/cmd/standalone.go @@ -26,7 +26,7 @@ import ( "github.com/apache/skywalking-banyandb/banyand/discovery" "github.com/apache/skywalking-banyandb/banyand/index" "github.com/apache/skywalking-banyandb/banyand/liaison" - "github.com/apache/skywalking-banyandb/banyand/query" + v1 "github.com/apache/skywalking-banyandb/banyand/query/v1" "github.com/apache/skywalking-banyandb/banyand/queue" "github.com/apache/skywalking-banyandb/banyand/series/trace" "github.com/apache/skywalking-banyandb/banyand/storage" @@ -65,7 +65,7 @@ func newStandaloneCmd() *cobra.Command { if err != nil { l.Fatal().Err(err).Msg("failed to initiate trace series") } - q, err := query.NewExecutor(ctx, repo, idx, traceSeries, traceSeries, pipeline) + q, err := v1.NewExecutor(ctx, repo, idx, traceSeries, traceSeries, pipeline) if err != nil { l.Fatal().Err(err).Msg("failed to initiate query executor") } diff --git a/banyand/liaison/grpc/trace.go b/banyand/liaison/grpc/trace.go index 9ee1f35..dd55aad 100644 --- a/banyand/liaison/grpc/trace.go +++ b/banyand/liaison/grpc/trace.go @@ -42,7 +42,7 @@ import ( "github.com/apache/skywalking-banyandb/pkg/convert" "github.com/apache/skywalking-banyandb/pkg/logger" "github.com/apache/skywalking-banyandb/pkg/partition" - "github.com/apache/skywalking-banyandb/pkg/query/logical" + "github.com/apache/skywalking-banyandb/pkg/query/v1/logical" "github.com/apache/skywalking-banyandb/pkg/run" ) diff --git a/banyand/liaison/grpc/trace_test.go b/banyand/liaison/grpc/trace_test.go index 1d002b0..624ef32 100644 --- a/banyand/liaison/grpc/trace_test.go +++ b/banyand/liaison/grpc/trace_test.go @@ -37,12 +37,12 @@ import ( "github.com/apache/skywalking-banyandb/banyand/discovery" "github.com/apache/skywalking-banyandb/banyand/index" "github.com/apache/skywalking-banyandb/banyand/liaison/grpc" - "github.com/apache/skywalking-banyandb/banyand/query" + v12 "github.com/apache/skywalking-banyandb/banyand/query/v1" "github.com/apache/skywalking-banyandb/banyand/queue" "github.com/apache/skywalking-banyandb/banyand/series/trace" "github.com/apache/skywalking-banyandb/banyand/storage" "github.com/apache/skywalking-banyandb/pkg/logger" - "github.com/apache/skywalking-banyandb/pkg/pb" + v1 "github.com/apache/skywalking-banyandb/pkg/pb/v1" ) type testData struct { @@ -78,7 +78,7 @@ func setup(tester *require.Assertions) (*grpc.Server, *grpc.Server, func()) { traceSvc, err := trace.NewService(context.TODO(), db, repo, indexSvc, pipeline) tester.NoError(err) // Init `Query` module - executor, err := query.NewExecutor(context.TODO(), repo, indexSvc, traceSvc, traceSvc, pipeline) + executor, err := v12.NewExecutor(context.TODO(), repo, indexSvc, traceSvc, traceSvc, pipeline) tester.NoError(err) // Init `liaison` module tcp := grpc.NewServer(context.TODO(), pipeline, repo) @@ -144,7 +144,7 @@ func TestTraceService(t *testing.T) { { name: "isTLS", queryGenerator: func(baseTs time.Time) *tracev1.QueryRequest { - return pb.NewQueryRequestBuilder(). + return v1.NewQueryRequestBuilder(). Limit(10). Offset(0). Metadata("default", "sw"). @@ -154,7 +154,7 @@ func TestTraceService(t *testing.T) { Build() }, writeGenerator: func() *tracev1.WriteRequest { - entityValue := pb.NewEntityValueBuilder(). + entityValue := v1.NewEntityValueBuilder(). EntityID("entityId123"). DataBinary([]byte{12}). Fields("trace_id-xxfff.111", @@ -166,7 +166,7 @@ func TestTraceService(t *testing.T) { 1622933202000000000). Timestamp(time.Now()). Build() - criteria := pb.NewWriteEntityBuilder(). + criteria := v1.NewWriteEntityBuilder(). EntityValue(entityValue). Metadata("default", "sw"). Build() @@ -183,7 +183,7 @@ func TestTraceService(t *testing.T) { { name: "noTLS", queryGenerator: func(baseTs time.Time) *tracev1.QueryRequest { - return pb.NewQueryRequestBuilder(). + return v1.NewQueryRequestBuilder(). Limit(10). Offset(0). Metadata("default", "sw"). @@ -193,7 +193,7 @@ func TestTraceService(t *testing.T) { Build() }, writeGenerator: func() *tracev1.WriteRequest { - entityValue := pb.NewEntityValueBuilder(). + entityValue := v1.NewEntityValueBuilder(). EntityID("entityId123"). DataBinary([]byte{12}). Fields("trace_id-xxfff.111323", @@ -205,7 +205,7 @@ func TestTraceService(t *testing.T) { 1622933202000000000). Timestamp(time.Now()). Build() - criteria := pb.NewWriteEntityBuilder(). + criteria := v1.NewWriteEntityBuilder(). EntityValue(entityValue). Metadata("default", "sw"). Build() diff --git a/banyand/query/processor.go b/banyand/query/v1/processor.go similarity index 95% rename from banyand/query/processor.go rename to banyand/query/v1/processor.go index b86f6a7..a93cd31 100644 --- a/banyand/query/processor.go +++ b/banyand/query/v1/processor.go @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package query +package v1 import ( "context" @@ -31,8 +31,8 @@ import ( "github.com/apache/skywalking-banyandb/banyand/series" "github.com/apache/skywalking-banyandb/pkg/bus" "github.com/apache/skywalking-banyandb/pkg/logger" - "github.com/apache/skywalking-banyandb/pkg/query/executor" - "github.com/apache/skywalking-banyandb/pkg/query/logical" + "github.com/apache/skywalking-banyandb/pkg/query/v1/executor" + "github.com/apache/skywalking-banyandb/pkg/query/v1/logical" ) const ( diff --git a/banyand/query/processor_test.go b/banyand/query/v1/processor_test.go similarity index 95% rename from banyand/query/processor_test.go rename to banyand/query/v1/processor_test.go index 8cfa5d3..49feabb 100644 --- a/banyand/query/processor_test.go +++ b/banyand/query/v1/processor_test.go @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package query +package v1 import ( "context" @@ -41,8 +41,8 @@ import ( "github.com/apache/skywalking-banyandb/banyand/storage" "github.com/apache/skywalking-banyandb/pkg/bus" "github.com/apache/skywalking-banyandb/pkg/logger" - "github.com/apache/skywalking-banyandb/pkg/pb" - "github.com/apache/skywalking-banyandb/pkg/query/logical" + v1 "github.com/apache/skywalking-banyandb/pkg/pb/v1" + "github.com/apache/skywalking-banyandb/pkg/query/v1/logical" ) var ( @@ -309,7 +309,7 @@ func TestQueryProcessor(t *testing.T) { { name: "query given timeRange is out of the time range of data", queryGenerator: func(baseTs time.Time) *tracev1.QueryRequest { - return pb.NewQueryRequestBuilder(). + return v1.NewQueryRequestBuilder(). Limit(10). Offset(0). Metadata("default", "sw"). @@ -322,7 +322,7 @@ func TestQueryProcessor(t *testing.T) { { name: "query given timeRange which slightly covers the first three segments", queryGenerator: func(baseTs time.Time) *tracev1.QueryRequest { - return pb.NewQueryRequestBuilder(). + return v1.NewQueryRequestBuilder(). Limit(10). Offset(0). Metadata("default", "sw"). @@ -336,7 +336,7 @@ func TestQueryProcessor(t *testing.T) { { name: "query given timeRange which slightly covers the first three segments with data binary projection", queryGenerator: func(baseTs time.Time) *tracev1.QueryRequest { - return pb.NewQueryRequestBuilder(). + return v1.NewQueryRequestBuilder(). Limit(10). Offset(0). Metadata("default", "sw"). @@ -350,7 +350,7 @@ func TestQueryProcessor(t *testing.T) { { name: "query given timeRange which slightly covers the first three segments ans sort by duration", queryGenerator: func(baseTs time.Time) *tracev1.QueryRequest { - return pb.NewQueryRequestBuilder(). + return v1.NewQueryRequestBuilder(). Limit(10). Offset(0). Metadata("default", "sw"). @@ -367,7 +367,7 @@ func TestQueryProcessor(t *testing.T) { { name: "query TraceID given timeRange includes the time range of data", queryGenerator: func(baseTs time.Time) *tracev1.QueryRequest { - return pb.NewQueryRequestBuilder(). + return v1.NewQueryRequestBuilder(). Limit(10). Offset(0). Metadata("default", "sw"). @@ -382,7 +382,7 @@ func TestQueryProcessor(t *testing.T) { { name: "query TraceID given timeRange includes the time range of data with dataBinary projection", queryGenerator: func(baseTs time.Time) *tracev1.QueryRequest { - return pb.NewQueryRequestBuilder(). + return v1.NewQueryRequestBuilder(). Limit(10). Offset(0). Metadata("default", "sw"). @@ -397,7 +397,7 @@ func TestQueryProcessor(t *testing.T) { { name: "query TraceID given timeRange includes the time range of data but limit to 1", queryGenerator: func(baseTs time.Time) *tracev1.QueryRequest { - return pb.NewQueryRequestBuilder(). + return v1.NewQueryRequestBuilder(). Limit(1). Offset(0). Metadata("default", "sw"). @@ -411,7 +411,7 @@ func TestQueryProcessor(t *testing.T) { { name: "Numerical Index - query duration < 100", queryGenerator: func(baseTs time.Time) *tracev1.QueryRequest { - return pb.NewQueryRequestBuilder(). + return v1.NewQueryRequestBuilder(). Limit(1). Offset(0). Metadata("default", "sw"). @@ -425,7 +425,7 @@ func TestQueryProcessor(t *testing.T) { { name: "Numerical Index - query duration <= 400", queryGenerator: func(baseTs time.Time) *tracev1.QueryRequest { - return pb.NewQueryRequestBuilder(). + return v1.NewQueryRequestBuilder(). Limit(10). Offset(0). Metadata("default", "sw"). @@ -439,7 +439,7 @@ func TestQueryProcessor(t *testing.T) { { name: "Textual Index - db.type == MySQL", queryGenerator: func(baseTs time.Time) *tracev1.QueryRequest { - return pb.NewQueryRequestBuilder(). + return v1.NewQueryRequestBuilder(). Limit(10). Offset(0). Metadata("default", "sw"). @@ -454,7 +454,7 @@ func TestQueryProcessor(t *testing.T) { { name: "Textual Index - db.type == MySQL with dataBinary projection", queryGenerator: func(baseTs time.Time) *tracev1.QueryRequest { - return pb.NewQueryRequestBuilder(). + return v1.NewQueryRequestBuilder(). Limit(10). Offset(0). Metadata("default", "sw"). @@ -469,7 +469,7 @@ func TestQueryProcessor(t *testing.T) { { name: "Mixed Index - db.type == MySQL AND duration <= 300", queryGenerator: func(baseTs time.Time) *tracev1.QueryRequest { - return pb.NewQueryRequestBuilder(). + return v1.NewQueryRequestBuilder(). Limit(10). Offset(0). Metadata("default", "sw"). diff --git a/banyand/query/query.go b/banyand/query/v1/query.go similarity index 99% rename from banyand/query/query.go rename to banyand/query/v1/query.go index cbc990f..2d2f939 100644 --- a/banyand/query/query.go +++ b/banyand/query/v1/query.go @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package query +package v1 import ( "context" diff --git a/banyand/series/trace/common_test.go b/banyand/series/trace/common_test.go index c5f47d1..f9b2689 100644 --- a/banyand/series/trace/common_test.go +++ b/banyand/series/trace/common_test.go @@ -38,7 +38,7 @@ import ( "github.com/apache/skywalking-banyandb/pkg/convert" "github.com/apache/skywalking-banyandb/pkg/logger" "github.com/apache/skywalking-banyandb/pkg/partition" - "github.com/apache/skywalking-banyandb/pkg/pb" + v12 "github.com/apache/skywalking-banyandb/pkg/pb/v1" ) var _ sort.Interface = (ByEntityID)(nil) @@ -233,7 +233,7 @@ func setupTestData(t *testing.T, ts *traceSeries, seriesEntities []seriesEntity) results = make([]idWithShard, 0, len(seriesEntities)) for _, se := range seriesEntities { seriesID := []byte(se.seriesID) - ev := pb.NewEntityValueBuilder(). + ev := v12.NewEntityValueBuilder(). DataBinary(se.entity.binary). EntityID(se.entity.id). Timestamp(se.entity.t). diff --git a/banyand/series/trace/query.go b/banyand/series/trace/query.go index 144e6b4..522532f 100644 --- a/banyand/series/trace/query.go +++ b/banyand/series/trace/query.go @@ -32,7 +32,7 @@ import ( "github.com/apache/skywalking-banyandb/banyand/series" "github.com/apache/skywalking-banyandb/pkg/convert" "github.com/apache/skywalking-banyandb/pkg/partition" - "github.com/apache/skywalking-banyandb/pkg/pb" + v12 "github.com/apache/skywalking-banyandb/pkg/pb/v1" "github.com/apache/skywalking-banyandb/pkg/posting" "github.com/apache/skywalking-banyandb/pkg/posting/roaring" ) @@ -206,14 +206,14 @@ func (t *traceSeries) FetchEntity(chunkIDs posting.List, shardID uint, opt serie return entities, err } -func (t *traceSeries) parseFetchInfo(opt series.ScanOptions) (fetchFieldsIndices []pb.FieldEntry, err error) { - fetchFieldsIndices = make([]pb.FieldEntry, 0) +func (t *traceSeries) parseFetchInfo(opt series.ScanOptions) (fetchFieldsIndices []v12.FieldEntry, err error) { + fetchFieldsIndices = make([]v12.FieldEntry, 0) for _, p := range opt.Projection { f, ok := t.fieldIndex[p] if !ok { return nil, errors.Wrapf(ErrFieldNotFound, "field name:%s", p) } - fetchFieldsIndices = append(fetchFieldsIndices, pb.FieldEntry{ + fetchFieldsIndices = append(fetchFieldsIndices, v12.FieldEntry{ Key: p, Index: f.idx, Type: f.spec.GetType(), @@ -224,7 +224,7 @@ func (t *traceSeries) parseFetchInfo(opt series.ScanOptions) (fetchFieldsIndices } func (t *traceSeries) getEntityByInternalRef(seriesID []byte, state State, fetchDataBinary bool, - fetchFieldsIndices []pb.FieldEntry, shardID uint, ts uint64) (data.Entity, error) { + fetchFieldsIndices []v12.FieldEntry, shardID uint, ts uint64) (data.Entity, error) { fieldsStore, dataStore, err := getStoreName(state) if err != nil { return data.Entity{}, err @@ -246,7 +246,7 @@ func (t *traceSeries) getEntityByInternalRef(seriesID []byte, state State, fetch // Copy selected fields if len(fetchFieldsIndices) > 0 { - entity.Fields = pb.Transform(entityVal, fetchFieldsIndices) + entity.Fields = v12.Transform(entityVal, fetchFieldsIndices) } if fetchDataBinary { diff --git a/banyand/series/trace/service.go b/banyand/series/trace/service.go index 05fd04c..72f73b0 100644 --- a/banyand/series/trace/service.go +++ b/banyand/series/trace/service.go @@ -36,7 +36,7 @@ import ( "github.com/apache/skywalking-banyandb/banyand/storage" "github.com/apache/skywalking-banyandb/pkg/bus" "github.com/apache/skywalking-banyandb/pkg/logger" - "github.com/apache/skywalking-banyandb/pkg/pb" + v1 "github.com/apache/skywalking-banyandb/pkg/pb/v1" ) var _ series.Service = (*service)(nil) @@ -93,7 +93,7 @@ func (s *service) PreRun() error { func (s *service) Serve() error { now := time.Now().UnixNano() for _, sMeta := range s.schemaMap { - e := pb.NewSeriesEventBuilder(). + e := v1.NewSeriesEventBuilder(). SeriesMetadata(sMeta.group, sMeta.name). FieldNames(sMeta.fieldsNamesCompositeSeriesID...). Time(time.Now()). @@ -117,11 +117,11 @@ func (s *service) Serve() error { shardedRuleIndex := make([]*databasev1.IndexRuleEvent_ShardedIndexRule, 0, len(rules)*int(sMeta.shardNum)) for i := 0; i < int(sMeta.shardNum); i++ { t := time.Now() - e := pb.NewShardEventBuilder().Action(databasev1.Action_ACTION_PUT).Time(t). + e := v1.NewShardEventBuilder().Action(databasev1.Action_ACTION_PUT).Time(t). Shard( - pb.NewShardBuilder(). + v1.NewShardBuilder(). ID(uint64(i)).Total(sMeta.shardNum).SeriesMetadata(sMeta.group, sMeta.name).UpdatedAt(t).CreatedAt(t). - Node(pb.NewNodeBuilder(). + Node(v1.NewNodeBuilder(). ID(s.repo.NodeID()).CreatedAt(t).UpdatedAt(t).Addr("localhost"). Build()). Build()). diff --git a/banyand/series/trace/trace.go b/banyand/series/trace/trace.go index c64d871..2cf79a1 100644 --- a/banyand/series/trace/trace.go +++ b/banyand/series/trace/trace.go @@ -35,7 +35,7 @@ import ( "github.com/apache/skywalking-banyandb/pkg/convert" "github.com/apache/skywalking-banyandb/pkg/logger" "github.com/apache/skywalking-banyandb/pkg/partition" - "github.com/apache/skywalking-banyandb/pkg/pb" + v1 "github.com/apache/skywalking-banyandb/pkg/pb/v1" posting2 "github.com/apache/skywalking-banyandb/pkg/posting" ) @@ -114,7 +114,7 @@ func (s *service) Write(traceSeriesMetadata common.Metadata, ts time.Time, serie return false, err } - ev := pb.NewEntityValueBuilder(). + ev := v1.NewEntityValueBuilder(). DataBinary(dataBinary). EntityID(entityID). Fields(items...). diff --git a/banyand/series/trace/write_test.go b/banyand/series/trace/write_test.go index 18e4956..e2a1872 100644 --- a/banyand/series/trace/write_test.go +++ b/banyand/series/trace/write_test.go @@ -25,7 +25,7 @@ import ( "github.com/apache/skywalking-banyandb/api/data" "github.com/apache/skywalking-banyandb/pkg/convert" "github.com/apache/skywalking-banyandb/pkg/partition" - "github.com/apache/skywalking-banyandb/pkg/pb" + v1 "github.com/apache/skywalking-banyandb/pkg/pb/v1" ) func Test_traceSeries_Write(t *testing.T) { @@ -172,7 +172,7 @@ func Test_traceSeries_Write(t *testing.T) { if shardIDError != nil { return } - ev := pb.NewEntityValueBuilder(). + ev := v1.NewEntityValueBuilder(). DataBinary(tt.args.entity.binary). EntityID(tt.args.entity.id). Fields(tt.args.entity.items...). diff --git a/pkg/pb/database.go b/pkg/pb/v1/database.go similarity index 99% rename from pkg/pb/database.go rename to pkg/pb/v1/database.go index 614c42a..e03c90b 100644 --- a/pkg/pb/database.go +++ b/pkg/pb/v1/database.go @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package pb +package v1 import ( "time" diff --git a/pkg/pb/fields.go b/pkg/pb/v1/fields.go similarity index 99% rename from pkg/pb/fields.go rename to pkg/pb/v1/fields.go index c7190f1..e37b6b4 100644 --- a/pkg/pb/fields.go +++ b/pkg/pb/v1/fields.go @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package pb +package v1 import ( databasev1 "github.com/apache/skywalking-banyandb/api/proto/banyandb/database/v1" diff --git a/pkg/pb/query.go b/pkg/pb/v1/query.go similarity index 99% rename from pkg/pb/query.go rename to pkg/pb/v1/query.go index 2442eb0..b829db8 100644 --- a/pkg/pb/query.go +++ b/pkg/pb/v1/query.go @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package pb +package v1 import ( "time" diff --git a/pkg/pb/write.go b/pkg/pb/v1/write.go similarity index 99% rename from pkg/pb/write.go rename to pkg/pb/v1/write.go index 4ef3bf2..c08f7e4 100644 --- a/pkg/pb/write.go +++ b/pkg/pb/v1/write.go @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package pb +package v1 import ( "time" diff --git a/pkg/query/executor/interface.go b/pkg/query/v1/executor/interface.go similarity index 100% rename from pkg/query/executor/interface.go rename to pkg/query/v1/executor/interface.go diff --git a/pkg/query/logical/analyzer.go b/pkg/query/v1/logical/analyzer.go similarity index 100% rename from pkg/query/logical/analyzer.go rename to pkg/query/v1/logical/analyzer.go diff --git a/pkg/query/logical/analyzer_test.go b/pkg/query/v1/logical/analyzer_test.go similarity index 84% rename from pkg/query/logical/analyzer_test.go rename to pkg/query/v1/logical/analyzer_test.go index f20205f..8e36658 100644 --- a/pkg/query/logical/analyzer_test.go +++ b/pkg/query/v1/logical/analyzer_test.go @@ -29,14 +29,14 @@ import ( modelv1 "github.com/apache/skywalking-banyandb/api/proto/banyandb/model/v1" apischema "github.com/apache/skywalking-banyandb/api/schema" "github.com/apache/skywalking-banyandb/banyand/series" - "github.com/apache/skywalking-banyandb/pkg/pb" - "github.com/apache/skywalking-banyandb/pkg/query/logical" + pb "github.com/apache/skywalking-banyandb/pkg/pb/v1" + logical2 "github.com/apache/skywalking-banyandb/pkg/query/v1/logical" ) func TestAnalyzer_SimpleTimeScan(t *testing.T) { assert := require.New(t) - ana := logical.DefaultAnalyzer() + ana := logical2.DefaultAnalyzer() sT, eT := time.Now().Add(-3*time.Hour), time.Now() @@ -58,9 +58,9 @@ func TestAnalyzer_SimpleTimeScan(t *testing.T) { plan, err := ana.Analyze(context.TODO(), criteria, metadata, schema) assert.NoError(err) assert.NotNil(plan) - correctPlan, err := logical.Limit( - logical.Offset( - logical.TableScan(sT.UnixNano(), eT.UnixNano(), metadata, series.TraceStateDefault, false), + correctPlan, err := logical2.Limit( + logical2.Offset( + logical2.TableScan(sT.UnixNano(), eT.UnixNano(), metadata, series.TraceStateDefault, false), 0), 20). Analyze(schema) @@ -72,7 +72,7 @@ func TestAnalyzer_SimpleTimeScan(t *testing.T) { func TestAnalyzer_ComplexQuery(t *testing.T) { assert := require.New(t) - ana := logical.DefaultAnalyzer() + ana := logical2.DefaultAnalyzer() sT, eT := time.Now().Add(-3*time.Hour), time.Now() @@ -98,12 +98,12 @@ func TestAnalyzer_ComplexQuery(t *testing.T) { assert.NoError(err) assert.NotNil(plan) - correctPlan, err := logical.Limit( - logical.Offset( - logical.OrderBy(logical.IndexScan(sT.UnixNano(), eT.UnixNano(), metadata, - []logical.Expr{ - logical.Eq(logical.NewFieldRef("service_instance_id"), logical.Str("my_app")), - logical.Eq(logical.NewFieldRef("http.method"), logical.Str("GET")), + correctPlan, err := logical2.Limit( + logical2.Offset( + logical2.OrderBy(logical2.IndexScan(sT.UnixNano(), eT.UnixNano(), metadata, + []logical2.Expr{ + logical2.Eq(logical2.NewFieldRef("service_instance_id"), logical2.Str("my_app")), + logical2.Eq(logical2.NewFieldRef("http.method"), logical2.Str("GET")), }, series.TraceStateDefault, false), "service_instance_id", modelv1.QueryOrder_SORT_DESC), @@ -118,7 +118,7 @@ func TestAnalyzer_ComplexQuery(t *testing.T) { func TestAnalyzer_TraceIDQuery(t *testing.T) { assert := require.New(t) - ana := logical.DefaultAnalyzer() + ana := logical2.DefaultAnalyzer() criteria := pb.NewQueryRequestBuilder(). Limit(5). @@ -139,7 +139,7 @@ func TestAnalyzer_TraceIDQuery(t *testing.T) { assert.NoError(err) assert.NotNil(plan) - correctPlan, err := logical.TraceIDFetch("123", metadata, false).Analyze(schema) + correctPlan, err := logical2.TraceIDFetch("123", metadata, false).Analyze(schema) assert.NoError(err) assert.NotNil(correctPlan) cmp.Equal(plan, correctPlan) @@ -148,7 +148,7 @@ func TestAnalyzer_TraceIDQuery(t *testing.T) { func TestAnalyzer_Fields_FieldNotDefined(t *testing.T) { assert := require.New(t) - ana := logical.DefaultAnalyzer() + ana := logical2.DefaultAnalyzer() criteria := pb.NewQueryRequestBuilder(). Limit(5). @@ -169,13 +169,13 @@ func TestAnalyzer_Fields_FieldNotDefined(t *testing.T) { assert.NoError(err) _, err = ana.Analyze(context.TODO(), criteria, metadata, schema) - assert.ErrorIs(err, logical.ErrFieldNotDefined) + assert.ErrorIs(err, logical2.ErrFieldNotDefined) } func TestAnalyzer_OrderBy_FieldNotDefined(t *testing.T) { assert := require.New(t) - ana := logical.DefaultAnalyzer() + ana := logical2.DefaultAnalyzer() criteria := pb.NewQueryRequestBuilder(). Limit(5). @@ -195,13 +195,13 @@ func TestAnalyzer_OrderBy_FieldNotDefined(t *testing.T) { assert.NoError(err) _, err = ana.Analyze(context.TODO(), criteria, metadata, schema) - assert.ErrorIs(err, logical.ErrFieldNotDefined) + assert.ErrorIs(err, logical2.ErrFieldNotDefined) } func TestAnalyzer_Projection_FieldNotDefined(t *testing.T) { assert := require.New(t) - ana := logical.DefaultAnalyzer() + ana := logical2.DefaultAnalyzer() criteria := pb.NewQueryRequestBuilder(). Limit(5). @@ -221,13 +221,13 @@ func TestAnalyzer_Projection_FieldNotDefined(t *testing.T) { assert.NoError(err) _, err = ana.Analyze(context.TODO(), criteria, metadata, schema) - assert.ErrorIs(err, logical.ErrFieldNotDefined) + assert.ErrorIs(err, logical2.ErrFieldNotDefined) } func TestAnalyzer_Fields_IndexNotDefined(t *testing.T) { assert := require.New(t) - ana := logical.DefaultAnalyzer() + ana := logical2.DefaultAnalyzer() criteria := pb.NewQueryRequestBuilder(). Limit(5). @@ -247,5 +247,5 @@ func TestAnalyzer_Fields_IndexNotDefined(t *testing.T) { assert.NoError(err) _, err = ana.Analyze(context.TODO(), criteria, metadata, schema) - assert.ErrorIs(err, logical.ErrIndexNotDefined) + assert.ErrorIs(err, logical2.ErrIndexNotDefined) } diff --git a/pkg/query/logical/common_test.go b/pkg/query/v1/logical/common_test.go similarity index 89% rename from pkg/query/logical/common_test.go rename to pkg/query/v1/logical/common_test.go index f77bb54..0e5e059 100644 --- a/pkg/query/logical/common_test.go +++ b/pkg/query/v1/logical/common_test.go @@ -34,11 +34,13 @@ import ( apischema "github.com/apache/skywalking-banyandb/api/schema" "github.com/apache/skywalking-banyandb/banyand/index" "github.com/apache/skywalking-banyandb/banyand/series" - "github.com/apache/skywalking-banyandb/pkg/pb" + v1 "github.com/apache/skywalking-banyandb/pkg/pb/v1" "github.com/apache/skywalking-banyandb/pkg/posting" "github.com/apache/skywalking-banyandb/pkg/posting/roaring" - "github.com/apache/skywalking-banyandb/pkg/query/executor" - "github.com/apache/skywalking-banyandb/pkg/query/logical" + "github.com/apache/skywalking-banyandb/pkg/query/v1/executor" + executor2 "github.com/apache/skywalking-banyandb/pkg/query/v1/executor" + "github.com/apache/skywalking-banyandb/pkg/query/v1/logical" + logical2 "github.com/apache/skywalking-banyandb/pkg/query/v1/logical" ) type ChunkIDGenerator interface { @@ -101,7 +103,7 @@ func GenerateEntities(g ChunkIDGenerator) []data.Entity { entities := make([]data.Entity, 0) rand.Seed(time.Now().UnixNano()) for g.HasNext() { - et := pb.NewQueryEntityBuilder(). + et := v1.NewQueryEntityBuilder(). EntityID(strconv.FormatUint(uint64(g.Next()), 10)). Timestamp(time.Now()). Fields("trace_id", generateRndServiceName(rand.Int63()), "http.method", "GET"). @@ -121,10 +123,10 @@ type mockDataFactory struct { ctrl *gomock.Controller num int traceMetadata *common.Metadata - s logical.Schema + s logical2.Schema } -func newMockDataFactory(ctrl *gomock.Controller, traceMetadata *common.Metadata, s logical.Schema, num int) *mockDataFactory { +func newMockDataFactory(ctrl *gomock.Controller, traceMetadata *common.Metadata, s logical2.Schema, num int) *mockDataFactory { return &mockDataFactory{ ctrl: ctrl, num: num, @@ -133,7 +135,7 @@ func newMockDataFactory(ctrl *gomock.Controller, traceMetadata *common.Metadata, } } -func (f *mockDataFactory) MockParentPlan() logical.UnresolvedPlan { +func (f *mockDataFactory) MockParentPlan() logical2.UnresolvedPlan { p := logical.NewMockPlan(f.ctrl) p.EXPECT().Execute(gomock.Any()).Return(GenerateEntities(GeneratorFromRange(0, common.ChunkID(f.num-1))), nil) p.EXPECT().Schema().Return(f.s).AnyTimes() @@ -142,7 +144,7 @@ func (f *mockDataFactory) MockParentPlan() logical.UnresolvedPlan { return up } -func (f *mockDataFactory) MockTraceIDFetch(traceID string) executor.ExecutionContext { +func (f *mockDataFactory) MockTraceIDFetch(traceID string) executor2.ExecutionContext { ec := executor.NewMockExecutionContext(f.ctrl) ec.EXPECT().FetchTrace(*f.traceMetadata, traceID, series.ScanOptions{}).Return(data.Trace{ KindVersion: common.KindVersion{}, @@ -151,7 +153,7 @@ func (f *mockDataFactory) MockTraceIDFetch(traceID string) executor.ExecutionCon return ec } -func (f *mockDataFactory) MockIndexScan(startTime, endTime time.Time, indexMatches ...*indexMatcher) executor.ExecutionContext { +func (f *mockDataFactory) MockIndexScan(startTime, endTime time.Time, indexMatches ...*indexMatcher) executor2.ExecutionContext { ec := executor.NewMockExecutionContext(f.ctrl) usedShards := make(map[uint]posting.List) @@ -187,12 +189,12 @@ func (f *mockDataFactory) MockIndexScan(startTime, endTime time.Time, indexMatch return ec } -func prepareSchema(assert *require.Assertions) (*common.Metadata, logical.Schema) { - ana := logical.DefaultAnalyzer() +func prepareSchema(assert *require.Assertions) (*common.Metadata, logical2.Schema) { + ana := logical2.DefaultAnalyzer() sT, eT := time.Now().Add(-3*time.Hour), time.Now() - criteria := pb.NewQueryRequestBuilder(). + criteria := v1.NewQueryRequestBuilder(). Limit(0).Offset(0). Metadata("default", "trace"). TimeRange(sT, eT). diff --git a/pkg/query/logical/expr.go b/pkg/query/v1/logical/expr.go similarity index 100% rename from pkg/query/logical/expr.go rename to pkg/query/v1/logical/expr.go diff --git a/pkg/query/logical/expr_literal.go b/pkg/query/v1/logical/expr_literal.go similarity index 100% rename from pkg/query/logical/expr_literal.go rename to pkg/query/v1/logical/expr_literal.go diff --git a/pkg/query/logical/format.go b/pkg/query/v1/logical/format.go similarity index 100% rename from pkg/query/logical/format.go rename to pkg/query/v1/logical/format.go diff --git a/pkg/query/logical/interface.go b/pkg/query/v1/logical/interface.go similarity index 96% rename from pkg/query/logical/interface.go rename to pkg/query/v1/logical/interface.go index ccc3300..afefae8 100644 --- a/pkg/query/logical/interface.go +++ b/pkg/query/v1/logical/interface.go @@ -21,7 +21,7 @@ import ( "fmt" apiv1 "github.com/apache/skywalking-banyandb/api/proto/banyandb/database/v1" - "github.com/apache/skywalking-banyandb/pkg/query/executor" + "github.com/apache/skywalking-banyandb/pkg/query/v1/executor" ) type PlanType uint8 diff --git a/pkg/query/logical/plan.go b/pkg/query/v1/logical/plan.go similarity index 98% rename from pkg/query/logical/plan.go rename to pkg/query/v1/logical/plan.go index da366bf..48b487a 100644 --- a/pkg/query/logical/plan.go +++ b/pkg/query/v1/logical/plan.go @@ -21,7 +21,7 @@ import ( "fmt" "github.com/apache/skywalking-banyandb/api/data" - "github.com/apache/skywalking-banyandb/pkg/query/executor" + "github.com/apache/skywalking-banyandb/pkg/query/v1/executor" ) var _ Plan = (*limit)(nil) diff --git a/pkg/query/logical/plan_execution_test.go b/pkg/query/v1/logical/plan_execution_test.go similarity index 76% rename from pkg/query/logical/plan_execution_test.go rename to pkg/query/v1/logical/plan_execution_test.go index 761d7f9..f14d0f0 100644 --- a/pkg/query/logical/plan_execution_test.go +++ b/pkg/query/v1/logical/plan_execution_test.go @@ -27,8 +27,8 @@ import ( modelv1 "github.com/apache/skywalking-banyandb/api/proto/banyandb/model/v1" "github.com/apache/skywalking-banyandb/banyand/series" "github.com/apache/skywalking-banyandb/pkg/posting/roaring" - "github.com/apache/skywalking-banyandb/pkg/query/executor" - "github.com/apache/skywalking-banyandb/pkg/query/logical" + "github.com/apache/skywalking-banyandb/pkg/query/v1/executor" + logical2 "github.com/apache/skywalking-banyandb/pkg/query/v1/logical" ) func TestPlanExecution_Limit(t *testing.T) { @@ -40,22 +40,22 @@ func TestPlanExecution_Limit(t *testing.T) { tests := []struct { name string - unresolvedPlan logical.UnresolvedPlan + unresolvedPlan logical2.UnresolvedPlan wantLength int }{ { name: "Limit 1", - unresolvedPlan: logical.Limit(newMockDataFactory(ctrl, m, s, 20).MockParentPlan(), 1), + unresolvedPlan: logical2.Limit(newMockDataFactory(ctrl, m, s, 20).MockParentPlan(), 1), wantLength: 1, }, { name: "Limit 10", - unresolvedPlan: logical.Limit(newMockDataFactory(ctrl, m, s, 20).MockParentPlan(), 10), + unresolvedPlan: logical2.Limit(newMockDataFactory(ctrl, m, s, 20).MockParentPlan(), 10), wantLength: 10, }, { name: "Limit 50", - unresolvedPlan: logical.Limit(newMockDataFactory(ctrl, m, s, 20).MockParentPlan(), 50), + unresolvedPlan: logical2.Limit(newMockDataFactory(ctrl, m, s, 20).MockParentPlan(), 50), wantLength: 20, }, } @@ -84,22 +84,22 @@ func TestPlanExecution_Offset(t *testing.T) { tests := []struct { name string - unresolvedPlan logical.UnresolvedPlan + unresolvedPlan logical2.UnresolvedPlan wantLength int }{ { name: "Offset 0", - unresolvedPlan: logical.Offset(newMockDataFactory(ctrl, m, s, 20).MockParentPlan(), 0), + unresolvedPlan: logical2.Offset(newMockDataFactory(ctrl, m, s, 20).MockParentPlan(), 0), wantLength: 20, }, { name: "Offset 10", - unresolvedPlan: logical.Offset(newMockDataFactory(ctrl, m, s, 20).MockParentPlan(), 10), + unresolvedPlan: logical2.Offset(newMockDataFactory(ctrl, m, s, 20).MockParentPlan(), 10), wantLength: 10, }, { name: "Limit 50", - unresolvedPlan: logical.Offset(newMockDataFactory(ctrl, m, s, 20).MockParentPlan(), 50), + unresolvedPlan: logical2.Offset(newMockDataFactory(ctrl, m, s, 20).MockParentPlan(), 50), wantLength: 0, }, } @@ -128,7 +128,7 @@ func TestPlanExecution_TraceIDFetch(t *testing.T) { traceID := "asdf1234" - p, err := logical.TraceIDFetch(traceID, m, false).Analyze(s) + p, err := logical2.TraceIDFetch(traceID, m, false).Analyze(s) assert.NoError(err) assert.NotNil(p) f := newMockDataFactory(ctrl, m, s, 10) @@ -148,23 +148,23 @@ func TestPlanExecution_IndexScan(t *testing.T) { tests := []struct { name string - unresolvedPlan logical.UnresolvedPlan + unresolvedPlan logical2.UnresolvedPlan wantLength int indexMatchers []*indexMatcher }{ { name: "Single Index Search", - unresolvedPlan: logical.IndexScan(st.UnixNano(), et.UnixNano(), m, []logical.Expr{ - logical.Eq(logical.NewFieldRef("http.method"), logical.Str("GET")), + unresolvedPlan: logical2.IndexScan(st.UnixNano(), et.UnixNano(), m, []logical2.Expr{ + logical2.Eq(logical2.NewFieldRef("http.method"), logical2.Str("GET")), }, series.TraceStateDefault, false), indexMatchers: []*indexMatcher{newIndexMatcher("http.method", 0, roaring.NewPostingListWithInitialData(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))}, wantLength: 10, }, { name: "Multiple Index Search", - unresolvedPlan: logical.IndexScan(st.UnixNano(), et.UnixNano(), m, []logical.Expr{ - logical.Eq(logical.NewFieldRef("http.method"), logical.Str("GET")), - logical.Eq(logical.NewFieldRef("service_id"), logical.Str("app")), + unresolvedPlan: logical2.IndexScan(st.UnixNano(), et.UnixNano(), m, []logical2.Expr{ + logical2.Eq(logical2.NewFieldRef("http.method"), logical2.Str("GET")), + logical2.Eq(logical2.NewFieldRef("service_id"), logical2.Str("app")), }, series.TraceStateDefault, false), indexMatchers: []*indexMatcher{ newIndexMatcher("http.method", 0, roaring.NewPostingListWithInitialData(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)), @@ -174,9 +174,9 @@ func TestPlanExecution_IndexScan(t *testing.T) { }, { name: "Multiple Index With One Empty Result(ChunkID)", - unresolvedPlan: logical.IndexScan(st.UnixNano(), et.UnixNano(), m, []logical.Expr{ - logical.Eq(logical.NewFieldRef("http.method"), logical.Str("GET")), - logical.Eq(logical.NewFieldRef("service_id"), logical.Str("app")), + unresolvedPlan: logical2.IndexScan(st.UnixNano(), et.UnixNano(), m, []logical2.Expr{ + logical2.Eq(logical2.NewFieldRef("http.method"), logical2.Str("GET")), + logical2.Eq(logical2.NewFieldRef("service_id"), logical2.Str("app")), }, series.TraceStateDefault, false), indexMatchers: []*indexMatcher{ newIndexMatcher("http.method", 0, roaring.NewPostingListWithInitialData(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)), @@ -227,7 +227,7 @@ func TestPlanExecution_OrderBy(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { assert := require.New(t) - p, err := logical.OrderBy(newMockDataFactory(ctrl, m, s, 20).MockParentPlan(), tt.targetField, tt.sortDirection).Analyze(s) + p, err := logical2.OrderBy(newMockDataFactory(ctrl, m, s, 20).MockParentPlan(), tt.targetField, tt.sortDirection).Analyze(s) assert.NoError(err) assert.NotNil(p) @@ -236,7 +236,7 @@ func TestPlanExecution_OrderBy(t *testing.T) { assert.NoError(err) assert.NotNil(entities) - assert.True(logical.Sorted(entities, tt.targetFieldIdx, tt.sortDirection)) + assert.True(logical2.Sorted(entities, tt.targetFieldIdx, tt.sortDirection)) }) } } diff --git a/pkg/query/logical/plan_indexscan.go b/pkg/query/v1/logical/plan_indexscan.go similarity index 99% rename from pkg/query/logical/plan_indexscan.go rename to pkg/query/v1/logical/plan_indexscan.go index 74d2f05..6b7e25d 100644 --- a/pkg/query/logical/plan_indexscan.go +++ b/pkg/query/v1/logical/plan_indexscan.go @@ -30,7 +30,7 @@ import ( "github.com/apache/skywalking-banyandb/banyand/index" "github.com/apache/skywalking-banyandb/banyand/series" "github.com/apache/skywalking-banyandb/pkg/posting" - "github.com/apache/skywalking-banyandb/pkg/query/executor" + "github.com/apache/skywalking-banyandb/pkg/query/v1/executor" ) var _ UnresolvedPlan = (*unresolvedIndexScan)(nil) diff --git a/pkg/query/logical/plan_orderby.go b/pkg/query/v1/logical/plan_orderby.go similarity index 98% rename from pkg/query/logical/plan_orderby.go rename to pkg/query/v1/logical/plan_orderby.go index 95b956f..8f0a3bc 100644 --- a/pkg/query/logical/plan_orderby.go +++ b/pkg/query/v1/logical/plan_orderby.go @@ -27,7 +27,7 @@ import ( "github.com/apache/skywalking-banyandb/api/data" modelv1 "github.com/apache/skywalking-banyandb/api/proto/banyandb/model/v1" "github.com/apache/skywalking-banyandb/pkg/convert" - "github.com/apache/skywalking-banyandb/pkg/query/executor" + "github.com/apache/skywalking-banyandb/pkg/query/v1/executor" ) var _ Plan = (*orderBy)(nil) diff --git a/pkg/query/logical/plan_tablescan.go b/pkg/query/v1/logical/plan_tablescan.go similarity index 98% rename from pkg/query/logical/plan_tablescan.go rename to pkg/query/v1/logical/plan_tablescan.go index 7f99d73..75b3b91 100644 --- a/pkg/query/logical/plan_tablescan.go +++ b/pkg/query/v1/logical/plan_tablescan.go @@ -26,7 +26,7 @@ import ( "github.com/apache/skywalking-banyandb/api/common" "github.com/apache/skywalking-banyandb/api/data" "github.com/apache/skywalking-banyandb/banyand/series" - "github.com/apache/skywalking-banyandb/pkg/query/executor" + "github.com/apache/skywalking-banyandb/pkg/query/v1/executor" ) var _ Plan = (*tableScan)(nil) diff --git a/pkg/query/logical/plan_traceid.go b/pkg/query/v1/logical/plan_traceid.go similarity index 98% rename from pkg/query/logical/plan_traceid.go rename to pkg/query/v1/logical/plan_traceid.go index a7ee476..3f37023 100644 --- a/pkg/query/logical/plan_traceid.go +++ b/pkg/query/v1/logical/plan_traceid.go @@ -26,7 +26,7 @@ import ( "github.com/apache/skywalking-banyandb/api/common" "github.com/apache/skywalking-banyandb/api/data" "github.com/apache/skywalking-banyandb/banyand/series" - "github.com/apache/skywalking-banyandb/pkg/query/executor" + "github.com/apache/skywalking-banyandb/pkg/query/v1/executor" ) var _ UnresolvedPlan = (*unresolvedTraceIDFetch)(nil) diff --git a/pkg/query/logical/schema.go b/pkg/query/v1/logical/schema.go similarity index 100% rename from pkg/query/logical/schema.go rename to pkg/query/v1/logical/schema.go