gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

tracer.go (3023B)


      1 package pgx
      2 
      3 import (
      4 	"context"
      5 
      6 	"github.com/jackc/pgx/v5/pgconn"
      7 )
      8 
      9 // QueryTracer traces Query, QueryRow, and Exec.
     10 type QueryTracer interface {
     11 	// TraceQueryStart is called at the beginning of Query, QueryRow, and Exec calls. The returned context is used for the
     12 	// rest of the call and will be passed to TraceQueryEnd.
     13 	TraceQueryStart(ctx context.Context, conn *Conn, data TraceQueryStartData) context.Context
     14 
     15 	TraceQueryEnd(ctx context.Context, conn *Conn, data TraceQueryEndData)
     16 }
     17 
     18 type TraceQueryStartData struct {
     19 	SQL  string
     20 	Args []any
     21 }
     22 
     23 type TraceQueryEndData struct {
     24 	CommandTag pgconn.CommandTag
     25 	Err        error
     26 }
     27 
     28 // BatchTracer traces SendBatch.
     29 type BatchTracer interface {
     30 	// TraceBatchStart is called at the beginning of SendBatch calls. The returned context is used for the
     31 	// rest of the call and will be passed to TraceBatchQuery and TraceBatchEnd.
     32 	TraceBatchStart(ctx context.Context, conn *Conn, data TraceBatchStartData) context.Context
     33 
     34 	TraceBatchQuery(ctx context.Context, conn *Conn, data TraceBatchQueryData)
     35 	TraceBatchEnd(ctx context.Context, conn *Conn, data TraceBatchEndData)
     36 }
     37 
     38 type TraceBatchStartData struct {
     39 	Batch *Batch
     40 }
     41 
     42 type TraceBatchQueryData struct {
     43 	SQL        string
     44 	Args       []any
     45 	CommandTag pgconn.CommandTag
     46 	Err        error
     47 }
     48 
     49 type TraceBatchEndData struct {
     50 	Err error
     51 }
     52 
     53 // CopyFromTracer traces CopyFrom.
     54 type CopyFromTracer interface {
     55 	// TraceCopyFromStart is called at the beginning of CopyFrom calls. The returned context is used for the
     56 	// rest of the call and will be passed to TraceCopyFromEnd.
     57 	TraceCopyFromStart(ctx context.Context, conn *Conn, data TraceCopyFromStartData) context.Context
     58 
     59 	TraceCopyFromEnd(ctx context.Context, conn *Conn, data TraceCopyFromEndData)
     60 }
     61 
     62 type TraceCopyFromStartData struct {
     63 	TableName   Identifier
     64 	ColumnNames []string
     65 }
     66 
     67 type TraceCopyFromEndData struct {
     68 	CommandTag pgconn.CommandTag
     69 	Err        error
     70 }
     71 
     72 // PrepareTracer traces Prepare.
     73 type PrepareTracer interface {
     74 	// TracePrepareStart is called at the beginning of Prepare calls. The returned context is used for the
     75 	// rest of the call and will be passed to TracePrepareEnd.
     76 	TracePrepareStart(ctx context.Context, conn *Conn, data TracePrepareStartData) context.Context
     77 
     78 	TracePrepareEnd(ctx context.Context, conn *Conn, data TracePrepareEndData)
     79 }
     80 
     81 type TracePrepareStartData struct {
     82 	Name string
     83 	SQL  string
     84 }
     85 
     86 type TracePrepareEndData struct {
     87 	AlreadyPrepared bool
     88 	Err             error
     89 }
     90 
     91 // ConnectTracer traces Connect and ConnectConfig.
     92 type ConnectTracer interface {
     93 	// TraceConnectStart is called at the beginning of Connect and ConnectConfig calls. The returned context is used for
     94 	// the rest of the call and will be passed to TraceConnectEnd.
     95 	TraceConnectStart(ctx context.Context, data TraceConnectStartData) context.Context
     96 
     97 	TraceConnectEnd(ctx context.Context, data TraceConnectEndData)
     98 }
     99 
    100 type TraceConnectStartData struct {
    101 	ConnConfig *ConnConfig
    102 }
    103 
    104 type TraceConnectEndData struct {
    105 	Conn *Conn
    106 	Err  error
    107 }