tables

package
v1.0.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 20, 2018 License: Apache-2.0 Imports: 25 Imported by: 808

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FindIndexByColName

func FindIndexByColName(t table.Table, name string) table.Index

FindIndexByColName implements table.Table FindIndexByColName interface.

func GetColDefaultValue

func GetColDefaultValue(ctx context.Context, col *table.Column, defaultVals []types.Datum) (
	colVal types.Datum, err error)

GetColDefaultValue gets a column default value. The defaultVals is used to avoid calculating the default value multiple times.

func MemoryTableFromMeta

func MemoryTableFromMeta(alloc autoid.Allocator, tblInfo *model.TableInfo) table.Table

MemoryTableFromMeta creates a Table instance from model.TableInfo.

func MockTableFromMeta

func MockTableFromMeta(tableInfo *model.TableInfo) table.Table

MockTableFromMeta only serves for test.

func NewIndex

func NewIndex(tableInfo *model.TableInfo, indexInfo *model.IndexInfo) table.Index

NewIndex builds a new Index object.

func NewIndexWithBuffer

func NewIndexWithBuffer(tableInfo *model.TableInfo, indexInfo *model.IndexInfo) table.Index

NewIndexWithBuffer builds a new Index object whit the buffer.

func RowWithColsForRead added in v1.0.9

func RowWithColsForRead(ctx context.Context, t table.Table, h int64, cols []*table.Column) ([]types.Datum, map[int64]types.Datum, error)

RowWithColsForRead is used to return a row get from the storage, it does not set the default value for non public columns, because non public columns should not be returned as a result. It also return a row value map for duplicate update which needs to set a default value for non public columns to do the update.

func TableFromMeta

func TableFromMeta(alloc autoid.Allocator, tblInfo *model.TableInfo) (table.Table, error)

TableFromMeta creates a Table instance from model.TableInfo.

Types

type MemoryTable

type MemoryTable struct {
	ID      int64
	Name    model.CIStr
	Columns []*table.Column
	// contains filtered or unexported fields
}

MemoryTable implements table.Table interface.

func (*MemoryTable) AddRecord

func (t *MemoryTable) AddRecord(ctx context.Context, r []types.Datum, skipHandleCheck bool) (recordID int64, err error)

AddRecord implements table.Table AddRecord interface.

func (*MemoryTable) AllocAutoID

func (t *MemoryTable) AllocAutoID(ctx context.Context) (int64, error)

AllocAutoID implements table.Table AllocAutoID interface.

func (*MemoryTable) Allocator

func (t *MemoryTable) Allocator() autoid.Allocator

Allocator implements table.Table Allocator interface.

func (*MemoryTable) Cols

func (t *MemoryTable) Cols() []*table.Column

Cols implements table.Table Cols interface.

func (*MemoryTable) DeletableIndices

func (t *MemoryTable) DeletableIndices() []table.Index

DeletableIndices implements table.Table DeletableIndices interface.

func (*MemoryTable) FirstKey

func (t *MemoryTable) FirstKey() kv.Key

FirstKey implements table.Table FirstKey interface.

func (*MemoryTable) IndexPrefix

func (t *MemoryTable) IndexPrefix() kv.Key

IndexPrefix implements table.Table IndexPrefix interface.

func (*MemoryTable) Indices

func (t *MemoryTable) Indices() []table.Index

Indices implements table.Table Indices interface.

func (*MemoryTable) IterRecords

func (t *MemoryTable) IterRecords(ctx context.Context, startKey kv.Key, cols []*table.Column,
	fn table.RecordIterFunc) error

IterRecords implements table.Table IterRecords interface.

func (*MemoryTable) Meta

func (t *MemoryTable) Meta() *model.TableInfo

Meta implements table.Table Meta interface.

func (*MemoryTable) RebaseAutoID

func (t *MemoryTable) RebaseAutoID(newBase int64, isSetStep bool) error

RebaseAutoID implements table.Table RebaseAutoID interface.

func (*MemoryTable) RecordKey

func (t *MemoryTable) RecordKey(h int64) kv.Key

RecordKey implements table.Table RecordKey interface.

func (*MemoryTable) RecordPrefix

func (t *MemoryTable) RecordPrefix() kv.Key

RecordPrefix implements table.Table RecordPrefix interface.

func (*MemoryTable) RemoveRecord

func (t *MemoryTable) RemoveRecord(ctx context.Context, h int64, r []types.Datum) error

RemoveRecord implements table.Table RemoveRecord interface.

func (*MemoryTable) Row

func (t *MemoryTable) Row(ctx context.Context, h int64) ([]types.Datum, error)

