(txn *sql.Tx)
| 185 | } |
| 186 | |
| 187 | func getSchemas(txn *sql.Tx) ([]string, error) { |
| 188 | query := fmt.Sprintf(` |
| 189 | SELECT username FROM all_users |
| 190 | WHERE username NOT IN (%s) AND username NOT LIKE 'APEX_%%' ORDER BY username`, |
| 191 | systemSchema) |
| 192 | slog.Debug("running get schemas query") |
| 193 | rows, err := txn.Query(query) |
| 194 | if err != nil { |
| 195 | return nil, util.FormatErrorWithQuery(err, query) |
| 196 | } |
| 197 | defer rows.Close() |
| 198 | |
| 199 | var result []string |
| 200 | for rows.Next() { |
| 201 | var schemaName string |
| 202 | if err := rows.Scan(&schemaName); err != nil { |
| 203 | return nil, err |
| 204 | } |
| 205 | result = append(result, schemaName) |
| 206 | } |
| 207 | if err := rows.Err(); err != nil { |
| 208 | return nil, util.FormatErrorWithQuery(err, query) |
| 209 | } |
| 210 | if err := rows.Close(); err != nil { |
| 211 | return nil, errors.Wrapf(err, "failed to close rows") |
| 212 | } |
| 213 | |
| 214 | return result, nil |
| 215 | } |
| 216 | |
| 217 | func getTriggers(txn *sql.Tx, schemaName string) (map[db.TableKey][]*storepb.TriggerMetadata, map[db.TableKey][]*storepb.TriggerMetadata, error) { |
| 218 | tableTriggerMap := make(map[db.TableKey][]*storepb.TriggerMetadata) |
no test coverage detected