Changes for version 0.18

  • CRUD: stricter WHERE/data validation (SQL::Abstract raw-SQL operators)
  • CRUD: statement cache for insert/update/delete/upsert (~10x faster)
  • upsert/insert_many/upsert_many: reject unbindable references
  • txn(): works with AutoCommit => 0
  • DSN: keep user without password; percent-decoding; reject ';' in parts
  • load_extension(): only accepts module names
  • MariaDB profiler: EXPLAIN runs with max_statement_time
  • Pg schema: table_info/get_indexes are schema-aware
  • Docs: insert_many last_id is driver-dependent
  • Errors record the failing sql and binds (redacted with errors_redact)
  • on_error callback; error_mark/errors_since to scope errors
  • Exception text without timestamp (groupable in logs)
  • strict_reads: failed reads throw even with RaiseError => 0
  • RaiseError => 0: a read whose prepare fails returns empty (no crash)
  • rows: affected rows of the last write
  • exists(), kv(), all_by() helpers
  • on_connect_sql: session SQL re-applied on every reconnect

Documentation

Modules

DBI fast & easy
Base class for DBIx::Fast components
Query result cache with TTL and tag invalidation
Query proxy that caches results
DBIx::Fast connection manager fork safe
Unified output layer for the profiler subsystem
Abstract base class for database driver profiles
MariaDB/MySQL profiling and diagnostics
PostgreSQL profiling and diagnostics
SQLite profiling stub
MySQL profiling and diagnostics
Query profiling and statistics for DBIx::Fast
Lightweight row iterator for query results
Query and CRUD methods of DBIx::Fast
Schema introspection for DBIx::Fast
Transaction management for DBIx::Fast