(stmt *ast.AlterTableStmt)
| 184 | } |
| 185 | |
| 186 | func (c *Catalog) alterTable(stmt *ast.AlterTableStmt) error { |
| 187 | if !isStmtImplemented(stmt) { |
| 188 | return nil |
| 189 | } |
| 190 | _, table, err := c.getTable(stmt.Table) |
| 191 | if err != nil { |
| 192 | return checkMissing(err, stmt.MissingOk) |
| 193 | } |
| 194 | for _, item := range stmt.Cmds.Items { |
| 195 | switch cmd := item.(type) { |
| 196 | case *ast.AlterTableCmd: |
| 197 | switch cmd.Subtype { |
| 198 | case ast.AT_AddColumn: |
| 199 | if err := c.addColumn(table, cmd); err != nil { |
| 200 | return err |
| 201 | } |
| 202 | case ast.AT_AlterColumnType: |
| 203 | if err := table.alterColumnType(cmd); err != nil { |
| 204 | return err |
| 205 | } |
| 206 | case ast.AT_DropColumn: |
| 207 | if err := c.dropColumn(table, cmd); err != nil { |
| 208 | return err |
| 209 | } |
| 210 | case ast.AT_DropNotNull: |
| 211 | if err := table.dropNotNull(cmd); err != nil { |
| 212 | return err |
| 213 | } |
| 214 | case ast.AT_SetNotNull: |
| 215 | if err := table.setNotNull(cmd); err != nil { |
| 216 | return err |
| 217 | } |
| 218 | } |
| 219 | } |
| 220 | } |
| 221 | return nil |
| 222 | } |
| 223 | |
| 224 | func (c *Catalog) alterTableSetSchema(stmt *ast.AlterTableSetSchemaStmt) error { |
| 225 | ns := stmt.Table.Schema |
no test coverage detected