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

Method QueryConn

backend/plugin/db/hive/hive.go:181–206  ·  view source on GitHub ↗
(ctx context.Context, _ *sql.Conn, statement string, queryCtx db.QueryContext)

Source from the content-addressed store, hash-verified

179}
180
181func (d *Driver) QueryConn(ctx context.Context, _ *sql.Conn, statement string, queryCtx db.QueryContext) ([]*v1pb.QueryResult, error) {
182 if d.db == nil {
183 return nil, errors.New("connection not initialized")
184 }
185
186 singleSQLs, err := base.SplitMultiSQL(storepb.Engine_HIVE, statement)
187 if err != nil {
188 return nil, errors.Wrapf(err, "failed to split statements")
189 }
190
191 var results []*v1pb.QueryResult
192 for _, singleSQL := range singleSQLs {
193 statement := util.TrimStatement(singleSQL.Text)
194 if queryCtx.Explain {
195 statement = fmt.Sprintf("EXPLAIN %s", statement)
196 }
197
198 result, err := d.queryStatementWithLimit(ctx, statement, queryCtx.MaximumSQLResultSize)
199 if err != nil {
200 return nil, err
201 }
202
203 results = append(results, result)
204 }
205 return results, nil
206}
207
208// This function converts basic types to types that have implemented isRowValue_Kind interface.
209func parseValueType(value any, gohiveType string) *v1pb.RowValue {

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 3

SplitMultiSQLFunction · 0.92
TrimStatementFunction · 0.92

Tested by

no test coverage detected