diff --git a/test/testcases/query_test.go b/test/testcases/query_test.go index 84dc0bc3..b97a29ee 100644 --- a/test/testcases/query_test.go +++ b/test/testcases/query_test.go @@ -267,38 +267,40 @@ func TestQueryEmptyOutputFields(t *testing.T) { ctx := createContext(t, time.Second*common.DefaultTimeout) // connect mc := createMilvusClient(ctx, t) - enableDynamic := false - // create, insert, index - collName, ids := createCollectionWithDataIndex(ctx, t, mc, true, true, client.WithEnableDynamicSchema(enableDynamic)) + for _, enableDynamic := range []bool{true, false} { + // create, insert, index + collName, ids := createCollectionWithDataIndex(ctx, t, mc, true, true, client.WithEnableDynamicSchema(enableDynamic)) - // Load collection - errLoad := mc.LoadCollection(ctx, collName, false) - common.CheckErr(t, errLoad, true) + // Load collection + errLoad := mc.LoadCollection(ctx, collName, false) + common.CheckErr(t, errLoad, true) - //query with empty output fields []string{}-> output "int64" - queryEmptyOutputs, _ := mc.QueryByPks( - ctx, collName, []string{common.DefaultPartition}, - entity.NewColumnInt64(common.DefaultIntFieldName, ids.(*entity.ColumnInt64).Data()[:10]), - []string{}, - ) - common.CheckOutputFields(t, queryEmptyOutputs, []string{common.DefaultIntFieldName}) + //query with empty output fields []string{}-> output "int64" + queryEmptyOutputs, _ := mc.QueryByPks( + ctx, collName, []string{common.DefaultPartition}, + entity.NewColumnInt64(common.DefaultIntFieldName, ids.(*entity.ColumnInt64).Data()[:10]), + []string{}, + ) + common.CheckOutputFields(t, queryEmptyOutputs, []string{common.DefaultIntFieldName}) - //query with empty output fields []string{""}-> output "int64" and dynamic field - _, err := mc.QueryByPks( - ctx, collName, []string{common.DefaultPartition}, - entity.NewColumnInt64(common.DefaultIntFieldName, ids.(*entity.ColumnInt64).Data()[:10]), - []string{""}, - ) + //query with empty output fields []string{""}-> output "int64" and dynamic field + queryEmptyOutputs, err := mc.QueryByPks( + ctx, collName, []string{common.DefaultPartition}, + entity.NewColumnInt64(common.DefaultIntFieldName, ids.(*entity.ColumnInt64).Data()[:10]), + []string{""}, + ) - common.CheckErr(t, err, false, "not exist") + common.CheckErr(t, err, false, "not exist") + + // query with "float" output fields -> output "int64, float" + queryFloatOutputs, _ := mc.QueryByPks( + ctx, collName, []string{common.DefaultPartition}, + entity.NewColumnInt64(common.DefaultIntFieldName, ids.(*entity.ColumnInt64).Data()[:10]), + []string{common.DefaultFloatFieldName}, + ) + common.CheckOutputFields(t, queryFloatOutputs, []string{common.DefaultIntFieldName, common.DefaultFloatFieldName}) + } - // query with "float" output fields -> output "int64, float" - queryFloatOutputs, _ := mc.QueryByPks( - ctx, collName, []string{common.DefaultPartition}, - entity.NewColumnInt64(common.DefaultIntFieldName, ids.(*entity.ColumnInt64).Data()[:10]), - []string{common.DefaultFloatFieldName}, - ) - common.CheckOutputFields(t, queryFloatOutputs, []string{common.DefaultIntFieldName, common.DefaultFloatFieldName}) } // test query output int64 and float and floatVector fields @@ -931,7 +933,7 @@ func TestQueryOutputInvalidOutputFieldCount(t *testing.T) { // create, insert, index collName, _ := createCollectionWithDataIndex(ctx, t, mc, true, true, - client.WithEnableDynamicSchema(false), client.WithConsistencyLevel(entity.ClStrong)) + client.WithEnableDynamicSchema(true), client.WithConsistencyLevel(entity.ClStrong)) // Load collection errLoad := mc.LoadCollection(ctx, collName, false) diff --git a/test/testcases/search_test.go b/test/testcases/search_test.go index d32775e3..b44ad826 100644 --- a/test/testcases/search_test.go +++ b/test/testcases/search_test.go @@ -267,51 +267,52 @@ func TestSearchEmptyOutputFields(t *testing.T) { // connect mc := createMilvusClient(ctx, t) - enableDynamic := false - // create collection with data - collName, _ := createCollectionWithDataIndex(ctx, t, mc, false, true, client.WithEnableDynamicSchema(enableDynamic)) + for _, enableDynamic := range []bool{true, false} { + // create collection with data + collName, _ := createCollectionWithDataIndex(ctx, t, mc, false, true, client.WithEnableDynamicSchema(enableDynamic)) - // load collection - errLoad := mc.LoadCollection(ctx, collName, false) - common.CheckErr(t, errLoad, true) + // load collection + errLoad := mc.LoadCollection(ctx, collName, false) + common.CheckErr(t, errLoad, true) - // search vector output fields []string{} -> [] - sp, _ := entity.NewIndexHNSWSearchParam(74) - searchResPkOutput, errSearch := mc.Search( - ctx, collName, - []string{}, - "", - []string{}, - common.GenSearchVectors(common.DefaultNq, common.DefaultDim, entity.FieldTypeFloatVector), - common.DefaultFloatVecFieldName, - entity.L2, - common.DefaultTopK, - sp, - ) - common.CheckErr(t, errSearch, true) - common.CheckOutputFields(t, searchResPkOutput[0].Fields, []string{}) - common.CheckSearchResult(t, searchResPkOutput, common.DefaultNq, common.DefaultTopK) + // search vector output fields []string{} -> [] + sp, _ := entity.NewIndexHNSWSearchParam(74) + searchResPkOutput, errSearch := mc.Search( + ctx, collName, + []string{}, + "", + []string{}, + common.GenSearchVectors(common.DefaultNq, common.DefaultDim, entity.FieldTypeFloatVector), + common.DefaultFloatVecFieldName, + entity.L2, + common.DefaultTopK, + sp, + ) + common.CheckErr(t, errSearch, true) + common.CheckOutputFields(t, searchResPkOutput[0].Fields, []string{}) + common.CheckSearchResult(t, searchResPkOutput, common.DefaultNq, common.DefaultTopK) - // search vector output fields []string{""} - _, errSearchExist := mc.Search( - ctx, collName, - []string{}, - "", - []string{""}, - common.GenSearchVectors(common.DefaultNq, common.DefaultDim, entity.FieldTypeFloatVector), - common.DefaultFloatVecFieldName, - entity.L2, - common.DefaultTopK, - sp, - ) + // search vector output fields []string{""} + _, errSearchExist := mc.Search( + ctx, collName, + []string{}, + "", + []string{""}, + common.GenSearchVectors(common.DefaultNq, common.DefaultDim, entity.FieldTypeFloatVector), + common.DefaultFloatVecFieldName, + entity.L2, + common.DefaultTopK, + sp, + ) - //if enableDynamic { - // common.CheckErr(t, errSearchExist, true) - // common.CheckOutputFields(t, sp1[0].Fields, []string{""}) - //} else { - common.CheckErr(t, errSearchExist, false, "not exist") - //} - common.CheckSearchResult(t, searchResPkOutput, common.DefaultNq, common.DefaultTopK) + //if enableDynamic { + // common.CheckErr(t, errSearchExist, true) + // common.CheckOutputFields(t, sp1[0].Fields, []string{""}) + //} else { + common.CheckErr(t, errSearchExist, false, "not exist") + //} + common.CheckSearchResult(t, searchResPkOutput, common.DefaultNq, common.DefaultTopK) + } } // test search output fields not exist -> error @@ -321,34 +322,34 @@ func TestSearchNotExistOutputFields(t *testing.T) { // connect mc := createMilvusClient(ctx, t) - // dynamic schema with unknown field will not have error - enableDynamic := false - // create collection with data - collName, _ := createCollectionWithDataIndex(ctx, t, mc, false, true, client.WithEnableDynamicSchema(enableDynamic)) + for _, enableDynamic := range []bool{true, false} { + // create collection with data + collName, _ := createCollectionWithDataIndex(ctx, t, mc, false, true, client.WithEnableDynamicSchema(enableDynamic)) - // load collection - errLoad := mc.LoadCollection(ctx, collName, false) - common.CheckErr(t, errLoad, true) + // load collection + errLoad := mc.LoadCollection(ctx, collName, false) + common.CheckErr(t, errLoad, true) - type notExistOutputFields []string + type notExistOutputFields []string - // search vector output fields not exist, part exist - outputFields := []notExistOutputFields{[]string{"aaa"}, []string{"fields", common.DefaultFloatFieldName}, - []string{"fields", "*"}} - for _, fields := range outputFields { - sp, _ := entity.NewIndexHNSWSearchParam(74) - _, errSearch := mc.Search( - ctx, collName, - []string{}, - "", - fields, - common.GenSearchVectors(common.DefaultNq, common.DefaultDim, entity.FieldTypeFloatVector), - common.DefaultFloatVecFieldName, - entity.L2, - common.DefaultTopK, - sp, - ) - common.CheckErr(t, errSearch, false, "not exist") + // search vector output fields not exist, part exist + outputFields := []notExistOutputFields{[]string{"aaa"}, []string{"fields", common.DefaultFloatFieldName}, + []string{"fields", "*"}} + for _, fields := range outputFields { + sp, _ := entity.NewIndexHNSWSearchParam(74) + _, errSearch := mc.Search( + ctx, collName, + []string{}, + "", + fields, + common.GenSearchVectors(common.DefaultNq, common.DefaultDim, entity.FieldTypeFloatVector), + common.DefaultFloatVecFieldName, + entity.L2, + common.DefaultTopK, + sp, + ) + common.CheckErr(t, errSearch, false, "not exist") + } } }