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

Method QueryConn

backend/plugin/db/mongodb/mongodb.go:179–197  ·  view source on GitHub ↗

QueryConn queries a SQL statement in a given connection.

(ctx context.Context, _ *sql.Conn, statement string, queryContext db.QueryContext)

Source from the content-addressed store, hash-verified

177
178// QueryConn queries a SQL statement in a given connection.
179func (d *Driver) QueryConn(ctx context.Context, _ *sql.Conn, statement string, queryContext db.QueryContext) ([]*v1pb.QueryResult, error) {
180 if queryContext.Explain {
181 return nil, errors.New("MongoDB does not support EXPLAIN")
182 }
183
184 statement = strings.Trim(statement, " \t\n\r\f;")
185 startTime := time.Now()
186
187 gmClient := gomongo.NewClient(d.client)
188 var gmOpts []gomongo.ExecuteOption
189 if queryContext.Limit > 0 {
190 gmOpts = append(gmOpts, gomongo.WithMaxRows(int64(queryContext.Limit)))
191 }
192 result, err := gmClient.Execute(ctx, d.databaseName, statement, gmOpts...)
193 if err != nil {
194 return nil, err
195 }
196 return d.convertGomongoResult(result, statement, startTime), nil
197}
198
199func (*Driver) convertGomongoResult(res *gomongo.Result, statement string, startTime time.Time) []*v1pb.QueryResult {
200 rows := []*v1pb.QueryRow{}

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 2

convertGomongoResultMethod · 0.95
ExecuteMethod · 0.65

Tested by

no test coverage detected