MCPcopy Index your code
hub / github.com/bytebase/bytebase / getMaterializedViewComments

Function getMaterializedViewComments

backend/plugin/db/oracle/sync.go:1510–1553  ·  view source on GitHub ↗

getMaterializedViewComments gets comments for materialized views from Oracle system views

(txn *sql.Tx, schemaName string)

Source from the content-addressed store, hash-verified

1508
1509// getMaterializedViewComments gets comments for materialized views from Oracle system views
1510func 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
1556func getTriggerComments(txn *sql.Tx, schemaName string) (map[db.TableKey]string, error) {

Callers 1

getMaterializedViewsFunction · 0.85

Calls 9

SanitizeUTF8StringFunction · 0.92
FormatErrorWithQueryFunction · 0.92
DebugMethod · 0.80
ScanMethod · 0.80
QueryMethod · 0.65
StringMethod · 0.65
CloseMethod · 0.65
ErrorMethod · 0.45
NextMethod · 0.45

Tested by

no test coverage detected