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

Method Next

flightsqlserver/sql_batch_reader.go:257–344  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

255func (r *SqlBatchReader) Err() error { return r.err }
256
257func (r *SqlBatchReader) Next() bool {
258 if r.record != nil {
259 r.record.Release()
260 r.record = nil
261 }
262
263 rows := 0
264 for rows < maxBatchSize && r.rows.Next() {
265 if err := r.rows.Scan(r.rowdest...); err != nil {
266 // Not really useful except for testing Flight SQL clients
267 detail := wrapperspb.StringValue{Value: r.schema.String()}
268 if st, sterr := status.New(codes.Unknown, err.Error()).WithDetails(&detail); sterr != nil {
269 r.err = err
270 } else {
271 r.err = st.Err()
272 }
273 return false
274 }
275
276 for i, v := range r.rowdest {
277 fb := r.bldr.Field(i)
278
279 switch v := v.(type) {
280 case *uint8:
281 fb.(*array.Uint8Builder).Append(*v)
282 case *sql.NullByte:
283 if !v.Valid {
284 fb.AppendNull()
285 } else {
286 fb.(*array.Uint8Builder).Append(v.Byte)
287 }
288 case *int64:
289 fb.(*array.Int64Builder).Append(*v)
290 case *sql.NullInt64:
291 if !v.Valid {
292 fb.AppendNull()
293 } else {
294 fb.(*array.Int64Builder).Append(v.Int64)
295 }
296 case *int32:
297 fb.(*array.Int32Builder).Append(*v)
298 case *sql.NullInt32:
299 if !v.Valid {
300 fb.AppendNull()
301 } else {
302 fb.(*array.Int32Builder).Append(v.Int32)
303 }
304 case *float64:
305 switch b := fb.(type) {
306 case *array.Float64Builder:
307 b.Append(*v)
308 case *array.Float32Builder:
309 b.Append(float32(*v))
310 }
311 case *sql.NullFloat64:
312 if !v.Valid {
313 fb.AppendNull()
314 } else {

Calls 5

AppendMethod · 0.80
FieldMethod · 0.65
ReleaseMethod · 0.45
StringMethod · 0.45
ErrMethod · 0.45