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

Method Query

batch.go:335–385  ·  view source on GitHub ↗

Query reads the results from the next query in the batch as if the query has been sent with Query.

()

Source from the content-addressed store, hash-verified

333
334// Query reads the results from the next query in the batch as if the query has been sent with Query.
335func (br *pipelineBatchResults) Query() (Rows, error) {
336 if br.err != nil {
337 return &baseRows{err: br.err, closed: true}, br.err
338 }
339
340 if br.closed {
341 alreadyClosedErr := fmt.Errorf("batch already closed")
342 return &baseRows{err: alreadyClosedErr, closed: true}, alreadyClosedErr
343 }
344
345 if br.lastRows != nil && br.lastRows.err != nil {
346 br.err = br.lastRows.err
347 return &baseRows{err: br.err, closed: true}, br.err
348 }
349
350 query, arguments, err := br.nextQueryAndArgs()
351 if err != nil {
352 return &baseRows{err: err, closed: true}, err
353 }
354
355 rows := br.conn.getRows(br.ctx, query, arguments)
356 rows.batchTracer = br.conn.batchTracer
357 br.lastRows = rows
358
359 results, err := br.pipeline.GetResults()
360 if err != nil {
361 br.err = err
362 rows.err = err
363 rows.closed = true
364
365 if br.conn.batchTracer != nil {
366 br.conn.batchTracer.TraceBatchQuery(br.ctx, br.conn, TraceBatchQueryData{
367 SQL: query,
368 Args: arguments,
369 Err: err,
370 })
371 }
372 } else {
373 switch results := results.(type) {
374 case *pgconn.ResultReader:
375 rows.resultReader = results
376 default:
377 err = fmt.Errorf("unexpected pipeline result: %T", results)
378 br.err = err
379 rows.err = err
380 rows.closed = true
381 }
382 }
383
384 return rows, rows.err
385}
386
387// QueryRow reads the results from the next query in the batch as if the query has been sent with QueryRow.
388func (br *pipelineBatchResults) QueryRow() Row {

Callers 1

QueryRowMethod · 0.95

Calls 4

nextQueryAndArgsMethod · 0.95
getRowsMethod · 0.80
GetResultsMethod · 0.80
TraceBatchQueryMethod · 0.65

Tested by

no test coverage detected