MCPcopy
hub / github.com/jackc/pgx / getResultsPrepare

Method getResultsPrepare

pgconn/pgconn.go:2628–2676  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

2626}
2627
2628func (p *Pipeline) getResultsPrepare() (*StatementDescription, error) {
2629 err := p.receiveParseComplete("Prepare")
2630 if err != nil {
2631 return nil, err
2632 }
2633
2634 psd := &StatementDescription{}
2635
2636 msg, err := p.receiveMessage()
2637 if err != nil {
2638 return nil, err
2639 }
2640
2641 switch msg := msg.(type) {
2642 case *pgproto3.ParameterDescription:
2643 psd.ParamOIDs = make([]uint32, len(msg.ParameterOIDs))
2644 copy(psd.ParamOIDs, msg.ParameterOIDs)
2645 case *pgproto3.ErrorResponse:
2646 pgErr := ErrorResponseToPgError(msg)
2647 p.state.HandleError(pgErr)
2648 return nil, pgErr
2649 default:
2650 return nil, p.handleUnexpectedMessage("Prepare ParameterDescription", msg)
2651 }
2652
2653 msg, err = p.receiveMessage()
2654 if err != nil {
2655 return nil, err
2656 }
2657
2658 switch msg := msg.(type) {
2659 case *pgproto3.RowDescription:
2660 psd.Fields = make([]FieldDescription, len(msg.Fields))
2661 convertRowDescription(psd.Fields, msg)
2662 return psd, nil
2663
2664 // NoData is returned instead of RowDescription when there is no expected result. e.g. An INSERT without a RETURNING
2665 // clause.
2666 case *pgproto3.NoData:
2667 return psd, nil
2668
2669 case *pgproto3.ErrorResponse:
2670 pgErr := ErrorResponseToPgError(msg)
2671 p.state.HandleError(pgErr)
2672 return nil, pgErr
2673 default:
2674 return nil, p.handleUnexpectedMessage("Prepare RowDescription", msg)
2675 }
2676}
2677
2678func (p *Pipeline) getResultsQueryParams() (*ResultReader, error) {
2679 err := p.receiveParseComplete("QueryParams")

Callers 1

getResultsMethod · 0.95

Calls 6

receiveParseCompleteMethod · 0.95
receiveMessageMethod · 0.95
ErrorResponseToPgErrorFunction · 0.85
convertRowDescriptionFunction · 0.85
HandleErrorMethod · 0.80

Tested by

no test coverage detected