Documentation ¶
Index ¶
Constants ¶
View Source
const (
Name = "INFORMATION_SCHEMA"
)
Information Schema Name.
Variables ¶
View Source
var ( // ErrDatabaseDropExists returns for dropping a non-existent database. ErrDatabaseDropExists = terror.ClassSchema.New(codeDBDropExists, "Can't drop database '%s'; database doesn't exist") // ErrDatabaseNotExists returns for database not exists. ErrDatabaseNotExists = terror.ClassSchema.New(codeDatabaseNotExists, "Unknown database '%s'") // ErrTableNotExists returns for table not exists. ErrTableNotExists = terror.ClassSchema.New(codeTableNotExists, "Table '%s.%s' doesn't exist") // ErrColumnNotExists returns for column not exists. ErrColumnNotExists = terror.ClassSchema.New(codeColumnNotExists, "Unknown column '%s' in '%s'") // ErrForeignKeyNotMatch returns for foreign key not match. ErrForeignKeyNotMatch = terror.ClassSchema.New(codeWrongFkDef, "Incorrect foreign key definition for '%s': Key reference and table reference don't match") // ErrCannotAddForeign returns for foreign key exists. ErrCannotAddForeign = terror.ClassSchema.New(codeCannotAddForeign, "Cannot add foreign key constraint") // ErrForeignKeyNotExists returns for foreign key not exists. ErrForeignKeyNotExists = terror.ClassSchema.New(codeForeignKeyNotExists, "Can't DROP '%s'; check that column/key exists") // ErrDatabaseExists returns for database already exists. ErrDatabaseExists = terror.ClassSchema.New(codeDatabaseExists, "Can't create database '%s'; database exists") // ErrTableExists returns for table already exists. ErrTableExists = terror.ClassSchema.New(codeTableExists, "Table '%s' already exists") // ErrTableDropExists returns for dropping a non-existent table. ErrTableDropExists = terror.ClassSchema.New(codeBadTable, "Unknown table '%s'") // ErrColumnExists returns for column already exists. ErrColumnExists = terror.ClassSchema.New(codeColumnExists, "Duplicate column name '%s'") // ErrIndexExists returns for index already exists. ErrIndexExists = terror.ClassSchema.New(codeIndexExists, "Duplicate Index") // ErrMultiplePriKey returns for multiple primary keys. ErrMultiplePriKey = terror.ClassSchema.New(codeMultiplePriKey, "Multiple primary key defined") )
Functions ¶
This section is empty.
Types ¶
type InfoSchema ¶
type InfoSchema interface { SchemaByName(schema model.CIStr) (*model.DBInfo, bool) SchemaExists(schema model.CIStr) bool TableByName(schema, table model.CIStr) (table.Table, error) TableExists(schema, table model.CIStr) bool AllSchemaNames() []string AllSchemas() []*model.DBInfo Clone() (result []*model.DBInfo) SchemaTables(schema model.CIStr) []table.Table SchemaMetaVersion() int64 }
InfoSchema is the interface used to retrieve the schema information. It works as a in memory cache and doesn't handle any schema change. InfoSchema is read-only, and the returned value is a copy. TODO: add more methods to retrieve tables and columns.
func NewInfoSchema ¶
func NewInfoSchema(schemaName string, tbList []*model.TableInfo) InfoSchema
Click to show internal directories.
Click to hide internal directories.