tidb: github.com/pingcap/tidb/planner/util Index | Files

package util

import "github.com/pingcap/tidb/planner/util"


Package Files

byitem.go path.go

type AccessPath Uses

type AccessPath struct {
    Index          *model.IndexInfo
    FullIdxCols    []*expression.Column
    FullIdxColLens []int
    IdxCols        []*expression.Column
    IdxColLens     []int
    Ranges         []*ranger.Range
    // CountAfterAccess is the row count after we apply range seek and before we use other filter to filter data.
    CountAfterAccess float64
    // CountAfterIndex is the row count after we apply filters on index and before we apply the table filters.
    CountAfterIndex float64
    AccessConds     []expression.Expression
    EqCondCount     int
    EqOrInCondCount int
    IndexFilters    []expression.Expression
    TableFilters    []expression.Expression
    // PartialIndexPaths store all index access paths.
    // If there are extra filters, store them in TableFilters.
    PartialIndexPaths []*AccessPath

    StoreType kv.StoreType

    IsDNFCond bool

    // IsTablePath indicates whether this path is table path.
    IsTablePath bool
    // Forced means this path is generated by `use/force index()`.
    Forced bool

AccessPath indicates the way we access a table: by using single index, or by using multiple indexes, or just by using table scan.

func (*AccessPath) SplitCorColAccessCondFromFilters Uses

func (path *AccessPath) SplitCorColAccessCondFromFilters(ctx sessionctx.Context, eqOrInCount int) (access, remained []expression.Expression)

SplitCorColAccessCondFromFilters move the necessary filter in the form of index_col = corrlated_col to access conditions.

type ByItems Uses

type ByItems struct {
    Expr expression.Expression
    Desc bool

ByItems wraps a "by" item.

func (*ByItems) Clone Uses

func (by *ByItems) Clone() *ByItems

Clone makes a copy of ByItems.

func (*ByItems) Equal Uses

func (by *ByItems) Equal(ctx sessionctx.Context, other *ByItems) bool

Equal checks whether two ByItems are equal.

func (*ByItems) String Uses

func (by *ByItems) String() string

String implements fmt.Stringer interface.

Package util imports 9 packages (graph) and is imported by 9 packages. Updated 2020-05-15. Refresh now. Tools for package owners.