github.com/matrixorigin/matrixone@v0.7.0/pkg/vm/engine/tae/tables/indexwrapper/bfnode_test.go (about) 1 // Copyright 2021 Matrix Origin 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package indexwrapper 16 17 import ( 18 "context" 19 "fmt" 20 "path" 21 "testing" 22 23 "github.com/matrixorigin/matrixone/pkg/container/types" 24 "github.com/matrixorigin/matrixone/pkg/defines" 25 "github.com/matrixorigin/matrixone/pkg/fileservice" 26 "github.com/matrixorigin/matrixone/pkg/objectio" 27 "github.com/matrixorigin/matrixone/pkg/vm/engine/tae/common" 28 "github.com/matrixorigin/matrixone/pkg/vm/engine/tae/containers" 29 "github.com/matrixorigin/matrixone/pkg/vm/engine/tae/testutils" 30 "github.com/stretchr/testify/assert" 31 "github.com/stretchr/testify/require" 32 ) 33 34 func TestStaticFilterIndex(t *testing.T) { 35 defer testutils.AfterTest(t)() 36 //bufManager := buffer.NewNodeManager(1024*1024, nil) 37 var err error 38 //var res bool 39 //var exist bool 40 //var ans *roaring.Bitmap 41 42 // var res bool 43 dir := testutils.InitTestEnv(ModuleName, t) 44 dir = path.Join(dir, "/local") 45 id := 1 46 name := fmt.Sprintf("%d.blk", id) 47 bat := newBatch() 48 c := fileservice.Config{ 49 Name: defines.LocalFileServiceName, 50 Backend: "DISK", 51 DataDir: dir, 52 } 53 service, err := fileservice.NewFileService(c) 54 assert.Nil(t, err) 55 56 objectWriter, err := objectio.NewObjectWriter(name, service) 57 assert.Nil(t, err) 58 /*fd*/ block, err := objectWriter.Write(bat) 59 assert.Nil(t, err) 60 61 cType := common.Plain 62 typ := types.Type{Oid: types.T_int32} 63 colIdx := uint16(0) 64 interIdx := uint16(0) 65 66 writer := NewBFWriter() 67 err = writer.Init(objectWriter, block, cType, colIdx, interIdx) 68 require.NoError(t, err) 69 70 keys := containers.MockVector2(typ, 1000, 0) 71 err = writer.AddValues(keys) 72 require.NoError(t, err) 73 74 _, err = writer.Finalize() 75 require.NoError(t, err) 76 blocks, err := objectWriter.WriteEnd(context.Background()) 77 assert.Nil(t, err) 78 assert.Equal(t, 1, len(blocks)) 79 80 /*reader := NewBFReader(bufManager, file, new(common.ID)) 81 82 res, err = reader.MayContainsKey(int32(500)) 83 require.NoError(t, err) 84 require.True(t, res) 85 86 res, err = reader.MayContainsKey(int32(2000)) 87 require.NoError(t, err) 88 require.False(t, res) 89 90 query := containers.MockVector2(typ, 1000, 1500) 91 exist, ans, err = reader.MayContainsAnyKeys(query, nil) 92 require.NoError(t, err) 93 require.True(t, ans.GetCardinality() < uint64(10)) 94 require.True(t, exist)*/ 95 96 //t.Log(bufManager.String()) 97 }