This is a major release that includes breaking changes. Please refer to the upgrade guide for more details.
API Improvements and Cleanup
- Strict scalar type declarations (#2854).
- Scalar parameter and return value types (#3511, #3569 and others).
- Disallow empty CompositeExpression #3868 and make it immutable #3858
- Improved error handling in prepared statements:
- Transaction-related Statement methods return void and throw an exception
- Converted
Connection
andStatement
methods which returnedfalse
in case of a failure intovoid
- Improved behavior of
Connection::getDatabase()
(#3606) - Autoincrement via identity columns on PostgreSQL
- Use native syntax for Top-N queries on Oracle (#5150) and IBM DB2 (#5156)
- Handle lost connection during commit #4713
- Reworked
AbstractPlatform::get*Expression()
methods #3498 - Do not require a WHERE in update() and delete() Connection operations #5567
- Improvements in exception hierarchy and semantics
- Remove defaults for MySQL table charset, collation and engine
- Convert ParameterType to enum
- Convert enum-like classes to enums #5554
- Improved Schema Diff API (no more public properties, almost immutable)
Major Backward Compatibility Breaks
- Get rid of hard-coded default values of maximum field lengths (#3586).
- Column precision no longer defaults to 10. Scale and precision must be explicitly specified for decomal columns (#3348).
- Made the OFFSET in LIMIT queries non-nullable integer defaulting to 0
- Connection::quote() can only quote strings. Note that using this method is discouraged. Use prepared statements instead.
- Getting rid of the column name index #3583
- Represent table columns as list in the order of declaration #4777
- Drop support for SQL Server 2016 and older
- Drop support for Postgres 9
- Drop support for MySQL 5.6 and older and MariaDB 10.2.6 and older
- Drop support for MariaDB 10.4.2 and older
- Drop support for Oracle 12c and older
- Remove
AbstractPlatform::hasNative*Type()
methods andType::requiresSQLCommentHint()
- Removed support for driver name aliases
- Removed extension via Doctrine Event Manager
Major Bugfixes
- Removed
Connection::$_schemaManager()
and::getSchemaManager()
(#4518) - Removed
Connection::$_expr
(#4516) and::getExpressionBuilder()
(#4540)