| 130 | } |
| 131 | |
| 132 | func parseSqlFilter(strs []string) (*SqlFilter, error) { |
| 133 | s := &SqlFilter{} |
| 134 | for i := range strs { |
| 135 | switch strings.ToLower(strs[i]) { |
| 136 | case "nodml": |
| 137 | s.NoDML = true |
| 138 | case "nodmldelete": |
| 139 | s.NoDMLDelete = true |
| 140 | case "nodmlinsert": |
| 141 | s.NoDMLInsert = true |
| 142 | case "nodmlupdate": |
| 143 | s.NoDMLUpdate = true |
| 144 | |
| 145 | case "noddl": |
| 146 | s.NoDDL = true |
| 147 | case "noddlcreateschema": |
| 148 | s.NoDDLCreateSchema = true |
| 149 | case "noddlcreatetable": |
| 150 | s.NoDDLCreateTable = true |
| 151 | case "noddldropschema": |
| 152 | s.NoDDLDropSchema = true |
| 153 | case "noddldroptable": |
| 154 | s.NoDDLDropTable = true |
| 155 | case "noddldropindex": |
| 156 | s.NoDDLDropIndex = true |
| 157 | case "noddltruncate": |
| 158 | s.NoDDLTruncate = true |
| 159 | case "noddlaltertable": |
| 160 | s.NoDDLAlterTable = true |
| 161 | |
| 162 | case "noddlaltertableaddcolumn": |
| 163 | s.NoDDLAlterTableAddColumn = true |
| 164 | case "noddlaltertabledropcolumn": |
| 165 | s.NoDDLAlterTableDropColumn = true |
| 166 | case "noddlaltertablemodifycolumn": |
| 167 | s.NoDDLAlterTableModifyColumn = true |
| 168 | case "noddlaltertablechangecolumn": |
| 169 | s.NoDDLAlterTableChangeColumn = true |
| 170 | case "noddlaltertablealtercolumn": |
| 171 | s.NoDDLAlterTableAlterColumn = true |
| 172 | |
| 173 | default: |
| 174 | return nil, fmt.Errorf("unknown sql filter item: %v", strs[i]) |
| 175 | } |
| 176 | } |
| 177 | return s, nil |
| 178 | } |
| 179 | |
| 180 | func NewBinlogReader( |
| 181 | execCtx *common.ExecContext, cfg *common.MySQLDriverConfig, logger g.LoggerType, |