Documentation ¶
Index ¶
- func AllocHandle(ctx sessionctx.Context, t table.Table) (int64, error)
- func CalcShard(shardRowIDBits uint64, startTS uint64, typeBitsLength uint64) int64
- func CanSkip(info *model.TableInfo, col *table.Column, value types.Datum) bool
- func CheckHandleExists(ctx context.Context, sctx sessionctx.Context, t table.Table, recordID int64, ...) error
- func DecodeHandle(data []byte) (int64, error)
- func DecodeRawRowData(ctx sessionctx.Context, meta *model.TableInfo, h int64, cols []*table.Column, ...) ([]types.Datum, map[int64]types.Datum, error)
- func EncodeHandle(h int64) []byte
- func FindIndexByColName(t table.Table, name string) table.Index
- func FindPartitionByName(meta *model.TableInfo, parName string) (int64, error)
- func GetColDefaultValue(ctx sessionctx.Context, col *table.Column, defaultVals []types.Datum) (colVal types.Datum, err error)
- func MockTableFromMeta(tblInfo *model.TableInfo) table.Table
- func NewIndex(physicalID int64, tblInfo *model.TableInfo, indexInfo *model.IndexInfo) table.Index
- func OverflowShardBits(recordID int64, shardRowIDBits uint64, typeBitsLength uint64) bool
- func TableFromMeta(allocs autoid.Allocators, tblInfo *model.TableInfo) (table.Table, error)
- func TruncateIndexValuesIfNeeded(tblInfo *model.TableInfo, idxInfo *model.IndexInfo, ...) []types.Datum
- type ForRangePruning
- type PartitionExpr
- type TableCommon
- func (t *TableCommon) AddRecord(ctx sessionctx.Context, r []types.Datum, opts ...table.AddRecordOption) (recordID int64, err error)
- func (t *TableCommon) Allocators(ctx sessionctx.Context) autoid.Allocators
- func (t *TableCommon) Cols() []*table.Column
- func (t *TableCommon) DeletableCols() []*table.Column
- func (t *TableCommon) DeletableIndices() []table.Index
- func (t *TableCommon) FirstKey() kv.Key
- func (t *TableCommon) GetPhysicalID() int64
- func (t *TableCommon) GetSequenceCommon() *sequenceCommon
- func (t *TableCommon) GetSequenceID() int64
- func (t *TableCommon) GetSequenceNextVal(ctx interface{}, dbName, seqName string) (nextVal int64, err error)
- func (t *TableCommon) HiddenCols() []*table.Column
- func (t *TableCommon) IndexPrefix() kv.Key
- func (t *TableCommon) Indices() []table.Index
- func (t *TableCommon) IterRecords(ctx sessionctx.Context, startKey kv.Key, cols []*table.Column, ...) error
- func (t *TableCommon) Meta() *model.TableInfo
- func (t *TableCommon) RebaseAutoID(ctx sessionctx.Context, newBase int64, isSetStep bool) error
- func (t *TableCommon) RecordKey(h int64) kv.Key
- func (t *TableCommon) RecordPrefix() kv.Key
- func (t *TableCommon) RemoveRecord(ctx sessionctx.Context, h int64, r []types.Datum) error
- func (t *TableCommon) Row(ctx sessionctx.Context, h int64) ([]types.Datum, error)
- func (t *TableCommon) RowWithCols(ctx sessionctx.Context, h int64, cols []*table.Column) ([]types.Datum, error)
- func (t *TableCommon) Seek(ctx sessionctx.Context, h int64) (int64, bool, error)
- func (t *TableCommon) SetSequenceVal(ctx interface{}, newVal int64, dbName, seqName string) (int64, bool, error)
- func (t *TableCommon) Type() table.Type
- func (t *TableCommon) UpdateRecord(ctx sessionctx.Context, h int64, oldData, newData []types.Datum, ...) error
- func (t *TableCommon) VisibleCols() []*table.Column
- func (t *TableCommon) WritableCols() []*table.Column
- func (t *TableCommon) WritableIndices() []table.Index
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AllocHandle ¶
AllocHandle allocate a new handle. A statement could reserve some ID in the statement context, try those ones first.
func CalcShard ¶
CalcShard calculates the shard prefix by hashing the startTS. Make sure OverflowShardBits is false before calling it.
func CanSkip ¶
CanSkip is for these cases, we can skip the columns in encoded row: 1. the column is included in primary key; 2. the column's default value is null, and the value equals to that; 3. the column is virtual generated.
func CheckHandleExists ¶
func CheckHandleExists(ctx context.Context, sctx sessionctx.Context, t table.Table, recordID int64, data []types.Datum) error
CheckHandleExists check whether recordID key exists. if not exists, return nil, otherwise return kv.ErrKeyExists error.
func DecodeHandle ¶
DecodeHandle decodes handle in data.
func DecodeRawRowData ¶
func DecodeRawRowData(ctx sessionctx.Context, meta *model.TableInfo, h int64, cols []*table.Column, value []byte) ([]types.Datum, map[int64]types.Datum, error)
DecodeRawRowData decodes raw row data into a datum slice and a (columnID:columnValue) map.
func FindIndexByColName ¶
FindIndexByColName returns a public table index containing only one column named `name`.
func FindPartitionByName ¶
FindPartitionByName finds partition in table meta by name.
func GetColDefaultValue ¶
func GetColDefaultValue(ctx sessionctx.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 MockTableFromMeta ¶
MockTableFromMeta only serves for test.
func OverflowShardBits ¶
OverflowShardBits checks whether the recordID overflow `1<<(typeBitsLength-shardRowIDBits-1) -1`.
func TableFromMeta ¶
TableFromMeta creates a Table instance from model.TableInfo.
Types ¶
type ForRangePruning ¶
ForRangePruning is used for range partition pruning.
type PartitionExpr ¶
type PartitionExpr struct { // UpperBounds: (x < y1); (x < y2); (x < y3), used by locatePartition. UpperBounds []expression.Expression // OrigExpr is the partition expression ast used in point get. OrigExpr ast.ExprNode // Expr is the hash partition expression. Expr expression.Expression // Used in the range pruning process. *ForRangePruning }
PartitionExpr is the partition definition expressions.
type TableCommon ¶
type TableCommon struct { Columns []*table.Column PublicColumns []*table.Column VisibleColumns []*table.Column HiddenColumns []*table.Column WritableColumns []*table.Column // contains filtered or unexported fields }
TableCommon is shared by both Table and partition.
func (*TableCommon) AddRecord ¶
func (t *TableCommon) AddRecord(ctx sessionctx.Context, r []types.Datum, opts ...table.AddRecordOption) (recordID int64, err error)
AddRecord implements table.Table AddRecord interface.
func (*TableCommon) Allocators ¶
func (t *TableCommon) Allocators(ctx sessionctx.Context) autoid.Allocators
Allocators implements table.Table Allocators interface.
func (*TableCommon) Cols ¶
func (t *TableCommon) Cols() []*table.Column
Cols implements table.Table Cols interface.
func (*TableCommon) DeletableCols ¶
func (t *TableCommon) DeletableCols() []*table.Column
DeletableCols implements table DeletableCols interface.
func (*TableCommon) DeletableIndices ¶
func (t *TableCommon) DeletableIndices() []table.Index
DeletableIndices implements table.Table DeletableIndices interface.
func (*TableCommon) FirstKey ¶
func (t *TableCommon) FirstKey() kv.Key
FirstKey implements table.Table interface.
func (*TableCommon) GetPhysicalID ¶
func (t *TableCommon) GetPhysicalID() int64
GetPhysicalID implements table.Table GetPhysicalID interface.
func (*TableCommon) GetSequenceCommon ¶
func (t *TableCommon) GetSequenceCommon() *sequenceCommon
GetSequenceCommon is used in test to get sequenceCommon.
func (*TableCommon) GetSequenceID ¶
func (t *TableCommon) GetSequenceID() int64
GetSequenceID implements util.SequenceTable GetSequenceID interface.
func (*TableCommon) GetSequenceNextVal ¶
func (t *TableCommon) GetSequenceNextVal(ctx interface{}, dbName, seqName string) (nextVal int64, err error)
GetSequenceNextVal implements util.SequenceTable GetSequenceNextVal interface. Caching the sequence value in table, we can easily be notified with the cache empty, and write the binlogInfo in table level rather than in allocator.
func (*TableCommon) HiddenCols ¶
func (t *TableCommon) HiddenCols() []*table.Column
HiddenCols implements table.Table HiddenCols interface.
func (*TableCommon) IndexPrefix ¶
func (t *TableCommon) IndexPrefix() kv.Key
IndexPrefix implements table.Table interface.
func (*TableCommon) Indices ¶
func (t *TableCommon) Indices() []table.Index
Indices implements table.Table Indices interface.
func (*TableCommon) IterRecords ¶
func (t *TableCommon) IterRecords(ctx sessionctx.Context, startKey kv.Key, cols []*table.Column, fn table.RecordIterFunc) error
IterRecords implements table.Table IterRecords interface.
func (*TableCommon) Meta ¶
func (t *TableCommon) Meta() *model.TableInfo
Meta implements table.Table Meta interface.
func (*TableCommon) RebaseAutoID ¶
func (t *TableCommon) RebaseAutoID(ctx sessionctx.Context, newBase int64, isSetStep bool) error
RebaseAutoID implements table.Table RebaseAutoID interface.
func (*TableCommon) RecordKey ¶
func (t *TableCommon) RecordKey(h int64) kv.Key
RecordKey implements table.Table interface.
func (*TableCommon) RecordPrefix ¶
func (t *TableCommon) RecordPrefix() kv.Key
RecordPrefix implements table.Table interface.
func (*TableCommon) RemoveRecord ¶
func (t *TableCommon) RemoveRecord(ctx sessionctx.Context, h int64, r []types.Datum) error
RemoveRecord implements table.Table RemoveRecord interface.
func (*TableCommon) Row ¶
func (t *TableCommon) Row(ctx sessionctx.Context, h int64) ([]types.Datum, error)
Row implements table.Table Row interface.
func (*TableCommon) RowWithCols ¶
func (t *TableCommon) RowWithCols(ctx sessionctx.Context, h int64, cols []*table.Column) ([]types.Datum, error)
RowWithCols implements table.Table RowWithCols interface.
func (*TableCommon) Seek ¶
func (t *TableCommon) Seek(ctx sessionctx.Context, h int64) (int64, bool, error)
Seek implements table.Table Seek interface.
func (*TableCommon) SetSequenceVal ¶
func (t *TableCommon) SetSequenceVal(ctx interface{}, newVal int64, dbName, seqName string) (int64, bool, error)
SetSequenceVal implements util.SequenceTable SetSequenceVal interface. The returned bool indicates the newVal is already under the base.
func (*TableCommon) Type ¶
func (t *TableCommon) Type() table.Type
Type implements table.Table Type interface.
func (*TableCommon) UpdateRecord ¶
func (t *TableCommon) UpdateRecord(ctx sessionctx.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 (*TableCommon) VisibleCols ¶
func (t *TableCommon) VisibleCols() []*table.Column
VisibleCols implements table.Table VisibleCols interface.
func (*TableCommon) WritableCols ¶
func (t *TableCommon) WritableCols() []*table.Column
WritableCols implements table WritableCols interface.
func (*TableCommon) WritableIndices ¶
func (t *TableCommon) WritableIndices() []table.Index
WritableIndices implements table.Table WritableIndices interface.