github.com/matrixorigin/matrixone@v1.2.0/pkg/vm/engine/tae/tables/table.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 tables 16 17 import ( 18 "github.com/matrixorigin/matrixone/pkg/vm/engine/tae/catalog" 19 "github.com/matrixorigin/matrixone/pkg/vm/engine/tae/db/dbutils" 20 "github.com/matrixorigin/matrixone/pkg/vm/engine/tae/iface/data" 21 ) 22 23 type dataTable struct { 24 meta *catalog.TableEntry 25 aBlk *aobject 26 rt *dbutils.Runtime 27 } 28 29 func newTable(meta *catalog.TableEntry, rt *dbutils.Runtime) *dataTable { 30 return &dataTable{ 31 meta: meta, 32 rt: rt, 33 } 34 } 35 36 func (table *dataTable) GetHandle() data.TableHandle { 37 return newHandle(table, table.aBlk) 38 } 39 40 func (table *dataTable) ApplyHandle(h data.TableHandle) { 41 handle := h.(*tableHandle) 42 table.aBlk = handle.object 43 }