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

Method SyncInstance

backend/plugin/db/starrocks/sync.go:38–99  ·  view source on GitHub ↗

SyncInstance syncs the instance.

(ctx context.Context)

Source from the content-addressed store, hash-verified

36
37// SyncInstance syncs the instance.
38func (d *Driver) SyncInstance(ctx context.Context) (*db.InstanceMetadata, error) {
39 version, _, err := d.getVersion(ctx)
40 if err != nil {
41 return nil, err
42 }
43
44 var lowerCaseTableNames int32
45 lowerCaseTableNamesText, err := d.getServerVariable(ctx, "lower_case_table_names")
46 if err != nil {
47 slog.Debug("failed to get lower_case_table_names variable", log.BBError(err))
48 } else {
49 v, err := strconv.ParseInt(lowerCaseTableNamesText, 10, 32)
50 if err != nil {
51 slog.Debug("failed to parse lower_case_table_names variable", log.BBError(err))
52 } else {
53 lowerCaseTableNames = int32(v)
54 }
55 }
56
57 // Query db info
58 where := fmt.Sprintf("LOWER(SCHEMA_NAME) NOT IN (%s)", d.systemDatabaseExclusion())
59 query := `
60 SELECT
61 SCHEMA_NAME,
62 DEFAULT_CHARACTER_SET_NAME,
63 DEFAULT_COLLATION_NAME
64 FROM information_schema.SCHEMATA
65 WHERE ` + where
66 rows, err := d.db.QueryContext(ctx, query)
67 if err != nil {
68 return nil, util.FormatErrorWithQuery(err, query)
69 }
70 defer rows.Close()
71
72 var databases []*storepb.DatabaseSchemaMetadata
73 for rows.Next() {
74 database := &storepb.DatabaseSchemaMetadata{}
75 if err := rows.Scan(
76 &database.Name,
77 &database.CharacterSet,
78 &database.Collation,
79 ); err != nil {
80 return nil, err
81 }
82 if d.dbType == storepb.Engine_DORIS || d.dbType == storepb.Engine_STARROCKS {
83 database.CharacterSet = ""
84 database.Collation = ""
85 }
86 databases = append(databases, database)
87 }
88 if err := rows.Err(); err != nil {
89 return nil, err
90 }
91
92 return &db.InstanceMetadata{
93 Version: version,
94 Databases: databases,
95 Metadata: &storepb.Instance{

Callers

nothing calls this directly

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 10

getVersionMethod · 0.95
getServerVariableMethod · 0.95
BBErrorFunction · 0.92
FormatErrorWithQueryFunction · 0.92
DebugMethod · 0.80
QueryContextMethod · 0.80
ScanMethod · 0.80
CloseMethod · 0.65
NextMethod · 0.45

Tested by

no test coverage detected