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

Function getParamsForStatement

flightsqlserver/sqlite_server.go:600–630  ·  view source on GitHub ↗
(rdr flight.MessageReader)

Source from the content-addressed store, hash-verified

598}
599
600func getParamsForStatement(rdr flight.MessageReader) (params [][]interface{}, err error) {
601 params = make([][]interface{}, 0)
602 for rdr.Next() {
603 rec := rdr.Record()
604
605 nrows := int(rec.NumRows())
606 ncols := int(rec.NumCols())
607
608 for i := 0; i < nrows; i++ {
609 invokeParams := make([]interface{}, ncols)
610 for c := 0; c < ncols; c++ {
611 col := rec.Column(c)
612 sc, err := scalar.GetScalar(col, i)
613 if err != nil {
614 return nil, err
615 }
616 if r, ok := sc.(scalar.Releasable); ok {
617 r.Release()
618 }
619
620 invokeParams[c], err = scalarToIFace(sc)
621 if err != nil {
622 return nil, err
623 }
624 }
625 params = append(params, invokeParams)
626 }
627 }
628
629 return params, rdr.Err()
630}
631
632func (s *SQLiteFlightSQLServer) DoPutPreparedStatementQuery(_ context.Context, cmd flightsql.PreparedStatementQuery, rdr flight.MessageReader, _ flight.MetadataWriter) ([]byte, error) {
633 val, ok := s.prepared.Load(string(cmd.GetPreparedStatementHandle()))

Callers 2

Calls 5

scalarToIFaceFunction · 0.85
NextMethod · 0.45
RecordMethod · 0.45
ReleaseMethod · 0.45
ErrMethod · 0.45

Tested by

no test coverage detected