Documentation ¶
Index ¶
- func Call(object interface{}, method string, params ...interface{}) error
- func Match(r *models.Rule, src string, params ...interface{}) (err error)
- func Run(stmts []*models.Statement, cluster *models.Cluster, ticket *models.Ticket)
- type ColumnEntry
- type Context
- type DatabaseAlterVldr
- func (v *DatabaseAlterVldr) AvailableCharsets(s *models.Statement, r *models.Rule)
- func (v *DatabaseAlterVldr) AvailableCollates(s *models.Statement, r *models.Rule)
- func (v *DatabaseAlterVldr) Call(method string, params ...interface{})
- func (v *DatabaseAlterVldr) CharsetCollateMustMatch(s *models.Statement, r *models.Rule)
- func (v *DatabaseAlterVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *DatabaseAlterVldr) DatabaseInfo(name string) *models.Database
- func (v *DatabaseAlterVldr) Enabled() bool
- func (v *DatabaseAlterVldr) GetRules() []*models.Rule
- func (v *DatabaseAlterVldr) IndexInfo(database, table, index string) *core.Index
- func (v *DatabaseAlterVldr) SetContext(ctx *Context)
- func (v *DatabaseAlterVldr) SetGroup(gid uint16)
- func (v *DatabaseAlterVldr) TableInfo(database, table string) *core.Table
- func (v *DatabaseAlterVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *DatabaseAlterVldr) Validate(wg *sync.WaitGroup)
- func (v *DatabaseAlterVldr) Walk(node ast.Node)
- func (v *DatabaseAlterVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type DatabaseCreateVldr
- func (v *DatabaseCreateVldr) AvailableCharsets(s *models.Statement, r *models.Rule)
- func (v *DatabaseCreateVldr) AvailableCollates(s *models.Statement, r *models.Rule)
- func (v *DatabaseCreateVldr) Call(method string, params ...interface{})
- func (v *DatabaseCreateVldr) CharsetCollateMustMatch(s *models.Statement, r *models.Rule)
- func (v *DatabaseCreateVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *DatabaseCreateVldr) DatabaseInfo(name string) *models.Database
- func (v *DatabaseCreateVldr) DatabaseNameLowerCaseRequired(s *models.Statement, r *models.Rule)
- func (v *DatabaseCreateVldr) DatabaseNameMaxLength(s *models.Statement, r *models.Rule)
- func (v *DatabaseCreateVldr) DatabaseNameQualified(s *models.Statement, r *models.Rule)
- func (v *DatabaseCreateVldr) Enabled() bool
- func (v *DatabaseCreateVldr) GetRules() []*models.Rule
- func (v *DatabaseCreateVldr) IndexInfo(database, table, index string) *core.Index
- func (v *DatabaseCreateVldr) SetContext(ctx *Context)
- func (v *DatabaseCreateVldr) SetGroup(gid uint16)
- func (v *DatabaseCreateVldr) TableInfo(database, table string) *core.Table
- func (v *DatabaseCreateVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *DatabaseCreateVldr) Validate(wg *sync.WaitGroup)
- func (v *DatabaseCreateVldr) Walk(node ast.Node)
- func (v *DatabaseCreateVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type DatabaseDropVldr
- func (v *DatabaseDropVldr) Call(method string, params ...interface{})
- func (v *DatabaseDropVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *DatabaseDropVldr) DatabaseInfo(name string) *models.Database
- func (v *DatabaseDropVldr) Enabled() bool
- func (v *DatabaseDropVldr) GetRules() []*models.Rule
- func (v *DatabaseDropVldr) IndexInfo(database, table, index string) *core.Index
- func (v *DatabaseDropVldr) SetContext(ctx *Context)
- func (v *DatabaseDropVldr) SetGroup(gid uint16)
- func (v *DatabaseDropVldr) TableInfo(database, table string) *core.Table
- func (v *DatabaseDropVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *DatabaseDropVldr) Validate(wg *sync.WaitGroup)
- func (v *DatabaseDropVldr) Walk(node ast.Node)
- func (v *DatabaseDropVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type DeleteVldr
- func (v *DeleteVldr) Call(method string, params ...interface{})
- func (v *DeleteVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *DeleteVldr) DatabaseInfo(name string) *models.Database
- func (v *DeleteVldr) Enabled() bool
- func (v *DeleteVldr) GetRules() []*models.Rule
- func (v *DeleteVldr) IndexInfo(database, table, index string) *core.Index
- func (v *DeleteVldr) MaxAllowedDeleteRows(s *models.Statement, r *models.Rule)
- func (v *DeleteVldr) SetContext(ctx *Context)
- func (v *DeleteVldr) SetGroup(gid uint16)
- func (v *DeleteVldr) TableInfo(database, table string) *core.Table
- func (v *DeleteVldr) TargetColumnDoesNotDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *DeleteVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *DeleteVldr) TargetTableDoesNotDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *DeleteVldr) Validate(wg *sync.WaitGroup)
- func (v *DeleteVldr) Walk(node ast.Node)
- func (v *DeleteVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- func (v *DeleteVldr) WithoutWhereNotAllowed(s *models.Statement, r *models.Rule)
- type EventAlterVldr
- func (v *EventAlterVldr) Call(method string, params ...interface{})
- func (v *EventAlterVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *EventAlterVldr) DatabaseInfo(name string) *models.Database
- func (v *EventAlterVldr) Enabled() bool
- func (v *EventAlterVldr) GetRules() []*models.Rule
- func (v *EventAlterVldr) IndexInfo(database, table, index string) *core.Index
- func (v *EventAlterVldr) SetContext(ctx *Context)
- func (v *EventAlterVldr) SetGroup(gid uint16)
- func (v *EventAlterVldr) TableInfo(database, table string) *core.Table
- func (v *EventAlterVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *EventAlterVldr) TargetEventDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *EventAlterVldr) Validate(wg *sync.WaitGroup)
- func (v *EventAlterVldr) Walk(node ast.Node)
- func (v *EventAlterVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type EventCreateVldr
- func (v *EventCreateVldr) Call(method string, params ...interface{})
- func (v *EventCreateVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *EventCreateVldr) DatabaseInfo(name string) *models.Database
- func (v *EventCreateVldr) Enabled() bool
- func (v *EventCreateVldr) EventNameLowerCaseRequired(s *models.Statement, r *models.Rule)
- func (v *EventCreateVldr) EventNameMaxLength(s *models.Statement, r *models.Rule)
- func (v *EventCreateVldr) EventNamePrefixRequired(s *models.Statement, r *models.Rule)
- func (v *EventCreateVldr) EventNameQualified(s *models.Statement, r *models.Rule)
- func (v *EventCreateVldr) GetRules() []*models.Rule
- func (v *EventCreateVldr) IndexInfo(database, table, index string) *core.Index
- func (v *EventCreateVldr) SetContext(ctx *Context)
- func (v *EventCreateVldr) SetGroup(gid uint16)
- func (v *EventCreateVldr) TableInfo(database, table string) *core.Table
- func (v *EventCreateVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *EventCreateVldr) TargetEventDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *EventCreateVldr) Validate(wg *sync.WaitGroup)
- func (v *EventCreateVldr) Walk(node ast.Node)
- func (v *EventCreateVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type EventDropVldr
- func (v *EventDropVldr) Call(method string, params ...interface{})
- func (v *EventDropVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *EventDropVldr) DatabaseInfo(name string) *models.Database
- func (v *EventDropVldr) Enabled() bool
- func (v *EventDropVldr) GetRules() []*models.Rule
- func (v *EventDropVldr) IndexInfo(database, table, index string) *core.Index
- func (v *EventDropVldr) SetContext(ctx *Context)
- func (v *EventDropVldr) SetGroup(gid uint16)
- func (v *EventDropVldr) TableInfo(database, table string) *core.Table
- func (v *EventDropVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *EventDropVldr) TargetEventDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *EventDropVldr) Validate(wg *sync.WaitGroup)
- func (v *EventDropVldr) Walk(node ast.Node)
- func (v *EventDropVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type FuncAlterVldr
- func (v *FuncAlterVldr) Call(method string, params ...interface{})
- func (v *FuncAlterVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *FuncAlterVldr) DatabaseInfo(name string) *models.Database
- func (v *FuncAlterVldr) Enabled() bool
- func (v *FuncAlterVldr) GetRules() []*models.Rule
- func (v *FuncAlterVldr) IndexInfo(database, table, index string) *core.Index
- func (v *FuncAlterVldr) SetContext(ctx *Context)
- func (v *FuncAlterVldr) SetGroup(gid uint16)
- func (v *FuncAlterVldr) TableInfo(database, table string) *core.Table
- func (v *FuncAlterVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *FuncAlterVldr) TargetFuncDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *FuncAlterVldr) Validate(wg *sync.WaitGroup)
- func (v *FuncAlterVldr) Walk(node ast.Node)
- func (v *FuncAlterVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type FuncCreateVldr
- func (v *FuncCreateVldr) Call(method string, params ...interface{})
- func (v *FuncCreateVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *FuncCreateVldr) DatabaseInfo(name string) *models.Database
- func (v *FuncCreateVldr) Enabled() bool
- func (v *FuncCreateVldr) FuncNameLowerCaseRequired(s *models.Statement, r *models.Rule)
- func (v *FuncCreateVldr) FuncNameMaxLength(s *models.Statement, r *models.Rule)
- func (v *FuncCreateVldr) FuncNamePrefixRequired(s *models.Statement, r *models.Rule)
- func (v *FuncCreateVldr) FuncNameQuilified(s *models.Statement, r *models.Rule)
- func (v *FuncCreateVldr) GetRules() []*models.Rule
- func (v *FuncCreateVldr) IndexInfo(database, table, index string) *core.Index
- func (v *FuncCreateVldr) SetContext(ctx *Context)
- func (v *FuncCreateVldr) SetGroup(gid uint16)
- func (v *FuncCreateVldr) TableInfo(database, table string) *core.Table
- func (v *FuncCreateVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *FuncCreateVldr) TargetFuncDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *FuncCreateVldr) Validate(wg *sync.WaitGroup)
- func (v *FuncCreateVldr) Walk(node ast.Node)
- func (v *FuncCreateVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type FuncDropVldr
- func (v *FuncDropVldr) Call(method string, params ...interface{})
- func (v *FuncDropVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *FuncDropVldr) DatabaseInfo(name string) *models.Database
- func (v *FuncDropVldr) Enabled() bool
- func (v *FuncDropVldr) GetRules() []*models.Rule
- func (v *FuncDropVldr) IndexInfo(database, table, index string) *core.Index
- func (v *FuncDropVldr) SetContext(ctx *Context)
- func (v *FuncDropVldr) SetGroup(gid uint16)
- func (v *FuncDropVldr) TableInfo(database, table string) *core.Table
- func (v *FuncDropVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *FuncDropVldr) TargetFuncDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *FuncDropVldr) Validate(wg *sync.WaitGroup)
- func (v *FuncDropVldr) Walk(node ast.Node)
- func (v *FuncDropVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type IndexCreateVldr
- func (v *IndexCreateVldr) Call(method string, params ...interface{})
- func (v *IndexCreateVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *IndexCreateVldr) DatabaseInfo(name string) *models.Database
- func (v *IndexCreateVldr) Enabled() bool
- func (v *IndexCreateVldr) GetRules() []*models.Rule
- func (v *IndexCreateVldr) IndexColumnDuplicate(s *models.Statement, r *models.Rule)
- func (v *IndexCreateVldr) IndexInfo(database, table, index string) *core.Index
- func (v *IndexCreateVldr) IndexNameDuplicate(s *models.Statement, r *models.Rule)
- func (v *IndexCreateVldr) IndexNameLowerCaseRequired(s *models.Statement, r *models.Rule)
- func (v *IndexCreateVldr) IndexNameMaxLength(s *models.Statement, r *models.Rule)
- func (v *IndexCreateVldr) IndexNamePrefixRequired(s *models.Statement, r *models.Rule)
- func (v *IndexCreateVldr) IndexNameQualified(s *models.Statement, r *models.Rule)
- func (v *IndexCreateVldr) IndexOnBlobColumnNotAllowed(s *models.Statement, r *models.Rule)
- func (v *IndexCreateVldr) IndexOverlayNotAllowed(s *models.Statement, r *models.Rule)
- func (v *IndexCreateVldr) MaxAllowedIndexColumnCount(s *models.Statement, r *models.Rule)
- func (v *IndexCreateVldr) MaxAllowedIndexCount(s *models.Statement, r *models.Rule)
- func (v *IndexCreateVldr) SetContext(ctx *Context)
- func (v *IndexCreateVldr) SetGroup(gid uint16)
- func (v *IndexCreateVldr) TableInfo(database, table string) *core.Table
- func (v *IndexCreateVldr) TargetColumnDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *IndexCreateVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *IndexCreateVldr) TargetTableDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *IndexCreateVldr) Validate(wg *sync.WaitGroup)
- func (v *IndexCreateVldr) Walk(node ast.Node)
- func (v *IndexCreateVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type IndexDropVldr
- func (v *IndexDropVldr) Call(method string, params ...interface{})
- func (v *IndexDropVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *IndexDropVldr) DatabaseInfo(name string) *models.Database
- func (v *IndexDropVldr) Enabled() bool
- func (v *IndexDropVldr) GetRules() []*models.Rule
- func (v *IndexDropVldr) IndexInfo(database, table, index string) *core.Index
- func (v *IndexDropVldr) SetContext(ctx *Context)
- func (v *IndexDropVldr) SetGroup(gid uint16)
- func (v *IndexDropVldr) TableInfo(database, table string) *core.Table
- func (v *IndexDropVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *IndexDropVldr) TargetIndexDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *IndexDropVldr) TargetTableDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *IndexDropVldr) Validate(wg *sync.WaitGroup)
- func (v *IndexDropVldr) Walk(node ast.Node)
- func (v *IndexDropVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type IndexEntry
- type InsertVldr
- func (v *InsertVldr) Call(method string, params ...interface{})
- func (v *InsertVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *InsertVldr) ColumnsValuesMustMatch(s *models.Statement, r *models.Rule)
- func (v *InsertVldr) DatabaseInfo(name string) *models.Database
- func (v *InsertVldr) Enabled() bool
- func (v *InsertVldr) ExplicitColumnRequired(s *models.Statement, r *models.Rule)
- func (v *InsertVldr) GetRules() []*models.Rule
- func (v *InsertVldr) IndexInfo(database, table, index string) *core.Index
- func (v *InsertVldr) RowsLimit(s *models.Statement, r *models.Rule)
- func (v *InsertVldr) SetContext(ctx *Context)
- func (v *InsertVldr) SetGroup(gid uint16)
- func (v *InsertVldr) TableInfo(database, table string) *core.Table
- func (v *InsertVldr) TargetColumnDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *InsertVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *InsertVldr) TargetTableDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *InsertVldr) UsingSelectNotAllowed(s *models.Statement, r *models.Rule)
- func (v *InsertVldr) Validate(wg *sync.WaitGroup)
- func (v *InsertVldr) ValueForNotNullColumnRequired(s *models.Statement, r *models.Rule)
- func (v *InsertVldr) Walk(node ast.Node)
- func (v *InsertVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type MiscVldr
- func (v *MiscVldr) Call(method string, params ...interface{})
- func (v *MiscVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *MiscVldr) DatabaseInfo(name string) *models.Database
- func (v *MiscVldr) Enabled() bool
- func (v *MiscVldr) FlushTableProhibited(r *models.Rule)
- func (v *MiscVldr) GetRules() []*models.Rule
- func (v *MiscVldr) IndexInfo(database, table, index string) *core.Index
- func (v *MiscVldr) KillProhibited(r *models.Rule)
- func (v *MiscVldr) LockTableProhibited(r *models.Rule)
- func (v *MiscVldr) MergeRequired(r *models.Rule)
- func (v *MiscVldr) PurgeLogsProhibited(r *models.Rule)
- func (v *MiscVldr) SetContext(ctx *Context)
- func (v *MiscVldr) SetGroup(gid uint16)
- func (v *MiscVldr) SplitRequired(r *models.Rule)
- func (v *MiscVldr) TableInfo(database, table string) *core.Table
- func (v *MiscVldr) TruncateTableProhibited(r *models.Rule)
- func (v *MiscVldr) UnlockTableProhibited(r *models.Rule)
- func (v *MiscVldr) Validate(wg *sync.WaitGroup)
- func (v *MiscVldr) Walk(node ast.Node)
- func (v *MiscVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type ProcAlterVldr
- func (v *ProcAlterVldr) Call(method string, params ...interface{})
- func (v *ProcAlterVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *ProcAlterVldr) DatabaseInfo(name string) *models.Database
- func (v *ProcAlterVldr) Enabled() bool
- func (v *ProcAlterVldr) GetRules() []*models.Rule
- func (v *ProcAlterVldr) IndexInfo(database, table, index string) *core.Index
- func (v *ProcAlterVldr) SetContext(ctx *Context)
- func (v *ProcAlterVldr) SetGroup(gid uint16)
- func (v *ProcAlterVldr) TableInfo(database, table string) *core.Table
- func (v *ProcAlterVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *ProcAlterVldr) TargetProcDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *ProcAlterVldr) Validate(wg *sync.WaitGroup)
- func (v *ProcAlterVldr) Walk(node ast.Node)
- func (v *ProcAlterVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type ProcCreateVldr
- func (v *ProcCreateVldr) Call(method string, params ...interface{})
- func (v *ProcCreateVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *ProcCreateVldr) DatabaseInfo(name string) *models.Database
- func (v *ProcCreateVldr) Enabled() bool
- func (v *ProcCreateVldr) GetRules() []*models.Rule
- func (v *ProcCreateVldr) IndexInfo(database, table, index string) *core.Index
- func (v *ProcCreateVldr) ProcNameLowerCaseRequired(s *models.Statement, r *models.Rule)
- func (v *ProcCreateVldr) ProcNameMaxLength(s *models.Statement, r *models.Rule)
- func (v *ProcCreateVldr) ProcNamePrefixRequired(s *models.Statement, r *models.Rule)
- func (v *ProcCreateVldr) ProcNameQualified(s *models.Statement, r *models.Rule)
- func (v *ProcCreateVldr) SetContext(ctx *Context)
- func (v *ProcCreateVldr) SetGroup(gid uint16)
- func (v *ProcCreateVldr) TableInfo(database, table string) *core.Table
- func (v *ProcCreateVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *ProcCreateVldr) TargetProcDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *ProcCreateVldr) Validate(wg *sync.WaitGroup)
- func (v *ProcCreateVldr) Walk(node ast.Node)
- func (v *ProcCreateVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type ProcDropVldr
- func (v *ProcDropVldr) Call(method string, params ...interface{})
- func (v *ProcDropVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *ProcDropVldr) DatabaseInfo(name string) *models.Database
- func (v *ProcDropVldr) Enabled() bool
- func (v *ProcDropVldr) GetRules() []*models.Rule
- func (v *ProcDropVldr) IndexInfo(database, table, index string) *core.Index
- func (v *ProcDropVldr) SetContext(ctx *Context)
- func (v *ProcDropVldr) SetGroup(gid uint16)
- func (v *ProcDropVldr) TableInfo(database, table string) *core.Table
- func (v *ProcDropVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *ProcDropVldr) TargetProcDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *ProcDropVldr) Validate(wg *sync.WaitGroup)
- func (v *ProcDropVldr) Walk(node ast.Node)
- func (v *ProcDropVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type ReplaceVldr
- func (v *ReplaceVldr) Call(method string, params ...interface{})
- func (v *ReplaceVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *ReplaceVldr) DatabaseInfo(name string) *models.Database
- func (v *ReplaceVldr) Enabled() bool
- func (v *ReplaceVldr) GetRules() []*models.Rule
- func (v *ReplaceVldr) IndexInfo(database, table, index string) *core.Index
- func (v *ReplaceVldr) SetContext(ctx *Context)
- func (v *ReplaceVldr) SetGroup(gid uint16)
- func (v *ReplaceVldr) TableInfo(database, table string) *core.Table
- func (v *ReplaceVldr) Validate(wg *sync.WaitGroup)
- func (v *ReplaceVldr) Walk(node ast.Node)
- func (v *ReplaceVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type SelectVldr
- func (v *SelectVldr) Call(method string, params ...interface{})
- func (v *SelectVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *SelectVldr) DatabaseInfo(name string) *models.Database
- func (v *SelectVldr) Enabled() bool
- func (v *SelectVldr) GetRules() []*models.Rule
- func (v *SelectVldr) IndexInfo(database, table, index string) *core.Index
- func (v *SelectVldr) ReturnBlobOrTextNotAllowed(s *models.Statement, r *models.Rule)
- func (v *SelectVldr) SetContext(ctx *Context)
- func (v *SelectVldr) SetGroup(gid uint16)
- func (v *SelectVldr) TableInfo(database, table string) *core.Table
- func (v *SelectVldr) TargetColumnDoesNotDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *SelectVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *SelectVldr) TargetTableDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *SelectVldr) UseExplicitLockNotAllowed(s *models.Statement, r *models.Rule)
- func (v *SelectVldr) UseWildcardNotAllowed(s *models.Statement, r *models.Rule)
- func (v *SelectVldr) Validate(wg *sync.WaitGroup)
- func (v *SelectVldr) Walk(node ast.Node)
- func (v *SelectVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- func (v *SelectVldr) WithoutLimitNotAllowed(s *models.Statement, r *models.Rule)
- func (v *SelectVldr) WithoutWhereNotAllowed(s *models.Statement, r *models.Rule)
- type Stack
- type TableAlterVldr
- func (v *TableAlterVldr) AvailableCharsets(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) AvailableCollates(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) AvailableEngines(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) Call(method string, params ...interface{})
- func (v *TableAlterVldr) ColumnAvailableCharsets(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) ColumnAvailableCollates(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) ColumnCharsetCollateMustMatch(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) ColumnCommentRequired(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *TableAlterVldr) ColumnNameDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) ColumnNameDuplicate(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) ColumnNameLowerCaseRequired(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) ColumnNameMaxLength(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) ColumnNameQualified(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) ColumnNotNullWithDefaultRequired(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) ColumnUnwantedTypes(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) CommentRequired(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) DatabaseInfo(name string) *models.Database
- func (v *TableAlterVldr) Enabled() bool
- func (v *TableAlterVldr) ForeignKeyDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) ForeignKeyNameExplicit(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) ForeignKeyNameLowerCaseRequired(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) ForeignKeyNameMaxLength(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) ForeignKeyNamePrefixRequired(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) ForeignKeyNameQualified(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) ForeignKeyNotAllowed(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) FullTextIndexExplicit(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) FullTextIndexNameLowerCaseRequired(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) FullTextIndexNameMaxLength(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) FullTextIndexNamePrefixRequired(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) FullTextIndexNameQualified(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) FullTextIndexNotAllowed(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) GetRules() []*models.Rule
- func (v *TableAlterVldr) IndexColumnDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) IndexCountLimit(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) IndexDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) IndexInfo(database, table, index string) *core.Index
- func (v *TableAlterVldr) IndexNameDuplicate(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) IndexNameExplicit(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) IndexNameLowerCaseRequired(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) IndexNameMaxLength(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) IndexNamePrefixRequired(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) IndexNameQualified(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) IndexOnBlobColumnNotAllowed(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) IndexOverlayNotAllowed(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) MaxAllowedColumnCount(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) MaxAllowedIndexColumnCount(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) MaxAllowedTimestampCount(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) NewTableNameLowerCaseRequired(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) NewTableNameMaxLength(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) NewTableNameQualified(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) PositionColumnDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) PrimaryKeyDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) SetContext(ctx *Context)
- func (v *TableAlterVldr) SetGroup(gid uint16)
- func (v *TableAlterVldr) TableCharsetCollateMustMatch(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) TableInfo(database, table string) *core.Table
- func (v *TableAlterVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) TargetTableDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) TargetTableDuplicate(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) UniqueNameExplicit(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) UniqueNameLowerCaseRequired(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) UniqueNameMaxLength(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) UniqueNamePrefixRequired(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) UniqueNameQualified(s *models.Statement, r *models.Rule)
- func (v *TableAlterVldr) Validate(wg *sync.WaitGroup)
- func (v *TableAlterVldr) Walk(node ast.Node)
- func (v *TableAlterVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type TableCreateVldr
- func (v *TableCreateVldr) AutoIncColumnDuplicate(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) AvailableCharsets(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) AvailableCollates(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) AvailableEngines(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) Call(method string, params ...interface{})
- func (v *TableCreateVldr) ColumnAutoIncAvailableTypes(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) ColumnAutoIncMustPrimaryKey(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) ColumnAutoIncUnsignedRequired(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) ColumnAvailableCharsets(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) ColumnAvailableCollates(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) ColumnCharsetCollateMustMatch(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) ColumnCommentRequired(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *TableCreateVldr) ColumnNameDuplicate(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) ColumnNameLowerCaseRequired(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) ColumnNameMaxLength(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) ColumnNameQualified(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) ColumnNotNullWithDefaultRequired(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) ColumnTypesDoesNotExpect(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) CreateTableFromSelectNotAllowed(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) CreateTableUseLikeNotAllowed(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) DatabaseInfo(name string) *models.Database
- func (v *TableCreateVldr) Enabled() bool
- func (v *TableCreateVldr) ForeignKeyNameExplicit(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) ForeignKeyNameLowerCaseRequired(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) ForeignKeyNameMaxLength(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) ForeignKeyNamePrefixRequired(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) ForeignKeyNameQualified(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) ForeignKeyNotAllowed(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) GetRules() []*models.Rule
- func (v *TableCreateVldr) IndexInfo(database, table, index string) *core.Index
- func (v *TableCreateVldr) IndexNameExplicit(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) IndexNameLowerCaseRequired(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) IndexNameMaxLength(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) IndexNamePrefixRequired(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) IndexNameQualified(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) MaxAllowedColumnCount(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) MaxAllowedIndexColumnCount(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) MaxAllowedIndexCount(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) MaxAllowedTimestampCount(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) PrimaryKeyDuplicate(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) PrimaryKeyNameExplicit(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) PrimaryKeyNameQualified(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) PrimaryKeyRequired(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) PrimryKeyLowerCaseRequired(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) PrimryKeyMaxLength(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) PrimryKeyPrefixRequired(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) SetContext(ctx *Context)
- func (v *TableCreateVldr) SetGroup(gid uint16)
- func (v *TableCreateVldr) TableCharsetCollateMustMatch(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) TableCommentRequired(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) TableInfo(database, table string) *core.Table
- func (v *TableCreateVldr) TableNameLowerCaseRequired(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) TableNameMaxLength(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) TableNameQualified(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) TargetTableDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) UniqueNameExplicit(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) UniqueNameLowerCaseRequired(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) UniqueNameMaxLength(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) UniqueNamePrefixRequired(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) UniqueNameQualified(s *models.Statement, r *models.Rule)
- func (v *TableCreateVldr) Validate(wg *sync.WaitGroup)
- func (v *TableCreateVldr) Walk(node ast.Node)
- func (v *TableCreateVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type TableDropVldr
- func (v *TableDropVldr) Call(method string, params ...interface{})
- func (v *TableDropVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *TableDropVldr) DatabaseInfo(name string) *models.Database
- func (v *TableDropVldr) Enabled() bool
- func (v *TableDropVldr) GetRules() []*models.Rule
- func (v *TableDropVldr) IndexInfo(database, table, index string) *core.Index
- func (v *TableDropVldr) SetContext(ctx *Context)
- func (v *TableDropVldr) SetGroup(gid uint16)
- func (v *TableDropVldr) TableInfo(database, table string) *core.Table
- func (v *TableDropVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TableDropVldr) TargetTableDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TableDropVldr) Validate(wg *sync.WaitGroup)
- func (v *TableDropVldr) Walk(node ast.Node)
- func (v *TableDropVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type TableEntry
- type TableRenameVldr
- func (v *TableRenameVldr) Call(method string, params ...interface{})
- func (v *TableRenameVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *TableRenameVldr) DatabaseInfo(name string) *models.Database
- func (v *TableRenameVldr) Enabled() bool
- func (v *TableRenameVldr) GetRules() []*models.Rule
- func (v *TableRenameVldr) IndexInfo(database, table, index string) *core.Index
- func (v *TableRenameVldr) SetContext(ctx *Context)
- func (v *TableRenameVldr) SetGroup(gid uint16)
- func (v *TableRenameVldr) TableInfo(database, table string) *core.Table
- func (v *TableRenameVldr) TableRenameSourceDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TableRenameVldr) TableRenameSourceTableDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TableRenameVldr) TableRenameTablesIdentical(s *models.Statement, r *models.Rule)
- func (v *TableRenameVldr) TableRenameTargetTableDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TableRenameVldr) TableRenameTargetTableNameLowerCaseRequired(s *models.Statement, r *models.Rule)
- func (v *TableRenameVldr) TableRenameTargetTableNameMaxLength(s *models.Statement, r *models.Rule)
- func (v *TableRenameVldr) TableRenameTargetTableNameQualified(s *models.Statement, r *models.Rule)
- func (v *TableRenameVldr) Validate(wg *sync.WaitGroup)
- func (v *TableRenameVldr) Walk(node ast.Node)
- func (v *TableRenameVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type TriggerAlterVldr
- func (v *TriggerAlterVldr) Call(method string, params ...interface{})
- func (v *TriggerAlterVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *TriggerAlterVldr) DatabaseInfo(name string) *models.Database
- func (v *TriggerAlterVldr) Enabled() bool
- func (v *TriggerAlterVldr) GetRules() []*models.Rule
- func (v *TriggerAlterVldr) IndexInfo(database, table, index string) *core.Index
- func (v *TriggerAlterVldr) SetContext(ctx *Context)
- func (v *TriggerAlterVldr) SetGroup(gid uint16)
- func (v *TriggerAlterVldr) TableInfo(database, table string) *core.Table
- func (v *TriggerAlterVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TriggerAlterVldr) TargetTableDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TriggerAlterVldr) TargetTriggerDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TriggerAlterVldr) Validate(wg *sync.WaitGroup)
- func (v *TriggerAlterVldr) Walk(node ast.Node)
- func (v *TriggerAlterVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type TriggerCreateVldr
- func (v *TriggerCreateVldr) Call(method string, params ...interface{})
- func (v *TriggerCreateVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *TriggerCreateVldr) DatabaseInfo(name string) *models.Database
- func (v *TriggerCreateVldr) Enabled() bool
- func (v *TriggerCreateVldr) GetRules() []*models.Rule
- func (v *TriggerCreateVldr) IndexInfo(database, table, index string) *core.Index
- func (v *TriggerCreateVldr) SetContext(ctx *Context)
- func (v *TriggerCreateVldr) SetGroup(gid uint16)
- func (v *TriggerCreateVldr) TableInfo(database, table string) *core.Table
- func (v *TriggerCreateVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TriggerCreateVldr) TargetTableDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TriggerCreateVldr) TargetTriggerDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TriggerCreateVldr) TriggerNameLowerCaseRequired(s *models.Statement, r *models.Rule)
- func (v *TriggerCreateVldr) TriggerNameMaxLength(s *models.Statement, r *models.Rule)
- func (v *TriggerCreateVldr) TriggerNameQualified(s *models.Statement, r *models.Rule)
- func (v *TriggerCreateVldr) TriggerPrefixRequired(s *models.Statement, r *models.Rule)
- func (v *TriggerCreateVldr) Validate(wg *sync.WaitGroup)
- func (v *TriggerCreateVldr) Walk(node ast.Node)
- func (v *TriggerCreateVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type TriggerDropVldr
- func (v *TriggerDropVldr) Call(method string, params ...interface{})
- func (v *TriggerDropVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *TriggerDropVldr) DatabaseInfo(name string) *models.Database
- func (v *TriggerDropVldr) Enabled() bool
- func (v *TriggerDropVldr) GetRules() []*models.Rule
- func (v *TriggerDropVldr) IndexInfo(database, table, index string) *core.Index
- func (v *TriggerDropVldr) SetContext(ctx *Context)
- func (v *TriggerDropVldr) SetGroup(gid uint16)
- func (v *TriggerDropVldr) TableInfo(database, table string) *core.Table
- func (v *TriggerDropVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TriggerDropVldr) TargetTableDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TriggerDropVldr) TargetTriggerDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *TriggerDropVldr) Validate(wg *sync.WaitGroup)
- func (v *TriggerDropVldr) Walk(node ast.Node)
- func (v *TriggerDropVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type UpdateVldr
- func (v *UpdateVldr) Call(method string, params ...interface{})
- func (v *UpdateVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *UpdateVldr) DatabaseInfo(name string) *models.Database
- func (v *UpdateVldr) Enabled() bool
- func (v *UpdateVldr) GetRules() []*models.Rule
- func (v *UpdateVldr) IndexInfo(database, table, index string) *core.Index
- func (v *UpdateVldr) MaxAllowedUpdateRows(s *models.Statement, r *models.Rule)
- func (v *UpdateVldr) SetContext(ctx *Context)
- func (v *UpdateVldr) SetGroup(gid uint16)
- func (v *UpdateVldr) TableInfo(database, table string) *core.Table
- func (v *UpdateVldr) TargetColumnDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *UpdateVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *UpdateVldr) TargetTableDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *UpdateVldr) Validate(wg *sync.WaitGroup)
- func (v *UpdateVldr) Walk(node ast.Node)
- func (v *UpdateVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- func (v *UpdateVldr) WithoutWhereNotAllowed(s *models.Statement, r *models.Rule)
- type Validator
- type ViewAlterVldr
- func (v *ViewAlterVldr) Call(method string, params ...interface{})
- func (v *ViewAlterVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *ViewAlterVldr) DatabaseInfo(name string) *models.Database
- func (v *ViewAlterVldr) Enabled() bool
- func (v *ViewAlterVldr) GetRules() []*models.Rule
- func (v *ViewAlterVldr) IndexInfo(database, table, index string) *core.Index
- func (v *ViewAlterVldr) SetContext(ctx *Context)
- func (v *ViewAlterVldr) SetGroup(gid uint16)
- func (v *ViewAlterVldr) TableInfo(database, table string) *core.Table
- func (v *ViewAlterVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *ViewAlterVldr) TargetViewDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *ViewAlterVldr) Validate(wg *sync.WaitGroup)
- func (v *ViewAlterVldr) Walk(node ast.Node)
- func (v *ViewAlterVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type ViewCreateVldr
- func (v *ViewCreateVldr) Call(method string, params ...interface{})
- func (v *ViewCreateVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *ViewCreateVldr) DatabaseInfo(name string) *models.Database
- func (v *ViewCreateVldr) Enabled() bool
- func (v *ViewCreateVldr) GetRules() []*models.Rule
- func (v *ViewCreateVldr) IndexInfo(database, table, index string) *core.Index
- func (v *ViewCreateVldr) SetContext(ctx *Context)
- func (v *ViewCreateVldr) SetGroup(gid uint16)
- func (v *ViewCreateVldr) TableInfo(database, table string) *core.Table
- func (v *ViewCreateVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *ViewCreateVldr) TargetViewDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *ViewCreateVldr) Validate(wg *sync.WaitGroup)
- func (v *ViewCreateVldr) ViewNameLowerCaseRequired(s *models.Statement, r *models.Rule)
- func (v *ViewCreateVldr) ViewNameMaxLength(s *models.Statement, r *models.Rule)
- func (v *ViewCreateVldr) ViewNamePrefixRequired(s *models.Statement, r *models.Rule)
- func (v *ViewCreateVldr) ViewNameQualified(s *models.Statement, r *models.Rule)
- func (v *ViewCreateVldr) Walk(node ast.Node)
- func (v *ViewCreateVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type ViewDropVldr
- func (v *ViewDropVldr) Call(method string, params ...interface{})
- func (v *ViewDropVldr) ColumnInfo(database, table, column string) *core.Column
- func (v *ViewDropVldr) DatabaseInfo(name string) *models.Database
- func (v *ViewDropVldr) Enabled() bool
- func (v *ViewDropVldr) GetRules() []*models.Rule
- func (v *ViewDropVldr) IndexInfo(database, table, index string) *core.Index
- func (v *ViewDropVldr) SetContext(ctx *Context)
- func (v *ViewDropVldr) SetGroup(gid uint16)
- func (v *ViewDropVldr) TableInfo(database, table string) *core.Table
- func (v *ViewDropVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *ViewDropVldr) TargetViewDoesNotExist(s *models.Statement, r *models.Rule)
- func (v *ViewDropVldr) Validate(wg *sync.WaitGroup)
- func (v *ViewDropVldr) Walk(node ast.Node)
- func (v *ViewDropVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
- type VisitInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ColumnEntry ¶
type ColumnEntry struct { Table TableEntry Name string Alias string }
ColumnEntry 抽象语法树需要访问的列
type Context ¶
type Context struct { Stmts []*models.Statement // 全部等待审核的数据 Ticket *models.Ticket // 等待审核的工单 Cluster *models.Cluster // 目标群集 Databases []models.Database // 目标群集所有的用户数据库 Tables map[string][]*core.Table // 目标群集上目标数据库的元数据 }
Context 在不同的验证组中共享内容
type DatabaseAlterVldr ¶
type DatabaseAlterVldr struct {
// contains filtered or unexported fields
}
DatabaseAlterVldr 修改数据库语句相关的审核规则
func (*DatabaseAlterVldr) AvailableCharsets ¶
func (v *DatabaseAlterVldr) AvailableCharsets(s *models.Statement, r *models.Rule)
AvailableCharsets 改库允许的字符集 RULE: MDB-L2-001
func (*DatabaseAlterVldr) AvailableCollates ¶
func (v *DatabaseAlterVldr) AvailableCollates(s *models.Statement, r *models.Rule)
AvailableCollates 改库允许的排序规则 RULE: MDB-L2-002
func (*DatabaseAlterVldr) Call ¶
func (v *DatabaseAlterVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*DatabaseAlterVldr) CharsetCollateMustMatch ¶
func (v *DatabaseAlterVldr) CharsetCollateMustMatch(s *models.Statement, r *models.Rule)
CharsetCollateMustMatch 改库的字符集与排序规则必须匹配 RULE: MDB-L2-003
func (*DatabaseAlterVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*DatabaseAlterVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*DatabaseAlterVldr) SetContext ¶
func (v *DatabaseAlterVldr) SetContext(ctx *Context)
SetContext 设置上下文
func (*DatabaseAlterVldr) SetGroup ¶
func (v *DatabaseAlterVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*DatabaseAlterVldr) TargetDatabaseDoesNotExist ¶
func (v *DatabaseAlterVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标库不存在 RULE: MDB-L2-004
func (*DatabaseAlterVldr) Validate ¶
func (v *DatabaseAlterVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*DatabaseAlterVldr) WalkSubquery ¶
func (v *DatabaseAlterVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type DatabaseCreateVldr ¶
type DatabaseCreateVldr struct {
// contains filtered or unexported fields
}
DatabaseCreateVldr 创建数据库语句相关的审核规则
func (*DatabaseCreateVldr) AvailableCharsets ¶
func (v *DatabaseCreateVldr) AvailableCharsets(s *models.Statement, r *models.Rule)
AvailableCharsets 建库允许的字符集 RULE: CDB-L2-001
func (*DatabaseCreateVldr) AvailableCollates ¶
func (v *DatabaseCreateVldr) AvailableCollates(s *models.Statement, r *models.Rule)
AvailableCollates 建库允许的排序规则 RULE: CDB-L2-002
func (*DatabaseCreateVldr) Call ¶
func (v *DatabaseCreateVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*DatabaseCreateVldr) CharsetCollateMustMatch ¶
func (v *DatabaseCreateVldr) CharsetCollateMustMatch(s *models.Statement, r *models.Rule)
CharsetCollateMustMatch 建库的字符集与排序规则必须匹配 RULE: CDB-L2-003
func (*DatabaseCreateVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*DatabaseCreateVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*DatabaseCreateVldr) DatabaseNameLowerCaseRequired ¶
func (v *DatabaseCreateVldr) DatabaseNameLowerCaseRequired(s *models.Statement, r *models.Rule)
DatabaseNameLowerCaseRequired 库名大小写规则 RULE: CDB-L2-005
func (*DatabaseCreateVldr) DatabaseNameMaxLength ¶
func (v *DatabaseCreateVldr) DatabaseNameMaxLength(s *models.Statement, r *models.Rule)
DatabaseNameMaxLength 库名长度规则 RULE: CDB-L2-006
func (*DatabaseCreateVldr) DatabaseNameQualified ¶
func (v *DatabaseCreateVldr) DatabaseNameQualified(s *models.Statement, r *models.Rule)
DatabaseNameQualified 库名标识符规则 RULE: CDB-L2-004
func (*DatabaseCreateVldr) SetContext ¶
func (v *DatabaseCreateVldr) SetContext(ctx *Context)
SetContext 设置上下文
func (*DatabaseCreateVldr) SetGroup ¶
func (v *DatabaseCreateVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*DatabaseCreateVldr) TargetDatabaseDoesNotExist ¶
func (v *DatabaseCreateVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标数据库已经存在 RULE: CDB-L2-007
func (*DatabaseCreateVldr) Validate ¶
func (v *DatabaseCreateVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*DatabaseCreateVldr) WalkSubquery ¶
func (v *DatabaseCreateVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type DatabaseDropVldr ¶
type DatabaseDropVldr struct {
// contains filtered or unexported fields
}
DatabaseDropVldr 删除数据库语句相关的审核规则
func (*DatabaseDropVldr) Call ¶
func (v *DatabaseDropVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*DatabaseDropVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*DatabaseDropVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*DatabaseDropVldr) SetContext ¶
func (v *DatabaseDropVldr) SetContext(ctx *Context)
SetContext 设置上下文
func (*DatabaseDropVldr) SetGroup ¶
func (v *DatabaseDropVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*DatabaseDropVldr) TargetDatabaseDoesNotExist ¶
func (v *DatabaseDropVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标库不存在 RULE: DDB-L2-001
func (*DatabaseDropVldr) Validate ¶
func (v *DatabaseDropVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*DatabaseDropVldr) WalkSubquery ¶
func (v *DatabaseDropVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type DeleteVldr ¶
type DeleteVldr struct {
// contains filtered or unexported fields
}
DeleteVldr 删除数据语句相关的审核规则
func (*DeleteVldr) Call ¶
func (v *DeleteVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*DeleteVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*DeleteVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*DeleteVldr) MaxAllowedDeleteRows ¶
func (v *DeleteVldr) MaxAllowedDeleteRows(s *models.Statement, r *models.Rule)
MaxAllowedDeleteRows 单次删除的最大行数 RULE: DEL-L3-001
func (*DeleteVldr) TargetColumnDoesNotDoesNotExist ¶
func (v *DeleteVldr) TargetColumnDoesNotDoesNotExist(s *models.Statement, r *models.Rule)
TargetColumnDoesNotDoesNotExist 条件过滤列是否存在 RULE: DEL-L3-004
func (*DeleteVldr) TargetDatabaseDoesNotExist ¶
func (v *DeleteVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标库是否存在 RULE: DEL-L3-002
func (*DeleteVldr) TargetTableDoesNotDoesNotExist ¶
func (v *DeleteVldr) TargetTableDoesNotDoesNotExist(s *models.Statement, r *models.Rule)
TargetTableDoesNotDoesNotExist 目标表是否存在 RULE: DEL-L3-003
func (*DeleteVldr) WalkSubquery ¶
func (v *DeleteVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
func (*DeleteVldr) WithoutWhereNotAllowed ¶
func (v *DeleteVldr) WithoutWhereNotAllowed(s *models.Statement, r *models.Rule)
WithoutWhereNotAllowed 不允许没有WHERE的删除 RULE: DEL-L2-001
type EventAlterVldr ¶
type EventAlterVldr struct {
// contains filtered or unexported fields
}
EventAlterVldr 修改事件语句相关的审核规则
func (*EventAlterVldr) Call ¶
func (v *EventAlterVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*EventAlterVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*EventAlterVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*EventAlterVldr) SetContext ¶
func (v *EventAlterVldr) SetContext(ctx *Context)
SetContext 设置上下文
func (*EventAlterVldr) SetGroup ¶
func (v *EventAlterVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*EventAlterVldr) TargetDatabaseDoesNotExist ¶
func (v *EventAlterVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标库是否存在 RULE: MEV-L3-001
func (*EventAlterVldr) TargetEventDoesNotExist ¶
func (v *EventAlterVldr) TargetEventDoesNotExist(s *models.Statement, r *models.Rule)
TargetEventDoesNotExist 目标事件是否存在 RULE: MEV-L3-002
func (*EventAlterVldr) Validate ¶
func (v *EventAlterVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*EventAlterVldr) WalkSubquery ¶
func (v *EventAlterVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type EventCreateVldr ¶
type EventCreateVldr struct {
// contains filtered or unexported fields
}
EventCreateVldr 创建事件语句相关的审核规则
func (*EventCreateVldr) Call ¶
func (v *EventCreateVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*EventCreateVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*EventCreateVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*EventCreateVldr) EventNameLowerCaseRequired ¶
func (v *EventCreateVldr) EventNameLowerCaseRequired(s *models.Statement, r *models.Rule)
EventNameLowerCaseRequired 事件名大小写规则 RULE: CEV-L2-002
func (*EventCreateVldr) EventNameMaxLength ¶
func (v *EventCreateVldr) EventNameMaxLength(s *models.Statement, r *models.Rule)
EventNameMaxLength 事件名长度规则 RULE: CEV-L2-003
func (*EventCreateVldr) EventNamePrefixRequired ¶
func (v *EventCreateVldr) EventNamePrefixRequired(s *models.Statement, r *models.Rule)
EventNamePrefixRequired 事件名前缀规则 RULE: CEV-L2-004
func (*EventCreateVldr) EventNameQualified ¶
func (v *EventCreateVldr) EventNameQualified(s *models.Statement, r *models.Rule)
EventNameQualified 事件名标识符规则 RULE: CEV-L2-001
func (*EventCreateVldr) SetContext ¶
func (v *EventCreateVldr) SetContext(ctx *Context)
SetContext 设置上下文
func (*EventCreateVldr) SetGroup ¶
func (v *EventCreateVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*EventCreateVldr) TargetDatabaseDoesNotExist ¶
func (v *EventCreateVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标库是否存在 RULE: CEV-L3-001
func (*EventCreateVldr) TargetEventDoesNotExist ¶
func (v *EventCreateVldr) TargetEventDoesNotExist(s *models.Statement, r *models.Rule)
TargetEventDoesNotExist 目标事件是否存在 RULE: CEV-L3-002
func (*EventCreateVldr) Validate ¶
func (v *EventCreateVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*EventCreateVldr) WalkSubquery ¶
func (v *EventCreateVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type EventDropVldr ¶
type EventDropVldr struct {
// contains filtered or unexported fields
}
EventDropVldr 删除事件语句相关的审核规则
func (*EventDropVldr) Call ¶
func (v *EventDropVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*EventDropVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*EventDropVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*EventDropVldr) SetContext ¶
func (v *EventDropVldr) SetContext(ctx *Context)
SetContext 设置上下文
func (*EventDropVldr) SetGroup ¶
func (v *EventDropVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*EventDropVldr) TargetDatabaseDoesNotExist ¶
func (v *EventDropVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标库是否存在 RULE: DEV-L3-001
func (*EventDropVldr) TargetEventDoesNotExist ¶
func (v *EventDropVldr) TargetEventDoesNotExist(s *models.Statement, r *models.Rule)
TargetEventDoesNotExist 目标事件是否存在 RULE: DEV-L3-002
func (*EventDropVldr) Validate ¶
func (v *EventDropVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*EventDropVldr) WalkSubquery ¶
func (v *EventDropVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type FuncAlterVldr ¶
type FuncAlterVldr struct {
// contains filtered or unexported fields
}
FuncAlterVldr 修改函数语句相关的审核规则
func (*FuncAlterVldr) Call ¶
func (v *FuncAlterVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*FuncAlterVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*FuncAlterVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*FuncAlterVldr) SetContext ¶
func (v *FuncAlterVldr) SetContext(ctx *Context)
SetContext 设置上下文
func (*FuncAlterVldr) SetGroup ¶
func (v *FuncAlterVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*FuncAlterVldr) TargetDatabaseDoesNotExist ¶
func (v *FuncAlterVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标库是否存在 RULE: MFU-L3-001
func (*FuncAlterVldr) TargetFuncDoesNotExist ¶
func (v *FuncAlterVldr) TargetFuncDoesNotExist(s *models.Statement, r *models.Rule)
TargetFuncDoesNotExist 目标函数是否存在 RULE: MFU-L3-002
func (*FuncAlterVldr) Validate ¶
func (v *FuncAlterVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*FuncAlterVldr) WalkSubquery ¶
func (v *FuncAlterVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type FuncCreateVldr ¶
type FuncCreateVldr struct {
// contains filtered or unexported fields
}
FuncCreateVldr 创建函数语句相关的审核规则
func (*FuncCreateVldr) Call ¶
func (v *FuncCreateVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*FuncCreateVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*FuncCreateVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*FuncCreateVldr) FuncNameLowerCaseRequired ¶
func (v *FuncCreateVldr) FuncNameLowerCaseRequired(s *models.Statement, r *models.Rule)
FuncNameLowerCaseRequired 函数名大小写规则 RULE: CFU-L2-002
func (*FuncCreateVldr) FuncNameMaxLength ¶
func (v *FuncCreateVldr) FuncNameMaxLength(s *models.Statement, r *models.Rule)
FuncNameMaxLength 函数名长度规则 RULE: CFU-L2-003
func (*FuncCreateVldr) FuncNamePrefixRequired ¶
func (v *FuncCreateVldr) FuncNamePrefixRequired(s *models.Statement, r *models.Rule)
FuncNamePrefixRequired 函数名前缀规则 RULE: CFU-L2-004
func (*FuncCreateVldr) FuncNameQuilified ¶
func (v *FuncCreateVldr) FuncNameQuilified(s *models.Statement, r *models.Rule)
FuncNameQuilified 函数名标识符规则 RULE: CFU-L2-001
func (*FuncCreateVldr) SetContext ¶
func (v *FuncCreateVldr) SetContext(ctx *Context)
SetContext 设置上下文
func (*FuncCreateVldr) SetGroup ¶
func (v *FuncCreateVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*FuncCreateVldr) TargetDatabaseDoesNotExist ¶
func (v *FuncCreateVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标库是否存在 RULE: CFU-L3-001
func (*FuncCreateVldr) TargetFuncDoesNotExist ¶
func (v *FuncCreateVldr) TargetFuncDoesNotExist(s *models.Statement, r *models.Rule)
TargetFuncDoesNotExist 目标函数是否存在 RULE: CFU-L3-002
func (*FuncCreateVldr) Validate ¶
func (v *FuncCreateVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*FuncCreateVldr) WalkSubquery ¶
func (v *FuncCreateVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type FuncDropVldr ¶
type FuncDropVldr struct {
// contains filtered or unexported fields
}
FuncDropVldr 删除函数语句相关的审核规则
func (*FuncDropVldr) Call ¶
func (v *FuncDropVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*FuncDropVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*FuncDropVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*FuncDropVldr) SetGroup ¶
func (v *FuncDropVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*FuncDropVldr) TargetDatabaseDoesNotExist ¶
func (v *FuncDropVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标库是否存在 RULE: DFU-L3-001
func (*FuncDropVldr) TargetFuncDoesNotExist ¶
func (v *FuncDropVldr) TargetFuncDoesNotExist(s *models.Statement, r *models.Rule)
TargetFuncDoesNotExist 目标函数是否存在 RULE: DFU-L3-002
func (*FuncDropVldr) Validate ¶
func (v *FuncDropVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*FuncDropVldr) WalkSubquery ¶
func (v *FuncDropVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type IndexCreateVldr ¶
type IndexCreateVldr struct {
// contains filtered or unexported fields
}
IndexCreateVldr 创建索引语句相关的审核规则
func (*IndexCreateVldr) Call ¶
func (v *IndexCreateVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*IndexCreateVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*IndexCreateVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*IndexCreateVldr) IndexColumnDuplicate ¶
func (v *IndexCreateVldr) IndexColumnDuplicate(s *models.Statement, r *models.Rule)
IndexColumnDuplicate 组合索引中是否有重复列 RULE: CIX-L2-006
func (*IndexCreateVldr) IndexNameDuplicate ¶
func (v *IndexCreateVldr) IndexNameDuplicate(s *models.Statement, r *models.Rule)
IndexNameDuplicate 索引名是否重复 RULE: CIX-L3-005
func (*IndexCreateVldr) IndexNameLowerCaseRequired ¶
func (v *IndexCreateVldr) IndexNameLowerCaseRequired(s *models.Statement, r *models.Rule)
IndexNameLowerCaseRequired 索引名大小写规则 RULE: CIX-L2-003
func (*IndexCreateVldr) IndexNameMaxLength ¶
func (v *IndexCreateVldr) IndexNameMaxLength(s *models.Statement, r *models.Rule)
IndexNameMaxLength 索引名长度规则 RULE: CIX-L2-004
func (*IndexCreateVldr) IndexNamePrefixRequired ¶
func (v *IndexCreateVldr) IndexNamePrefixRequired(s *models.Statement, r *models.Rule)
IndexNamePrefixRequired 索引名前缀规则 RULE: CIX-L2-005
func (*IndexCreateVldr) IndexNameQualified ¶
func (v *IndexCreateVldr) IndexNameQualified(s *models.Statement, r *models.Rule)
IndexNameQualified 索引名标识符规则 RULE: CIX-L2-002
func (*IndexCreateVldr) IndexOnBlobColumnNotAllowed ¶
func (v *IndexCreateVldr) IndexOnBlobColumnNotAllowed(s *models.Statement, r *models.Rule)
IndexOnBlobColumnNotAllowed 是否允许在BLOB/TEXT列上建索引 RULE: CIX-L3-007
func (*IndexCreateVldr) IndexOverlayNotAllowed ¶
func (v *IndexCreateVldr) IndexOverlayNotAllowed(s *models.Statement, r *models.Rule)
IndexOverlayNotAllowed 索引内容是否重复 RULE: CIX-L3-004
func (*IndexCreateVldr) MaxAllowedIndexColumnCount ¶
func (v *IndexCreateVldr) MaxAllowedIndexColumnCount(s *models.Statement, r *models.Rule)
MaxAllowedIndexColumnCount 组合索引允许的最大列数 RULE: CIX-L2-001
func (*IndexCreateVldr) MaxAllowedIndexCount ¶
func (v *IndexCreateVldr) MaxAllowedIndexCount(s *models.Statement, r *models.Rule)
MaxAllowedIndexCount 最多能建多少个索引 RULE: CIX-L3-006
func (*IndexCreateVldr) SetContext ¶
func (v *IndexCreateVldr) SetContext(ctx *Context)
SetContext 设置上下文
func (*IndexCreateVldr) SetGroup ¶
func (v *IndexCreateVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*IndexCreateVldr) TargetColumnDoesNotExist ¶
func (v *IndexCreateVldr) TargetColumnDoesNotExist(s *models.Statement, r *models.Rule)
TargetColumnDoesNotExist 添加索引的列是否存在 RULE: CIX-L3-003
func (*IndexCreateVldr) TargetDatabaseDoesNotExist ¶
func (v *IndexCreateVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 添加索引的表所属库是否存在 RULE: CIX-L3-001
func (*IndexCreateVldr) TargetTableDoesNotExist ¶
func (v *IndexCreateVldr) TargetTableDoesNotExist(s *models.Statement, r *models.Rule)
TargetTableDoesNotExist 条件索引的表是否存在 RULE: CIX-L3-002
func (*IndexCreateVldr) Validate ¶
func (v *IndexCreateVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*IndexCreateVldr) WalkSubquery ¶
func (v *IndexCreateVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type IndexDropVldr ¶
type IndexDropVldr struct {
// contains filtered or unexported fields
}
IndexDropVldr 删除索引语句相关的审核规则
func (*IndexDropVldr) Call ¶
func (v *IndexDropVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*IndexDropVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*IndexDropVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*IndexDropVldr) SetContext ¶
func (v *IndexDropVldr) SetContext(ctx *Context)
SetContext 设置上下文
func (*IndexDropVldr) SetGroup ¶
func (v *IndexDropVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*IndexDropVldr) TargetDatabaseDoesNotExist ¶
func (v *IndexDropVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标库是否存在 RULE: RIX-L3-001
func (*IndexDropVldr) TargetIndexDoesNotExist ¶
func (v *IndexDropVldr) TargetIndexDoesNotExist(s *models.Statement, r *models.Rule)
TargetIndexDoesNotExist 目标索引是否存在 RULE: RIX-L3-003
func (*IndexDropVldr) TargetTableDoesNotExist ¶
func (v *IndexDropVldr) TargetTableDoesNotExist(s *models.Statement, r *models.Rule)
TargetTableDoesNotExist 目标表是否存在 RULE: RIX-L3-002
func (*IndexDropVldr) Validate ¶
func (v *IndexDropVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*IndexDropVldr) WalkSubquery ¶
func (v *IndexDropVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type InsertVldr ¶
type InsertVldr struct {
// contains filtered or unexported fields
}
InsertVldr 插入数据语句相关的审核规则
func (*InsertVldr) Call ¶
func (v *InsertVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*InsertVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*InsertVldr) ColumnsValuesMustMatch ¶
func (v *InsertVldr) ColumnsValuesMustMatch(s *models.Statement, r *models.Rule)
ColumnsValuesMustMatch 列类型、值是否匹配 RULE: INS-L2-005
func (*InsertVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*InsertVldr) ExplicitColumnRequired ¶
func (v *InsertVldr) ExplicitColumnRequired(s *models.Statement, r *models.Rule)
ExplicitColumnRequired 是否要求显式列申明 RULE: INS-L2-001
func (*InsertVldr) RowsLimit ¶
func (v *InsertVldr) RowsLimit(s *models.Statement, r *models.Rule)
RowsLimit 单语句允许操作的最大行数 RULE: INS-L2-004
func (*InsertVldr) TargetColumnDoesNotExist ¶
func (v *InsertVldr) TargetColumnDoesNotExist(s *models.Statement, r *models.Rule)
TargetColumnDoesNotExist 目标列是否存在 RULE: INS-L3-003
func (*InsertVldr) TargetDatabaseDoesNotExist ¶
func (v *InsertVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标库是否存在 RULE: INS-L3-001
func (*InsertVldr) TargetTableDoesNotExist ¶
func (v *InsertVldr) TargetTableDoesNotExist(s *models.Statement, r *models.Rule)
TargetTableDoesNotExist 目标表是否存在 RULE: INS-L3-002
func (*InsertVldr) UsingSelectNotAllowed ¶
func (v *InsertVldr) UsingSelectNotAllowed(s *models.Statement, r *models.Rule)
UsingSelectNotAllowed 是否允许INSERT...SELECT RULE: INS-L2-002
func (*InsertVldr) ValueForNotNullColumnRequired ¶
func (v *InsertVldr) ValueForNotNullColumnRequired(s *models.Statement, r *models.Rule)
ValueForNotNullColumnRequired 非空列是否有值 RULE: INS-L3-004
func (*InsertVldr) WalkSubquery ¶
func (v *InsertVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type MiscVldr ¶
type MiscVldr struct {
// contains filtered or unexported fields
}
MiscVldr 其他各种规则,包含跨语句相关的审核规则,检测一个工单不同语句之间的可能的问题
func (*MiscVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*MiscVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*MiscVldr) FlushTableProhibited ¶
FlushTableProhibited 是否允许FLUSH TABLE => TODO: FLUSH语法支持不全 RULE: MSC-L1-002
func (*MiscVldr) KillProhibited ¶
KillProhibited 是否允许KILL线程 RULE: MSC-L1-007
func (*MiscVldr) LockTableProhibited ¶
LockTableProhibited 是否允许LOCK TABLE RULE: MSC-L1-001
func (*MiscVldr) MergeRequired ¶
MergeRequired 合并同一个表的操作,这个对大表的ALTER很重要 RULE: MSC-L1-004
func (*MiscVldr) PurgeLogsProhibited ¶
PurgeLogsProhibited 是否允许PURGE LOG RULE: MSC-L1-005
func (*MiscVldr) SplitRequired ¶
SplitRequired 是否允许同时出现DDL、DML RULE: MSC-L1-008
func (*MiscVldr) TruncateTableProhibited ¶
TruncateTableProhibited 是否允许TRUNCATE TABLE RULE: MSC-L1-003
func (*MiscVldr) UnlockTableProhibited ¶
UnlockTableProhibited 是否允许UNLOCK TABLES RULE: MSC-L1-006
func (*MiscVldr) WalkSubquery ¶
func (v *MiscVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type ProcAlterVldr ¶
type ProcAlterVldr struct {
// contains filtered or unexported fields
}
ProcAlterVldr 修改存储过程语句相关的审核规则
func (*ProcAlterVldr) Call ¶
func (v *ProcAlterVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*ProcAlterVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*ProcAlterVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*ProcAlterVldr) SetContext ¶
func (v *ProcAlterVldr) SetContext(ctx *Context)
SetContext 设置上下文
func (*ProcAlterVldr) SetGroup ¶
func (v *ProcAlterVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*ProcAlterVldr) TargetDatabaseDoesNotExist ¶
func (v *ProcAlterVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标库是否存在 RULE: MSP-L3-001
func (*ProcAlterVldr) TargetProcDoesNotExist ¶
func (v *ProcAlterVldr) TargetProcDoesNotExist(s *models.Statement, r *models.Rule)
TargetProcDoesNotExist 目标存储过程是否存在 RULE: MSP-L3-002
func (*ProcAlterVldr) Validate ¶
func (v *ProcAlterVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*ProcAlterVldr) WalkSubquery ¶
func (v *ProcAlterVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type ProcCreateVldr ¶
type ProcCreateVldr struct {
// contains filtered or unexported fields
}
ProcCreateVldr 创建存储过程语句相关的审核规则
func (*ProcCreateVldr) Call ¶
func (v *ProcCreateVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*ProcCreateVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*ProcCreateVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*ProcCreateVldr) ProcNameLowerCaseRequired ¶
func (v *ProcCreateVldr) ProcNameLowerCaseRequired(s *models.Statement, r *models.Rule)
ProcNameLowerCaseRequired 存储过程名大小写规则 RULE: CSP-L2-002
func (*ProcCreateVldr) ProcNameMaxLength ¶
func (v *ProcCreateVldr) ProcNameMaxLength(s *models.Statement, r *models.Rule)
ProcNameMaxLength 存储过程名长度规则 RULE: CSP-L2-003
func (*ProcCreateVldr) ProcNamePrefixRequired ¶
func (v *ProcCreateVldr) ProcNamePrefixRequired(s *models.Statement, r *models.Rule)
ProcNamePrefixRequired 存储过程名前缀规则 RULE: CSP-L2-004
func (*ProcCreateVldr) ProcNameQualified ¶
func (v *ProcCreateVldr) ProcNameQualified(s *models.Statement, r *models.Rule)
ProcNameQualified 存储过程名标识符规则 RULE: CSP-L2-001
func (*ProcCreateVldr) SetContext ¶
func (v *ProcCreateVldr) SetContext(ctx *Context)
SetContext 设置上下文
func (*ProcCreateVldr) SetGroup ¶
func (v *ProcCreateVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*ProcCreateVldr) TargetDatabaseDoesNotExist ¶
func (v *ProcCreateVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标库是否存在 RULE: CSP-L3-001
func (*ProcCreateVldr) TargetProcDoesNotExist ¶
func (v *ProcCreateVldr) TargetProcDoesNotExist(s *models.Statement, r *models.Rule)
TargetProcDoesNotExist 目标存储过程是否存在 RULE: CSP-L3-002
func (*ProcCreateVldr) Validate ¶
func (v *ProcCreateVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*ProcCreateVldr) WalkSubquery ¶
func (v *ProcCreateVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type ProcDropVldr ¶
type ProcDropVldr struct {
// contains filtered or unexported fields
}
ProcDropVldr 删除存储过程语句相关的审核规则
func (*ProcDropVldr) Call ¶
func (v *ProcDropVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*ProcDropVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*ProcDropVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*ProcDropVldr) SetGroup ¶
func (v *ProcDropVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*ProcDropVldr) TargetDatabaseDoesNotExist ¶
func (v *ProcDropVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标库是否存在 RULE: DSP-L3-001
func (*ProcDropVldr) TargetProcDoesNotExist ¶
func (v *ProcDropVldr) TargetProcDoesNotExist(s *models.Statement, r *models.Rule)
TargetProcDoesNotExist 目标存储过程是否存在 RULE: DSP-L3-002
func (*ProcDropVldr) Validate ¶
func (v *ProcDropVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*ProcDropVldr) WalkSubquery ¶
func (v *ProcDropVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type ReplaceVldr ¶
type ReplaceVldr struct {
// contains filtered or unexported fields
}
ReplaceVldr 插入数据语句相关的审核规则
func (*ReplaceVldr) Call ¶
func (v *ReplaceVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*ReplaceVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*ReplaceVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*ReplaceVldr) WalkSubquery ¶
func (v *ReplaceVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type SelectVldr ¶
type SelectVldr struct {
// contains filtered or unexported fields
}
SelectVldr 查询语句审核
func (*SelectVldr) Call ¶
func (v *SelectVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*SelectVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*SelectVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*SelectVldr) ReturnBlobOrTextNotAllowed ¶
func (v *SelectVldr) ReturnBlobOrTextNotAllowed(s *models.Statement, r *models.Rule)
ReturnBlobOrTextNotAllowed 是否允许返回BLOB/TEXT列 RULE: SEL-L3-004
func (*SelectVldr) TargetColumnDoesNotDoesNotExist ¶
func (v *SelectVldr) TargetColumnDoesNotDoesNotExist(s *models.Statement, r *models.Rule)
TargetColumnDoesNotDoesNotExist 目标列必须已存在,从抽象语法数解出来所有的关联字段信息,包括FieldList/Where/OrderBy/GroupBy RULE: SEL-L3-003
func (*SelectVldr) TargetDatabaseDoesNotExist ¶
func (v *SelectVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标数据库必须已存在 RULE: SEL-L3-001
func (*SelectVldr) TargetTableDoesNotExist ¶
func (v *SelectVldr) TargetTableDoesNotExist(s *models.Statement, r *models.Rule)
TargetTableDoesNotExist 目标表必须已存在 RULE: SEL-L3-002
func (*SelectVldr) UseExplicitLockNotAllowed ¶
func (v *SelectVldr) UseExplicitLockNotAllowed(s *models.Statement, r *models.Rule)
UseExplicitLockNotAllowed 禁止指定锁的类型 RULE: SEL-L2-004
func (*SelectVldr) UseWildcardNotAllowed ¶
func (v *SelectVldr) UseWildcardNotAllowed(s *models.Statement, r *models.Rule)
UseWildcardNotAllowed 禁止SELECT STAR RULE: SEL-L2-003
func (*SelectVldr) WalkSubquery ¶
func (v *SelectVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
func (*SelectVldr) WithoutLimitNotAllowed ¶
func (v *SelectVldr) WithoutLimitNotAllowed(s *models.Statement, r *models.Rule)
WithoutLimitNotAllowed 禁止没有LIMIT的查询 RULE: SEL-L2-002
func (*SelectVldr) WithoutWhereNotAllowed ¶
func (v *SelectVldr) WithoutWhereNotAllowed(s *models.Statement, r *models.Rule)
WithoutWhereNotAllowed 禁止没有WHERE的查询 RULE: SEL-L2-001
type Stack ¶
type Stack struct { sync.Mutex // you don't have to do this if you don't want thread safety // contains filtered or unexported fields }
Stack LIFO栈的简单实现
type TableAlterVldr ¶
type TableAlterVldr struct {
// contains filtered or unexported fields
}
TableAlterVldr 修改表语句相关的审核规则
func (*TableAlterVldr) AvailableCharsets ¶
func (v *TableAlterVldr) AvailableCharsets(s *models.Statement, r *models.Rule)
AvailableCharsets 改表允许的字符集 RULE: MTB-L2-001
func (*TableAlterVldr) AvailableCollates ¶
func (v *TableAlterVldr) AvailableCollates(s *models.Statement, r *models.Rule)
AvailableCollates 改表允许的校验规则 RULE: MTB-L2-002
func (*TableAlterVldr) AvailableEngines ¶
func (v *TableAlterVldr) AvailableEngines(s *models.Statement, r *models.Rule)
AvailableEngines 改表允许的存储引擎 RULE: MTB-L2-004
func (*TableAlterVldr) Call ¶
func (v *TableAlterVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*TableAlterVldr) ColumnAvailableCharsets ¶
func (v *TableAlterVldr) ColumnAvailableCharsets(s *models.Statement, r *models.Rule)
ColumnAvailableCharsets 列允许的字符集 RULE: MTB-L2-010
func (*TableAlterVldr) ColumnAvailableCollates ¶
func (v *TableAlterVldr) ColumnAvailableCollates(s *models.Statement, r *models.Rule)
ColumnAvailableCollates 列允许的排序规则 RULE: MTB-L2-011
func (*TableAlterVldr) ColumnCharsetCollateMustMatch ¶
func (v *TableAlterVldr) ColumnCharsetCollateMustMatch(s *models.Statement, r *models.Rule)
ColumnCharsetCollateMustMatch 列的字符集与排序规则必须匹配 RULE: MTB-L2-012 TODO: 测试各种语法,了解字符集和排序规则的规则
func (*TableAlterVldr) ColumnCommentRequired ¶
func (v *TableAlterVldr) ColumnCommentRequired(s *models.Statement, r *models.Rule)
ColumnCommentRequired 列必须有注释 RULE: MTB-L2-009
func (*TableAlterVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*TableAlterVldr) ColumnNameDoesNotExist ¶
func (v *TableAlterVldr) ColumnNameDoesNotExist(s *models.Statement, r *models.Rule)
ColumnNameDoesNotExist 修改删除列 - 数据库检查
func (*TableAlterVldr) ColumnNameDuplicate ¶
func (v *TableAlterVldr) ColumnNameDuplicate(s *models.Statement, r *models.Rule)
ColumnNameDuplicate 添加列 - 数据库检查 RULE: MTB
func (*TableAlterVldr) ColumnNameLowerCaseRequired ¶
func (v *TableAlterVldr) ColumnNameLowerCaseRequired(s *models.Statement, r *models.Rule)
ColumnNameLowerCaseRequired 列名必须小写 RULE: MTB-L2-006
func (*TableAlterVldr) ColumnNameMaxLength ¶
func (v *TableAlterVldr) ColumnNameMaxLength(s *models.Statement, r *models.Rule)
ColumnNameMaxLength 列名最大长度 RULE: MTB-L2-007
func (*TableAlterVldr) ColumnNameQualified ¶
func (v *TableAlterVldr) ColumnNameQualified(s *models.Statement, r *models.Rule)
ColumnNameQualified 列名必须符合命名规范 RULE: MTB-L2-005
func (*TableAlterVldr) ColumnNotNullWithDefaultRequired ¶
func (v *TableAlterVldr) ColumnNotNullWithDefaultRequired(s *models.Statement, r *models.Rule)
ColumnNotNullWithDefaultRequired 非空列必须有默认值,应该做为警告级别 RULE: MTB-L2-013
func (*TableAlterVldr) ColumnUnwantedTypes ¶
func (v *TableAlterVldr) ColumnUnwantedTypes(s *models.Statement, r *models.Rule)
ColumnUnwantedTypes 列允许的数据类型 RULE: MTB-L2-008
func (*TableAlterVldr) CommentRequired ¶
func (v *TableAlterVldr) CommentRequired(s *models.Statement, r *models.Rule)
CommentRequired 如果修改表的注解信息,那么不可以为空 RULE: MTB-L2-005
func (*TableAlterVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*TableAlterVldr) ForeignKeyDoesNotExist ¶
func (v *TableAlterVldr) ForeignKeyDoesNotExist(s *models.Statement, r *models.Rule)
ForeignKeyDoesNotExist TODO
func (*TableAlterVldr) ForeignKeyNameExplicit ¶
func (v *TableAlterVldr) ForeignKeyNameExplicit(s *models.Statement, r *models.Rule)
ForeignKeyNameExplicit 外键是否显式命名 RULE: MTB-L2-025
func (*TableAlterVldr) ForeignKeyNameLowerCaseRequired ¶
func (v *TableAlterVldr) ForeignKeyNameLowerCaseRequired(s *models.Statement, r *models.Rule)
ForeignKeyNameLowerCaseRequired 外键名必须小写 RULE: MTB-L2-027
func (*TableAlterVldr) ForeignKeyNameMaxLength ¶
func (v *TableAlterVldr) ForeignKeyNameMaxLength(s *models.Statement, r *models.Rule)
ForeignKeyNameMaxLength 外键名最大长度 RULE: MTB-L2-028
func (*TableAlterVldr) ForeignKeyNamePrefixRequired ¶
func (v *TableAlterVldr) ForeignKeyNamePrefixRequired(s *models.Statement, r *models.Rule)
ForeignKeyNamePrefixRequired 外键名前缀规则 RULE: MTB-L2-029
func (*TableAlterVldr) ForeignKeyNameQualified ¶
func (v *TableAlterVldr) ForeignKeyNameQualified(s *models.Statement, r *models.Rule)
ForeignKeyNameQualified 外键名标识符规则 RULE: MTB-L2-026
func (*TableAlterVldr) ForeignKeyNotAllowed ¶
func (v *TableAlterVldr) ForeignKeyNotAllowed(s *models.Statement, r *models.Rule)
ForeignKeyNotAllowed 禁止外键 RULE: MTB-L2-024
func (*TableAlterVldr) FullTextIndexExplicit ¶
func (v *TableAlterVldr) FullTextIndexExplicit(s *models.Statement, r *models.Rule)
FullTextIndexExplicit 索引必须命名 RULE: MTB-L2-034
func (*TableAlterVldr) FullTextIndexNameLowerCaseRequired ¶
func (v *TableAlterVldr) FullTextIndexNameLowerCaseRequired(s *models.Statement, r *models.Rule)
FullTextIndexNameLowerCaseRequired 索引名必须小写 RULE: MTB-L2-036
func (*TableAlterVldr) FullTextIndexNameMaxLength ¶
func (v *TableAlterVldr) FullTextIndexNameMaxLength(s *models.Statement, r *models.Rule)
FullTextIndexNameMaxLength 索引名不能超过最大长度 RULE: MTB-L2-037
func (*TableAlterVldr) FullTextIndexNamePrefixRequired ¶
func (v *TableAlterVldr) FullTextIndexNamePrefixRequired(s *models.Statement, r *models.Rule)
FullTextIndexNamePrefixRequired 索引名前缀必须匹配规则 RULE: MTB-L2-038
func (*TableAlterVldr) FullTextIndexNameQualified ¶
func (v *TableAlterVldr) FullTextIndexNameQualified(s *models.Statement, r *models.Rule)
FullTextIndexNameQualified 索引名标识符规则 RULE: MTB-L2-035
func (*TableAlterVldr) FullTextIndexNotAllowed ¶
func (v *TableAlterVldr) FullTextIndexNotAllowed(s *models.Statement, r *models.Rule)
FullTextIndexNotAllowed 禁用全文索引 RULE: MTB-L2-033
func (*TableAlterVldr) IndexColumnDoesNotExist ¶
func (v *TableAlterVldr) IndexColumnDoesNotExist(s *models.Statement, r *models.Rule)
IndexColumnDoesNotExist 索引的目标字段必须存在
func (*TableAlterVldr) IndexCountLimit ¶
func (v *TableAlterVldr) IndexCountLimit(s *models.Statement, r *models.Rule)
IndexCountLimit 索引数量限制
func (*TableAlterVldr) IndexDoesNotExist ¶
func (v *TableAlterVldr) IndexDoesNotExist(s *models.Statement, r *models.Rule)
IndexDoesNotExist 修改删除列 - 数据库检查 TODO:
func (*TableAlterVldr) IndexNameDuplicate ¶
func (v *TableAlterVldr) IndexNameDuplicate(s *models.Statement, r *models.Rule)
IndexNameDuplicate 添加索引时名称不可重复
func (*TableAlterVldr) IndexNameExplicit ¶
func (v *TableAlterVldr) IndexNameExplicit(s *models.Statement, r *models.Rule)
IndexNameExplicit 索引必须命名 RULE: MTB-L2-014
func (*TableAlterVldr) IndexNameLowerCaseRequired ¶
func (v *TableAlterVldr) IndexNameLowerCaseRequired(s *models.Statement, r *models.Rule)
IndexNameLowerCaseRequired 索引名必须小写 RULE: MTB-L2-016
func (*TableAlterVldr) IndexNameMaxLength ¶
func (v *TableAlterVldr) IndexNameMaxLength(s *models.Statement, r *models.Rule)
IndexNameMaxLength 索引名最大长度 RULE: MTB-L2-017
func (*TableAlterVldr) IndexNamePrefixRequired ¶
func (v *TableAlterVldr) IndexNamePrefixRequired(s *models.Statement, r *models.Rule)
IndexNamePrefixRequired 索引名前缀规则 RULE: MTB-L2-018
func (*TableAlterVldr) IndexNameQualified ¶
func (v *TableAlterVldr) IndexNameQualified(s *models.Statement, r *models.Rule)
IndexNameQualified 索引名标识符必须满足规则 RULE: MTB-L2-015
func (*TableAlterVldr) IndexOnBlobColumnNotAllowed ¶
func (v *TableAlterVldr) IndexOnBlobColumnNotAllowed(s *models.Statement, r *models.Rule)
IndexOnBlobColumnNotAllowed 禁止在BLOB/TEXT上索引
func (*TableAlterVldr) IndexOverlayNotAllowed ¶
func (v *TableAlterVldr) IndexOverlayNotAllowed(s *models.Statement, r *models.Rule)
IndexOverlayNotAllowed 不允许索引覆盖 RULE: MTB-L3-007
func (*TableAlterVldr) MaxAllowedColumnCount ¶
func (v *TableAlterVldr) MaxAllowedColumnCount(s *models.Statement, r *models.Rule)
MaxAllowedColumnCount 列的数量是否超过阈值 RULE: MTB-L3-006
func (*TableAlterVldr) MaxAllowedIndexColumnCount ¶
func (v *TableAlterVldr) MaxAllowedIndexColumnCount(s *models.Statement, r *models.Rule)
MaxAllowedIndexColumnCount 单一索引最大列数 RULE: MTB-L2-039
func (*TableAlterVldr) MaxAllowedTimestampCount ¶
func (v *TableAlterVldr) MaxAllowedTimestampCount(s *models.Statement, r *models.Rule)
MaxAllowedTimestampCount 仅允许一个事件戳类型的列 RULE: MTB-L3-007
func (*TableAlterVldr) NewTableNameLowerCaseRequired ¶
func (v *TableAlterVldr) NewTableNameLowerCaseRequired(s *models.Statement, r *models.Rule)
NewTableNameLowerCaseRequired 更名新表必须小写 RULE: MTB-L2-031
func (*TableAlterVldr) NewTableNameMaxLength ¶
func (v *TableAlterVldr) NewTableNameMaxLength(s *models.Statement, r *models.Rule)
NewTableNameMaxLength 更名新表最大长度 RULE: MTB-L2-032
func (*TableAlterVldr) NewTableNameQualified ¶
func (v *TableAlterVldr) NewTableNameQualified(s *models.Statement, r *models.Rule)
NewTableNameQualified 更名新表标识符规则 RULE: MTB-L2-030
func (*TableAlterVldr) PositionColumnDoesNotExist ¶
func (v *TableAlterVldr) PositionColumnDoesNotExist(s *models.Statement, r *models.Rule)
PositionColumnDoesNotExist 位置标记列必须存在 RULE: MTB-L2-013
func (*TableAlterVldr) PrimaryKeyDoesNotExist ¶
func (v *TableAlterVldr) PrimaryKeyDoesNotExist(s *models.Statement, r *models.Rule)
PrimaryKeyDoesNotExist TODO
func (*TableAlterVldr) SetContext ¶
func (v *TableAlterVldr) SetContext(ctx *Context)
SetContext 设置上下文
func (*TableAlterVldr) SetGroup ¶
func (v *TableAlterVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*TableAlterVldr) TableCharsetCollateMustMatch ¶
func (v *TableAlterVldr) TableCharsetCollateMustMatch(s *models.Statement, r *models.Rule)
TableCharsetCollateMustMatch 表的字符集与排序规则必须匹配 RULE: MTB-L2-003
func (*TableAlterVldr) TargetDatabaseDoesNotExist ¶
func (v *TableAlterVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 单一索引最大列数 RULE: MTB-L2-039
func (*TableAlterVldr) TargetTableDoesNotExist ¶
func (v *TableAlterVldr) TargetTableDoesNotExist(s *models.Statement, r *models.Rule)
TargetTableDoesNotExist 单一索引最大列数 RULE: MTB-L2-039
func (*TableAlterVldr) TargetTableDuplicate ¶
func (v *TableAlterVldr) TargetTableDuplicate(s *models.Statement, r *models.Rule)
TargetTableDuplicate 修改表名,如果新名称已经存在
func (*TableAlterVldr) UniqueNameExplicit ¶
func (v *TableAlterVldr) UniqueNameExplicit(s *models.Statement, r *models.Rule)
UniqueNameExplicit 唯一索引必须命名 RULE: MTB-L2-019
func (*TableAlterVldr) UniqueNameLowerCaseRequired ¶
func (v *TableAlterVldr) UniqueNameLowerCaseRequired(s *models.Statement, r *models.Rule)
UniqueNameLowerCaseRequired 唯一索引名必须小写 RULE: MTB-L2-021
func (*TableAlterVldr) UniqueNameMaxLength ¶
func (v *TableAlterVldr) UniqueNameMaxLength(s *models.Statement, r *models.Rule)
UniqueNameMaxLength 唯一索引名不能超过最大长度 RULE: MTB-L2-022
func (*TableAlterVldr) UniqueNamePrefixRequired ¶
func (v *TableAlterVldr) UniqueNamePrefixRequired(s *models.Statement, r *models.Rule)
UniqueNamePrefixRequired 唯一索引名前缀必须符合规则 RULE: MTB-L2-023
func (*TableAlterVldr) UniqueNameQualified ¶
func (v *TableAlterVldr) UniqueNameQualified(s *models.Statement, r *models.Rule)
UniqueNameQualified 唯一索引索名标识符必须符合规则 RULE: MTB-L2-020
func (*TableAlterVldr) Validate ¶
func (v *TableAlterVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*TableAlterVldr) WalkSubquery ¶
func (v *TableAlterVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type TableCreateVldr ¶
type TableCreateVldr struct {
// contains filtered or unexported fields
}
TableCreateVldr 创建表语句相关的审核规则
func (*TableCreateVldr) AutoIncColumnDuplicate ¶
func (v *TableCreateVldr) AutoIncColumnDuplicate(s *models.Statement, r *models.Rule)
AutoIncColumnDuplicate 只允许一个自增列 RULE: CTB-L2-050
func (*TableCreateVldr) AvailableCharsets ¶
func (v *TableCreateVldr) AvailableCharsets(s *models.Statement, r *models.Rule)
AvailableCharsets 建表允许的字符集 RULE: CTB-L2-001
func (*TableCreateVldr) AvailableCollates ¶
func (v *TableCreateVldr) AvailableCollates(s *models.Statement, r *models.Rule)
AvailableCollates 建表允许的排序规则 RULE: CTB-L2-002
func (*TableCreateVldr) AvailableEngines ¶
func (v *TableCreateVldr) AvailableEngines(s *models.Statement, r *models.Rule)
AvailableEngines 建表允许的存储引擎 RULE: CTB-L2-004
func (*TableCreateVldr) Call ¶
func (v *TableCreateVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*TableCreateVldr) ColumnAutoIncAvailableTypes ¶
func (v *TableCreateVldr) ColumnAutoIncAvailableTypes(s *models.Statement, r *models.Rule)
ColumnAutoIncAvailableTypes 自增列允许的数据类型 RULE: CTB-L2-021
func (*TableCreateVldr) ColumnAutoIncMustPrimaryKey ¶
func (v *TableCreateVldr) ColumnAutoIncMustPrimaryKey(s *models.Statement, r *models.Rule)
ColumnAutoIncMustPrimaryKey 自增列必须是主键 RULE: CTB-L2-023
func (*TableCreateVldr) ColumnAutoIncUnsignedRequired ¶
func (v *TableCreateVldr) ColumnAutoIncUnsignedRequired(s *models.Statement, r *models.Rule)
ColumnAutoIncUnsignedRequired 自增列必须是无符号 RULE: CTB-L2-022
func (*TableCreateVldr) ColumnAvailableCharsets ¶
func (v *TableCreateVldr) ColumnAvailableCharsets(s *models.Statement, r *models.Rule)
ColumnAvailableCharsets 列允许的字符集 RULE: CTB-L2-017
func (*TableCreateVldr) ColumnAvailableCollates ¶
func (v *TableCreateVldr) ColumnAvailableCollates(s *models.Statement, r *models.Rule)
ColumnAvailableCollates 列允许的排序规则 RULE: CTB-L2-018
func (*TableCreateVldr) ColumnCharsetCollateMustMatch ¶
func (v *TableCreateVldr) ColumnCharsetCollateMustMatch(s *models.Statement, r *models.Rule)
ColumnCharsetCollateMustMatch 列的字符集与排序规则必须匹配 RULE: CTB-L2-019
func (*TableCreateVldr) ColumnCommentRequired ¶
func (v *TableCreateVldr) ColumnCommentRequired(s *models.Statement, r *models.Rule)
ColumnCommentRequired 列必须有注释 RULE: CTB-L2-016
func (*TableCreateVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*TableCreateVldr) ColumnNameDuplicate ¶
func (v *TableCreateVldr) ColumnNameDuplicate(s *models.Statement, r *models.Rule)
ColumnNameDuplicate 列名是否重复 RULE: CTB-L2-013
func (*TableCreateVldr) ColumnNameLowerCaseRequired ¶
func (v *TableCreateVldr) ColumnNameLowerCaseRequired(s *models.Statement, r *models.Rule)
ColumnNameLowerCaseRequired 列名是否允许大写 RULE: CTB-L2-011
func (*TableCreateVldr) ColumnNameMaxLength ¶
func (v *TableCreateVldr) ColumnNameMaxLength(s *models.Statement, r *models.Rule)
ColumnNameMaxLength 列名最大长度 RULE: CTB-L2-012
func (*TableCreateVldr) ColumnNameQualified ¶
func (v *TableCreateVldr) ColumnNameQualified(s *models.Statement, r *models.Rule)
ColumnNameQualified 列名必须符合命名规范 RULE: CTB-L2-010
func (*TableCreateVldr) ColumnNotNullWithDefaultRequired ¶
func (v *TableCreateVldr) ColumnNotNullWithDefaultRequired(s *models.Statement, r *models.Rule)
ColumnNotNullWithDefaultRequired 非空列是否有默认值 RULE: CTB-L2-020
func (*TableCreateVldr) ColumnTypesDoesNotExpect ¶
func (v *TableCreateVldr) ColumnTypesDoesNotExpect(s *models.Statement, r *models.Rule)
ColumnTypesDoesNotExpect 列不允许的数据类型 RULE: CTB-L2-015
func (*TableCreateVldr) CreateTableFromSelectNotAllowed ¶
func (v *TableCreateVldr) CreateTableFromSelectNotAllowed(s *models.Statement, r *models.Rule)
CreateTableFromSelectNotAllowed 是否允许查询语句建表 RULE: CTB-L2-009
func (*TableCreateVldr) CreateTableUseLikeNotAllowed ¶
func (v *TableCreateVldr) CreateTableUseLikeNotAllowed(s *models.Statement, r *models.Rule)
CreateTableUseLikeNotAllowed 禁止允许LIKE方式建表 RULE: CTB-L2-049
func (*TableCreateVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*TableCreateVldr) ForeignKeyNameExplicit ¶
func (v *TableCreateVldr) ForeignKeyNameExplicit(s *models.Statement, r *models.Rule)
ForeignKeyNameExplicit 是否配置外键名称 RULE: CTB-L2-043
func (*TableCreateVldr) ForeignKeyNameLowerCaseRequired ¶
func (v *TableCreateVldr) ForeignKeyNameLowerCaseRequired(s *models.Statement, r *models.Rule)
ForeignKeyNameLowerCaseRequired 外键名大小写规则 RULE: CTB-L2-045
func (*TableCreateVldr) ForeignKeyNameMaxLength ¶
func (v *TableCreateVldr) ForeignKeyNameMaxLength(s *models.Statement, r *models.Rule)
ForeignKeyNameMaxLength 外键名长度规则 RULE: CTB-L2-046
func (*TableCreateVldr) ForeignKeyNamePrefixRequired ¶
func (v *TableCreateVldr) ForeignKeyNamePrefixRequired(s *models.Statement, r *models.Rule)
ForeignKeyNamePrefixRequired 外键名前缀规则 RULE: CTB-L2-047
func (*TableCreateVldr) ForeignKeyNameQualified ¶
func (v *TableCreateVldr) ForeignKeyNameQualified(s *models.Statement, r *models.Rule)
ForeignKeyNameQualified 外键名标识符规则 RULE: CTB-L2-044
func (*TableCreateVldr) ForeignKeyNotAllowed ¶
func (v *TableCreateVldr) ForeignKeyNotAllowed(s *models.Statement, r *models.Rule)
ForeignKeyNotAllowed 是否允许外键 RULE: CTB-L2-042
func (*TableCreateVldr) IndexNameExplicit ¶
func (v *TableCreateVldr) IndexNameExplicit(s *models.Statement, r *models.Rule)
IndexNameExplicit 索引必须命名 RULE: CTB-L2-032
func (*TableCreateVldr) IndexNameLowerCaseRequired ¶
func (v *TableCreateVldr) IndexNameLowerCaseRequired(s *models.Statement, r *models.Rule)
IndexNameLowerCaseRequired 索引名大小写规则 RULE: CTB-L2-034
func (*TableCreateVldr) IndexNameMaxLength ¶
func (v *TableCreateVldr) IndexNameMaxLength(s *models.Statement, r *models.Rule)
IndexNameMaxLength 索引名长度规则 RULE: CTB-L2-035
func (*TableCreateVldr) IndexNamePrefixRequired ¶
func (v *TableCreateVldr) IndexNamePrefixRequired(s *models.Statement, r *models.Rule)
IndexNamePrefixRequired 索引名前缀规则 RULE: CTB-L2-036
func (*TableCreateVldr) IndexNameQualified ¶
func (v *TableCreateVldr) IndexNameQualified(s *models.Statement, r *models.Rule)
IndexNameQualified 索引名标识符规则 RULE: CTB-L2-033
func (*TableCreateVldr) MaxAllowedColumnCount ¶
func (v *TableCreateVldr) MaxAllowedColumnCount(s *models.Statement, r *models.Rule)
MaxAllowedColumnCount 表允许的最大列数 RULE: CTB-L2-014
func (*TableCreateVldr) MaxAllowedIndexColumnCount ¶
func (v *TableCreateVldr) MaxAllowedIndexColumnCount(s *models.Statement, r *models.Rule)
MaxAllowedIndexColumnCount 单一索引最大列数 RULE: CTB-L2-025
func (*TableCreateVldr) MaxAllowedIndexCount ¶
func (v *TableCreateVldr) MaxAllowedIndexCount(s *models.Statement, r *models.Rule)
MaxAllowedIndexCount 表中最多可建多少个索引 RULE: CTB-L2-048
func (*TableCreateVldr) MaxAllowedTimestampCount ¶
func (v *TableCreateVldr) MaxAllowedTimestampCount(s *models.Statement, r *models.Rule)
MaxAllowedTimestampCount 仅允许一个时间戳类型的列 RULE: CTB-L2-024
func (*TableCreateVldr) PrimaryKeyDuplicate ¶
func (v *TableCreateVldr) PrimaryKeyDuplicate(s *models.Statement, r *models.Rule)
PrimaryKeyDuplicate 只允许一个主键 RULE: CTB-L2-051
func (*TableCreateVldr) PrimaryKeyNameExplicit ¶
func (v *TableCreateVldr) PrimaryKeyNameExplicit(s *models.Statement, r *models.Rule)
PrimaryKeyNameExplicit 主键是否显式命名 RULE: CTB-L2-027
func (*TableCreateVldr) PrimaryKeyNameQualified ¶
func (v *TableCreateVldr) PrimaryKeyNameQualified(s *models.Statement, r *models.Rule)
PrimaryKeyNameQualified 主键名标识符规则 RULE: CTB-L2-028
func (*TableCreateVldr) PrimaryKeyRequired ¶
func (v *TableCreateVldr) PrimaryKeyRequired(s *models.Statement, r *models.Rule)
PrimaryKeyRequired 必须有主键 RULE: CTB-L2-026
func (*TableCreateVldr) PrimryKeyLowerCaseRequired ¶
func (v *TableCreateVldr) PrimryKeyLowerCaseRequired(s *models.Statement, r *models.Rule)
PrimryKeyLowerCaseRequired 主键名大小写规则 RULE: CTB-L2-029
func (*TableCreateVldr) PrimryKeyMaxLength ¶
func (v *TableCreateVldr) PrimryKeyMaxLength(s *models.Statement, r *models.Rule)
PrimryKeyMaxLength 主键名长度规则 RULE: CTB-L2-030
func (*TableCreateVldr) PrimryKeyPrefixRequired ¶
func (v *TableCreateVldr) PrimryKeyPrefixRequired(s *models.Statement, r *models.Rule)
PrimryKeyPrefixRequired 主键名前缀规则 RULE: CTB-L2-031
func (*TableCreateVldr) SetContext ¶
func (v *TableCreateVldr) SetContext(ctx *Context)
SetContext 设置上下文
func (*TableCreateVldr) SetGroup ¶
func (v *TableCreateVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*TableCreateVldr) TableCharsetCollateMustMatch ¶
func (v *TableCreateVldr) TableCharsetCollateMustMatch(s *models.Statement, r *models.Rule)
TableCharsetCollateMustMatch 建表是校验规则与字符集必须匹配 RULE: CTB-L2-003
func (*TableCreateVldr) TableCommentRequired ¶
func (v *TableCreateVldr) TableCommentRequired(s *models.Statement, r *models.Rule)
TableCommentRequired 表必须有注释 RULE: CTB-L2-008
func (*TableCreateVldr) TableNameLowerCaseRequired ¶
func (v *TableCreateVldr) TableNameLowerCaseRequired(s *models.Statement, r *models.Rule)
TableNameLowerCaseRequired 表名是否允许大写 RULE: CTB-L2-006
func (*TableCreateVldr) TableNameMaxLength ¶
func (v *TableCreateVldr) TableNameMaxLength(s *models.Statement, r *models.Rule)
TableNameMaxLength 表名最大长度 RULE: CTB-L2-007
func (*TableCreateVldr) TableNameQualified ¶
func (v *TableCreateVldr) TableNameQualified(s *models.Statement, r *models.Rule)
TableNameQualified 表名必须符合命名规范 RULE: CTB-L2-005
func (*TableCreateVldr) TargetDatabaseDoesNotExist ¶
func (v *TableCreateVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 建表时检查目标库是否存在 RULE: CTB-L3-001
func (*TableCreateVldr) TargetTableDoesNotExist ¶
func (v *TableCreateVldr) TargetTableDoesNotExist(s *models.Statement, r *models.Rule)
TargetTableDoesNotExist 建表时检查表是否已经存在 RULE: CTB-L3-002
func (*TableCreateVldr) UniqueNameExplicit ¶
func (v *TableCreateVldr) UniqueNameExplicit(s *models.Statement, r *models.Rule)
UniqueNameExplicit 唯一索引必须命名 RULE: CTB-L2-037
func (*TableCreateVldr) UniqueNameLowerCaseRequired ¶
func (v *TableCreateVldr) UniqueNameLowerCaseRequired(s *models.Statement, r *models.Rule)
UniqueNameLowerCaseRequired 唯一索引名大小写规则 RULE: CTB-L2-039
func (*TableCreateVldr) UniqueNameMaxLength ¶
func (v *TableCreateVldr) UniqueNameMaxLength(s *models.Statement, r *models.Rule)
UniqueNameMaxLength 唯一索引名长度规则 RULE: CTB-L2-040
func (*TableCreateVldr) UniqueNamePrefixRequired ¶
func (v *TableCreateVldr) UniqueNamePrefixRequired(s *models.Statement, r *models.Rule)
UniqueNamePrefixRequired 唯一索引名前缀规则 RULE: CTB-L2-041
func (*TableCreateVldr) UniqueNameQualified ¶
func (v *TableCreateVldr) UniqueNameQualified(s *models.Statement, r *models.Rule)
UniqueNameQualified 唯一索引索名标识符规则 RULE: CTB-L2-038
func (*TableCreateVldr) Validate ¶
func (v *TableCreateVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*TableCreateVldr) WalkSubquery ¶
func (v *TableCreateVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type TableDropVldr ¶
type TableDropVldr struct {
// contains filtered or unexported fields
}
TableDropVldr 删除表语句相关的审核规则
func (*TableDropVldr) Call ¶
func (v *TableDropVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*TableDropVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*TableDropVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*TableDropVldr) SetContext ¶
func (v *TableDropVldr) SetContext(ctx *Context)
SetContext 设置上下文
func (*TableDropVldr) SetGroup ¶
func (v *TableDropVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*TableDropVldr) TargetDatabaseDoesNotExist ¶
func (v *TableDropVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标库是否存在 RULE: DTB-L3-001
func (*TableDropVldr) TargetTableDoesNotExist ¶
func (v *TableDropVldr) TargetTableDoesNotExist(s *models.Statement, r *models.Rule)
TargetTableDoesNotExist 目标表是否存在 RULE: DTB-L3-002
func (*TableDropVldr) Validate ¶
func (v *TableDropVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*TableDropVldr) WalkSubquery ¶
func (v *TableDropVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type TableEntry ¶
TableEntry 抽象语法树需要访问的表
type TableRenameVldr ¶
type TableRenameVldr struct {
// contains filtered or unexported fields
}
TableRenameVldr 改名表语句相关的审核规则
func (*TableRenameVldr) Call ¶
func (v *TableRenameVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*TableRenameVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*TableRenameVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*TableRenameVldr) SetContext ¶
func (v *TableRenameVldr) SetContext(ctx *Context)
SetContext 设置上下文
func (*TableRenameVldr) SetGroup ¶
func (v *TableRenameVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*TableRenameVldr) TableRenameSourceDatabaseDoesNotExist ¶
func (v *TableRenameVldr) TableRenameSourceDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TableRenameSourceDatabaseDoesNotExist 源表是否存在 RULE: RTB-L3-002
func (*TableRenameVldr) TableRenameSourceTableDoesNotExist ¶
func (v *TableRenameVldr) TableRenameSourceTableDoesNotExist(s *models.Statement, r *models.Rule)
TableRenameSourceTableDoesNotExist 源库是否存在 RULE: RTB-L3-001
func (*TableRenameVldr) TableRenameTablesIdentical ¶
func (v *TableRenameVldr) TableRenameTablesIdentical(s *models.Statement, r *models.Rule)
TableRenameTablesIdentical 目标表跟源表是同一个表 RULE: RTB-L2-001
func (*TableRenameVldr) TableRenameTargetTableDoesNotExist ¶
func (v *TableRenameVldr) TableRenameTargetTableDoesNotExist(s *models.Statement, r *models.Rule)
TableRenameTargetTableDoesNotExist 目标库是否存在 RULE: RTB-L3-003
func (*TableRenameVldr) TableRenameTargetTableNameLowerCaseRequired ¶
func (v *TableRenameVldr) TableRenameTargetTableNameLowerCaseRequired(s *models.Statement, r *models.Rule)
TableRenameTargetTableNameLowerCaseRequired 目标表名大小写规则 RULE: RTB-L2-003
func (*TableRenameVldr) TableRenameTargetTableNameMaxLength ¶
func (v *TableRenameVldr) TableRenameTargetTableNameMaxLength(s *models.Statement, r *models.Rule)
TableRenameTargetTableNameMaxLength 目标表名长度规则 RULE: RTB-L2-004
func (*TableRenameVldr) TableRenameTargetTableNameQualified ¶
func (v *TableRenameVldr) TableRenameTargetTableNameQualified(s *models.Statement, r *models.Rule)
TableRenameTargetTableNameQualified 目标表名标识符规则 RULE: RTB-L2-002
func (*TableRenameVldr) Validate ¶
func (v *TableRenameVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*TableRenameVldr) WalkSubquery ¶
func (v *TableRenameVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type TriggerAlterVldr ¶
type TriggerAlterVldr struct {
// contains filtered or unexported fields
}
TriggerAlterVldr 修改触发器语句相关的审核规则
func (*TriggerAlterVldr) Call ¶
func (v *TriggerAlterVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*TriggerAlterVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*TriggerAlterVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*TriggerAlterVldr) SetContext ¶
func (v *TriggerAlterVldr) SetContext(ctx *Context)
SetContext 设置上下文
func (*TriggerAlterVldr) SetGroup ¶
func (v *TriggerAlterVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*TriggerAlterVldr) TargetDatabaseDoesNotExist ¶
func (v *TriggerAlterVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标库是否存在 RULE:DTG-L3-001
func (*TriggerAlterVldr) TargetTableDoesNotExist ¶
func (v *TriggerAlterVldr) TargetTableDoesNotExist(s *models.Statement, r *models.Rule)
TargetTableDoesNotExist 目标表是否存在 RULE: MTG-L3-002
func (*TriggerAlterVldr) TargetTriggerDoesNotExist ¶
func (v *TriggerAlterVldr) TargetTriggerDoesNotExist(s *models.Statement, r *models.Rule)
TargetTriggerDoesNotExist 目标触发器是否存在 RULE: MTG-L3-003
func (*TriggerAlterVldr) Validate ¶
func (v *TriggerAlterVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*TriggerAlterVldr) WalkSubquery ¶
func (v *TriggerAlterVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type TriggerCreateVldr ¶
type TriggerCreateVldr struct {
// contains filtered or unexported fields
}
TriggerCreateVldr 创建触发器语句相关的审核规则
func (*TriggerCreateVldr) Call ¶
func (v *TriggerCreateVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*TriggerCreateVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*TriggerCreateVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*TriggerCreateVldr) SetContext ¶
func (v *TriggerCreateVldr) SetContext(ctx *Context)
SetContext 设置上下文
func (*TriggerCreateVldr) SetGroup ¶
func (v *TriggerCreateVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*TriggerCreateVldr) TargetDatabaseDoesNotExist ¶
func (v *TriggerCreateVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标库是否存在 RULE: CTG-L3-001
func (*TriggerCreateVldr) TargetTableDoesNotExist ¶
func (v *TriggerCreateVldr) TargetTableDoesNotExist(s *models.Statement, r *models.Rule)
TargetTableDoesNotExist 目标表是否存在 RULE: CTG-L3-002
func (*TriggerCreateVldr) TargetTriggerDoesNotExist ¶
func (v *TriggerCreateVldr) TargetTriggerDoesNotExist(s *models.Statement, r *models.Rule)
TargetTriggerDoesNotExist 目标触发器是否存在 RULE: CTG-L3-003
func (*TriggerCreateVldr) TriggerNameLowerCaseRequired ¶
func (v *TriggerCreateVldr) TriggerNameLowerCaseRequired(s *models.Statement, r *models.Rule)
TriggerNameLowerCaseRequired 触发器名大小写规则 RULE: CTG-L2-002
func (*TriggerCreateVldr) TriggerNameMaxLength ¶
func (v *TriggerCreateVldr) TriggerNameMaxLength(s *models.Statement, r *models.Rule)
TriggerNameMaxLength 触发器名长度规则 RULE: CTG-L2-003
func (*TriggerCreateVldr) TriggerNameQualified ¶
func (v *TriggerCreateVldr) TriggerNameQualified(s *models.Statement, r *models.Rule)
TriggerNameQualified 触发器名标识符规则 RULE: CTG-L2-001
func (*TriggerCreateVldr) TriggerPrefixRequired ¶
func (v *TriggerCreateVldr) TriggerPrefixRequired(s *models.Statement, r *models.Rule)
TriggerPrefixRequired 触发器名前缀规则 RULE: CTG-L2-004
func (*TriggerCreateVldr) Validate ¶
func (v *TriggerCreateVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*TriggerCreateVldr) WalkSubquery ¶
func (v *TriggerCreateVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type TriggerDropVldr ¶
type TriggerDropVldr struct {
// contains filtered or unexported fields
}
TriggerDropVldr 删除触发器语句相关的审核规则
func (*TriggerDropVldr) Call ¶
func (v *TriggerDropVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*TriggerDropVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*TriggerDropVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*TriggerDropVldr) SetContext ¶
func (v *TriggerDropVldr) SetContext(ctx *Context)
SetContext 设置上下文
func (*TriggerDropVldr) SetGroup ¶
func (v *TriggerDropVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*TriggerDropVldr) TargetDatabaseDoesNotExist ¶
func (v *TriggerDropVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标库是否存在 RULE:DTG-L3-001
func (*TriggerDropVldr) TargetTableDoesNotExist ¶
func (v *TriggerDropVldr) TargetTableDoesNotExist(s *models.Statement, r *models.Rule)
TargetTableDoesNotExist 目标表是否存在 RULE:DTG-L3-002
func (*TriggerDropVldr) TargetTriggerDoesNotExist ¶
func (v *TriggerDropVldr) TargetTriggerDoesNotExist(s *models.Statement, r *models.Rule)
TargetTriggerDoesNotExist 目标触发器是否存在 RULE:DTG-L3-003
func (*TriggerDropVldr) Validate ¶
func (v *TriggerDropVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*TriggerDropVldr) WalkSubquery ¶
func (v *TriggerDropVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type UpdateVldr ¶
type UpdateVldr struct {
// contains filtered or unexported fields
}
UpdateVldr 数据更新语句相关的审核规则
func (*UpdateVldr) Call ¶
func (v *UpdateVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*UpdateVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*UpdateVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*UpdateVldr) MaxAllowedUpdateRows ¶
func (v *UpdateVldr) MaxAllowedUpdateRows(s *models.Statement, r *models.Rule)
MaxAllowedUpdateRows 允许单次更新的最大行数 RULE: UPD-L3-004
func (*UpdateVldr) TargetColumnDoesNotExist ¶
func (v *UpdateVldr) TargetColumnDoesNotExist(s *models.Statement, r *models.Rule)
TargetColumnDoesNotExist 目标列是否存在 RULE: UPD-L3-003
func (*UpdateVldr) TargetDatabaseDoesNotExist ¶
func (v *UpdateVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标库是否存在 RULE: UPD-L3-001
func (*UpdateVldr) TargetTableDoesNotExist ¶
func (v *UpdateVldr) TargetTableDoesNotExist(s *models.Statement, r *models.Rule)
TargetTableDoesNotExist 目标表是否存在 RULE: UPD-L3-002
func (*UpdateVldr) WalkSubquery ¶
func (v *UpdateVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
func (*UpdateVldr) WithoutWhereNotAllowed ¶
func (v *UpdateVldr) WithoutWhereNotAllowed(s *models.Statement, r *models.Rule)
WithoutWhereNotAllowed 是否允许没有WHERE的更新 RULE: UPD-L2-001
type Validator ¶
type Validator interface { SetGroup(gid uint16) // 设定分组,获得规则列表 GetRules() []*models.Rule Enabled() bool SetContext(ctx *Context) // 分组规则是否启用 Validate(wg *sync.WaitGroup) // 验证 }
Validator 接口定义
type ViewAlterVldr ¶
type ViewAlterVldr struct {
// contains filtered or unexported fields
}
ViewAlterVldr 修改视图语句相关的审核规则
func (*ViewAlterVldr) Call ¶
func (v *ViewAlterVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*ViewAlterVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*ViewAlterVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*ViewAlterVldr) SetContext ¶
func (v *ViewAlterVldr) SetContext(ctx *Context)
SetContext 设置上下文
func (*ViewAlterVldr) SetGroup ¶
func (v *ViewAlterVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*ViewAlterVldr) TargetDatabaseDoesNotExist ¶
func (v *ViewAlterVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标库是否存在 RULE: MVW-L3-001
func (*ViewAlterVldr) TargetViewDoesNotExist ¶
func (v *ViewAlterVldr) TargetViewDoesNotExist(s *models.Statement, r *models.Rule)
TargetViewDoesNotExist 目标视图是否存在 RULE: MVW-L3-002
func (*ViewAlterVldr) Validate ¶
func (v *ViewAlterVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*ViewAlterVldr) WalkSubquery ¶
func (v *ViewAlterVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type ViewCreateVldr ¶
type ViewCreateVldr struct {
// contains filtered or unexported fields
}
ViewCreateVldr 创建视图语句相关的审核规则
func (*ViewCreateVldr) Call ¶
func (v *ViewCreateVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*ViewCreateVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*ViewCreateVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*ViewCreateVldr) SetContext ¶
func (v *ViewCreateVldr) SetContext(ctx *Context)
SetContext 设置上下文
func (*ViewCreateVldr) SetGroup ¶
func (v *ViewCreateVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*ViewCreateVldr) TargetDatabaseDoesNotExist ¶
func (v *ViewCreateVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标库是否存在 RULE: CVW-L3-001
func (*ViewCreateVldr) TargetViewDoesNotExist ¶
func (v *ViewCreateVldr) TargetViewDoesNotExist(s *models.Statement, r *models.Rule)
TargetViewDoesNotExist 目标视图是否存在 RULE: CVW-L3-002
func (*ViewCreateVldr) Validate ¶
func (v *ViewCreateVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*ViewCreateVldr) ViewNameLowerCaseRequired ¶
func (v *ViewCreateVldr) ViewNameLowerCaseRequired(s *models.Statement, r *models.Rule)
ViewNameLowerCaseRequired 视图名大小写规则 RULE: CVW-L2-002
func (*ViewCreateVldr) ViewNameMaxLength ¶
func (v *ViewCreateVldr) ViewNameMaxLength(s *models.Statement, r *models.Rule)
ViewNameMaxLength 视图名长度规则 RULE: CVW-L2-003
func (*ViewCreateVldr) ViewNamePrefixRequired ¶
func (v *ViewCreateVldr) ViewNamePrefixRequired(s *models.Statement, r *models.Rule)
ViewNamePrefixRequired 视图名前缀规则 RULE: CVW-L2-004
func (*ViewCreateVldr) ViewNameQualified ¶
func (v *ViewCreateVldr) ViewNameQualified(s *models.Statement, r *models.Rule)
ViewNameQualified 视图名标识符规则 RULE: CVW-L2-001
func (*ViewCreateVldr) WalkSubquery ¶
func (v *ViewCreateVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type ViewDropVldr ¶
type ViewDropVldr struct {
// contains filtered or unexported fields
}
ViewDropVldr 删除视图语句相关的审核规则
func (*ViewDropVldr) Call ¶
func (v *ViewDropVldr) Call(method string, params ...interface{})
Call 利用反射方法动态调用审核函数
func (*ViewDropVldr) ColumnInfo ¶
ColumnInfo 获取表信息
func (*ViewDropVldr) DatabaseInfo ¶
DatabaseInfo 根据数据库名称获取数据库信息
func (*ViewDropVldr) SetGroup ¶
func (v *ViewDropVldr) SetGroup(gid uint16)
SetGroup 设置验证分组,并初始化验证规则
func (*ViewDropVldr) TargetDatabaseDoesNotExist ¶
func (v *ViewDropVldr) TargetDatabaseDoesNotExist(s *models.Statement, r *models.Rule)
TargetDatabaseDoesNotExist 目标库是否存在 RULE: DVW-L3-001
func (*ViewDropVldr) TargetViewDoesNotExist ¶
func (v *ViewDropVldr) TargetViewDoesNotExist(s *models.Statement, r *models.Rule)
TargetViewDoesNotExist 目标视图是否存在 RULE: DVW-L3-002
func (*ViewDropVldr) Validate ¶
func (v *ViewDropVldr) Validate(wg *sync.WaitGroup)
Validate 规则组的审核入口
func (*ViewDropVldr) WalkSubquery ¶
func (v *ViewDropVldr) WalkSubquery(node ast.SubqueryExpr, stack *Stack)
WalkSubquery 递归检查自查询有效性并获取访问信息
type VisitInfo ¶
type VisitInfo struct { Database string Table *TableEntry Column *ColumnEntry Index *IndexEntry }
VisitInfo 访问信息