MCPcopy Create free account
hub / github.com/dolthub/doltgresql / resultForOkIter

Function resultForOkIter

server/doltgres_handler.go:557–578  ·  view source on GitHub ↗

resultForOkIter reads a maximum of one result row from a result iterator.

(ctx *sql.Context, iter sql.RowIter)

Source from the content-addressed store, hash-verified

555
556// resultForOkIter reads a maximum of one result row from a result iterator.
557func resultForOkIter(ctx *sql.Context, iter sql.RowIter) (*Result, error) {
558 defer trace.StartRegion(ctx, "DoltgresHandler.resultForOkIter").End()
559
560 row, err := iter.Next(ctx)
561 if err != nil {
562 if printErrorStackTraces {
563 fmt.Printf("row: %+v\n", err)
564 }
565 return nil, err
566 }
567 _, err = iter.Next(ctx)
568 if err != io.EOF {
569 return nil, errors.Errorf("result schema iterator returned more than one row")
570 }
571 if err := iter.Close(ctx); err != nil {
572 return nil, err
573 }
574
575 return &Result{
576 RowsAffected: row[0].(types.OkResult).RowsAffected,
577 }, nil
578}
579
580// resultForEmptyIter ensures that an expected empty iterator returns no rows.
581func resultForEmptyIter(ctx *sql.Context, iter sql.RowIter) (*Result, error) {

Callers 1

doQueryMethod · 0.85

Calls 4

PrintfMethod · 0.80
ErrorfMethod · 0.65
CloseMethod · 0.65
NextMethod · 0.45

Tested by

no test coverage detected