| 750 | } |
| 751 | |
| 752 | func RenameCreateTable(createTable string, newSchema string, newTable string, columnMap []string) (string, error) { |
| 753 | stmt0, err := parser.New().ParseOneStmt(createTable, "", "") |
| 754 | if err != nil { |
| 755 | return "", err |
| 756 | } |
| 757 | stmt, ok := stmt0.(*ast.CreateTableStmt) |
| 758 | if !ok { |
| 759 | return "", fmt.Errorf("not create table stmt %v", createTable) |
| 760 | } |
| 761 | stmt.Table.Schema = model.NewCIStr(newSchema) |
| 762 | stmt.Table.Name = model.NewCIStr(newTable) |
| 763 | |
| 764 | stmt.Cols = BuildCreateTableColsFromMap(stmt.Cols, columnMap) |
| 765 | |
| 766 | buf := bytes.NewBuffer(nil) |
| 767 | err = stmt.Restore(parserformat.NewRestoreCtx(common.ParserRestoreFlag, buf)) |
| 768 | if err != nil { |
| 769 | return "", err |
| 770 | } |
| 771 | |
| 772 | return buf.String(), nil |
| 773 | } |