Documentation ¶
Index ¶
- Constants
- Variables
- func EncodeIndexValue(value *IndexValue) ([]byte, error)
- func NewDBProviderWithOpts(opts ...ProviderOption) sql.MutableDatabaseProvider
- func NewSessionBuilder(pro *DbProvider) func(ctx context.Context, conn *mysql.Conn, addr string) (sql.Session, error)
- type BaseDatabase
- func (d *BaseDatabase) AddTable(name string, t MemTable)
- func (d *BaseDatabase) CreateFulltextTableNames(ctx *sql.Context, parentTableName string, parentIndexName string) (fulltext.IndexTableNames, error)
- func (d *BaseDatabase) CreateIndexedTable(ctx *sql.Context, name string, sch sql.PrimaryKeySchema, idxDef sql.IndexDef, ...) error
- func (d *BaseDatabase) CreateTable(ctx *sql.Context, name string, schema sql.PrimaryKeySchema, ...) error
- func (d *BaseDatabase) CreateTrigger(_ *sql.Context, definition sql.TriggerDefinition) error
- func (d *BaseDatabase) Database() *BaseDatabase
- func (d *BaseDatabase) DeleteTable(name string)
- func (d *BaseDatabase) DropEvent(ctx *sql.Context, name string) error
- func (d *BaseDatabase) DropStoredProcedure(ctx *sql.Context, name string) error
- func (d *BaseDatabase) DropTable(ctx *sql.Context, name string) error
- func (d *BaseDatabase) DropTrigger(_ *sql.Context, name string) error
- func (d *BaseDatabase) EnablePrimaryKeyIndexes()
- func (d *BaseDatabase) GetCollation(ctx *sql.Context) sql.CollationID
- func (d *BaseDatabase) GetEvent(ctx *sql.Context, name string) (sql.EventDefinition, bool, error)
- func (d *BaseDatabase) GetEvents(ctx *sql.Context) ([]sql.EventDefinition, interface{}, error)
- func (d *BaseDatabase) GetForeignKeyCollection() *ForeignKeyCollection
- func (d *BaseDatabase) GetStoredProcedure(ctx *sql.Context, name string) (sql.StoredProcedureDetails, bool, error)
- func (d *BaseDatabase) GetStoredProcedures(ctx *sql.Context) ([]sql.StoredProcedureDetails, error)
- func (d *BaseDatabase) GetTableInsensitive(ctx *sql.Context, tblName string) (sql.Table, bool, error)
- func (d *BaseDatabase) GetTableNames(ctx *sql.Context) ([]string, error)
- func (d *BaseDatabase) GetTriggers(_ *sql.Context) ([]sql.TriggerDefinition, error)
- func (d *BaseDatabase) Name() string
- func (d *BaseDatabase) RenameTable(ctx *sql.Context, oldName, newName string) error
- func (d *BaseDatabase) SaveEvent(_ *sql.Context, event sql.EventDefinition) (bool, error)
- func (d *BaseDatabase) SaveStoredProcedure(ctx *sql.Context, spd sql.StoredProcedureDetails) error
- func (d *BaseDatabase) SetCollation(ctx *sql.Context, collation sql.CollationID) error
- func (d *BaseDatabase) Tables() map[string]sql.Table
- func (d *BaseDatabase) UpdateEvent(_ *sql.Context, originalName string, event sql.EventDefinition) (bool, error)
- func (d *BaseDatabase) UpdateLastExecuted(ctx *sql.Context, eventName string, lastExecuted time.Time) error
- func (d *BaseDatabase) ValidateSchema(schema sql.Schema) error
- type Database
- func (d *Database) AllViews(ctx *sql.Context) ([]sql.ViewDefinition, error)
- func (d *Database) CreateView(ctx *sql.Context, name string, selectStatement, createViewStmt string) error
- func (d *Database) Database() *BaseDatabase
- func (d *Database) DropView(ctx *sql.Context, name string) error
- func (d *Database) GetViewDefinition(ctx *sql.Context, viewName string) (sql.ViewDefinition, bool, error)
- func (d *Database) NeedsToReloadEvents(_ *sql.Context, token interface{}) (bool, error)
- type DbProvider
- func (pro *DbProvider) AllDatabases(*sql.Context) []sql.Database
- func (pro *DbProvider) CreateDatabase(_ *sql.Context, name string) (err error)
- func (pro *DbProvider) Database(_ *sql.Context, name string) (sql.Database, error)
- func (pro *DbProvider) DropDatabase(_ *sql.Context, name string) (err error)
- func (pro *DbProvider) ExternalStoredProcedure(_ *sql.Context, name string, numOfParams int) (*sql.ExternalStoredProcedureDetails, error)
- func (pro *DbProvider) ExternalStoredProcedures(_ *sql.Context, name string) ([]sql.ExternalStoredProcedureDetails, error)
- func (pro *DbProvider) HasDatabase(_ *sql.Context, name string) bool
- func (pro *DbProvider) TableFunction(_ *sql.Context, name string) (sql.TableFunction, error)
- func (pro *DbProvider) WithOption(opt ProviderOption)
- func (pro *DbProvider) WithTableFunctions(fns ...sql.TableFunction) (sql.TableFunctionProvider, error)
- type ExponentialDistTable
- func (s ExponentialDistTable) CheckPrivileges(_ *sql.Context, _ sql.PrivilegedOperationChecker) bool
- func (s ExponentialDistTable) Children() []sql.Node
- func (ExponentialDistTable) Collation() sql.CollationID
- func (ExponentialDistTable) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)
- func (s ExponentialDistTable) Database() sql.Database
- func (s ExponentialDistTable) DebugString() string
- func (s ExponentialDistTable) Description() string
- func (s ExponentialDistTable) Expressions() []sql.Expression
- func (s ExponentialDistTable) IsReadOnly() bool
- func (s ExponentialDistTable) Name() string
- func (s ExponentialDistTable) NewInstance(_ *sql.Context, db sql.Database, args []sql.Expression) (sql.Node, error)
- func (s ExponentialDistTable) PartitionRows(ctx *sql.Context, _ sql.Partition) (sql.RowIter, error)
- func (s ExponentialDistTable) Partitions(ctx *sql.Context) (sql.PartitionIter, error)
- func (s ExponentialDistTable) Resolved() bool
- func (s ExponentialDistTable) RowIter(_ *sql.Context, _ sql.Row) (sql.RowIter, error)
- func (s ExponentialDistTable) Schema() sql.Schema
- func (s ExponentialDistTable) String() string
- func (s ExponentialDistTable) UnderlyingTable() sql.Table
- func (s ExponentialDistTable) WithChildren(_ ...sql.Node) (sql.Node, error)
- func (s ExponentialDistTable) WithDatabase(_ sql.Database) (sql.Node, error)
- func (s ExponentialDistTable) WithExpressions(e ...sql.Expression) (sql.Node, error)
- type ExpressionsIndex
- type FilteredTable
- type ForeignKeyCollection
- type GlobalsMap
- type HistoryDatabase
- func (db *HistoryDatabase) AddTableAsOf(name string, t sql.Table, asOf interface{})
- func (db *HistoryDatabase) GetTableInsensitiveAsOf(ctx *sql.Context, tblName string, time interface{}) (sql.Table, bool, error)
- func (db *HistoryDatabase) GetTableNamesAsOf(ctx *sql.Context, time interface{}) ([]string, error)
- type Index
- func (idx *Index) CanSupport(...sql.Range) bool
- func (idx *Index) ColumnExpressionTypes() []sql.ColumnExpressionType
- func (idx *Index) ColumnExpressions() []sql.Expression
- func (idx *Index) Comment() string
- func (idx *Index) Database() string
- func (idx *Index) Driver() string
- func (idx *Index) Expressions() []string
- func (idx *Index) ExtendedColumnExpressionTypes() []sql.ColumnExpressionType
- func (idx *Index) ExtendedExpressions() []string
- func (idx *Index) ExtendedExprs() []sql.Expression
- func (idx *Index) FullTextKeyColumns(ctx *sql.Context) (fulltext.KeyColumns, error)
- func (idx *Index) FullTextTableNames(ctx *sql.Context) (fulltext.IndexTableNames, error)
- func (idx *Index) HandledFilters(filters []sql.Expression) []sql.Expression
- func (idx *Index) ID() string
- func (idx *Index) IndexType() string
- func (idx *Index) IsFullText() bool
- func (idx *Index) IsGenerated() bool
- func (idx *Index) IsSpatial() bool
- func (idx *Index) IsUnique() bool
- func (idx *Index) MemTable() *Table
- func (idx *Index) Order() sql.IndexOrder
- func (idx *Index) PrefixLengths() []uint16
- func (idx *Index) Reversible() bool
- func (idx *Index) Table() string
- type IndexValue
- type IndexedTable
- type IntSequenceTable
- func (s IntSequenceTable) CheckPrivileges(_ *sql.Context, _ sql.PrivilegedOperationChecker) bool
- func (s IntSequenceTable) Children() []sql.Node
- func (IntSequenceTable) Collation() sql.CollationID
- func (IntSequenceTable) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)
- func (s IntSequenceTable) Database() sql.Database
- func (s IntSequenceTable) DebugString() string
- func (s IntSequenceTable) Description() string
- func (s IntSequenceTable) Expressions() []sql.Expression
- func (s IntSequenceTable) GetIndexes(ctx *sql.Context) ([]sql.Index, error)
- func (s IntSequenceTable) IndexedAccess(lookup sql.IndexLookup) sql.IndexedTable
- func (s IntSequenceTable) IsReadOnly() bool
- func (s IntSequenceTable) LookupPartitions(context *sql.Context, lookup sql.IndexLookup) (sql.PartitionIter, error)
- func (s IntSequenceTable) Name() string
- func (s IntSequenceTable) NewInstance(_ *sql.Context, db sql.Database, args []sql.Expression) (sql.Node, error)
- func (s IntSequenceTable) PartitionRows(ctx *sql.Context, partition sql.Partition) (sql.RowIter, error)
- func (s IntSequenceTable) Partitions(ctx *sql.Context) (sql.PartitionIter, error)
- func (s IntSequenceTable) PreciseMatch() bool
- func (s IntSequenceTable) Resolved() bool
- func (s IntSequenceTable) RowIter(_ *sql.Context, _ sql.Row) (sql.RowIter, error)
- func (s IntSequenceTable) Schema() sql.Schema
- func (s IntSequenceTable) String() string
- func (s IntSequenceTable) UnderlyingTable() sql.Table
- func (s IntSequenceTable) WithChildren(_ ...sql.Node) (sql.Node, error)
- func (s IntSequenceTable) WithDatabase(_ sql.Database) (sql.Node, error)
- func (s IntSequenceTable) WithExpressions(e ...sql.Expression) (sql.Node, error)
- type MemTable
- type MemoryDatabase
- type NormalDistTable
- func (s NormalDistTable) CheckPrivileges(_ *sql.Context, _ sql.PrivilegedOperationChecker) bool
- func (s NormalDistTable) Children() []sql.Node
- func (NormalDistTable) Collation() sql.CollationID
- func (NormalDistTable) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)
- func (s NormalDistTable) Database() sql.Database
- func (s NormalDistTable) DebugString() string
- func (s NormalDistTable) Description() string
- func (s NormalDistTable) Expressions() []sql.Expression
- func (s NormalDistTable) IsReadOnly() bool
- func (s NormalDistTable) Name() string
- func (s NormalDistTable) NewInstance(_ *sql.Context, db sql.Database, args []sql.Expression) (sql.Node, error)
- func (s NormalDistTable) PartitionRows(ctx *sql.Context, _ sql.Partition) (sql.RowIter, error)
- func (s NormalDistTable) Partitions(ctx *sql.Context) (sql.PartitionIter, error)
- func (s NormalDistTable) Resolved() bool
- func (s NormalDistTable) RowIter(_ *sql.Context, _ sql.Row) (sql.RowIter, error)
- func (s NormalDistTable) Schema() sql.Schema
- func (s NormalDistTable) String() string
- func (s NormalDistTable) UnderlyingTable() sql.Table
- func (s NormalDistTable) WithChildren(_ ...sql.Node) (sql.Node, error)
- func (s NormalDistTable) WithDatabase(_ sql.Database) (sql.Node, error)
- func (s NormalDistTable) WithExpressions(e ...sql.Expression) (sql.Node, error)
- type Partition
- type PointLookupTable
- func (s PointLookupTable) DebugString() string
- func (s PointLookupTable) Description() string
- func (s PointLookupTable) GetIndexes(ctx *sql.Context) (indexes []sql.Index, err error)
- func (s PointLookupTable) Name() string
- func (s PointLookupTable) NewInstance(ctx *sql.Context, db sql.Database, args []sql.Expression) (sql.Node, error)
- func (s PointLookupTable) PreciseMatch() bool
- func (s PointLookupTable) String() string
- func (s PointLookupTable) UnderlyingTable() sql.Table
- type ProviderOption
- type ReadOnlyDatabase
- type RequiredLookupTable
- func (s RequiredLookupTable) Database() sql.Database
- func (s RequiredLookupTable) DebugString() string
- func (s RequiredLookupTable) Description() string
- func (s RequiredLookupTable) Expressions() []sql.Expression
- func (s RequiredLookupTable) GetIndexes(ctx *sql.Context) (indexes []sql.Index, err error)
- func (s RequiredLookupTable) IndexedAccess(lookup sql.IndexLookup) sql.IndexedTable
- func (s RequiredLookupTable) Name() string
- func (s RequiredLookupTable) NewInstance(ctx *sql.Context, db sql.Database, args []sql.Expression) (sql.Node, error)
- func (s RequiredLookupTable) PartitionRows(ctx *sql.Context, partition sql.Partition) (sql.RowIter, error)
- func (s RequiredLookupTable) Partitions(ctx *sql.Context) (sql.PartitionIter, error)
- func (s RequiredLookupTable) PreciseMatch() bool
- func (s RequiredLookupTable) RequiredPredicates() []string
- func (s RequiredLookupTable) RowIter(_ *sql.Context, _ sql.Row) (sql.RowIter, error)
- func (s RequiredLookupTable) String() string
- func (s RequiredLookupTable) UnderlyingTable() sql.Table
- func (s RequiredLookupTable) WithChildren(_ ...sql.Node) (sql.Node, error)
- func (s RequiredLookupTable) WithDatabase(_ sql.Database) (sql.Node, error)
- func (s RequiredLookupTable) WithExpressions(e ...sql.Expression) (sql.Node, error)
- type SequenceTableFnRowIter
- type Session
- func (s *Session) CommitTransaction(ctx *sql.Context, tx sql.Transaction) error
- func (s *Session) CreateSavepoint(ctx *sql.Context, transaction sql.Transaction, name string) error
- func (s *Session) GetPersistedValue(k string) (interface{}, error)
- func (s *Session) PersistGlobal(sysVarName string, value interface{}) error
- func (s *Session) ReleaseSavepoint(ctx *sql.Context, transaction sql.Transaction, name string) error
- func (s *Session) RemoveAllPersistedGlobals() error
- func (s *Session) RemovePersistedGlobal(sysVarName string) error
- func (s *Session) Rollback(ctx *sql.Context, transaction sql.Transaction) error
- func (s *Session) RollbackToSavepoint(ctx *sql.Context, transaction sql.Transaction, name string) error
- func (s *Session) SetGlobals(globals map[string]interface{}) *Session
- func (s *Session) SetValidationCallback(validationCallback func()) *Session
- func (s *Session) StartTransaction(ctx *sql.Context, tCharacteristic sql.TransactionCharacteristic) (sql.Transaction, error)
- func (s *Session) ValidateSession(ctx *sql.Context) error
- type StatsProv
- func (s *StatsProv) DataLength(ctx *sql.Context, db, table string) (uint64, error)
- func (s *StatsProv) DropDbStats(ctx *sql.Context, db string, flush bool) error
- func (s *StatsProv) DropStats(ctx *sql.Context, qual sql.StatQualifier, cols []string) error
- func (s *StatsProv) GetStats(ctx *sql.Context, qual sql.StatQualifier, cols []string) (sql.Statistic, bool)
- func (s *StatsProv) GetTableStats(ctx *sql.Context, db, table string) ([]sql.Statistic, error)
- func (s *StatsProv) RefreshTableStats(ctx *sql.Context, table sql.Table, db string) error
- func (s *StatsProv) RowCount(ctx *sql.Context, db, table string) (uint64, error)
- func (s *StatsProv) SetStats(ctx *sql.Context, stats sql.Statistic) error
- type Table
- func NewDualTable() *Table
- func NewLocalTable(db MemoryDatabase, name string, schema sql.PrimaryKeySchema, ...) *Table
- func NewPartitionedTable(db *BaseDatabase, name string, schema sql.PrimaryKeySchema, ...) *Table
- func NewPartitionedTableWithCollation(db *BaseDatabase, name string, schema sql.PrimaryKeySchema, ...) *Table
- func NewTable(db MemoryDatabase, name string, schema sql.PrimaryKeySchema, ...) *Table
- func NewTableWithCollation(db *BaseDatabase, name string, schema sql.PrimaryKeySchema, ...) *Table
- func (t *Table) AddColumn(ctx *sql.Context, column *sql.Column, order *sql.ColumnOrder) error
- func (t *Table) AddForeignKey(ctx *sql.Context, fk sql.ForeignKeyConstraint) error
- func (t *Table) AutoIncrementSetter(ctx *sql.Context) sql.AutoIncrementSetter
- func (t *Table) BuildIndex(ctx *sql.Context, indexDef sql.IndexDef) (sql.RowInserter, error)
- func (t *Table) Collation() sql.CollationID
- func (t *Table) Comment() string
- func (t *Table) CreateCheck(ctx *sql.Context, check *sql.CheckDefinition) error
- func (t *Table) CreateFulltextIndex(ctx *sql.Context, indexDef sql.IndexDef, keyCols fulltext.KeyColumns, ...) error
- func (t *Table) CreateIndex(ctx *sql.Context, idx sql.IndexDef) error
- func (t *Table) CreateIndexForForeignKey(ctx *sql.Context, idx sql.IndexDef) error
- func (t *Table) CreatePrimaryKey(ctx *sql.Context, columns []sql.IndexColumn) error
- func (t *Table) DataLength(ctx *sql.Context) (uint64, error)
- func (t *Table) Database() string
- func (t *Table) DebugString() string
- func (t *Table) Deleter(ctx *sql.Context) sql.RowDeleter
- func (t *Table) DropCheck(ctx *sql.Context, chName string) error
- func (t *Table) DropColumn(ctx *sql.Context, columnName string) error
- func (t *Table) DropForeignKey(ctx *sql.Context, fkName string) error
- func (t *Table) DropIndex(ctx *sql.Context, name string) error
- func (t *Table) DropPrimaryKey(ctx *sql.Context) error
- func (t *Table) EnablePrimaryKeyIndexes()
- func (t *Table) Filters() []sql.Expression
- func (t *Table) GetChecks(ctx *sql.Context) ([]sql.CheckDefinition, error)
- func (t *Table) GetDeclaredForeignKeys(ctx *sql.Context) ([]sql.ForeignKeyConstraint, error)
- func (t *Table) GetForeignKeyEditor(ctx *sql.Context) sql.ForeignKeyEditor
- func (t *Table) GetIndexes(ctx *sql.Context) ([]sql.Index, error)
- func (t *Table) GetNextAutoIncrementValue(ctx *sql.Context, insertVal interface{}) (uint64, error)
- func (t *Table) GetPartition(key string) []sql.Row
- func (t *Table) GetReferencedForeignKeys(ctx *sql.Context) ([]sql.ForeignKeyConstraint, error)
- func (t *Table) HandledFilters(filters []sql.Expression) []sql.Expression
- func (t *Table) IgnoreSessionData() bool
- func (t *Table) IndexedAccess(lookup sql.IndexLookup) sql.IndexedTable
- func (t *Table) Insert(ctx *sql.Context, row sql.Row) error
- func (t *Table) Inserter(ctx *sql.Context) sql.RowInserter
- func (t *Table) ModifyColumn(ctx *sql.Context, columnName string, column *sql.Column, ...) error
- func (t *Table) ModifyDefaultCollation(ctx *sql.Context, collation sql.CollationID) error
- func (t *Table) ModifyStoredCollation(ctx *sql.Context, collation sql.CollationID) error
- func (t *Table) Name() string
- func (t *Table) PartitionCount(ctx *sql.Context) (int64, error)
- func (t *Table) PartitionRows(ctx *sql.Context, partition sql.Partition) (sql.RowIter, error)
- func (t *Table) Partitions(ctx *sql.Context) (sql.PartitionIter, error)
- func (t *Table) PeekNextAutoIncrementValue(ctx *sql.Context) (uint64, error)
- func (t *Table) PreciseMatch() bool
- func (t *Table) PrimaryKeySchema() sql.PrimaryKeySchema
- func (t *Table) Projections() []string
- func (t *Table) RenameIndex(ctx *sql.Context, fromIndexName string, toIndexName string) error
- func (t *Table) Replacer(ctx *sql.Context) sql.RowReplacer
- func (t *Table) RewriteInserter(ctx *sql.Context, oldSchema, newSchema sql.PrimaryKeySchema, _, _ *sql.Column, ...) (sql.RowInserter, error)
- func (t *Table) RowCount(ctx *sql.Context) (uint64, bool, error)
- func (t *Table) Schema() sql.Schema
- func (t *Table) SetForeignKeyResolved(ctx *sql.Context, fkName string) error
- func (t *Table) ShouldBuildIndex(ctx *sql.Context, indexDef sql.IndexDef) (bool, error)
- func (t *Table) ShouldRewriteTable(ctx *sql.Context, oldSchema, newSchema sql.PrimaryKeySchema, ...) bool
- func (t *Table) String() string
- func (t *Table) Truncate(ctx *sql.Context) (int, error)
- func (t *Table) UnderlyingTable() *Table
- func (t *Table) UpdateForeignKey(ctx *sql.Context, fkName string, fk sql.ForeignKeyConstraint) error
- func (t *Table) Updater(ctx *sql.Context) sql.RowUpdater
- func (t *Table) WithProjections(cols []string) sql.Table
- type TableData
- type TableFunc
- func (s TableFunc) CheckPrivileges(_ *sql.Context, _ sql.PrivilegedOperationChecker) bool
- func (s TableFunc) Children() []sql.Node
- func (TableFunc) Collation() sql.CollationID
- func (TableFunc) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)
- func (s TableFunc) Database() sql.Database
- func (s TableFunc) DebugString() string
- func (s TableFunc) Description() string
- func (s TableFunc) Expressions() []sql.Expression
- func (s TableFunc) IsReadOnly() bool
- func (s TableFunc) Name() string
- func (s TableFunc) NewInstance(_ *sql.Context, db sql.Database, args []sql.Expression) (sql.Node, error)
- func (s TableFunc) Resolved() bool
- func (s TableFunc) RowIter(_ *sql.Context, _ sql.Row) (sql.RowIter, error)
- func (s TableFunc) Schema() sql.Schema
- func (s TableFunc) String() string
- func (s TableFunc) WithChildren(_ ...sql.Node) (sql.Node, error)
- func (s TableFunc) WithDatabase(_ sql.Database) (sql.Node, error)
- func (s TableFunc) WithExpressions(e ...sql.Expression) (sql.Node, error)
- type TableFunctionRowIter
- type TableRevision
- type TestIndexDriver
- func (d *TestIndexDriver) Create(db, table, id string, expressions []sql.Expression, config map[string]string) (sql.DriverIndex, error)
- func (d *TestIndexDriver) Delete(sql.DriverIndex, sql.PartitionIter) error
- func (d *TestIndexDriver) ID() string
- func (d *TestIndexDriver) LoadAll(ctx *sql.Context, db, table string) ([]sql.DriverIndex, error)
- func (d *TestIndexDriver) Save(*sql.Context, sql.DriverIndex, sql.PartitionIndexKeyValueIter) error
- type Transaction
Constants ¶
const CommentPreventingIndexBuilding = "__FOR TESTING: I cannot be built__"
const DualTableName = ""
const IndexDriverId = "MemoryIndexDriver"
Variables ¶
var DualTableSchema = sql.NewPrimaryKeySchema(sql.Schema{ {Name: "", Source: DualTableName, Type: types.LongText, Nullable: false}, })
var ( ExternalStoredProcedures = []sql.ExternalStoredProcedureDetails{ { Name: "memory_inout_add", Schema: nil, Function: inout_add, }, { Name: "memory_inout_set_unitialized", Schema: nil, Function: inout_set_unitialized, }, { Name: "memory_overloaded_mult", Schema: externalSPSchemaInt, Function: overloaded_mult1, }, { Name: "memory_overloaded_mult", Schema: externalSPSchemaInt, Function: overloaded_mult2, }, { Name: "memory_overloaded_mult", Schema: externalSPSchemaInt, Function: overloaded_mult3, }, { Name: "memory_overloaded_type_test", Schema: externalSPSchemaInt, Function: overloaded_type_test1, }, { Name: "memory_overloaded_type_test", Schema: externalSPSchemaText, Function: overloaded_type_test2, }, { Name: "memory_type_test3", Schema: externalSPSchemaUint, Function: type_test3, }, { Name: "memory_inout_bool_byte", Schema: nil, Function: inout_bool_byte, }, { Name: "memory_error_table_not_found", Schema: nil, Function: error_table_not_found, }, { Name: "memory_variadic_add", Schema: externalSPSchemaInt, Function: variadic_add, }, { Name: "memory_variadic_byte_slice", Schema: externalSPSchemaText, Function: variadic_byte_slice, }, { Name: "memory_variadic_overload", Schema: externalSPSchemaText, Function: variadic_overload1, }, { Name: "memory_variadic_overload", Schema: externalSPSchemaText, Function: variadic_overload2, }, { Name: "memory_inout_add_readonly", Schema: externalSPSchemaInt, Function: variadic_add, ReadOnly: true, }, { Name: "memory_inout_add_readwrite", Schema: externalSPSchemaInt, Function: variadic_add, ReadOnly: false, }, { Name: "memory_admin_only", Schema: externalSPSchemaInt, Function: variadic_add, ReadOnly: false, AdminOnly: true, }, } )
Functions ¶
func EncodeIndexValue ¶
func EncodeIndexValue(value *IndexValue) ([]byte, error)
func NewDBProviderWithOpts ¶
func NewDBProviderWithOpts(opts ...ProviderOption) sql.MutableDatabaseProvider
NewDBProviderWithOpts creates a new DbProvider with the given options and no databases
func NewSessionBuilder ¶
func NewSessionBuilder(pro *DbProvider) func(ctx context.Context, conn *mysql.Conn, addr string) (sql.Session, error)
NewSessionBuilder returns a session for the given in-memory database provider suitable to use in a test server This can't be defined as server.SessionBuilder because importing it would create a circular dependency, but it's the same signature.
Types ¶
type BaseDatabase ¶
type BaseDatabase struct {
// contains filtered or unexported fields
}
BaseDatabase is an in-memory database that can't store views, only for testing the engine
func NewViewlessDatabase ¶
func NewViewlessDatabase(name string) *BaseDatabase
NewViewlessDatabase creates a new database that doesn't persist views. Used only for testing. Use NewDatabase.
func (*BaseDatabase) AddTable ¶
func (d *BaseDatabase) AddTable(name string, t MemTable)
AddTable adds a new table to the database.
func (*BaseDatabase) CreateFulltextTableNames ¶
func (d *BaseDatabase) CreateFulltextTableNames(ctx *sql.Context, parentTableName string, parentIndexName string) (fulltext.IndexTableNames, error)
func (*BaseDatabase) CreateIndexedTable ¶
func (d *BaseDatabase) CreateIndexedTable(ctx *sql.Context, name string, sch sql.PrimaryKeySchema, idxDef sql.IndexDef, collation sql.CollationID) error
CreateIndexedTable creates a table with the given name and schema
func (*BaseDatabase) CreateTable ¶
func (d *BaseDatabase) CreateTable(ctx *sql.Context, name string, schema sql.PrimaryKeySchema, collation sql.CollationID, comment string) error
CreateTable creates a table with the given name and schema
func (*BaseDatabase) CreateTrigger ¶
func (d *BaseDatabase) CreateTrigger(_ *sql.Context, definition sql.TriggerDefinition) error
func (*BaseDatabase) Database ¶
func (d *BaseDatabase) Database() *BaseDatabase
func (*BaseDatabase) DeleteTable ¶
func (d *BaseDatabase) DeleteTable(name string)
DeleteTable deletes a table from the database.
func (*BaseDatabase) DropEvent ¶
func (d *BaseDatabase) DropEvent(ctx *sql.Context, name string) error
DropEvent implements sql.EventDatabase
func (*BaseDatabase) DropStoredProcedure ¶
func (d *BaseDatabase) DropStoredProcedure(ctx *sql.Context, name string) error
DropStoredProcedure implements sql.StoredProcedureDatabase
func (*BaseDatabase) DropTable ¶
func (d *BaseDatabase) DropTable(ctx *sql.Context, name string) error
DropTable drops the table with the given name
func (*BaseDatabase) DropTrigger ¶
func (d *BaseDatabase) DropTrigger(_ *sql.Context, name string) error
func (*BaseDatabase) EnablePrimaryKeyIndexes ¶
func (d *BaseDatabase) EnablePrimaryKeyIndexes()
EnablePrimaryKeyIndexes causes every table created in this database to use an index on its primary partitionKeys
func (*BaseDatabase) GetCollation ¶
func (d *BaseDatabase) GetCollation(ctx *sql.Context) sql.CollationID
GetCollation implements sql.CollatedDatabase.
func (*BaseDatabase) GetEvent ¶
func (d *BaseDatabase) GetEvent(ctx *sql.Context, name string) (sql.EventDefinition, bool, error)
GetEvent implements sql.EventDatabase
func (*BaseDatabase) GetEvents ¶
func (d *BaseDatabase) GetEvents(ctx *sql.Context) ([]sql.EventDefinition, interface{}, error)
GetEvents implements sql.EventDatabase
func (*BaseDatabase) GetForeignKeyCollection ¶
func (d *BaseDatabase) GetForeignKeyCollection() *ForeignKeyCollection
func (*BaseDatabase) GetStoredProcedure ¶
func (d *BaseDatabase) GetStoredProcedure(ctx *sql.Context, name string) (sql.StoredProcedureDetails, bool, error)
GetStoredProcedure implements sql.StoredProcedureDatabase
func (*BaseDatabase) GetStoredProcedures ¶
func (d *BaseDatabase) GetStoredProcedures(ctx *sql.Context) ([]sql.StoredProcedureDetails, error)
GetStoredProcedures implements sql.StoredProcedureDatabase
func (*BaseDatabase) GetTableInsensitive ¶
func (*BaseDatabase) GetTableNames ¶
func (d *BaseDatabase) GetTableNames(ctx *sql.Context) ([]string, error)
func (*BaseDatabase) GetTriggers ¶
func (d *BaseDatabase) GetTriggers(_ *sql.Context) ([]sql.TriggerDefinition, error)
func (*BaseDatabase) RenameTable ¶
func (d *BaseDatabase) RenameTable(ctx *sql.Context, oldName, newName string) error
func (*BaseDatabase) SaveEvent ¶
func (d *BaseDatabase) SaveEvent(_ *sql.Context, event sql.EventDefinition) (bool, error)
SaveEvent implements sql.EventDatabase
func (*BaseDatabase) SaveStoredProcedure ¶
func (d *BaseDatabase) SaveStoredProcedure(ctx *sql.Context, spd sql.StoredProcedureDetails) error
SaveStoredProcedure implements sql.StoredProcedureDatabase
func (*BaseDatabase) SetCollation ¶
func (d *BaseDatabase) SetCollation(ctx *sql.Context, collation sql.CollationID) error
SetCollation implements sql.CollatedDatabase.
func (*BaseDatabase) Tables ¶
func (d *BaseDatabase) Tables() map[string]sql.Table
Tables returns all tables in the database.
func (*BaseDatabase) UpdateEvent ¶
func (d *BaseDatabase) UpdateEvent(_ *sql.Context, originalName string, event sql.EventDefinition) (bool, error)
UpdateEvent implements sql.EventDatabase
func (*BaseDatabase) UpdateLastExecuted ¶
func (d *BaseDatabase) UpdateLastExecuted(ctx *sql.Context, eventName string, lastExecuted time.Time) error
UpdateLastExecuted implements sql.EventDatabase
func (*BaseDatabase) ValidateSchema ¶
func (d *BaseDatabase) ValidateSchema(schema sql.Schema) error
ValidateSchema implements sql.SchemaValidator
type Database ¶
type Database struct { *BaseDatabase // contains filtered or unexported fields }
Database is an in-memory database.
func NewDatabase ¶
NewDatabase creates a new database with the given name.
func (*Database) CreateView ¶
func (d *Database) CreateView(ctx *sql.Context, name string, selectStatement, createViewStmt string) error
CreateView implements the interface sql.ViewDatabase.
func (*Database) Database ¶
func (d *Database) Database() *BaseDatabase
func (*Database) GetViewDefinition ¶
func (d *Database) GetViewDefinition(ctx *sql.Context, viewName string) (sql.ViewDefinition, bool, error)
GetViewDefinition implements the interface sql.ViewDatabase.
type DbProvider ¶
type DbProvider struct {
// contains filtered or unexported fields
}
DbProvider is a provider for in-memory databases
func NewDBProvider ¶
func NewDBProvider(dbs ...sql.Database) *DbProvider
NewDBProvider creates a new DbProvider with the default options and the databases specified
func (*DbProvider) AllDatabases ¶
func (pro *DbProvider) AllDatabases(*sql.Context) []sql.Database
AllDatabases returns the Database with the given name if it exists.
func (*DbProvider) CreateDatabase ¶
func (pro *DbProvider) CreateDatabase(_ *sql.Context, name string) (err error)
CreateDatabase implements MutableDatabaseProvider.
func (*DbProvider) DropDatabase ¶
func (pro *DbProvider) DropDatabase(_ *sql.Context, name string) (err error)
DropDatabase implements MutableDatabaseProvider.
func (*DbProvider) ExternalStoredProcedure ¶
func (pro *DbProvider) ExternalStoredProcedure(_ *sql.Context, name string, numOfParams int) (*sql.ExternalStoredProcedureDetails, error)
ExternalStoredProcedure implements sql.ExternalStoredProcedureProvider
func (*DbProvider) ExternalStoredProcedures ¶
func (pro *DbProvider) ExternalStoredProcedures(_ *sql.Context, name string) ([]sql.ExternalStoredProcedureDetails, error)
ExternalStoredProcedures implements sql.ExternalStoredProcedureProvider
func (*DbProvider) HasDatabase ¶
func (pro *DbProvider) HasDatabase(_ *sql.Context, name string) bool
HasDatabase returns the Database with the given name if it exists.
func (*DbProvider) TableFunction ¶
func (pro *DbProvider) TableFunction(_ *sql.Context, name string) (sql.TableFunction, error)
TableFunction implements sql.TableFunctionProvider
func (*DbProvider) WithOption ¶
func (pro *DbProvider) WithOption(opt ProviderOption)
WithOption modifies the provider with the given option
func (*DbProvider) WithTableFunctions ¶
func (pro *DbProvider) WithTableFunctions(fns ...sql.TableFunction) (sql.TableFunctionProvider, error)
type ExponentialDistTable ¶
type ExponentialDistTable struct {
// contains filtered or unexported fields
}
ExponentialDistTable a simple table function that returns samples from a parameterized exponential distribution.
func (ExponentialDistTable) CheckPrivileges ¶
func (s ExponentialDistTable) CheckPrivileges(_ *sql.Context, _ sql.PrivilegedOperationChecker) bool
func (ExponentialDistTable) Children ¶
func (s ExponentialDistTable) Children() []sql.Node
func (ExponentialDistTable) Collation ¶
func (ExponentialDistTable) Collation() sql.CollationID
Collation implements the sql.Table interface.
func (ExponentialDistTable) CollationCoercibility ¶
func (ExponentialDistTable) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)
CollationCoercibility implements the interface sql.CollationCoercible.
func (ExponentialDistTable) Database ¶
func (s ExponentialDistTable) Database() sql.Database
func (ExponentialDistTable) DebugString ¶
func (s ExponentialDistTable) DebugString() string
func (ExponentialDistTable) Description ¶
func (s ExponentialDistTable) Description() string
func (ExponentialDistTable) Expressions ¶
func (s ExponentialDistTable) Expressions() []sql.Expression
func (ExponentialDistTable) IsReadOnly ¶
func (s ExponentialDistTable) IsReadOnly() bool
func (ExponentialDistTable) Name ¶
func (s ExponentialDistTable) Name() string
func (ExponentialDistTable) NewInstance ¶
func (s ExponentialDistTable) NewInstance(_ *sql.Context, db sql.Database, args []sql.Expression) (sql.Node, error)
func (ExponentialDistTable) PartitionRows ¶
PartitionRows is a sql.Table interface function that takes a partition and returns all rows in that partition. This table has a partition for just schema changes, one for just data changes, and one for both.
func (ExponentialDistTable) Partitions ¶
func (s ExponentialDistTable) Partitions(ctx *sql.Context) (sql.PartitionIter, error)
Partitions is a sql.Table interface function that returns a partition of the data. This data has a single partition.
func (ExponentialDistTable) Resolved ¶
func (s ExponentialDistTable) Resolved() bool
func (ExponentialDistTable) Schema ¶
func (s ExponentialDistTable) Schema() sql.Schema
func (ExponentialDistTable) String ¶
func (s ExponentialDistTable) String() string
func (ExponentialDistTable) UnderlyingTable ¶
func (s ExponentialDistTable) UnderlyingTable() sql.Table
func (ExponentialDistTable) WithChildren ¶
func (ExponentialDistTable) WithDatabase ¶
func (ExponentialDistTable) WithExpressions ¶
func (s ExponentialDistTable) WithExpressions(e ...sql.Expression) (sql.Node, error)
type ExpressionsIndex ¶
type ExpressionsIndex interface { sql.Index MemTable() *Table ColumnExpressions() []sql.Expression }
ExpressionsIndex is an index made out of one or more expressions (usually field expressions), linked to a Table.
type FilteredTable ¶
type FilteredTable struct {
*Table
}
FilteredTable functionality in the Table type was disabled for a long period of time, and has developed major issues with the current analyzer logic. It's only used in the pushdown unit tests, and sql.FilteredTable should be considered unstable until this situation is fixed.
func NewFilteredTable ¶
func NewFilteredTable(db MemoryDatabase, name string, schema sql.PrimaryKeySchema, fkColl *ForeignKeyCollection) *FilteredTable
func (*FilteredTable) Projections ¶
func (t *FilteredTable) Projections() []string
Projections implements sql.ProjectedTable
func (*FilteredTable) WithFilters ¶
func (t *FilteredTable) WithFilters(ctx *sql.Context, filters []sql.Expression) sql.Table
WithFilters implements the sql.FilteredTable interface.
func (*FilteredTable) WithProjections ¶
func (t *FilteredTable) WithProjections(schema []string) sql.Table
WithProjections implements sql.ProjectedTable
type ForeignKeyCollection ¶
type ForeignKeyCollection struct {
// contains filtered or unexported fields
}
ForeignKeyCollection is a shareable container for a collection of foreign keys.
func (*ForeignKeyCollection) AddFK ¶
func (fkc *ForeignKeyCollection) AddFK(fk sql.ForeignKeyConstraint)
AddFK adds the given foreign key to the internal slice.
func (*ForeignKeyCollection) DropFK ¶
func (fkc *ForeignKeyCollection) DropFK(fkName string) bool
DropFK removes the given foreign key from the internal slice. Returns true if the foreign key was found.
func (*ForeignKeyCollection) Keys ¶
func (fkc *ForeignKeyCollection) Keys() []sql.ForeignKeyConstraint
Keys returns all of the foreign keys.
func (*ForeignKeyCollection) SetResolved ¶
func (fkc *ForeignKeyCollection) SetResolved(fkName string) bool
SetResolved sets the given foreign key as being resolved.
type GlobalsMap ¶
type GlobalsMap = map[string]interface{}
type HistoryDatabase ¶
type HistoryDatabase struct { *Database Revisions map[string]map[interface{}]sql.Table // contains filtered or unexported fields }
HistoryDatabase is a test-only VersionedDatabase implementation. It only supports exact lookups, not AS OF queries between two revisions. It's constructed just like its non-versioned sibling, but it can receive updates to particular tables via the AddTableAsOf method. Consecutive calls to AddTableAsOf with the same table must install new versions of the named table each time, with ascending version identifiers, for this to work.
func NewHistoryDatabase ¶
func NewHistoryDatabase(name string) *HistoryDatabase
func (*HistoryDatabase) AddTableAsOf ¶
func (db *HistoryDatabase) AddTableAsOf(name string, t sql.Table, asOf interface{})
Adds a table with an asOf revision key. The table given becomes the current version for the name given.
func (*HistoryDatabase) GetTableInsensitiveAsOf ¶
func (*HistoryDatabase) GetTableNamesAsOf ¶
func (db *HistoryDatabase) GetTableNamesAsOf(ctx *sql.Context, time interface{}) ([]string, error)
type Index ¶
type Index struct { DB string // required for engine tests with driver DriverName string // required for engine tests with driver Tbl *Table // required for engine tests with driver TableName string Exprs []sql.Expression Name string Unique bool Spatial bool Fulltext bool CommentStr string PrefixLens []uint16 // contains filtered or unexported fields }
func (*Index) ColumnExpressionTypes ¶
func (idx *Index) ColumnExpressionTypes() []sql.ColumnExpressionType
ColumnExpressionTypes implements the interface sql.Index.
func (*Index) ColumnExpressions ¶
func (idx *Index) ColumnExpressions() []sql.Expression
func (*Index) Expressions ¶
func (*Index) ExtendedColumnExpressionTypes ¶
func (idx *Index) ExtendedColumnExpressionTypes() []sql.ColumnExpressionType
func (*Index) ExtendedExpressions ¶
func (*Index) ExtendedExprs ¶
func (idx *Index) ExtendedExprs() []sql.Expression
ExtendedExprs returns the same information as ExtendedExpressions, but in sql.Expression form.
func (*Index) FullTextKeyColumns ¶
func (*Index) FullTextTableNames ¶
func (*Index) HandledFilters ¶
func (idx *Index) HandledFilters(filters []sql.Expression) []sql.Expression
func (*Index) IsFullText ¶
func (*Index) IsGenerated ¶
func (*Index) Order ¶
func (idx *Index) Order() sql.IndexOrder
func (*Index) PrefixLengths ¶
func (*Index) Reversible ¶
type IndexValue ¶
func DecodeIndexValue ¶
func DecodeIndexValue(data []byte) (*IndexValue, error)
type IndexedTable ¶
type IndexedTable struct { *Table Lookup sql.IndexLookup }
IndexedTable is a table that expects to return one or more partitions for range lookups.
func (*IndexedTable) LookupPartitions ¶
func (t *IndexedTable) LookupPartitions(ctx *sql.Context, lookup sql.IndexLookup) (sql.PartitionIter, error)
func (*IndexedTable) PartitionRows ¶
func (t *IndexedTable) PartitionRows(ctx *sql.Context, partition sql.Partition) (sql.RowIter, error)
PartitionRows implements the sql.PartitionRows interface.
type IntSequenceTable ¶
type IntSequenceTable struct { Len int64 // contains filtered or unexported fields }
IntSequenceTable a simple table function that returns a sequence of integers.
func (IntSequenceTable) CheckPrivileges ¶
func (s IntSequenceTable) CheckPrivileges(_ *sql.Context, _ sql.PrivilegedOperationChecker) bool
func (IntSequenceTable) Children ¶
func (s IntSequenceTable) Children() []sql.Node
func (IntSequenceTable) Collation ¶
func (IntSequenceTable) Collation() sql.CollationID
Collation implements the sql.Table interface.
func (IntSequenceTable) CollationCoercibility ¶
func (IntSequenceTable) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)
CollationCoercibility implements the interface sql.CollationCoercible.
func (IntSequenceTable) Database ¶
func (s IntSequenceTable) Database() sql.Database
func (IntSequenceTable) DebugString ¶
func (s IntSequenceTable) DebugString() string
func (IntSequenceTable) Description ¶
func (s IntSequenceTable) Description() string
func (IntSequenceTable) Expressions ¶
func (s IntSequenceTable) Expressions() []sql.Expression
func (IntSequenceTable) GetIndexes ¶
func (IntSequenceTable) IndexedAccess ¶
func (s IntSequenceTable) IndexedAccess(lookup sql.IndexLookup) sql.IndexedTable
func (IntSequenceTable) IsReadOnly ¶
func (s IntSequenceTable) IsReadOnly() bool
func (IntSequenceTable) LookupPartitions ¶
func (s IntSequenceTable) LookupPartitions(context *sql.Context, lookup sql.IndexLookup) (sql.PartitionIter, error)
LookupPartitions is a sql.IndexedTable interface function that takes an index lookup and returns the set of corresponding partitions.
func (IntSequenceTable) Name ¶
func (s IntSequenceTable) Name() string
func (IntSequenceTable) NewInstance ¶
func (s IntSequenceTable) NewInstance(_ *sql.Context, db sql.Database, args []sql.Expression) (sql.Node, error)
func (IntSequenceTable) PartitionRows ¶
func (s IntSequenceTable) PartitionRows(ctx *sql.Context, partition sql.Partition) (sql.RowIter, error)
PartitionRows is a sql.Table interface function that takes a partition and returns all rows in that partition. This table has a partition for just schema changes, one for just data changes, and one for both.
func (IntSequenceTable) Partitions ¶
func (s IntSequenceTable) Partitions(ctx *sql.Context) (sql.PartitionIter, error)
Partitions is a sql.Table interface function that returns a partition of the data. This data has a single partition.
func (IntSequenceTable) PreciseMatch ¶
func (s IntSequenceTable) PreciseMatch() bool
func (IntSequenceTable) Resolved ¶
func (s IntSequenceTable) Resolved() bool
func (IntSequenceTable) Schema ¶
func (s IntSequenceTable) Schema() sql.Schema
func (IntSequenceTable) String ¶
func (s IntSequenceTable) String() string
func (IntSequenceTable) UnderlyingTable ¶
func (s IntSequenceTable) UnderlyingTable() sql.Table
func (IntSequenceTable) WithChildren ¶
func (IntSequenceTable) WithDatabase ¶
func (IntSequenceTable) WithExpressions ¶
func (s IntSequenceTable) WithExpressions(e ...sql.Expression) (sql.Node, error)
type MemoryDatabase ¶
type NormalDistTable ¶
type NormalDistTable struct {
// contains filtered or unexported fields
}
NormalDistTable a simple table function that returns samples from a parameterized normal distribution.
func (NormalDistTable) CheckPrivileges ¶
func (s NormalDistTable) CheckPrivileges(_ *sql.Context, _ sql.PrivilegedOperationChecker) bool
func (NormalDistTable) Children ¶
func (s NormalDistTable) Children() []sql.Node
func (NormalDistTable) Collation ¶
func (NormalDistTable) Collation() sql.CollationID
Collation implements the sql.Table interface.
func (NormalDistTable) CollationCoercibility ¶
func (NormalDistTable) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)
CollationCoercibility implements the interface sql.CollationCoercible.
func (NormalDistTable) Database ¶
func (s NormalDistTable) Database() sql.Database
func (NormalDistTable) DebugString ¶
func (s NormalDistTable) DebugString() string
func (NormalDistTable) Description ¶
func (s NormalDistTable) Description() string
func (NormalDistTable) Expressions ¶
func (s NormalDistTable) Expressions() []sql.Expression
func (NormalDistTable) IsReadOnly ¶
func (s NormalDistTable) IsReadOnly() bool
func (NormalDistTable) Name ¶
func (s NormalDistTable) Name() string
func (NormalDistTable) NewInstance ¶
func (s NormalDistTable) NewInstance(_ *sql.Context, db sql.Database, args []sql.Expression) (sql.Node, error)
func (NormalDistTable) PartitionRows ¶
PartitionRows is a sql.Table interface function that takes a partition and returns all rows in that partition. This table has a partition for just schema changes, one for just data changes, and one for both.
func (NormalDistTable) Partitions ¶
func (s NormalDistTable) Partitions(ctx *sql.Context) (sql.PartitionIter, error)
Partitions is a sql.Table interface function that returns a partition of the data. This data has a single partition.
func (NormalDistTable) Resolved ¶
func (s NormalDistTable) Resolved() bool
func (NormalDistTable) Schema ¶
func (s NormalDistTable) Schema() sql.Schema
func (NormalDistTable) String ¶
func (s NormalDistTable) String() string
func (NormalDistTable) UnderlyingTable ¶
func (s NormalDistTable) UnderlyingTable() sql.Table
func (NormalDistTable) WithChildren ¶
func (NormalDistTable) WithDatabase ¶
func (NormalDistTable) WithExpressions ¶
func (s NormalDistTable) WithExpressions(e ...sql.Expression) (sql.Node, error)
type Partition ¶
type Partition struct {
// contains filtered or unexported fields
}
func NewPartition ¶
type PointLookupTable ¶
type PointLookupTable struct {
IntSequenceTable
}
PointLookupTable is a table whose indexes only support point lookups but not range scans. It's used for testing optimizations on indexes.
func (PointLookupTable) DebugString ¶
func (s PointLookupTable) DebugString() string
func (PointLookupTable) Description ¶
func (s PointLookupTable) Description() string
func (PointLookupTable) GetIndexes ¶
func (PointLookupTable) Name ¶
func (s PointLookupTable) Name() string
func (PointLookupTable) NewInstance ¶
func (s PointLookupTable) NewInstance(ctx *sql.Context, db sql.Database, args []sql.Expression) (sql.Node, error)
func (PointLookupTable) PreciseMatch ¶
func (s PointLookupTable) PreciseMatch() bool
func (PointLookupTable) String ¶
func (s PointLookupTable) String() string
func (PointLookupTable) UnderlyingTable ¶
func (s PointLookupTable) UnderlyingTable() sql.Table
type ProviderOption ¶
type ProviderOption func(*DbProvider)
func HistoryProvider ¶
func HistoryProvider(enableHistory bool) ProviderOption
HistoryProvider returns a ProviderOption to construct a memoryDBProvider that uses history databases
func NativeIndexProvider ¶
func NativeIndexProvider(useNativeIndexes bool) ProviderOption
func ReadOnlyProvider ¶
func ReadOnlyProvider(enableReadOnly bool) ProviderOption
ReadOnlyProvider returns a ProviderOption to construct a memoryDBProvider that is read-only
func WithDbsOption ¶
func WithDbsOption(dbs []sql.Database) ProviderOption
WithDbsOption returns a ProviderOption to construct a DbProvider with the given databases
type ReadOnlyDatabase ¶
type ReadOnlyDatabase struct {
*HistoryDatabase
}
func NewReadOnlyDatabase ¶
func NewReadOnlyDatabase(name string) ReadOnlyDatabase
func (ReadOnlyDatabase) IsReadOnly ¶
func (d ReadOnlyDatabase) IsReadOnly() bool
type RequiredLookupTable ¶
type RequiredLookupTable struct { IntSequenceTable // contains filtered or unexported fields }
RequiredLookupTable is a table that will error if not executed as an index lookup
func (RequiredLookupTable) Database ¶
func (s RequiredLookupTable) Database() sql.Database
func (RequiredLookupTable) DebugString ¶
func (s RequiredLookupTable) DebugString() string
func (RequiredLookupTable) Description ¶
func (s RequiredLookupTable) Description() string
func (RequiredLookupTable) Expressions ¶
func (s RequiredLookupTable) Expressions() []sql.Expression
func (RequiredLookupTable) GetIndexes ¶
func (RequiredLookupTable) IndexedAccess ¶
func (s RequiredLookupTable) IndexedAccess(lookup sql.IndexLookup) sql.IndexedTable
func (RequiredLookupTable) Name ¶
func (s RequiredLookupTable) Name() string
func (RequiredLookupTable) NewInstance ¶
func (s RequiredLookupTable) NewInstance(ctx *sql.Context, db sql.Database, args []sql.Expression) (sql.Node, error)
func (RequiredLookupTable) PartitionRows ¶
func (RequiredLookupTable) Partitions ¶
func (s RequiredLookupTable) Partitions(ctx *sql.Context) (sql.PartitionIter, error)
Partitions is a sql.Table interface function that returns a partition of the data. This data has a single partition.
func (RequiredLookupTable) PreciseMatch ¶
func (s RequiredLookupTable) PreciseMatch() bool
func (RequiredLookupTable) RequiredPredicates ¶
func (s RequiredLookupTable) RequiredPredicates() []string
func (RequiredLookupTable) String ¶
func (s RequiredLookupTable) String() string
func (RequiredLookupTable) UnderlyingTable ¶
func (s RequiredLookupTable) UnderlyingTable() sql.Table
func (RequiredLookupTable) WithChildren ¶
func (RequiredLookupTable) WithDatabase ¶
func (RequiredLookupTable) WithExpressions ¶
func (s RequiredLookupTable) WithExpressions(e ...sql.Expression) (sql.Node, error)
type SequenceTableFnRowIter ¶
type SequenceTableFnRowIter struct {
// contains filtered or unexported fields
}
type Session ¶
type Session struct { *sql.BaseSession // contains filtered or unexported fields }
func NewSession ¶
func NewSession(baseSession *sql.BaseSession, provider sql.DatabaseProvider) *Session
NewSession returns the new session for this object
func SessionFromContext ¶
func (*Session) CommitTransaction ¶
func (*Session) CreateSavepoint ¶
func (*Session) GetPersistedValue ¶
GetPersistedValue implements sql.PersistableSession
func (*Session) PersistGlobal ¶
PersistGlobal implements sql.PersistableSession
func (*Session) ReleaseSavepoint ¶
func (*Session) RemoveAllPersistedGlobals ¶
RemoveAllPersistedGlobals implements sql.PersistableSession
func (*Session) RemovePersistedGlobal ¶
RemovePersistedGlobal implements sql.PersistableSession
func (*Session) RollbackToSavepoint ¶
func (*Session) SetGlobals ¶
func (*Session) SetValidationCallback ¶
func (*Session) StartTransaction ¶
func (s *Session) StartTransaction(ctx *sql.Context, tCharacteristic sql.TransactionCharacteristic) (sql.Transaction, error)
StartTransaction clears session state and returns a new transaction object. Because we don't support concurrency, we store table data changes in the session, rather than the transaction itself.
type StatsProv ¶
type StatsProv struct {
// contains filtered or unexported fields
}
func NewStatsProv ¶
func NewStatsProv() *StatsProv
func (*StatsProv) DataLength ¶
func (*StatsProv) DropDbStats ¶
func (*StatsProv) GetTableStats ¶
func (*StatsProv) RefreshTableStats ¶
type Table ¶
type Table struct {
// contains filtered or unexported fields
}
Table represents an in-memory database table.
func NewDualTable ¶
func NewDualTable() *Table
NewDualTable creates the dual table, which is used by the engine for queries with no tables specified, or the `dual` table specified. This table is never supplied by integrators, but always by this stand-in implementation.
func NewLocalTable ¶
func NewLocalTable(db MemoryDatabase, name string, schema sql.PrimaryKeySchema, fkColl *ForeignKeyCollection) *Table
NewLocalTable returns a table suitable to use for transient non-memory applications
func NewPartitionedTable ¶
func NewPartitionedTable(db *BaseDatabase, name string, schema sql.PrimaryKeySchema, fkColl *ForeignKeyCollection, numPartitions int) *Table
NewPartitionedTable creates a new Table with the given name, schema and number of partitions. Assigns the default collation, therefore if a different collation is desired, please use NewPartitionedTableWithCollation.
func NewPartitionedTableWithCollation ¶
func NewPartitionedTableWithCollation(db *BaseDatabase, name string, schema sql.PrimaryKeySchema, fkColl *ForeignKeyCollection, numPartitions int, collation sql.CollationID, comment string) *Table
NewPartitionedTableWithCollation creates a new Table with the given name, schema, number of partitions, collation, and comment.
func NewTable ¶
func NewTable(db MemoryDatabase, name string, schema sql.PrimaryKeySchema, fkColl *ForeignKeyCollection) *Table
NewTable creates a new Table with the given name and schema. Assigns the default collation, therefore if a different collation is desired, please use NewTableWithCollation.
func NewTableWithCollation ¶
func NewTableWithCollation(db *BaseDatabase, name string, schema sql.PrimaryKeySchema, fkColl *ForeignKeyCollection, collation sql.CollationID) *Table
NewTableWithCollation creates a new Table with the given name, schema, and collation.
func (*Table) AddForeignKey ¶
AddForeignKey implements sql.ForeignKeyTable. Foreign partitionKeys are not enforced on update / delete.
func (*Table) AutoIncrementSetter ¶
func (t *Table) AutoIncrementSetter(ctx *sql.Context) sql.AutoIncrementSetter
func (*Table) BuildIndex ¶
func (*Table) Collation ¶
func (t *Table) Collation() sql.CollationID
Collation implements the sql.Table interface.
func (*Table) CreateCheck ¶
CreateCheck implements sql.CheckAlterableTable
func (*Table) CreateFulltextIndex ¶
func (t *Table) CreateFulltextIndex(ctx *sql.Context, indexDef sql.IndexDef, keyCols fulltext.KeyColumns, tableNames fulltext.IndexTableNames) error
CreateFulltextIndex implements fulltext.IndexAlterableTable
func (*Table) CreateIndex ¶
CreateIndex implements sql.IndexAlterableTable
func (*Table) CreateIndexForForeignKey ¶
CreateIndexForForeignKey implements sql.ForeignKeyTable.
func (*Table) CreatePrimaryKey ¶
CreatePrimaryKey implements the PrimaryKeyAlterableTable
func (*Table) DebugString ¶
func (*Table) DropForeignKey ¶
DropForeignKey implements sql.ForeignKeyTable.
func (*Table) DropPrimaryKey ¶
DropPrimaryKey implements the PrimaryKeyAlterableTable TODO: get rid of this / make it error?
func (*Table) EnablePrimaryKeyIndexes ¶
func (t *Table) EnablePrimaryKeyIndexes()
EnablePrimaryKeyIndexes enables the use of primary key indexes on this table.
func (*Table) Filters ¶
func (t *Table) Filters() []sql.Expression
Filters implements the sql.FilteredTable interface.
func (*Table) GetDeclaredForeignKeys ¶
GetDeclaredForeignKeys implements the interface sql.ForeignKeyTable.
func (*Table) GetForeignKeyEditor ¶
func (t *Table) GetForeignKeyEditor(ctx *sql.Context) sql.ForeignKeyEditor
GetForeignKeyEditor implements sql.ForeignKeyTable.
func (*Table) GetIndexes ¶
GetIndexes implements sql.IndexedTable
func (*Table) GetNextAutoIncrementValue ¶
GetNextAutoIncrementValue gets the next auto increment value for the memory table the increment.
func (*Table) GetReferencedForeignKeys ¶
GetReferencedForeignKeys implements the interface sql.ForeignKeyTable.
func (*Table) HandledFilters ¶
func (t *Table) HandledFilters(filters []sql.Expression) []sql.Expression
HandledFilters implements the sql.FilteredTable interface.
func (*Table) IgnoreSessionData ¶
func (*Table) IndexedAccess ¶
func (t *Table) IndexedAccess(lookup sql.IndexLookup) sql.IndexedTable
func (*Table) Insert ¶
Insert is a convenience method to avoid having to create an inserter in test setup
func (*Table) ModifyColumn ¶
func (*Table) ModifyDefaultCollation ¶
ModifyDefaultCollation implements sql.CollationAlterableTable
func (*Table) ModifyStoredCollation ¶
ModifyStoredCollation implements sql.CollationAlterableTable
func (*Table) PartitionCount ¶
PartitionCount implements the sql.PartitionCounter interface.
func (*Table) PartitionRows ¶
PartitionRows implements the sql.PartitionRows interface.
func (*Table) Partitions ¶
Partitions implements the sql.Table interface.
func (*Table) PeekNextAutoIncrementValue ¶
PeekNextAutoIncrementValue peeks at the next AUTO_INCREMENT value
func (*Table) PreciseMatch ¶
func (*Table) PrimaryKeySchema ¶
func (t *Table) PrimaryKeySchema() sql.PrimaryKeySchema
PrimaryKeySchema implements sql.PrimaryKeyAlterableTable
func (*Table) Projections ¶
Projections implements sql.ProjectedTable
func (*Table) RenameIndex ¶
RenameIndex implements sql.IndexAlterableTable
func (*Table) RewriteInserter ¶
func (t *Table) RewriteInserter(ctx *sql.Context, oldSchema, newSchema sql.PrimaryKeySchema, _, _ *sql.Column, idxCols []sql.IndexColumn) (sql.RowInserter, error)
func (*Table) SetForeignKeyResolved ¶
SetForeignKeyResolved implements sql.ForeignKeyTable.
func (*Table) ShouldBuildIndex ¶
func (*Table) ShouldRewriteTable ¶
func (*Table) UnderlyingTable ¶
func (*Table) UpdateForeignKey ¶
func (t *Table) UpdateForeignKey(ctx *sql.Context, fkName string, fk sql.ForeignKeyConstraint) error
UpdateForeignKey implements sql.ForeignKeyTable.
type TableData ¶
type TableData struct {
// contains filtered or unexported fields
}
TableData encapsulates all schema and data for a table's schema and rows. Other aspects of a table can change freely as needed for different views on a table (column projections, index lookups, filters, etc.) but the storage of underlying data lives here.
func (TableData) Table ¶
func (td TableData) Table(database *BaseDatabase) *Table
Table returns a table with this data
type TableFunc ¶
type TableFunc struct {
// contains filtered or unexported fields
}
TableFunc a simple table function that returns the instantiated value.
func (TableFunc) CheckPrivileges ¶
func (TableFunc) Collation ¶
func (TableFunc) Collation() sql.CollationID
Collation implements the sql.Table interface.
func (TableFunc) CollationCoercibility ¶
func (TableFunc) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)
CollationCoercibility implements the interface sql.CollationCoercible.
func (TableFunc) DebugString ¶
func (TableFunc) Description ¶
func (TableFunc) Expressions ¶
func (s TableFunc) Expressions() []sql.Expression
func (TableFunc) IsReadOnly ¶
func (TableFunc) NewInstance ¶
func (TableFunc) WithExpressions ¶
type TableFunctionRowIter ¶
type TableFunctionRowIter struct {
// contains filtered or unexported fields
}
type TableRevision ¶
type TableRevision struct {
*Table
}
TableRevision is a container for memory tables to run basic smoke tests for versioned queries. It overrides only enough of the Table interface required to pass those tests. Memory tables have a flag to force them to ignore session data and use embedded data, which is required for the versioned table tests to pass.
func NewPartitionedTableRevision ¶
func NewPartitionedTableRevision(db *BaseDatabase, name string, schema sql.PrimaryKeySchema, fkColl *ForeignKeyCollection, numPartitions int) *TableRevision
NewPartitionedTable creates a new Table with the given name, schema and number of partitions. Assigns the default collation, therefore if a different collation is desired, please use NewPartitionedTableWithCollation.
func (*TableRevision) AddColumn ¶
func (t *TableRevision) AddColumn(ctx *sql.Context, column *sql.Column, order *sql.ColumnOrder) error
func (*TableRevision) IgnoreSessionData ¶
func (t *TableRevision) IgnoreSessionData() bool
func (*TableRevision) Inserter ¶
func (t *TableRevision) Inserter(ctx *sql.Context) sql.RowInserter
type TestIndexDriver ¶
type TestIndexDriver struct {
// contains filtered or unexported fields
}
TestIndexDriver is a non-performant index driver meant to aid in verification of engine correctness. It can not create or delete indexes, but will use the index types defined in this package to alter how queries are executed, retrieving values from the indexes rather than from the tables directly.
func NewIndexDriver ¶
func NewIndexDriver(db string, indexes map[string][]sql.DriverIndex) *TestIndexDriver
NewIndexDriver returns a new index driver for database and the indexes given, keyed by the table name.
func (*TestIndexDriver) Create ¶
func (d *TestIndexDriver) Create(db, table, id string, expressions []sql.Expression, config map[string]string) (sql.DriverIndex, error)
func (*TestIndexDriver) Delete ¶
func (d *TestIndexDriver) Delete(sql.DriverIndex, sql.PartitionIter) error
func (*TestIndexDriver) ID ¶
func (d *TestIndexDriver) ID() string
func (*TestIndexDriver) LoadAll ¶
func (d *TestIndexDriver) LoadAll(ctx *sql.Context, db, table string) ([]sql.DriverIndex, error)
func (*TestIndexDriver) Save ¶
func (d *TestIndexDriver) Save(*sql.Context, sql.DriverIndex, sql.PartitionIndexKeyValueIter) error
type Transaction ¶
type Transaction struct {
// contains filtered or unexported fields
}
func (*Transaction) IsReadOnly ¶
func (s *Transaction) IsReadOnly() bool
func (*Transaction) String ¶
func (s *Transaction) String() string
Source Files ¶
- database.go
- dual_table.go
- exponential_dist_table.go
- external_stored_procedures.go
- foreign_key_collection.go
- index.go
- index_driver.go
- normal_dist_table.go
- point_lookup_table.go
- provider.go
- required_lookup_table.go
- sequence_table.go
- session.go
- stats.go
- table.go
- table_data.go
- table_editor.go
- table_function.go