MCPcopy Create free account
hub / github.com/bytebase/bytebase / getDatabases

Method getDatabases

backend/plugin/db/redshift/sync.go:724–768  ·  view source on GitHub ↗

getDatabases gets all databases of an instance.

(ctx context.Context)

Source from the content-addressed store, hash-verified

722
723// getDatabases gets all databases of an instance.
724func (d *Driver) getDatabases(ctx context.Context) ([]*storepb.DatabaseSchemaMetadata, error) {
725 consumerDatabases := make(map[string]bool)
726 dsRows, err := d.db.QueryContext(ctx, `
727 SELECT consumer_database FROM SVV_DATASHARES WHERE share_type = 'INBOUND';
728 `)
729 if err != nil {
730 return nil, err
731 }
732 defer dsRows.Close()
733
734 for dsRows.Next() {
735 var v string
736 if err := dsRows.Scan(&v); err != nil {
737 return nil, err
738 }
739 consumerDatabases[v] = true
740 }
741 if err := dsRows.Err(); err != nil {
742 return nil, err
743 }
744
745 var databases []*storepb.DatabaseSchemaMetadata
746 rows, err := d.db.QueryContext(ctx, `
747 SELECT datname,
748 pg_encoding_to_char(encoding)
749 FROM pg_database;
750 `)
751 if err != nil {
752 return nil, err
753 }
754 defer rows.Close()
755
756 for rows.Next() {
757 database := storepb.DatabaseSchemaMetadata{}
758 if err := rows.Scan(&database.Name, &database.CharacterSet); err != nil {
759 return nil, err
760 }
761 database.Datashare = consumerDatabases[database.Name]
762 databases = append(databases, &database)
763 }
764 if err := rows.Err(); err != nil {
765 return nil, err
766 }
767 return databases, nil
768}

Callers 3

SyncInstanceMethod · 0.95
SyncDBSchemaMethod · 0.95
createDatabaseExecuteMethod · 0.95

Implementers 15

MockDriverbackend/plugin/advisor/utils_for_tests
Driverbackend/plugin/db/bigquery/bigquery.go
Driverbackend/plugin/db/mongodb/mongodb.go
Driverbackend/plugin/db/trino/trino.go
Driverbackend/plugin/db/redshift/redshift.go
Driverbackend/plugin/db/oracle/oracle.go
Driverbackend/plugin/db/dynamodb/dynamodb.go
Driverbackend/plugin/db/cosmosdb/cosmosdb.go
Driverbackend/plugin/db/spanner/spanner.go
Driverbackend/plugin/db/mssql/mssql.go
Driverbackend/plugin/db/mysql/mysql.go
Driverbackend/plugin/db/pg/pg.go

Calls 4

QueryContextMethod · 0.80
ScanMethod · 0.80
CloseMethod · 0.65
NextMethod · 0.45

Tested by

no test coverage detected