tidb: github.com/pingcap/tidb/table/tables Index | Files

package tables

import "github.com/pingcap/tidb/table/tables"

Index

Package Files

gen_expr.go index.go partition.go tables.go

func CanSkip Uses

func CanSkip(info *model.TableInfo, col *table.Column, value types.Datum) bool

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 Uses

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 Uses

func DecodeHandle(data []byte) (int64, error)

DecodeHandle decodes handle in data.

func DecodeRawRowData Uses

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 EncodeHandle Uses

func EncodeHandle(h int64) []byte

EncodeHandle encodes handle in data.

func FindIndexByColName Uses

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

FindIndexByColName returns a public table index containing only one column named `name`.

func FindPartitionByName Uses

func FindPartitionByName(meta *model.TableInfo, parName string) (int64, error)

FindPartitionByName finds partition in table meta by name.

func GetColDefaultValue Uses

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 Uses

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

MockTableFromMeta only serves for test.

func NewIndex Uses

func NewIndex(physicalID int64, tblInfo *model.TableInfo, indexInfo *model.IndexInfo) table.Index

NewIndex builds a new Index object.

func OverflowShardBits Uses

func OverflowShardBits(rowID int64, shardRowIDBits uint64) bool

OverflowShardBits checks whether the rowID overflow `1<<(64-shardRowIDBits-1) -1`.

func TableFromMeta Uses

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

TableFromMeta creates a Table instance from model.TableInfo.

func TruncateIndexValuesIfNeeded Uses

func TruncateIndexValuesIfNeeded(tblInfo *model.TableInfo, idxInfo *model.IndexInfo, indexedValues []types.Datum) []types.Datum

TruncateIndexValuesIfNeeded truncates the index values created using only the leading part of column values.

type PartitionExpr Uses

type PartitionExpr struct {
    // Column is the column appeared in the by range expression, partition pruning need this to work.
    Column      *expression.Column
    Ranges      []expression.Expression
    UpperBounds []expression.Expression
    // Expr is the hash partition expression.
    Expr expression.Expression
}

PartitionExpr is the partition definition expressions. There are two expressions exist, because Locate use binary search, which requires: Given a compare function, for any partition range i, if cmp[i] > 0, then cmp[i+1] > 0. While partition prune must use the accurate range to do prunning. partition by range (x)

(partition
   p1 values less than (y1)
   p2 values less than (y2)
   p3 values less than (y3))

Ranges: (x < y1 or x is null); (y1 <= x < y2); (y2 <= x < y3) UpperBounds: (x < y1); (x < y2); (x < y3)

type Table Uses

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

Table implements table.Table interface.

func (*Table) AddRecord Uses

func (t *Table) AddRecord(ctx sessionctx.Context, r []types.Datum, opts ...table.AddRecordOption) (recordID int64, err error)

AddRecord implements table.Table AddRecord interface.

func (*Table) AllocHandle Uses

func (t *Table) AllocHandle(ctx sessionctx.Context) (int64, error)

AllocHandle implements table.Table AllocHandle interface.

func (*Table) Allocator Uses

func (t *Table) Allocator(ctx sessionctx.Context) autoid.Allocator

Allocator implements table.Table Allocator interface.

func (*Table) Cols Uses

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

Cols implements table.Table Cols interface.

func (*Table) DeletableIndices Uses

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

DeletableIndices implements table.Table DeletableIndices interface.

func (*Table) FirstKey Uses

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

FirstKey implements table.Table interface.

func (*Table) GetPhysicalID Uses

func (t *Table) GetPhysicalID() int64

GetPhysicalID implements table.Table GetPhysicalID interface.

func (*Table) IndexPrefix Uses

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

IndexPrefix implements table.Table interface.

func (*Table) Indices Uses

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

Indices implements table.Table Indices interface.

func (*Table) IterRecords Uses

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

IterRecords implements table.Table IterRecords interface.

func (*Table) Meta Uses

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

Meta implements table.Table Meta interface.

func (*Table) RebaseAutoID Uses

func (t *Table) RebaseAutoID(ctx sessionctx.Context, newBase int64, isSetStep bool) error

RebaseAutoID implements table.Table RebaseAutoID interface.

func (*Table) RecordKey Uses

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

RecordKey implements table.Table interface.

func (*Table) RecordPrefix Uses

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

RecordPrefix implements table.Table interface.

func (*Table) RemoveRecord Uses

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

RemoveRecord implements table.Table RemoveRecord interface.

func (*Table) Row Uses

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

Row implements table.Table Row interface.

func (*Table) RowWithCols Uses

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

RowWithCols implements table.Table RowWithCols interface.

func (*Table) Seek Uses

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

Seek implements table.Table Seek interface.

func (*Table) Type Uses

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

Type implements table.Table Type interface.

func (*Table) UpdateRecord Uses

func (t *Table) 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 (*Table) WritableCols Uses

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

WritableCols implements table WritableCols interface.

func (*Table) WritableIndices Uses

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

WritableIndices implements table.Table WritableIndices interface.

Package tables imports 34 packages (graph) and is imported by 135 packages. Updated 2019-09-16. Refresh now. Tools for package owners.