tidb: github.com/pingcap/tidb/tablecodec Index | Files

package tablecodec

import "github.com/pingcap/tidb/tablecodec"


Package Files



const TableSplitKeyLen = 1 + idLen

TableSplitKeyLen is the length of key 't{table_id}' which is used for table split.

func CutIndexKey Uses

func CutIndexKey(key kv.Key, colIDs []int64) (values map[int64][]byte, b []byte, err error)

CutIndexKey cuts encoded index key into colIDs to bytes slices map. The returned value b is the remaining bytes of the key which would be empty if it is unique index or handle data if it is non-unique index.

func CutIndexKeyNew Uses

func CutIndexKeyNew(key kv.Key, length int) (values [][]byte, b []byte, err error)

CutIndexKeyNew cuts encoded index key into colIDs to bytes slices. The returned value b is the remaining bytes of the key which would be empty if it is unique index or handle data if it is non-unique index.

func CutIndexPrefix Uses

func CutIndexPrefix(key kv.Key) []byte

CutIndexPrefix cuts the index prefix.

func CutRowKeyPrefix Uses

func CutRowKeyPrefix(key kv.Key) []byte

CutRowKeyPrefix cuts the row key prefix.

func CutRowNew Uses

func CutRowNew(data []byte, colIDs map[int64]int) ([][]byte, error)

CutRowNew cuts encoded row into byte slices and return columns' byte slice. Row layout: colID1, value1, colID2, value2, .....

func DecodeColumnValue Uses

func DecodeColumnValue(data []byte, ft *types.FieldType, loc *time.Location) (types.Datum, error)

DecodeColumnValue decodes data to a Datum according to the column info.

func DecodeIndexHandle Uses

func DecodeIndexHandle(key, value []byte, colsLen int, pkTp *types.FieldType) (int64, error)

DecodeIndexHandle uses to decode the handle from index key/value.

func DecodeIndexKV Uses

func DecodeIndexKV(key, value []byte, colsLen int, pkStatus PrimaryKeyStatus) ([][]byte, error)

DecodeIndexKV uses to decode index key values.

func DecodeIndexKey Uses

func DecodeIndexKey(key kv.Key) (tableID int64, indexID int64, indexValues []string, err error)

DecodeIndexKey decodes the key and gets the tableID, indexID, indexValues.

func DecodeIndexValueAsHandle Uses

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

DecodeIndexValueAsHandle uses to decode index value as handle id.

func DecodeKeyHead Uses

func DecodeKeyHead(key kv.Key) (tableID int64, indexID int64, isRecordKey bool, err error)

DecodeKeyHead decodes the key's head and gets the tableID, indexID. isRecordKey is true when is a record key.

func DecodeRecordKey Uses

func DecodeRecordKey(key kv.Key) (tableID int64, handle int64, err error)

DecodeRecordKey decodes the key and gets the tableID, handle.

func DecodeRow Uses

func DecodeRow(b []byte, cols map[int64]*types.FieldType, loc *time.Location) (map[int64]types.Datum, error)

DecodeRow decodes a byte slice into datums. Row layout: colID1, value1, colID2, value2, .....

func DecodeRowKey Uses

func DecodeRowKey(key kv.Key) (int64, error)

DecodeRowKey decodes the key and gets the handle.

func DecodeRowWithMap Uses

func DecodeRowWithMap(b []byte, cols map[int64]*types.FieldType, loc *time.Location, row map[int64]types.Datum) (map[int64]types.Datum, error)

DecodeRowWithMap decodes a byte slice into datums with a existing row map. Row layout: colID1, value1, colID2, value2, .....

func DecodeTableID Uses

func DecodeTableID(key kv.Key) int64

DecodeTableID decodes the table ID of the key, if the key is not table key, returns 0.

func EncodeIndexSeekKey Uses

func EncodeIndexSeekKey(tableID int64, idxID int64, encodedValue []byte) kv.Key

EncodeIndexSeekKey encodes an index value to kv.Key.

func EncodeRecordKey Uses

