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

Method Open

backend/plugin/db/cockroachdb/cockroachdb.go:63–103  ·  view source on GitHub ↗

Open opens a Postgres driver.

(_ context.Context, _ storepb.Engine, config db.ConnectionConfig)

Source from the content-addressed store, hash-verified

61
62// Open opens a Postgres driver.
63func (d *Driver) Open(_ context.Context, _ storepb.Engine, config db.ConnectionConfig) (db.Driver, error) {
64 pgxConnConfig, err := getCockroachConnectionConfig(config)
65 if err != nil {
66 return nil, err
67 }
68
69 if config.DataSource.GetSshHost() != "" {
70 sshClient, err := util.GetSSHClient(config.DataSource)
71 if err != nil {
72 return nil, err
73 }
74 d.sshClient = sshClient
75
76 pgxConnConfig.DialFunc = func(_ context.Context, network, addr string) (net.Conn, error) {
77 conn, err := sshClient.Dial(network, addr)
78 if err != nil {
79 return nil, err
80 }
81 return &util.NoDeadlineConn{Conn: conn}, nil
82 }
83 }
84
85 d.databaseName = config.ConnectionContext.DatabaseName
86 if config.ConnectionContext.DatabaseName != "" {
87 pgxConnConfig.Database = config.ConnectionContext.DatabaseName
88 } else if config.DataSource.GetDatabase() != "" {
89 pgxConnConfig.Database = config.DataSource.GetDatabase()
90 } else {
91 pgxConnConfig.Database = "postgres"
92 }
93 d.config = config
94
95 d.connectionString = stdlib.RegisterConnConfig(pgxConnConfig)
96 db, err := sql.Open(driverName, d.connectionString)
97 if err != nil {
98 return nil, err
99 }
100 d.db = db
101 d.connectionCtx = config.ConnectionContext
102 return d, nil
103}
104
105// getRoutingIDFromCockroachCloudURL returns the routing ID from the Cockroach Cloud URL, returns empty string if not found.
106func getRoutingIDFromCockroachCloudURL(host string) string {

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 6

GetSSHClientFunction · 0.92
DialMethod · 0.65
GetDatabaseMethod · 0.65
OpenMethod · 0.65
GetSshHostMethod · 0.45

Tested by

no test coverage detected