getEvents gets all events of a database.
(db *sql.DB, dbName string)
| 575 | |
| 576 | // getEvents gets all events of a database. |
| 577 | func getEvents(db *sql.DB, dbName string) ([]*eventSchema, error) { |
| 578 | var events []*eventSchema |
| 579 | query := fmt.Sprintf("SHOW EVENTS FROM `%s`;", dbName) |
| 580 | rows, err := db.Query(query) |
| 581 | if err != nil { |
| 582 | return nil, err |
| 583 | } |
| 584 | defer rows.Close() |
| 585 | |
| 586 | cols, err := rows.Columns() |
| 587 | if err != nil { |
| 588 | return nil, err |
| 589 | } |
| 590 | var values []any |
| 591 | for i := 0; i < len(cols); i++ { |
| 592 | values = append(values, new(any)) |
| 593 | } |
| 594 | for rows.Next() { |
| 595 | var r eventSchema |
| 596 | if err := rows.Scan(values...); err != nil { |
| 597 | return nil, err |
| 598 | } |
| 599 | r.name = fmt.Sprintf("%s", *values[1].(*any)) |
| 600 | events = append(events, &r) |
| 601 | } |
| 602 | if err := rows.Err(); err != nil { |
| 603 | return nil, util.FormatErrorWithQuery(err, query) |
| 604 | } |
| 605 | |
| 606 | for _, r := range events { |
| 607 | stmt, err := getEventStmt(db, dbName, r.name) |
| 608 | if err != nil { |
| 609 | return nil, errors.Wrapf(err, "failed to call getEventStmt(%q, %q)", dbName, r.name) |
| 610 | } |
| 611 | r.statement = stmt |
| 612 | } |
| 613 | return events, nil |
| 614 | } |
| 615 | |
| 616 | // getEventStmt gets the create statement of an event. |
| 617 | func getEventStmt(db *sql.DB, dbName, eventName string) (string, error) { |
no test coverage detected