Documentation ¶
Index ¶
- Constants
- Variables
- func EncodeIndexValue(value *IndexValue) ([]byte, error)
- func NewMemoryDBProvider(dbs ...sql.Database) sql.MutableDatabaseProvider
- func NewTableEditAccumulator(t *Table) tableEditAccumulator
- type BaseDatabase
- func (d *BaseDatabase) AddTable(name string, t sql.Table)
- 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) 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) GetForeignKeyCollection() *ForeignKeyCollection
- 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) 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
- type Database
- func (d *Database) AllViews(ctx *sql.Context) ([]sql.ViewDefinition, error)
- func (d *Database) CreateView(ctx *sql.Context, name string, selectStatement string) error
- func (d *Database) DropView(ctx *sql.Context, name string) error
- func (d *Database) GetView(ctx *sql.Context, viewName string) (string, bool, 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 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, dbName 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) HandledFilters(filters []sql.Expression) []sql.Expression
- func (idx *Index) ID() string
- func (idx *Index) IndexType() string
- func (idx *Index) IsGenerated() bool
- func (idx *Index) IsUnique() bool
- func (idx *Index) MemTable() *Table
- func (idx *Index) Order() sql.IndexOrder
- func (idx *Index) Table() string
- type IndexValue
- type IndexedTable
- type MemoryDatabase
- type Partition
- type ReadOnlyDatabase
- 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(*sql.Context) sql.AutoIncrementSetter
- func (t *Table) Collation() sql.CollationID
- func (t *Table) CreateCheck(_ *sql.Context, check *sql.CheckDefinition) error
- func (t *Table) CreateIndex(ctx *sql.Context, indexName string, using sql.IndexUsing, ...) error
- func (t *Table) CreateIndexForForeignKey(ctx *sql.Context, indexName string, using sql.IndexUsing, ...) 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(*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) GetForeignKeyUpdater(ctx *sql.Context) sql.ForeignKeyUpdater
- 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(sql.Index) sql.IndexedTable
- func (t *Table) Insert(ctx *sql.Context, row sql.Row) error
- func (t *Table) Inserter(*sql.Context) sql.RowInserter
- func (t *Table) ModifyColumn(ctx *sql.Context, columnName string, column *sql.Column, ...) 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) PartitionRows2(ctx *sql.Context, partition sql.Partition) (sql.RowIter2, 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(*sql.Context) sql.RowReplacer
- func (t *Table) Schema() sql.Schema
- func (t *Table) SetForeignKeyResolved(ctx *sql.Context, fkName string) error
- func (t *Table) Statistics(ctx *sql.Context) (sql.TableStatistics, 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(*sql.Context) sql.RowUpdater
- func (t *Table) WithDriverIndexLookup(lookup sql.DriverIndexLookup) sql.Table
- func (t *Table) WithProjections(cols []string) sql.Table
- type TableStatistics
- 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_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_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 ¶ added in v0.9.0
func EncodeIndexValue(value *IndexValue) ([]byte, error)
func NewMemoryDBProvider ¶ added in v0.11.0
func NewMemoryDBProvider(dbs ...sql.Database) sql.MutableDatabaseProvider
func NewTableEditAccumulator ¶ added in v0.12.0
func NewTableEditAccumulator(t *Table) tableEditAccumulator
NewTableEditAccumulator returns a tableEditAccumulator based on the schema.
Types ¶
type BaseDatabase ¶ added in v0.11.0
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 ¶ added in v0.11.0
func NewViewlessDatabase(name string) *BaseDatabase
NewViewlessDatabase creates a new database that doesn't persist views. Used only for testing. Use NewDatabase.
func (*BaseDatabase) AddTable ¶ added in v0.11.0
func (d *BaseDatabase) AddTable(name string, t sql.Table)
AddTable adds a new table to the database.
func (*BaseDatabase) CreateTable ¶ added in v0.11.0
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 ¶ added in v0.11.0
func (d *BaseDatabase) CreateTrigger(ctx *sql.Context, definition sql.TriggerDefinition) error
func (*BaseDatabase) DropStoredProcedure ¶ added in v0.11.0
func (d *BaseDatabase) DropStoredProcedure(ctx *sql.Context, name string) error
DropStoredProcedure implements sql.StoredProcedureDatabase
func (*BaseDatabase) DropTable ¶ added in v0.11.0
func (d *BaseDatabase) DropTable(ctx *sql.Context, name string) error
DropTable drops the table with the given name
func (*BaseDatabase) DropTrigger ¶ added in v0.11.0
func (d *BaseDatabase) DropTrigger(ctx *sql.Context, name string) error
func (*BaseDatabase) EnablePrimaryKeyIndexes ¶ added in v0.11.0
func (d *BaseDatabase) EnablePrimaryKeyIndexes()
EnablePrimaryKeyIndexes causes every table created in this database to use an index on its primary partitionKeys
func (*BaseDatabase) GetCollation ¶ added in v0.14.0
func (d *BaseDatabase) GetCollation(ctx *sql.Context) sql.CollationID
GetCollation implements sql.CollatedDatabase.
func (*BaseDatabase) GetForeignKeyCollection ¶ added in v0.12.0
func (d *BaseDatabase) GetForeignKeyCollection() *ForeignKeyCollection
func (*BaseDatabase) GetStoredProcedures ¶ added in v0.11.0
func (d *BaseDatabase) GetStoredProcedures(ctx *sql.Context) ([]sql.StoredProcedureDetails, error)
GetStoredProcedures implements sql.StoredProcedureDatabase
func (*BaseDatabase) GetTableInsensitive ¶ added in v0.11.0
func (*BaseDatabase) GetTableNames ¶ added in v0.11.0
func (d *BaseDatabase) GetTableNames(ctx *sql.Context) ([]string, error)
func (*BaseDatabase) GetTriggers ¶ added in v0.11.0
func (d *BaseDatabase) GetTriggers(ctx *sql.Context) ([]sql.TriggerDefinition, error)
func (*BaseDatabase) Name ¶ added in v0.11.0
func (d *BaseDatabase) Name() string
Name returns the database name.
func (*BaseDatabase) RenameTable ¶ added in v0.11.0
func (d *BaseDatabase) RenameTable(ctx *sql.Context, oldName, newName string) error
func (*BaseDatabase) SaveStoredProcedure ¶ added in v0.11.0
func (d *BaseDatabase) SaveStoredProcedure(ctx *sql.Context, spd sql.StoredProcedureDetails) error
SaveStoredProcedure implements sql.StoredProcedureDatabase
func (*BaseDatabase) SetCollation ¶ added in v0.14.0
func (d *BaseDatabase) SetCollation(ctx *sql.Context, collation sql.CollationID) error
SetCollation implements sql.CollatedDatabase.
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 ¶ added in v0.11.0
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 ¶ added in v0.10.0
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 ¶ added in v0.10.0
func NewFilteredTable(name string, schema sql.PrimaryKeySchema, fkColl *ForeignKeyCollection) *FilteredTable
func (*FilteredTable) Projections ¶ added in v0.12.0
func (t *FilteredTable) Projections() []string
Projections implements sql.ProjectedTable
func (*FilteredTable) WithFilters ¶ added in v0.10.0
func (t *FilteredTable) WithFilters(ctx *sql.Context, filters []sql.Expression) sql.Table
WithFilters implements the sql.FilteredTable interface.
func (*FilteredTable) WithProjections ¶ added in v0.12.0
func (t *FilteredTable) WithProjections(schema []string) sql.Table
WithProjections implements sql.ProjectedTable
type ForeignKeyCollection ¶ added in v0.12.0
type ForeignKeyCollection struct {
// contains filtered or unexported fields
}
ForeignKeyCollection is a shareable container for a collection of foreign keys.
func (*ForeignKeyCollection) AddFK ¶ added in v0.12.0
func (fkc *ForeignKeyCollection) AddFK(fk sql.ForeignKeyConstraint)
AddFK adds the given foreign key to the internal slice.
func (*ForeignKeyCollection) DropFK ¶ added in v0.12.0
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 ¶ added in v0.12.0
func (fkc *ForeignKeyCollection) Keys() []sql.ForeignKeyConstraint
Keys returns all of the foreign keys.
func (*ForeignKeyCollection) SetResolved ¶ added in v0.12.0
func (fkc *ForeignKeyCollection) SetResolved(fkName string) bool
SetResolved sets the given foreign key as being resolved.
type GlobalsMap ¶ added in v0.12.0
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 ¶ added in v0.12.0
func NewInMemoryPersistedSession ¶ added in v0.12.0
func NewInMemoryPersistedSession(sess sql.Session, persistedGlobals GlobalsMap) *InMemoryPersistedSession
NewInMemoryPersistedSession is a sql.PersistableSession that writes global variables to an im-memory map
func NewInMemoryPersistedSessionWithValidationCallback ¶ added in v0.14.0
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 ¶ added in v0.12.0
func (s *InMemoryPersistedSession) GetPersistedValue(k string) (interface{}, error)
GetPersistedValue implements sql.PersistableSession
func (*InMemoryPersistedSession) PersistGlobal ¶ added in v0.12.0
func (s *InMemoryPersistedSession) PersistGlobal(sysVarName string, value interface{}) error
PersistGlobal implements sql.PersistableSession
func (*InMemoryPersistedSession) RemoveAllPersistedGlobals ¶ added in v0.12.0
func (s *InMemoryPersistedSession) RemoveAllPersistedGlobals() error
RemoveAllPersistedGlobals implements sql.PersistableSession
func (*InMemoryPersistedSession) RemovePersistedGlobal ¶ added in v0.12.0
func (s *InMemoryPersistedSession) RemovePersistedGlobal(sysVarName string) error
RemovePersistedGlobal implements sql.PersistableSession
func (*InMemoryPersistedSession) ValidateSession ¶ added in v0.14.0
func (s *InMemoryPersistedSession) ValidateSession(ctx *sql.Context, dbName string) error
ValidateSession counts the number of times this method is called.
type Index ¶ added in v0.12.0
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 CommentStr string }
func (*Index) ColumnExpressionTypes ¶ added in v0.12.0
func (idx *Index) ColumnExpressionTypes() []sql.ColumnExpressionType
ColumnExpressionTypes implements the interface sql.Index.
func (*Index) ColumnExpressions ¶ added in v0.12.0
func (idx *Index) ColumnExpressions() []sql.Expression
func (*Index) Expressions ¶ added in v0.12.0
func (*Index) HandledFilters ¶ added in v0.12.0
func (idx *Index) HandledFilters(filters []sql.Expression) []sql.Expression
func (*Index) IsGenerated ¶ added in v0.12.0
func (*Index) Order ¶ added in v0.12.0
func (idx *Index) Order() sql.IndexOrder
type IndexValue ¶ added in v0.9.0
func DecodeIndexValue ¶ added in v0.9.0
func DecodeIndexValue(data []byte) (*IndexValue, error)
type IndexedTable ¶ added in v0.14.0
type IndexedTable struct {
*Table
}
IndexedTable is a table that expects to return one or more partitions for range lookups.
func (*IndexedTable) LookupPartitions ¶ added in v0.14.0
func (t *IndexedTable) LookupPartitions(ctx *sql.Context, lookup sql.IndexLookup) (sql.PartitionIter, error)
type MemoryDatabase ¶ added in v0.11.0
type Partition ¶ added in v0.9.0
type Partition struct {
// contains filtered or unexported fields
}
func NewPartition ¶ added in v0.9.0
type ReadOnlyDatabase ¶ added in v0.11.0
type ReadOnlyDatabase struct {
*HistoryDatabase
}
func NewReadOnlyDatabase ¶ added in v0.11.0
func NewReadOnlyDatabase(name string) ReadOnlyDatabase
func (ReadOnlyDatabase) IsReadOnly ¶ added in v0.11.0
func (d ReadOnlyDatabase) IsReadOnly() bool
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 ¶ added in v0.14.0
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 ¶ added in v0.14.0
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 ¶ added in v0.12.0
AddForeignKey implements sql.ForeignKeyTable. Foreign partitionKeys are not enforced on update / delete.
func (*Table) AnalyzeTable ¶ added in v0.14.0
AnalyzeTable implements the sql.StatisticsTable interface.
func (*Table) AutoIncrementSetter ¶
func (t *Table) AutoIncrementSetter(*sql.Context) sql.AutoIncrementSetter
func (*Table) Collation ¶ added in v0.14.0
func (t *Table) Collation() sql.CollationID
Collation implements the sql.Table interface.
func (*Table) CreateCheck ¶ added in v0.9.0
CreateCheck implements sql.CheckAlterableTable
func (*Table) CreateIndex ¶
func (t *Table) CreateIndex(ctx *sql.Context, indexName string, using sql.IndexUsing, constraint sql.IndexConstraint, columns []sql.IndexColumn, comment string) error
CreateIndex implements sql.IndexAlterableTable
func (*Table) CreateIndexForForeignKey ¶ added in v0.12.0
func (t *Table) CreateIndexForForeignKey(ctx *sql.Context, indexName string, using sql.IndexUsing, constraint sql.IndexConstraint, columns []sql.IndexColumn) error
CreateIndexForForeignKey implements sql.ForeignKeyTable.
func (*Table) CreatePrimaryKey ¶ added in v0.11.0
CreatePrimaryKey implements the PrimaryKeyAlterableTable
func (*Table) DataLength ¶ added in v0.9.0
func (*Table) DebugString ¶
func (*Table) DropForeignKey ¶
DropForeignKey implements sql.ForeignKeyTable.
func (*Table) DropPrimaryKey ¶ added in v0.11.0
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 ¶ added in v0.10.0
func (t *Table) Filters() []sql.Expression
Filters implements the sql.FilteredTable interface.
func (*Table) GetDeclaredForeignKeys ¶ added in v0.12.0
GetDeclaredForeignKeys implements the interface sql.ForeignKeyTable.
func (*Table) GetForeignKeyUpdater ¶ added in v0.12.0
func (t *Table) GetForeignKeyUpdater(ctx *sql.Context) sql.ForeignKeyUpdater
GetForeignKeyUpdater implements sql.ForeignKeyTable.
func (*Table) GetIndexes ¶
GetIndexes implements sql.IndexedTable
func (*Table) GetNextAutoIncrementValue ¶ added in v0.11.0
GetNextAutoIncrementValue gets the next auto increment value for the memory table the increment.
func (*Table) GetReferencedForeignKeys ¶ added in v0.12.0
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 ¶ added in v0.14.0
func (t *Table) IndexedAccess(sql.Index) sql.IndexedTable
func (*Table) ModifyColumn ¶
func (*Table) PartitionCount ¶
PartitionCount implements the sql.PartitionCounter interface.
func (*Table) PartitionRows ¶
PartitionRows implements the sql.PartitionRows interface.
func (*Table) PartitionRows2 ¶ added in v0.12.0
func (*Table) Partitions ¶
Partitions implements the sql.Table interface.
func (*Table) PeekNextAutoIncrementValue ¶ added in v0.11.0
PeekNextAutoIncrementValue peeks at the next AUTO_INCREMENT value
func (*Table) PrimaryKeySchema ¶ added in v0.12.0
func (t *Table) PrimaryKeySchema() sql.PrimaryKeySchema
PrimaryKeySchema implements sql.PrimaryKeyAlterableTable
func (*Table) Projections ¶ added in v0.12.0
Projections implements sql.ProjectedTable
func (*Table) RenameIndex ¶
RenameIndex implements sql.IndexAlterableTable
func (*Table) SetForeignKeyResolved ¶ added in v0.12.0
SetForeignKeyResolved implements sql.ForeignKeyTable.
func (*Table) Statistics ¶ added in v0.14.0
func (*Table) UpdateForeignKey ¶ added in v0.12.0
func (t *Table) UpdateForeignKey(ctx *sql.Context, fkName string, fk sql.ForeignKeyConstraint) error
UpdateForeignKey implements sql.ForeignKeyTable.
func (*Table) WithDriverIndexLookup ¶ added in v0.14.0
func (t *Table) WithDriverIndexLookup(lookup sql.DriverIndexLookup) sql.Table
WithDriverIndexLookup implements the sql.IndexAddressableTable interface.
type TableStatistics ¶ added in v0.14.0
type TableStatistics struct {
// contains filtered or unexported fields
}
TableStatistics holds the table statistics for in-memory tables
func (*TableStatistics) CreatedAt ¶ added in v0.14.0
func (ts *TableStatistics) CreatedAt() time.Time
func (*TableStatistics) Histogram ¶ added in v0.14.0
func (ts *TableStatistics) Histogram(colName string) (*sql.Histogram, error)
func (*TableStatistics) HistogramMap ¶ added in v0.14.0
func (ts *TableStatistics) HistogramMap() sql.HistogramMap
func (*TableStatistics) NullCount ¶ added in v0.14.0
func (ts *TableStatistics) NullCount() uint64
func (*TableStatistics) RowCount ¶ added in v0.14.0
func (ts *TableStatistics) RowCount() uint64
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