MCPcopy
hub / github.com/sqlc-dev/sqlc / Explain

Method Explain

internal/cmd/vet.go:308–328  ·  view source on GitHub ↗
(ctx context.Context, query string, args ...*plugin.Parameter)

Source from the content-addressed store, hash-verified

306}
307
308func (p *pgxConn) Explain(ctx context.Context, query string, args ...*plugin.Parameter) (*vetEngineOutput, error) {
309 eQuery := "EXPLAIN (ANALYZE false, VERBOSE, COSTS, SETTINGS, BUFFERS, FORMAT JSON) " + query
310 eArgs := make([]any, len(args))
311 for i, a := range args {
312 eArgs[i] = pgDefaultValue(a.Column)
313 }
314 row := p.c.QueryRow(ctx, eQuery, eArgs...)
315 var result []json.RawMessage
316 if err := row.Scan(&result); err != nil {
317 return nil, err
318 }
319 if debug.Debug.DumpExplain {
320 fmt.Println(eQuery, "with args", eArgs)
321 fmt.Println(string(result[0]))
322 }
323 var explain vet.PostgreSQLExplain
324 if err := pjson.Unmarshal(result[0], &explain); err != nil {
325 return nil, err
326 }
327 return &vetEngineOutput{PostgreSQL: &vet.PostgreSQL{Explain: &explain}}, nil
328}
329
330type dbPreparer struct {
331 db *sql.DB

Callers

nothing calls this directly

Calls 3

pgDefaultValueFunction · 0.85
QueryRowMethod · 0.65
ScanMethod · 0.45

Tested by

no test coverage detected