Documentation ¶
Index ¶
- Constants
- Variables
- func EncodeIndexValue(value *IndexValue) ([]byte, error)
- func NewDBProvider(dbs ...sql.Database) sql.MutableDatabaseProvider
- func NewDBProviderWithOpts(opts ...ProviderOption) sql.MutableDatabaseProvider
- func NewHistogramMapFromTable(ctx *sql.Context, t sql.Table) (sql.HistogramMap, error)
- func NewTableEditAccumulator(t *Table) tableEditAccumulator
- type BaseDatabase
- func (d *BaseDatabase) AddTable(name string, t sql.Table)
- 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(ctx *sql.Context, definition sql.TriggerDefinition) error
- 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(ctx *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, 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(ctx *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(ctx *sql.Context, ed sql.EventDefinition) 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(ctx *sql.Context, originalName string, ed sql.EventDefinition) 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) DropView(ctx *sql.Context, name string) error
- func (d *Database) GetViewDefinition(ctx *sql.Context, viewName string) (sql.ViewDefinition, 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)
- 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 InMemoryPersistedSession
- func (s *InMemoryPersistedSession) GetPersistedValue(k string) (interface{}, error)
- func (s *InMemoryPersistedSession) PersistGlobal(sysVarName string, value interface{}) error
- func (s *InMemoryPersistedSession) RemoveAllPersistedGlobals() error
- func (s *InMemoryPersistedSession) RemovePersistedGlobal(sysVarName string) error
- func (s *InMemoryPersistedSession) ValidateSession(ctx *sql.Context) 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) 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) 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) Name() string
- func (s IntSequenceTable) NewInstance(_ *sql.Context, _ sql.Database, args []sql.Expression) (sql.Node, error)
- 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) 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 MemoryDatabase
- type Partition
- type ProviderOption
- type ReadOnlyDatabase
- type SequenceTableFnRowIter
- type Table
- func NewPartitionedTable(name string, schema sql.PrimaryKeySchema, fkColl *ForeignKeyCollection, ...) *Table
- func NewPartitionedTableWithCollation(name string, schema sql.PrimaryKeySchema, fkColl *ForeignKeyCollection, ...) *Table
- func NewTable(name string, schema sql.PrimaryKeySchema, fkColl *ForeignKeyCollection) *Table
- func NewTableWithCollation(name string, schema sql.PrimaryKeySchema, fkColl *ForeignKeyCollection, ...) *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) AnalyzeTable(ctx *sql.Context) error
- func (t *Table) AutoIncrementSetter(ctx *sql.Context) sql.AutoIncrementSetter
- func (t *Table) Collation() sql.CollationID
- func (t *Table) CreateCheck(_ *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) 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, indexName string) error
- func (t *Table) DropPrimaryKey(ctx *sql.Context) error
- func (t *Table) EnablePrimaryKeyIndexes()
- func (t *Table) Filters() []sql.Expression
- func (t *Table) GetChecks(_ *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) IndexKeyValues(ctx *sql.Context, colNames []string) (sql.PartitionIndexKeyValueIter, error)
- func (t *Table) IndexedAccess(i 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(*sql.Context) (uint64, error)
- 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) RowCount(ctx *sql.Context) (uint64, error)
- func (t *Table) Schema() sql.Schema
- func (t *Table) SetForeignKeyResolved(ctx *sql.Context, fkName string) error
- func (t *Table) String() string
- func (t *Table) Truncate(ctx *sql.Context) (int, error)
- 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) WithDriverIndexLookup(lookup sql.DriverIndexLookup) sql.Table
- func (t *Table) WithProjections(cols []string) sql.Table
- 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
Constants ¶
const CommentPreventingIndexBuilding = "__FOR TESTING: I cannot be built__"
const IndexDriverId = "MemoryIndexDriver"
Variables ¶
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, }, } )
Functions ¶
func EncodeIndexValue ¶
func EncodeIndexValue(value *IndexValue) ([]byte, error)
func NewDBProvider ¶
func NewDBProvider(dbs ...sql.Database) sql.MutableDatabaseProvider
NewDBProvider creates a new DbProvider with the default options and the databases specified
func NewDBProviderWithOpts ¶
func NewDBProviderWithOpts(opts ...ProviderOption) sql.MutableDatabaseProvider
NewDBProviderWithOpts creates a new DbProvider with the given options and no databases
func NewHistogramMapFromTable ¶
NewHistogramMapFromTable will construct a HistogramMap given a Table TODO: this is copied from the information_schema package, and should be moved to a more general location
func NewTableEditAccumulator ¶
func NewTableEditAccumulator(t *Table) tableEditAccumulator
NewTableEditAccumulator returns a tableEditAccumulator based on the schema.
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 sql.Table)
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) error
CreateTable creates a table with the given name and schema
func (*BaseDatabase) CreateTrigger ¶
func (d *BaseDatabase) CreateTrigger(ctx *sql.Context, definition sql.TriggerDefinition) error
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(ctx *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, 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(ctx *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(ctx *sql.Context, ed sql.EventDefinition) 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(ctx *sql.Context, originalName string, ed sql.EventDefinition) error
UpdateEvent implements sql.EventDatabase
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) 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 (*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
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(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 InMemoryPersistedSession ¶
func NewInMemoryPersistedSession ¶
func NewInMemoryPersistedSession(sess sql.Session, persistedGlobals GlobalsMap) *InMemoryPersistedSession
NewInMemoryPersistedSession is a sql.PersistableSession that writes global variables to an im-memory map
func NewInMemoryPersistedSessionWithValidationCallback ¶
func NewInMemoryPersistedSessionWithValidationCallback(sess sql.Session, validateCb func()) *InMemoryPersistedSession
NewInMemoryPersistedSessionWithValidationCallback is a sql.PersistableSession that defines increment function to count number of calls on ValidateSession().
func (*InMemoryPersistedSession) GetPersistedValue ¶
func (s *InMemoryPersistedSession) GetPersistedValue(k string) (interface{}, error)
GetPersistedValue implements sql.PersistableSession
func (*InMemoryPersistedSession) PersistGlobal ¶
func (s *InMemoryPersistedSession) PersistGlobal(sysVarName string, value interface{}) error
PersistGlobal implements sql.PersistableSession
func (*InMemoryPersistedSession) RemoveAllPersistedGlobals ¶
func (s *InMemoryPersistedSession) RemoveAllPersistedGlobals() error
RemoveAllPersistedGlobals implements sql.PersistableSession
func (*InMemoryPersistedSession) RemovePersistedGlobal ¶
func (s *InMemoryPersistedSession) RemovePersistedGlobal(sysVarName string) error
RemovePersistedGlobal implements sql.PersistableSession
func (*InMemoryPersistedSession) ValidateSession ¶
func (s *InMemoryPersistedSession) ValidateSession(ctx *sql.Context) error
ValidateSession counts the number of times this method is called.
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) 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 int // 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) 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) Name ¶
func (s IntSequenceTable) Name() string
func (IntSequenceTable) NewInstance ¶
func (s IntSequenceTable) NewInstance(_ *sql.Context, _ sql.Database, args []sql.Expression) (sql.Node, error)
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) WithChildren ¶
func (IntSequenceTable) WithDatabase ¶
func (IntSequenceTable) WithExpressions ¶
func (s IntSequenceTable) WithExpressions(e ...sql.Expression) (sql.Node, error)
type MemoryDatabase ¶
type Partition ¶
type Partition struct {
// contains filtered or unexported fields
}
func NewPartition ¶
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 SequenceTableFnRowIter ¶
type SequenceTableFnRowIter struct {
// contains filtered or unexported fields
}
func NewSequenceTableFnRowIter ¶
func NewSequenceTableFnRowIter(n int) *SequenceTableFnRowIter
type Table ¶
type Table struct {
// contains filtered or unexported fields
}
Table represents an in-memory database table.
func NewPartitionedTable ¶
func NewPartitionedTable(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(name string, schema sql.PrimaryKeySchema, fkColl *ForeignKeyCollection, numPartitions int, collation sql.CollationID) *Table
NewPartitionedTableWithCollation creates a new Table with the given name, schema, number of partitions, and collation.
func NewTable ¶
func NewTable(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(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) AnalyzeTable ¶
AnalyzeTable implements the sql.StatisticsTable interface.
func (*Table) AutoIncrementSetter ¶
func (t *Table) AutoIncrementSetter(ctx *sql.Context) sql.AutoIncrementSetter
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
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) IndexKeyValues ¶
func (t *Table) IndexKeyValues( ctx *sql.Context, colNames []string, ) (sql.PartitionIndexKeyValueIter, error)
IndexKeyValues implements the sql.IndexableTable interface.
func (*Table) IndexedAccess ¶
func (t *Table) IndexedAccess(i sql.IndexLookup) sql.IndexedTable
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) 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) SetForeignKeyResolved ¶
SetForeignKeyResolved implements sql.ForeignKeyTable.
func (*Table) UpdateForeignKey ¶
func (t *Table) UpdateForeignKey(ctx *sql.Context, fkName string, fk sql.ForeignKeyConstraint) error
UpdateForeignKey implements sql.ForeignKeyTable.
func (*Table) WithDriverIndexLookup ¶
func (t *Table) WithDriverIndexLookup(lookup sql.DriverIndexLookup) sql.Table
WithDriverIndexLookup implements the sql.IndexAddressableTable interface.
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