getMaterializedViewComments gets comments for materialized views from Oracle system views
(txn *sql.Tx, schemaName string)
| 1508 | |
| 1509 | // getMaterializedViewComments gets comments for materialized views from Oracle system views |
| 1510 | func getMaterializedViewComments(txn *sql.Tx, schemaName string) (map[db.TableKey]string, error) { |
| 1511 | materializedViewCommentMap := make(map[db.TableKey]string) |
| 1512 | |
| 1513 | query := "" |
| 1514 | if schemaName == "" { |
| 1515 | query = fmt.Sprintf(` |
| 1516 | SELECT OWNER, MVIEW_NAME, COMMENTS |
| 1517 | FROM all_mview_comments |
| 1518 | WHERE OWNER NOT IN (%s) AND OWNER NOT LIKE 'APEX_%%' AND COMMENTS IS NOT NULL |
| 1519 | ORDER BY OWNER, MVIEW_NAME`, systemSchema) |
| 1520 | } else { |
| 1521 | query = fmt.Sprintf(` |
| 1522 | SELECT OWNER, MVIEW_NAME, COMMENTS |
| 1523 | FROM all_mview_comments |
| 1524 | WHERE OWNER = '%s' AND COMMENTS IS NOT NULL |
| 1525 | ORDER BY MVIEW_NAME`, schemaName) |
| 1526 | } |
| 1527 | |
| 1528 | slog.Debug("running get materialized view comments query") |
| 1529 | rows, err := txn.Query(query) |
| 1530 | if err != nil { |
| 1531 | // If the view doesn't exist, return empty map |
| 1532 | slog.Debug("materialized view comments query failed, returning empty map", slog.String("error", err.Error())) |
| 1533 | return materializedViewCommentMap, nil |
| 1534 | } |
| 1535 | defer rows.Close() |
| 1536 | |
| 1537 | for rows.Next() { |
| 1538 | var schemaName, mvName, comment string |
| 1539 | if err := rows.Scan(&schemaName, &mvName, &comment); err != nil { |
| 1540 | return nil, err |
| 1541 | } |
| 1542 | key := db.TableKey{Schema: schemaName, Table: mvName} |
| 1543 | materializedViewCommentMap[key] = common.SanitizeUTF8String(comment) |
| 1544 | } |
| 1545 | if err := rows.Err(); err != nil { |
| 1546 | return nil, util.FormatErrorWithQuery(err, query) |
| 1547 | } |
| 1548 | if err := rows.Close(); err != nil { |
| 1549 | return nil, errors.Wrapf(err, "failed to close rows") |
| 1550 | } |
| 1551 | |
| 1552 | return materializedViewCommentMap, nil |
| 1553 | } |
| 1554 | |
| 1555 | // getTriggerComments gets comments for triggers from Oracle system views |
| 1556 | func getTriggerComments(txn *sql.Tx, schemaName string) (map[db.TableKey]string, error) { |
no test coverage detected