(ctx context.Context, statement string)
| 688 | } |
| 689 | |
| 690 | func (d *Driver) createDatabaseExecute(ctx context.Context, statement string) error { |
| 691 | databaseName, err := getDatabaseInCreateDatabaseStatement(statement) |
| 692 | if err != nil { |
| 693 | return err |
| 694 | } |
| 695 | databases, err := d.getDatabases(ctx) |
| 696 | if err != nil { |
| 697 | return err |
| 698 | } |
| 699 | for _, database := range databases { |
| 700 | if database.Name == databaseName { |
| 701 | // Database already exists. |
| 702 | return nil |
| 703 | } |
| 704 | } |
| 705 | |
| 706 | for _, s := range strings.Split(statement, "\n") { |
| 707 | if _, err := d.db.ExecContext(ctx, s); err != nil { |
| 708 | return err |
| 709 | } |
| 710 | } |
| 711 | return nil |
| 712 | } |
| 713 | |
| 714 | var ( |
| 715 | // DROP DATABASE cannot run inside a transaction block. |
no test coverage detected