Row implements table.Table Row interface.

func (*MemoryTable) RowWithCols

func (t *MemoryTable) RowWithCols(ctx context.Context, h int64, cols []*table.Column) ([]types.Datum, error)

RowWithCols implements table.Table RowWithCols interface.

func (*MemoryTable) Seek

func (t *MemoryTable) Seek(ctx context.Context, handle int64) (int64, bool, error)

Seek seeks the handle

func (*MemoryTable) Truncate

func (t *MemoryTable) Truncate()

Truncate drops all data in Memory Table.

func (*MemoryTable) Type

func (t *MemoryTable) Type() table.Type

Type implements table.Table Type interface.

func (*MemoryTable) UpdateRecord

func (t *MemoryTable) UpdateRecord(ctx context.Context, h int64, oldData, newData []types.Datum, touched []bool) error

UpdateRecord implements table.Table UpdateRecord interface.

func (*MemoryTable) WritableCols

func (t *MemoryTable) WritableCols() []*table.Column

WritableCols implements table.Table WritableCols interface.

func (*MemoryTable) WritableIndices

func (t *MemoryTable) WritableIndices() []table.Index

WritableIndices implements table.Table WritableIndices interface.

type Table

type Table struct {
	ID      int64
	Name    model.CIStr
	Columns []*table.Column
	// contains filtered or unexported fields
}

Table implements table.Table interface.

func (*Table) AddRecord

func (t *Table) AddRecord(ctx context.Context, r []types.Datum, skipHandleCheck bool) (recordID int64, err error)

AddRecord implements table.Table AddRecord interface.

func (*Table) AllocAutoID

func (t *Table) AllocAutoID(ctx context.Context) (int64, error)

AllocAutoID implements table.Table AllocAutoID interface.

func (*Table) Allocator

func (t *Table) Allocator() autoid.Allocator

Allocator implements table.Table Allocator interface.

func (*Table) Cols

func (t *Table) Cols() []*table.Column

Cols implements table.Table Cols interface.

func (*Table) DeletableIndices

func (t *Table) DeletableIndices() []table.Index

DeletableIndices implements table.Table DeletableIndices interface.

func (*Table) FirstKey

func (t *Table) FirstKey() kv.Key

FirstKey implements table.Table FirstKey interface.

func (*Table) IndexPrefix

func (t *Table) IndexPrefix() kv.Key

IndexPrefix implements table.Table IndexPrefix interface.

func (*Table) Indices

func (t *Table) Indices() []table.Index

Indices implements table.Table Indices interface.

func (*Table) IterRecords

func (t *Table) IterRecords(ctx context.Context, startKey kv.Key, cols []*table.Column,
	fn table.RecordIterFunc) error

IterRecords implements table.Table IterRecords interface.

func (*Table) Meta

func (t *Table) Meta() *model.TableInfo

Meta implements table.Table Meta interface.

func (*Table) RebaseAutoID

func (t *Table) RebaseAutoID(newBase int64, isSetStep bool) error

RebaseAutoID implements table.Table RebaseAutoID interface.

func (*Table) RecordKey

func (t *Table) RecordKey(h int64) kv.Key

RecordKey implements table.Table RecordKey interface.

func (*Table) RecordPrefix

func (t *Table) RecordPrefix() kv.Key

RecordPrefix implements table.Table RecordPrefix interface.

func (*Table) RemoveRecord

func (t *Table) RemoveRecord(ctx context.Context, h int64, r []types.Datum) error

RemoveRecord implements table.Table RemoveRecord interface.

func (*Table) Row

func (t *Table) Row(ctx context.Context, h int64) ([]types.Datum, error)

Row implements table.Table Row interface.

func (*Table) RowWithCols

func (t *Table) RowWithCols(ctx context.Context, h int64, cols []*table.Column) ([]types.Datum, error)

RowWithCols implements table.Table RowWithCols interface.

func (*Table) Seek

func (t *Table) Seek(ctx context.Context, h int64) (int64, bool, error)

Seek implements table.Table Seek interface.

func (*Table) Type

func (t *Table) Type() table.Type

Type implements table.Table Type interface.

func (*Table) UpdateRecord

func (t *Table) UpdateRecord(ctx context.Context, h int64, oldData, newData []types.Datum, touched []bool) error

UpdateRecord implements table.Table UpdateRecord interface. `touched` means which columns are really modified, used for secondary indices. Length of `oldData` and `newData` equals to length of `t.WritableCols()`.

func (*Table) WritableCols

func (t *Table) WritableCols() []*table.Column

