Documentation ¶
Index ¶
- Variables
- func GetSubqueryAndOtherSide(node *sqlparser.ComparisonExpr) (*sqlparser.Subquery, sqlparser.Expr)
- func RewriteDerivedTableExpression(expr sqlparser.Expr, vt TableInfo) sqlparser.Expr
- func ValidAsMapKey(s sqlparser.SQLNode) bool
- type AmbiguousColumnError
- type BuggyError
- type CantUseOptionHereError
- type ColumnInfo
- type ColumnNotFoundError
- type DerivedTable
- type ExprDependencies
- type FakeSI
- type JSONTablesError
- type LockOnlyWithDualError
- type MissingInVSchemaError
- type NextWithMultipleTablesError
- type NotSequenceTableError
- type ProjError
- type QualifiedOrderInUnionError
- type RealTable
- type SQLCalcFoundRowsUsageError
- type SchemaInformation
- type SemTable
- func (st *SemTable) ASTEquals() *sqlparser.Comparator
- func (st *SemTable) AddColumnEquality(colName *sqlparser.ColName, expr sqlparser.Expr)
- func (st *SemTable) AddExprs(tbl *sqlparser.AliasedTableExpr, cols sqlparser.SelectExprs)
- func (st *SemTable) AndExpressions(exprs ...sqlparser.Expr) sqlparser.Expr
- func (st *SemTable) Cloned(from, to sqlparser.SQLNode)
- func (st *SemTable) CollationForExpr(e sqlparser.Expr) collations.ID
- func (st *SemTable) ColumnLookup(col *sqlparser.ColName) (int, error)
- func (st *SemTable) ContainsExpr(e sqlparser.Expr, expres []sqlparser.Expr) bool
- func (st *SemTable) CopyDependencies(from, to sqlparser.Expr)
- func (st *SemTable) CopyDependenciesOnSQLNodes(from, to sqlparser.SQLNode)
- func (st *SemTable) CopyExprInfo(src, dest sqlparser.Expr)
- func (st *SemTable) DefaultCollation() collations.ID
- func (st *SemTable) DirectDeps(expr sqlparser.Expr) TableSet
- func (st *SemTable) EqualsExpr(a, b sqlparser.Expr) bool
- func (st *SemTable) EqualsExprWithDeps(a, b sqlparser.Expr) bool
- func (st *SemTable) FindSubqueryReference(subquery *sqlparser.Subquery) *sqlparser.ExtractedSubquery
- func (st *SemTable) GetExprAndEqualities(expr sqlparser.Expr) []sqlparser.Expr
- func (st *SemTable) GetSubqueryNeedingRewrite() []*sqlparser.ExtractedSubquery
- func (st *SemTable) NeedsWeightString(e sqlparser.Expr) bool
- func (st *SemTable) RecursiveDeps(expr sqlparser.Expr) TableSet
- func (st *SemTable) ReplaceTableSetFor(id TableSet, t *sqlparser.AliasedTableExpr)
- func (st *SemTable) SingleUnshardedKeyspace() (*vindexes.Keyspace, []*vindexes.Table)
- func (st *SemTable) TableInfoFor(id TableSet) (TableInfo, error)
- func (st *SemTable) TableInfoForExpr(expr sqlparser.Expr) (TableInfo, error)
- func (st *SemTable) TableSetFor(t *sqlparser.AliasedTableExpr) TableSet
- func (st *SemTable) TypeForExpr(e sqlparser.Expr) (sqltypes.Type, collations.ID, bool)
- type ShardedError
- type TableInfo
- type TableNotUpdatableError
- type TableSet
- func (ts TableSet) Constituents() (result []TableSet)
- func (ts TableSet) ForEachTable(callback func(int))
- func (ts TableSet) Format(f fmt.State, verb rune)
- func (ts TableSet) IsEmpty() bool
- func (ts TableSet) IsOverlapping(other TableSet) bool
- func (ts TableSet) IsSolvedBy(other TableSet) bool
- func (ts TableSet) KeepOnly(other TableSet) TableSet
- func (ts TableSet) Merge(other TableSet) TableSet
- func (ts TableSet) NonEmpty() bool
- func (ts TableSet) NumberOfTables() int
- func (ts TableSet) Remove(other TableSet) TableSet
- func (ts TableSet) TableOffset() int
- func (ts TableSet) WithTable(tableidx int) TableSet
- type Type
- type UnionColumnsDoNotMatchError
- type UnionWithSQLCalcFoundRowsError
- type UnsupportedConstruct
- type UnsupportedMultiTablesInUpdateError
- type UnsupportedNaturalJoinError
- type VindexTable
Constants ¶
This section is empty.
Variables ¶
var ( // ErrNotSingleTable refers to an error happening when something should be used only for single tables ErrNotSingleTable = vterrors.Errorf(vtrpcpb.Code_INTERNAL, "[BUG] should only be used for single tables") )
Functions ¶
func GetSubqueryAndOtherSide ¶ added in v0.13.0
GetSubqueryAndOtherSide returns the subquery and other side of a comparison, iff one of the sides is a SubQuery
func RewriteDerivedTableExpression ¶ added in v0.15.0
RewriteDerivedTableExpression rewrites all the ColName instances in the supplied expression with the expressions behind the column definition of the derived table SELECT foo FROM (SELECT id+42 as foo FROM user) as t We need `foo` to be translated to `id+42` on the inside of the derived table
func ValidAsMapKey ¶ added in v0.13.0
Types ¶
type AmbiguousColumnError ¶ added in v0.17.0
type AmbiguousColumnError struct {
Column string
}
AmbiguousColumnError
func (*AmbiguousColumnError) Error ¶ added in v0.17.0
func (e *AmbiguousColumnError) Error() string
func (*AmbiguousColumnError) ErrorCode ¶ added in v0.17.0
func (e *AmbiguousColumnError) ErrorCode() vtrpcpb.Code
func (*AmbiguousColumnError) ErrorState ¶ added in v0.17.0
func (e *AmbiguousColumnError) ErrorState() vterrors.State
type BuggyError ¶ added in v0.17.0
type BuggyError struct {
Msg string
}
BuggyError is used for checking conditions that should never occur
func (*BuggyError) Error ¶ added in v0.17.0
func (e *BuggyError) Error() string
type CantUseOptionHereError ¶ added in v0.17.0
type CantUseOptionHereError struct {
Msg string
}
CantUseOptionHereError
func (*CantUseOptionHereError) Error ¶ added in v0.17.0
func (e *CantUseOptionHereError) Error() string
func (*CantUseOptionHereError) ErrorCode ¶ added in v0.17.0
func (e *CantUseOptionHereError) ErrorCode() vtrpcpb.Code
func (*CantUseOptionHereError) ErrorState ¶ added in v0.17.0
func (e *CantUseOptionHereError) ErrorState() vterrors.State
type ColumnInfo ¶ added in v0.12.0
ColumnInfo contains information about columns
type ColumnNotFoundError ¶ added in v0.17.0
ColumnNotFoundError
func (*ColumnNotFoundError) Error ¶ added in v0.17.0
func (e *ColumnNotFoundError) Error() string
func (*ColumnNotFoundError) ErrorCode ¶ added in v0.17.0
func (e *ColumnNotFoundError) ErrorCode() vtrpcpb.Code
func (*ColumnNotFoundError) ErrorState ¶ added in v0.17.0
func (e *ColumnNotFoundError) ErrorState() vterrors.State
type DerivedTable ¶ added in v0.13.0
type DerivedTable struct { ASTNode *sqlparser.AliasedTableExpr // contains filtered or unexported fields }
DerivedTable contains the information about the projection, tables involved in derived table.
func (*DerivedTable) GetExpr ¶ added in v0.17.0
func (dt *DerivedTable) GetExpr() *sqlparser.AliasedTableExpr
func (*DerivedTable) GetVindexTable ¶ added in v0.13.0
func (dt *DerivedTable) GetVindexTable() *vindexes.Table
GetVindexTable implements the TableInfo interface
func (*DerivedTable) IsInfSchema ¶ added in v0.13.0
func (dt *DerivedTable) IsInfSchema() bool
IsInfSchema implements the TableInfo interface
type ExprDependencies ¶ added in v0.12.0
ExprDependencies stores the tables that an expression depends on as a map
type FakeSI ¶ added in v0.11.0
FakeSI is a fake SchemaInformation for testing
func (FakeSI) ConnCollation ¶ added in v0.13.0
func (FakeSI) ConnCollation() collations.ID
func (*FakeSI) FindTableOrVindex ¶ added in v0.11.0
func (s *FakeSI) FindTableOrVindex(tablename sqlparser.TableName) (*vindexes.Table, vindexes.Vindex, string, topodatapb.TabletType, key.Destination, error)
FindTableOrVindex implements the SchemaInformation interface
type JSONTablesError ¶ added in v0.17.0
type JSONTablesError struct {
Table string
}
JSONTablesError
func (*JSONTablesError) Error ¶ added in v0.17.0
func (e *JSONTablesError) Error() string
type LockOnlyWithDualError ¶ added in v0.17.0
type LockOnlyWithDualError struct {
Node *sqlparser.LockingFunc
}
LockOnlyWithDualError
func (*LockOnlyWithDualError) Error ¶ added in v0.17.0
func (e *LockOnlyWithDualError) Error() string
func (*LockOnlyWithDualError) ErrorCode ¶ added in v0.17.0
func (e *LockOnlyWithDualError) ErrorCode() vtrpcpb.Code
type MissingInVSchemaError ¶ added in v0.17.0
type MissingInVSchemaError struct {
Table TableInfo
}
MissingInVSchemaError
func (*MissingInVSchemaError) Error ¶ added in v0.17.0
func (e *MissingInVSchemaError) Error() string
func (*MissingInVSchemaError) ErrorCode ¶ added in v0.17.0
func (e *MissingInVSchemaError) ErrorCode() vtrpcpb.Code
type NextWithMultipleTablesError ¶ added in v0.17.0
type NextWithMultipleTablesError struct {
CountTables int
}
NextWithMultipleTablesError
func (*NextWithMultipleTablesError) Error ¶ added in v0.17.0
func (e *NextWithMultipleTablesError) Error() string
type NotSequenceTableError ¶ added in v0.17.0
type NotSequenceTableError struct {
Table string
}
NotSequenceTableError
func (*NotSequenceTableError) Error ¶ added in v0.17.0
func (e *NotSequenceTableError) Error() string
func (*NotSequenceTableError) ErrorCode ¶ added in v0.17.0
func (e *NotSequenceTableError) ErrorCode() vtrpcpb.Code
type ProjError ¶ added in v0.12.0
type ProjError struct {
Inner error
}
ProjError is used to mark an error as something that should only be returned if the planner fails to merge everything down to a single route
type QualifiedOrderInUnionError ¶ added in v0.17.0
type QualifiedOrderInUnionError struct {
Table string
}
QualifiedOrderInUnionError
func (*QualifiedOrderInUnionError) Error ¶ added in v0.17.0
func (e *QualifiedOrderInUnionError) Error() string
type RealTable ¶ added in v0.12.0
type RealTable struct { ASTNode *sqlparser.AliasedTableExpr Table *vindexes.Table // contains filtered or unexported fields }
RealTable contains the alias table expr and vindex table
func (*RealTable) GetExpr ¶ added in v0.17.0
func (r *RealTable) GetExpr() *sqlparser.AliasedTableExpr
GetExpr implements the TableInfo interface
func (*RealTable) GetVindexTable ¶ added in v0.12.0
GetVindexTable implements the TableInfo interface
func (*RealTable) IsInfSchema ¶ added in v0.12.0
IsInfSchema implements the TableInfo interface
type SQLCalcFoundRowsUsageError ¶ added in v0.17.0
type SQLCalcFoundRowsUsageError struct { }
SQLCalcFoundRowsUsageError
func (*SQLCalcFoundRowsUsageError) Error ¶ added in v0.17.0
func (e *SQLCalcFoundRowsUsageError) Error() string
func (*SQLCalcFoundRowsUsageError) ErrorCode ¶ added in v0.17.0
func (e *SQLCalcFoundRowsUsageError) ErrorCode() vtrpcpb.Code
type SchemaInformation ¶ added in v0.11.0
type SchemaInformation interface { FindTableOrVindex(tablename sqlparser.TableName) (*vindexes.Table, vindexes.Vindex, string, topodatapb.TabletType, key.Destination, error) ConnCollation() collations.ID }
SchemaInformation is used tp provide table information from Vschema.
type SemTable ¶
type SemTable struct { // Tables stores information about the tables in the query, including derived tables Tables []TableInfo // Comments stores any comments of the /* vt+ */ type in the query Comments *sqlparser.ParsedComments // Warning stores any warnings generated during semantic analysis. Warning string // Collation represents the default collation for the query, usually inherited // from the connection's default collation. Collation collations.ID // ExprTypes maps expressions to their respective types in the query. ExprTypes map[sqlparser.Expr]Type // NotSingleRouteErr stores errors related to missing schema information. // This typically occurs when a column's existence is uncertain. // Instead of failing early, the query is allowed to proceed, possibly // succeeding once it reaches MySQL. NotSingleRouteErr error // NotUnshardedErr stores errors that occur if the query isn't planned as a single route // targeting an unsharded keyspace. This typically arises when information is missing, but // for unsharded tables, the code operates in a passthrough mode, relying on the underlying // MySQL engine to handle errors appropriately. NotUnshardedErr error // Recursive contains dependencies from the expression to the actual tables // in the query (excluding derived tables). For columns in derived tables, // this map holds the accumulated dependencies for the column expression. Recursive ExprDependencies // Direct stores information about the closest dependency for an expression. // It doesn't recurse inside derived tables to find the original dependencies. Direct ExprDependencies // SubqueryMap holds extracted subqueries for each statement. SubqueryMap map[sqlparser.Statement][]*sqlparser.ExtractedSubquery // SubqueryRef maps subquery pointers to their extracted subquery. SubqueryRef map[*sqlparser.Subquery]*sqlparser.ExtractedSubquery // ColumnEqualities is used for transitive closures (e.g., if a == b and b == c, then a == c). ColumnEqualities map[columnName][]sqlparser.Expr // ExpandedColumns is a map of all the added columns for a given table. // The columns were added because of the use of `*` in the query ExpandedColumns map[sqlparser.TableName][]*sqlparser.ColName // contains filtered or unexported fields }
SemTable contains semantic analysis information about the query.
func Analyze ¶ added in v0.11.0
func Analyze(statement sqlparser.Statement, currentDb string, si SchemaInformation) (*SemTable, error)
Analyze analyzes the parsed query.
func AnalyzeStrict ¶ added in v0.17.0
func AnalyzeStrict(statement sqlparser.Statement, currentDb string, si SchemaInformation) (*SemTable, error)
AnalyzeStrict analyzes the parsed query, and fails the analysis for any possible errors
func EmptySemTable ¶ added in v0.13.0
func EmptySemTable() *SemTable
EmptySemTable creates a new empty SemTable
func (*SemTable) ASTEquals ¶ added in v0.16.0
func (st *SemTable) ASTEquals() *sqlparser.Comparator
ASTEquals returns a sqlparser.Comparator that uses the semantic information in this SemTable to explicitly compare column names for equality.
func (*SemTable) AddColumnEquality ¶ added in v0.12.0
AddColumnEquality adds a relation of the given colName to the ColumnEqualities map
func (*SemTable) AddExprs ¶ added in v0.11.0
func (st *SemTable) AddExprs(tbl *sqlparser.AliasedTableExpr, cols sqlparser.SelectExprs)
AddExprs adds new select exprs to the SemTable.
func (*SemTable) AndExpressions ¶ added in v0.16.0
AndExpressions ands together two or more expressions, minimising the expr when possible
func (*SemTable) Cloned ¶ added in v0.17.0
Cloned copies the dependencies from one expression into the other
func (*SemTable) CollationForExpr ¶ added in v0.13.0
func (st *SemTable) CollationForExpr(e sqlparser.Expr) collations.ID
CollationForExpr returns the collation name of expressions in the query
func (*SemTable) ColumnLookup ¶ added in v0.13.0
ColumnLookup implements the TranslationLookup interface
func (*SemTable) ContainsExpr ¶ added in v0.16.0
func (*SemTable) CopyDependencies ¶ added in v0.12.0
CopyDependencies copies the dependencies from one expression into the other
func (*SemTable) CopyDependenciesOnSQLNodes ¶ added in v0.17.0
CopyDependenciesOnSQLNodes copies the dependencies from one expression into the other
func (*SemTable) CopyExprInfo ¶ added in v0.13.0
CopyExprInfo lookups src in the ExprTypes map and, if a key is found, assign the corresponding Type value of src to dest.
func (*SemTable) DefaultCollation ¶ added in v0.13.0
func (st *SemTable) DefaultCollation() collations.ID
func (*SemTable) DirectDeps ¶ added in v0.12.0
DirectDeps return the table dependencies of the expression.
func (*SemTable) EqualsExpr ¶ added in v0.16.0
EqualsExpr compares two expressions using the semantic analysis information. This means that we use the binding info to recognize that two ColName's can point to the same table column even though they are written differently. Example would be the `foobar` column in the following query: `SELECT foobar FROM tbl ORDER BY tbl.foobar` The expression in the select list is not equal to the one in the ORDER BY, but they point to the same column and would be considered equal by this method
func (*SemTable) EqualsExprWithDeps ¶ added in v0.17.0
EqualsExprWithDeps compares two expressions taking into account their semantic information. Dependency data typically pertains only to column expressions, this method considers them for all expression types. The method checks if dependency information exists for both expressions. If it does, the dependencies must match. If we are missing dependency information for either
func (*SemTable) FindSubqueryReference ¶ added in v0.13.0
func (st *SemTable) FindSubqueryReference(subquery *sqlparser.Subquery) *sqlparser.ExtractedSubquery
FindSubqueryReference goes over the sub queries and searches for it by value equality instead of reference equality
func (*SemTable) GetExprAndEqualities ¶ added in v0.12.0
GetExprAndEqualities returns a slice containing the given expression, and it's known equalities if any
func (*SemTable) GetSubqueryNeedingRewrite ¶ added in v0.13.0
func (st *SemTable) GetSubqueryNeedingRewrite() []*sqlparser.ExtractedSubquery
GetSubqueryNeedingRewrite returns a list of sub-queries that need to be rewritten
func (*SemTable) NeedsWeightString ¶ added in v0.14.0
NeedsWeightString returns true if the given expression needs weight_string to do safe comparisons
func (*SemTable) RecursiveDeps ¶ added in v0.12.0
RecursiveDeps return the table dependencies of the expression.
func (*SemTable) ReplaceTableSetFor ¶ added in v0.13.1
func (st *SemTable) ReplaceTableSetFor(id TableSet, t *sqlparser.AliasedTableExpr)
ReplaceTableSetFor replaces the given single TabletSet with the new *sqlparser.AliasedTableExpr
func (*SemTable) SingleUnshardedKeyspace ¶ added in v0.13.0
SingleUnshardedKeyspace returns the single keyspace if all tables in the query are in the same, unsharded keyspace
func (*SemTable) TableInfoFor ¶ added in v0.11.0
TableInfoFor returns the table info for the table set. It should contains only single table.
func (*SemTable) TableInfoForExpr ¶ added in v0.12.0
TableInfoForExpr returns the table info of the table that this expression depends on. Careful: this only works for expressions that have a single table dependency
func (*SemTable) TableSetFor ¶
func (st *SemTable) TableSetFor(t *sqlparser.AliasedTableExpr) TableSet
TableSetFor returns the bitmask for this particular table
func (*SemTable) TypeForExpr ¶ added in v0.17.0
TypeForExpr returns the type of expressions in the query
type ShardedError ¶ added in v0.14.5
type ShardedError struct {
Inner error
}
ShardedError is used to mark an error as something that should only be returned if the query is not unsharded
func (ShardedError) Error ¶ added in v0.14.5
func (p ShardedError) Error() string
type TableInfo ¶ added in v0.11.0
type TableInfo interface { // Name returns the table name Name() (sqlparser.TableName, error) // GetVindexTable returns the vschema version of this TableInfo GetVindexTable() *vindexes.Table // IsInfSchema returns true if this table is information_schema IsInfSchema() bool // GetExpr returns the AST struct behind this table GetExpr() *sqlparser.AliasedTableExpr // contains filtered or unexported methods }
TableInfo contains information about tables
type TableNotUpdatableError ¶ added in v0.17.0
type TableNotUpdatableError struct {
Table string
}
TableNotUpdatableError
func (*TableNotUpdatableError) Error ¶ added in v0.17.0
func (e *TableNotUpdatableError) Error() string
func (*TableNotUpdatableError) ErrorCode ¶ added in v0.17.0
func (e *TableNotUpdatableError) ErrorCode() vtrpcpb.Code
func (*TableNotUpdatableError) ErrorState ¶ added in v0.17.0
func (e *TableNotUpdatableError) ErrorState() vterrors.State
type TableSet ¶
TableSet is how a set of tables is expressed. Tables get unique bits assigned in the order that they are encountered during semantic analysis.
func EmptyTableSet ¶ added in v0.13.0
func EmptyTableSet() TableSet
EmptyTableSet creates an empty TableSet
func MergeTableSets ¶ added in v0.12.0
MergeTableSets merges all the given TableSet into a single one
func SingleTableSet ¶ added in v0.12.0
SingleTableSet creates a TableSet that contains only the given table
func TableSetFromIds ¶ added in v0.12.0
TableSetFromIds returns TableSet for all the id passed in argument.
func (TableSet) Constituents ¶
Constituents returns a slice with the indices for all tables in this TableSet
func (TableSet) ForEachTable ¶ added in v0.12.0
ForEachTable calls the given callback with the indices for all tables in this TableSet
func (TableSet) IsEmpty ¶ added in v0.15.1
IsEmpty returns true if there are no tables in the tableset
func (TableSet) IsOverlapping ¶
IsOverlapping returns true if at least one table exists in both sets
func (TableSet) IsSolvedBy ¶
IsSolvedBy returns true if all of `ts` is contained in `other`
func (TableSet) KeepOnly ¶ added in v0.13.0
KeepOnly removes all the tables not in `other` from this TableSet
func (TableSet) NonEmpty ¶ added in v0.15.1
NonEmpty returns true if there are tables in the tableset
func (TableSet) NumberOfTables ¶
NumberOfTables returns the number of bits set
func (TableSet) Remove ¶ added in v0.15.1
Remove returns a new TableSet with all the tables in `other` removed
func (TableSet) TableOffset ¶ added in v0.11.0
TableOffset returns the offset in the Tables array from TableSet
type Type ¶ added in v0.13.0
type Type struct { Type querypb.Type Collation collations.ID }
Type is the normal querypb.Type with collation
type UnionColumnsDoNotMatchError ¶ added in v0.17.0
UnionColumnsDoNotMatchError
func (*UnionColumnsDoNotMatchError) Error ¶ added in v0.17.0
func (e *UnionColumnsDoNotMatchError) Error() string
func (*UnionColumnsDoNotMatchError) ErrorCode ¶ added in v0.17.0
func (e *UnionColumnsDoNotMatchError) ErrorCode() vtrpcpb.Code
func (*UnionColumnsDoNotMatchError) ErrorState ¶ added in v0.17.0
func (e *UnionColumnsDoNotMatchError) ErrorState() vterrors.State
type UnionWithSQLCalcFoundRowsError ¶ added in v0.17.0
type UnionWithSQLCalcFoundRowsError struct { }
UnionWithSQLCalcFoundRowsError
func (*UnionWithSQLCalcFoundRowsError) Error ¶ added in v0.17.0
func (e *UnionWithSQLCalcFoundRowsError) Error() string
type UnsupportedConstruct ¶ added in v0.17.0
type UnsupportedConstruct struct {
// contains filtered or unexported fields
}
func (*UnsupportedConstruct) Error ¶ added in v0.17.0
func (e *UnsupportedConstruct) Error() string
func (*UnsupportedConstruct) ErrorCode ¶ added in v0.17.0
func (e *UnsupportedConstruct) ErrorCode() vtrpcpb.Code
type UnsupportedMultiTablesInUpdateError ¶ added in v0.17.0
UnsupportedMultiTablesInUpdateError
func (*UnsupportedMultiTablesInUpdateError) Error ¶ added in v0.17.0
func (e *UnsupportedMultiTablesInUpdateError) Error() string
type UnsupportedNaturalJoinError ¶ added in v0.17.0
type UnsupportedNaturalJoinError struct {
JoinExpr *sqlparser.JoinTableExpr
}
UnsupportedNaturalJoinError
func (*UnsupportedNaturalJoinError) Error ¶ added in v0.17.0
func (e *UnsupportedNaturalJoinError) Error() string
type VindexTable ¶ added in v0.12.0
VindexTable contains a vindexes.Vindex and a TableInfo. The former represents the vindex we are keeping information about, and the latter represents the additional table information (usually a RealTable or an AliasedTable) of our vindex.
func (*VindexTable) GetExpr ¶ added in v0.17.0
func (v *VindexTable) GetExpr() *sqlparser.AliasedTableExpr
GetExpr implements the TableInfo interface
func (*VindexTable) GetVindexTable ¶ added in v0.12.0
func (v *VindexTable) GetVindexTable() *vindexes.Table
GetVindexTable implements the TableInfo interface
func (*VindexTable) IsInfSchema ¶ added in v0.12.0
func (v *VindexTable) IsInfSchema() bool
IsInfSchema implements the TableInfo interface