func EncodeRecordKey(recordPrefix kv.Key, h int64) kv.Key

EncodeRecordKey encodes the recordPrefix, row handle into a kv.Key.

func EncodeRow Uses

func EncodeRow(sc *stmtctx.StatementContext, row []types.Datum, colIDs []int64, valBuf []byte, values []types.Datum) ([]byte, error)

EncodeRow encode row data and column ids into a slice of byte. Row layout: colID1, value1, colID2, value2, ..... valBuf and values pass by caller, for reducing EncodeRow allocates temporary bufs. If you pass valBuf and values as nil, EncodeRow will allocate it.

func EncodeRowKey Uses

func EncodeRowKey(tableID int64, encodedHandle []byte) kv.Key

EncodeRowKey encodes the table id and record handle into a kv.Key

func EncodeRowKeyWithHandle Uses

func EncodeRowKeyWithHandle(tableID int64, handle int64) kv.Key

EncodeRowKeyWithHandle encodes the table id, row handle into a kv.Key

func EncodeTableIndexPrefix Uses

func EncodeTableIndexPrefix(tableID, idxID int64) kv.Key

EncodeTableIndexPrefix encodes index prefix with tableID and idxID.

func EncodeTablePrefix Uses

func EncodeTablePrefix(tableID int64) kv.Key

EncodeTablePrefix encodes table prefix with table ID.

func EncodeValue Uses

func EncodeValue(sc *stmtctx.StatementContext, b []byte, raw types.Datum) ([]byte, error)

EncodeValue encodes a go value to bytes.

func GenTableIndexPrefix Uses

func GenTableIndexPrefix(tableID int64) kv.Key

GenTableIndexPrefix composes index prefix with tableID: "t[tableID]_i".

func GenTablePrefix Uses

func GenTablePrefix(tableID int64) kv.Key

GenTablePrefix composes table record and index prefix: "t[tableID]".

func GenTableRecordPrefix Uses

func GenTableRecordPrefix(tableID int64) kv.Key

GenTableRecordPrefix composes record prefix with tableID: "t[tableID]_r".

func GetTableHandleKeyRange Uses

func GetTableHandleKeyRange(tableID int64) (startKey, endKey []byte)

GetTableHandleKeyRange returns table handle's key range with tableID.

func GetTableIndexKeyRange Uses

func GetTableIndexKeyRange(tableID, indexID int64) (startKey, endKey []byte)

GetTableIndexKeyRange returns table index's key range with tableID and indexID.

func IsUntouchedIndexKValue Uses

func IsUntouchedIndexKValue(k, v []byte) bool

IsUntouchedIndexKValue uses to check whether the key is index key, and the value is untouched, since the untouched index key/value is no need to commit.

func ReplaceRecordKeyTableID Uses

func ReplaceRecordKeyTableID(buf []byte, tableID int64) []byte

ReplaceRecordKeyTableID replace the tableID in the recordKey buf.

func TablePrefix Uses

func TablePrefix() []byte

TablePrefix returns table's prefix 't'.

func TruncateToRowKeyLen Uses

func TruncateToRowKeyLen(key kv.Key) kv.Key

TruncateToRowKeyLen truncates the key to row key length if the key is longer than row key.

func UnflattenDatums Uses

func UnflattenDatums(datums []types.Datum, fts []*types.FieldType, loc *time.Location) ([]types.Datum, error)

UnflattenDatums converts raw datums to column datums.

type PrimaryKeyStatus Uses

type PrimaryKeyStatus int

PrimaryKeyStatus is the primary key column status.

const (
    // PrimaryKeyNotExists means no need to decode primary key column value when DecodeIndexKV.
    PrimaryKeyNotExists PrimaryKeyStatus = iota
    // PrimaryKeyIsSigned means decode primary key column value as int64 when DecodeIndexKV.
    // PrimaryKeyIsUnsigned means decode primary key column value as uint64 when DecodeIndexKV.

Package tablecodec imports 11 packages (graph) and is imported by 159 packages. Updated 2019-09-15. Refresh now. Tools for package owners.