WritableCols implements table WritableCols interface.

func (*Table) WritableIndices

func (t *Table) WritableIndices() []table.Index

WritableIndices implements table.Table WritableIndices interface.

type VirtualDataSource

type VirtualDataSource interface {
	// GetRows do the actual job
	GetRows(ctx context.Context) (fullRows [][]types.Datum, err error)
	// Meta return the meta of table
	Meta() *model.TableInfo
	// Cols return the cols of table
	Cols() []*table.Column
}

VirtualDataSource is used to extract data from the struct in memory.

type VirtualTable

type VirtualTable struct {
	// contains filtered or unexported fields
}

VirtualTable stands for the fake table all its data is in the memory. dataSource: the function to get rows @TODO this table is almost the same as the infoschema tables, but we need to use it in performance schema. @TODO So we have to move it here, sometimes we need to refactor the infoschema tables to decrease the multiplicity of the codes

func CreateVirtualTable

func CreateVirtualTable(dataSource VirtualDataSource) *VirtualTable

CreateVirtualTable as its name

func (*VirtualTable) AddRecord

func (vt *VirtualTable) AddRecord(ctx context.Context, r []types.Datum, skipHandleCheck bool) (recordID int64, err error)

AddRecord implements table.Table Type interface.

func (*VirtualTable) AllocAutoID

func (vt *VirtualTable) AllocAutoID(ctx context.Context) (int64, error)

AllocAutoID implements table.Table Type interface.

func (*VirtualTable) Allocator

func (vt *VirtualTable) Allocator() autoid.Allocator

Allocator implements table.Table Type interface.

func (*VirtualTable) Cols

func (vt *VirtualTable) Cols() []*table.Column

Cols implements table.Table Type interface.

func (*VirtualTable) DeletableIndices

func (vt *VirtualTable) DeletableIndices() []table.Index

DeletableIndices implements table.Table Type interface.

func (*VirtualTable) FirstKey

func (vt *VirtualTable) FirstKey() kv.Key

FirstKey implements table.Table Type interface.

func (*VirtualTable) IndexPrefix

func (vt *VirtualTable) IndexPrefix() kv.Key

IndexPrefix implements table.Table Type interface.

func (*VirtualTable) Indices

func (vt *VirtualTable) Indices() []table.Index

Indices implements table.Table Type interface.

func (*VirtualTable) IterRecords

func (vt *VirtualTable) IterRecords(ctx context.Context, startKey kv.Key, cols []*table.Column,
	fn table.RecordIterFunc) error

IterRecords implements table.Table Type interface.

func (*VirtualTable) Meta

func (vt *VirtualTable) Meta() *model.TableInfo

Meta implements table.Table Type interface.

func (*VirtualTable) RebaseAutoID

func (vt *VirtualTable) RebaseAutoID(newBase int64, isSetStep bool) error

RebaseAutoID implements table.Table Type interface.

func (*VirtualTable) RecordKey

func (vt *VirtualTable) RecordKey(h int64) kv.Key

RecordKey implements table.Table Type interface.

func (*VirtualTable) RecordPrefix

func (vt *VirtualTable) RecordPrefix() kv.Key

RecordPrefix implements table.Table Type interface.

func (*VirtualTable) RemoveRecord

func (vt *VirtualTable) RemoveRecord(ctx context.Context, h int64, r []types.Datum) error

RemoveRecord implements table.Table Type interface.

func (*VirtualTable) Row

func (vt *VirtualTable) Row(ctx context.Context, h int64) ([]types.Datum, error)

Row implements table.Table Type interface.

func (*VirtualTable) RowWithCols

func (vt *VirtualTable) RowWithCols(ctx context.Context, h int64, cols []*table.Column) ([]types.Datum, error)

RowWithCols implements table.Table Type interface.

func (*VirtualTable) Seek

func (vt *VirtualTable) Seek(ctx context.Context, h int64) (int64, bool, error)

Seek implements table.Table Type interface.

func (*VirtualTable) Type

func (vt *VirtualTable) Type() table.Type

Type implements table.Table Type interface.

func (*VirtualTable) UpdateRecord

func (vt *VirtualTable) UpdateRecord(ctx context.Context, h int64, oldData, newData []types.Datum, touched []bool) error

UpdateRecord implements table.Table Type interface.

func (*VirtualTable) WritableCols

func (vt *VirtualTable) WritableCols() []*table.Column

WritableCols implements table.Table Type interface.

func (*VirtualTable) WritableIndices

func (vt *VirtualTable) WritableIndices() []table.Index

WritableIndices implements table.Table Type interface.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL