Releases: nette/database
Releases · nette/database
Released version 3.2.9
This release brings a set of focused exception types that let you catch specific database failure modes (deadlocks, lock timeouts, check constraint violations, lost connections) instead of wrestling with generic driver errors. ActiveRow and Selection now expose getExplorer() for direct access to the underlying Explorer, and the reflection layer has been refactored for more consistent metadata across drivers.
✨ New Features
- getExplorer() –
ActiveRowandSelectionnow expose the underlyingExplorerinstance, no more jumping through hoops to get back to it - DeadlockException – catch deadlocks and serialization failures distinctly from other driver errors, so retry logic can stay surgical
- LockTimeoutException – a dedicated exception for lock wait timeouts
- CheckConstraintViolationException – check constraint violations now get their own class instead of being lumped with generic constraint errors
- ConnectionLostException – distinguish dropped connections from other driver failures, making reconnect strategies much cleaner
- Docker Compose setup – a ready-to-run Compose configuration for spinning up test databases locally
♻️ Code Refactoring
- Drivers reflection output – unified FK row shape across drivers, simplified MsSql
getIndexesSQL, parameterized SQLite PRAGMA queries, andForeignKey::$nameis now a non-nullable string
📦 Maintenance
- Improved PHPDoc descriptions, phpDoc types, and native type declarations across the codebase
Released version 3.2.8
- support for PHP 8.5
- OciDriver: in case of applyLimit with different offset returns always the same result
Released version 3.2.7
- SqlPreprocessor:
IN()inserts parameters directly and bypasses binding - added
GroupedSelection::refreshData() - Reflection: added comment to Column and Table
- Structure: removed unused parameter
Released version 3.2.6
- fixed performance issue of ActiveRow #312
- ConnectionPanel: added whole stack trace listing
- ConnectionPanel: fixed source resolution
- ConnectionPanel: table does not exceed the window
- ConnectionPanel: convert templates to Latte-like syntax
- Selection: factory methods moved to Explorer
- SqlPreprocessor: added braces around where conditions
- SqlPreprocessor: fixed bugs in WHERE
- big refactoring of SqlPreprocessor
- deprecated Driver::SupportSubselect
Selection::fixedAssoc()silently deprecated- SQLite: column type can be omitted #315
Released version 3.2.5
- ResultSet: added
fetchList()as alias forfetchFields()& shortcuts ResultSet::fetchAssoc()returns associative array by default, added shortcuts- removed dead code
Released version 4.0.0 RC 1
Main Features
- Ability to create drivers for additional PHP database extensions, not just PDO
- Merging of Connection & Explorer
- Improved control over data type transformation with options
convertBoolean,convertDateTime, andconvertDecimal
Changes
Connection::getInsertId()now returns integers- The options
convertBooleanandnewDateTime(returns date asNette\Database\DateTime) are enabled by default - Removed interfaces
IRowandIRowContainer - Removed methods
Connection::getPdo()andgetDsn()
Released version 3.2.4
- ResultSet, Selection:
fetchPairs()accepts callback - Selection: support for generics
- drivers: improved getting db structure
- Reflection improvements
normalizeRow(): removed extra float handling #307Helpers::detectType()supports 'INT UNSIGNED'- md5 replaced with xxHash
- removed return type 'never' to allow inheritance #303
- MySQL: supportBooleans renamed to convertBoolean
- PascalCase constants
MySqlDriver::initialize()removed support for 'utf8' charset before 5.5.3- Selection: fixed type error on empty aggregations #309
SqlsrvDriver::applyLimit()removed support for SQL Server < 2012- support for PHP 8.4
Released version 3.2.1
- added reflection for Table, Column, Index, ForeignKey
- returns date-time as immutable Nette\Database\DateTime (when 'newDateTime' is enabled) #270
Released version 3.2.0
- requires PHP 8.1
- added PHP 8 typehints, uses PHP 8.1 features
- MySqlDriver: DECIMAL with precision=0 is returned as int (BC break)
- normalizeRow: converts zero-date 0000-00-00 to NULL (BC break)
- normalizeRow: time columns resets date to 0001-01-01 (BC break)
- Numeric/decimal data type is detected as FIELD_DECIMAL
- MySqlDriver: TINYINT(1) is returned as bool (when 'supportBooleans' is enabled)
Released version 3.1.9
- support for PHP 8.3
- used PhpStorm Language attribute