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

Method getResultsQueryStatement

pgconn/pgconn.go:2701–2750  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

2699}
2700
2701func (p *Pipeline) getResultsQueryStatement() (*ResultReader, error) {
2702 err := p.receiveBindComplete("QueryStatement")
2703 if err != nil {
2704 return nil, err
2705 }
2706
2707 msg, err := p.receiveMessage()
2708 if err != nil {
2709 return nil, err
2710 }
2711
2712 sd, resultFormats := p.state.ExtractFrontStatementData()
2713 if sd == nil {
2714 return nil, errors.New("BUG: missing statement description or result formats for QueryStatement")
2715 }
2716 sdFields := sd.Fields
2717 fieldDescriptions := p.conn.getFieldDescriptionSlice(len(sdFields))
2718 err = combineFieldDescriptionsAndResultFormats(fieldDescriptions, sdFields, resultFormats)
2719 if err != nil {
2720 return nil, err
2721 }
2722
2723 switch msg := msg.(type) {
2724 case *pgproto3.DataRow:
2725 rr := ResultReader{
2726 pgConn: p.conn,
2727 pipeline: p,
2728 ctx: p.ctx,
2729 fieldDescriptions: fieldDescriptions,
2730 }
2731 rr.preloadRowValues(msg.Values)
2732 p.conn.resultReader = rr
2733 return &p.conn.resultReader, nil
2734 case *pgproto3.CommandComplete:
2735 p.conn.resultReader = ResultReader{
2736 commandTag: p.conn.makeCommandTag(msg.CommandTag),
2737 commandConcluded: true,
2738 closed: true,
2739 fieldDescriptions: fieldDescriptions,
2740 }
2741 return &p.conn.resultReader, nil
2742 case *pgproto3.ErrorResponse:
2743 pgErr := ErrorResponseToPgError(msg)
2744 p.state.HandleError(pgErr)
2745 p.conn.resultReader.closed = true
2746 return nil, pgErr
2747 default:
2748 return nil, p.handleUnexpectedMessage("QueryStatement", msg)
2749 }
2750}
2751
2752func (p *Pipeline) getResultsDeallocate() (*CloseComplete, error) {
2753 msg, err := p.receiveMessage()

Callers 1

getResultsMethod · 0.95

Calls 10

receiveBindCompleteMethod · 0.95
receiveMessageMethod · 0.95
preloadRowValuesMethod · 0.95
ErrorResponseToPgErrorFunction · 0.85
makeCommandTagMethod · 0.80
HandleErrorMethod · 0.80

Tested by

no test coverage detected