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
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
Examples
- examples/README.md
- examples/benchmark-cache-backends.pl
- examples/benchmark-lazy-require.pl
- examples/benchmark-profiler-regex.pl
- examples/benchmark-query-cache.pl
- examples/benchmark-statement-cache.pl
- examples/monitor-connections.pl
- examples/profiler-mariadb.pl
- examples/profiler-pg.pl
- examples/raw-sql.pl