Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrInvalidDBState returns for invalid database state. ErrInvalidDBState = terror.ClassDDL.New(codeInvalidDBState, "invalid database state") // ErrInvalidTableState returns for invalid Table state. ErrInvalidTableState = terror.ClassDDL.New(codeInvalidTableState, "invalid table state") // ErrInvalidColumnState returns for invalid column state. ErrInvalidColumnState = terror.ClassDDL.New(codeInvalidColumnState, "invalid column state") // ErrInvalidIndexState returns for invalid index state. ErrInvalidIndexState = terror.ClassDDL.New(codeInvalidIndexState, "invalid index state") // ErrInvalidForeignKeyState returns for invalid foreign key state. ErrInvalidForeignKeyState = terror.ClassDDL.New(codeInvalidForeignKeyState, "invalid foreign key state") // ErrUnsupportedModifyPrimaryKey returns an error when add or drop the primary key. // It's exported for testing. ErrUnsupportedModifyPrimaryKey = terror.ClassDDL.New(codeUnsupportedModifyPrimaryKey, "unsupported %s primary key") // ErrColumnBadNull returns for a bad null value. ErrColumnBadNull = terror.ClassDDL.New(codeBadNull, "column cann't be null") // ErrCantRemoveAllFields returns for deleting all columns. ErrCantRemoveAllFields = terror.ClassDDL.New(codeCantRemoveAllFields, "can't delete all columns with ALTER TABLE") // ErrCantDropFieldOrKey returns for dropping a non-existent field or key. ErrCantDropFieldOrKey = terror.ClassDDL.New(codeCantDropFieldOrKey, "can't drop field; check that column/key exists") // ErrInvalidOnUpdate returns for invalid ON UPDATE clause. ErrInvalidOnUpdate = terror.ClassDDL.New(codeInvalidOnUpdate, "invalid ON UPDATE clause for the column") // ErrTooLongIdent returns for too long name of database/table/column. ErrTooLongIdent = terror.ClassDDL.New(codeTooLongIdent, "Identifier name too long") )
View Source
var RunWorker = true
RunWorker indicates if this TiDB server starts DDL worker and can run DDL job.
Functions ¶
This section is empty.
Types ¶
type BaseCallback ¶
type BaseCallback struct { }
BaseCallback implements Callback.OnChanged interface.
func (*BaseCallback) OnBgJobUpdated ¶
func (c *BaseCallback) OnBgJobUpdated(job *model.Job)
OnBgJobUpdated implements Callback.OnBgJobUpdated interface.
func (*BaseCallback) OnChanged ¶
func (c *BaseCallback) OnChanged(err error) error
OnChanged implements Callback interface.
func (*BaseCallback) OnJobRunBefore ¶
func (c *BaseCallback) OnJobRunBefore(job *model.Job)
OnJobRunBefore implements Callback.OnJobRunBefore interface.
func (*BaseCallback) OnJobUpdated ¶
func (c *BaseCallback) OnJobUpdated(job *model.Job)
OnJobUpdated implements Callback.OnJobUpdated interface.
type Callback ¶
type Callback interface { // OnChanged is called after schema is changed. OnChanged(err error) error // OnJobRunBefore is called before running job. OnJobRunBefore(job *model.Job) // OnJobUpdated is called after the running job is updated. OnJobUpdated(job *model.Job) // OnBgJobUpdated is called after the running background job is updated. OnBgJobUpdated(job *model.Job) }
Callback is the interface supporting callback function when DDL changed.
type DDL ¶
type DDL interface { CreateSchema(ctx context.Context, name model.CIStr, charsetInfo *ast.CharsetOpt) error DropSchema(ctx context.Context, schema model.CIStr) error CreateTable(ctx context.Context, ident ast.Ident, cols []*ast.ColumnDef, constrs []*ast.Constraint, options []*ast.TableOption) error CreateTableWithLike(ctx context.Context, ident, referIdent ast.Ident) error DropTable(ctx context.Context, tableIdent ast.Ident) (err error) CreateIndex(ctx context.Context, tableIdent ast.Ident, unique bool, indexName model.CIStr, columnNames []*ast.IndexColName) error DropIndex(ctx context.Context, tableIdent ast.Ident, indexName model.CIStr) error GetInformationSchema() infoschema.InfoSchema AlterTable(ctx context.Context, tableIdent ast.Ident, spec []*ast.AlterTableSpec) error TruncateTable(ctx context.Context, tableIdent ast.Ident) error RenameTable(ctx context.Context, oldTableIdent, newTableIdent ast.Ident) error // SetLease will reset the lease time for online DDL change, // it's a very dangerous function and you must guarantee that all servers have the same lease time. SetLease(lease time.Duration) // GetLease returns current schema lease time. GetLease() time.Duration // Stats returns the DDL statistics. Stats() (map[string]interface{}, error) // GetScope gets the status variables scope. GetScope(status string) variable.ScopeFlag // Stop stops DDL worker. Stop() error // Start starts DDL worker. Start() error // RegisterEventCh registers event channel for ddl. RegisterEventCh(chan<- *Event) }
DDL is responsible for updating schema in data store and maintaining in-memory InfoSchema cache.
type Event ¶
type Event struct { Tp model.ActionType TableInfo *model.TableInfo ColumnInfo *model.ColumnInfo IndexInfo *model.IndexInfo }
Event is an event that a ddl operation happened.
Click to show internal directories.
Click to hide internal directories.