MCPcopy Create free account
hub / github.com/apecloud/myduckserver / doGetQuery

Function doGetQuery

flightsqlserver/sqlite_server.go:489–509  ·  view source on GitHub ↗
(ctx context.Context, db *sql.DB, query string, schema *arrow.Schema, args ...interface{})

Source from the content-addressed store, hash-verified

487
488func doGetQuery(ctx context.Context, db *sql.DB, query string, schema *arrow.Schema, args ...interface{}) (*arrow.Schema, <-chan flight.StreamChunk, error) {
489
490 conn, err := db.Conn(ctx)
491 var duckConn *duckdb.Conn
492 err = conn.Raw(func(driverConn any) error {
493 duckConn = driverConn.(*duckdb.Conn)
494 return nil
495 })
496 arrow, err := duckdb.NewArrowFromConn(duckConn)
497 if err != nil {
498 return nil, nil, err
499 }
500 rdr, err := arrow.QueryContext(ctx, query, args...)
501 if err != nil {
502 return nil, nil, err
503 }
504 schema = rdr.Schema()
505 ch := make(chan flight.StreamChunk)
506 go flight.StreamChunksFromReader(ctx, rdr, ch)
507 return schema, ch, nil
508}
509
510func (s *SQLiteFlightSQLServer) DoGetPreparedStatement(ctx context.Context, cmd flightsql.PreparedStatementQuery) (schema *arrow.Schema, out <-chan flight.StreamChunk, err error) {
511 val, ok := s.prepared.Load(string(cmd.GetPreparedStatementHandle()))
512

Callers 6

DoGetStatementMethod · 0.85
DoGetTableTypesMethod · 0.85
DoGetPrimaryKeysMethod · 0.85
DoGetImportedKeysMethod · 0.85
DoGetExportedKeysMethod · 0.85
DoGetCrossReferenceMethod · 0.85

Calls 3

ConnMethod · 0.80
QueryContextMethod · 0.80
SchemaMethod · 0.45

Tested by

no test coverage detected