(s *customStmt) QueryContext( 2. ctx context.Context, 3. args []driver.NamedValue) (driver.Rows, error) { 4. casted, ok := s.stmt.(driver.StmtQueryContext) 5. if !ok { 6. // fallback 7. dargs := make([]driver.Value, len(args)) 8. for i, nv := range args { dargs[i] = nv.Value } 9. return s.Query(dargs) 10. } 11. 12. rows, err := casted.QueryContext(ctx, args) 13. if err != nil { 14. s.logger.Error("query failed", slog.String("query", s.query), 15. slog.Any("args", args), slog.Any("error", err)) 16. } else { 17. s.logger.Info("queried success", slog.String("query", s.query), 18. slog.Any("args", args)) 19. } 20. 21. return rows, err 22. }