Releases: doctrine/dbal
Release v2.9.3
Release v2.9.3
This release fixes regressions introduced in previous releases and other bugs.
- Total issues resolved: 5
- Total pull requests resolved: 14
- Total contributors: 9
Regressions
-
3686: Fixed query result caching when
FetchMode::COLUMN
is used thanks to @morozov and @Junker -
3456: Compare type class when comparing columns. thanks to @garret-gunter and @cs278
Other bugs
-
3679: fix begin trasaction after reconnect thanks to @kalinin-k-a
-
3547: Default column expressions do not work on SQL Server thanks to @morozov
-
3420: Index length can be a
string
: ensure that it is an integer when read by theMySqlSchemaManager
thanks to @leofeyer
CI improvements and maintenance
-
3702: Updated SQL Server extensions to fix build failures on PHP 7.4 thanks to @morozov
-
3662: Marked connection exception test incomplete on MySQL 8 thanks to @morozov
-
3622: Switched from ibmcom/db2express-c to ibmcom/db2 thanks to @morozov
-
3465: Replaced MySQL 5.7 installed from a PPA with an official Docker image thanks to @morozov
-
3454: CI: Test against PHP 7.4snapshot instead of nightly (8.0) thanks to @Majkl578
-
3452: Fixed AppVeyor build configuration and the issue on SQL Server thanks to @morozov and @Majkl578
-
3447: Replaced custom docker image for PostgreSQL with the official one thanks to @morozov
-
3407: CI: Test against MySQL 8.0 on Travis thanks to @morozov
PHP 7.4 support
- 3642: Fixed test failures on PHP 7.4 thanks to @morozov
Release v2.9.2
Release v2.9.2
This release fixes regressions introduced in v2.9.1.
- Total issues resolved: 2
MySQL, Schema Introspection:
- 3410: MySqlSchemaManager::parseCreateOptions() must be of the type string, null given thanks to @jarnovanleeuwen and @morozov
MySQL, Schema Comparison:
Release v2.9.1
Release v2.9.1
This release fixes regressions introduced in v2.9.0 and issues specific to the SQL Anywhere platform.
- Total issues resolved: 11
MySQL, Schema Introspection:
- 3393: Fixed parsing MySQL create table flags (options without a value) thanks to @morozov and @AdrianSherwood
- 3398: BC Break in 2.9.0 for MySQL Tables containing partitions thanks to @bcremer
SQL Anywhere:
- 3375: [SQL Anywhere] Fix bound parameter references in PHP 7 thanks to @deeky666
- 3378: [SQL Anywhere] Fix query limit values "0" and "null" thanks to @deeky666
- 3385: [SQL Anywhere] Fix fetching empty values via fetchAll() thanks to @deeky666
- 3386: [SQL Anywhere] Fix view schema introspection test thanks to @deeky666
Schema Comparison:
- 3382: Reverted strict comparison back to loose because of a new regression thanks to @morozov and @Majkl578
Connections:
Cache:
Documentation:
Release v2.9.0
Release v2.9.0
This is a minor release of Doctrine DBAL that aggregates over 40 fixes and improvements developed by 18 contributors over the last 5 months.
This release includes all changes of the 2.8.x series, as well as feature additions and improvements that couldn't land in patch releases.
Backwards Compatibility Breaks
This doesn't contain any intentional Backwards Compatibility (BC) breaks.
Deprecations
- The usage of
NULL
to specify the absence of an offset inLIMIT
ed queries is deprecated. Use0
instead. - It's not recommended to rely on the default length specified by implementations of
Type
. These values are not used by the library and will be removed. - It's not recommended to rely on the string representation of
Type
objects. - Regular-expression based asset filters are deprecated in favor of callback-based as more extensible.
- Calling
Statement::fetchColumn()
with an invalid column index is deprecated. - The
dbal:import
CLI command is deprecated. Please use other database client applications for import.
Please see details in the UPGRADE.md documentation.
New Features
- Added support for MariaDB 10.3.
- Added support for Windows authentication for SQL Server.
- Added support for column length in index definitions on MySQL.
Improvements and Fixes
- Implemented handling BLOB objects represented as streams in the MySQL (
mysqli
) driver. - Implemented handling BLOB objects represented as streams in the IBM DB2 driver.
- DBAL is now continuously tested with the PDO driver for Oracle.
- Implemented handling of URLs in master-slave and pooling-shard connection configuration.
- The codebase is now fully compatible with the Doctrine Coding Standard v5.0.
Total issues resolved: 45
Deprecations:
- 3244: Deprecated dbal:import CLI command thanks to @morozov
- 3253: Deprecated usage of the NULL offset in LIMITed queries thanks to @morozov
- 3256: Deprecate Doctrine\DBAL\Types\Type::getDefaultLength() thanks to @Majkl578
- 3258: Deprecate Doctrine\DBAL\Types\Type::__toString() thanks to @Majkl578
- 3316: Deprecated regex-based asset filters thanks to @morozov
- 3359: Removed DataAccessTest::testFetchColumnNonExistingIndex() since it covers a bug in PDO thanks to @morozov
New Features:
- 2412: Add mysql specific indexes with lengths thanks to @bburnichon
- 3278: Add support for MariaDB 10.3 thanks to @javiereguiluz
- 3283: MariaDB improvements, support 10.3 thanks to @sidz
- 3333: Allow windows (userless/passwordless) authentication for SQL Server thanks to @odinsey
Bug Fixes:
- 3355: Implemented comparison of default values as strings regardless of their PHP types thanks to @morozov and @Majkl578
Improvements:
- 3201: Fix support for URL to account for master-slave and pooling-shard connections thanks to @stof
- 3217: Fix that MysqliStatement cannot handle streams thanks to @mpdude
- 3235: Use PSR-4 autoloader thanks to @Majkl578
- 3254: Throw ConversionException when unserialization fail for array and object types thanks to @seferov
- 3259: Update export ignores thanks to @Majkl578
- 3309: Implemented handling BLOBs represented as stream resources for IBM DB2 thanks to @morozov and @mpdude
- 3331: Fetch all should use the driver statement's fetchAll method thanks to @michaelcullum
Documentation Improvements:
- 3223: GitHub template grammar/spelling fixes thanks to @GawainLynch
- 3232: Removed NOW() from QueryBuilder usage examples thanks to @morozov
- 3239: 2.8 in README & branch alias to 2.9 thanks to @Majkl578
- 3269: Fixed type hints in DockBlocks thanks to @marforon
- 3275: Add .doctrine-project.json to root of the project. thanks to @jwage
- 3276: Update homepage thanks to @Majkl578
- 3280: Use behaviuor instead of behavior thanks to @BackEndTea
- 3285: Remove old comment from MysqliStatement thanks to @mpdude
- 3318: Removed link to www.doctrine-project.org from doc blocks thanks to @morozov
- 3319: remove ClassLoader thanks to @garak
- 3337: Fix of links in documentation thanks to @SenseException
- 3350: Remove pdo_sqlsrv from known vendor issues list thanks to @ostrolucky
- 3357: Fix typo thanks to @BenMorel
- 3370: Removed 2.7 from README thanks to @morozov
Code Quality Improvements:
- 3252: Replaced call_user_func_array() of a fixed method with the usage of variadic arguments thanks to @morozov
- 3306: Fixed coding standard violations in the codebase thanks to @morozov
- 3303: Updated doctrine/coding-standard to 5.0, thanks to @morozov
- 3317: Implemented proper escaping of string literals in platforms and schema managers thanks to @morozov
- 3363: Remove redundant implements thanks to @BenMorel
Continuous Integration Improvements:
- 3307: Test against the latest stable sqlsrv extension thanks to @morozov
- 3320: Trying to fix failing DB builds thanks to @morozov
- 3325: Updated PHPUnit to 7.4 thanks to @morozov
- 3339: ContinuousPHP configuration for PDO Oracle driver thanks to @morozov
- 3365: Reorganize Travis build matrix thanks to @BenMorel
Release v2.8.1
Release v2.8.1
This release backports the bug fixes implemented in newer DBAL versions.
- Total issues resolved: 7
PostgreSQL:
- 3158: postgres: correctly produce alter table sql comment to update column definition thanks to @bendavies
- 3226: Ignore case when matching ARRAY thanks to @ohvitorino
- 3268: Force Sequence::$initialValue type thanks to @vpArth
Oracle:
- 3297: Do not generate SID or SERVICE_NAME when dbname or service name is not specified thanks to @morozov and @lcp0578
- 3330: Fixed quoting of string literals containing backslash thanks to @morozov
SQL Anywhere:
Continuous Integration:
Release v2.8.0
Release v2.8.0
This is a minor release of Doctrine DBAL that aggregates over 30 fixes and improvements developed over the last 3 months.
This release includes all changes of the 2.7.x series, as well as feature additions and improvements that couldn’t land in patch releases.
Backwards Compatibility Breaks
This doesn't contain any intentional Backwards Compatibility (BC) breaks.
Dependency Changes
- The dependency on doctrine/common is removed. DBAL now depends on doctrine/cache and doctrine/event-manager instead.
Please see details in the UPGRADE.md documentation.
Deprecations
- The usage of binary fields whose length exceeds the maximum field size on a given platform is deprecated. Please use binary fields of a size which fits all target platforms, or use blob explicitly instead.
- The usage of DB-generated UUIDs is deprecated. Their format is inconsistent across supported platforms and therefore the feature is not portable. Use a PHP library (e.g. ramsey/uuid) to generate UUIDs on the application side.
New features
- Initial support of MySQL 8.
- Initial support of PostgreSQL 11.
- Ability to evaluate arbitrary SQL expressions via
AbstractPlatform::getDummySelectSQL()
.
Improvements and Fixes
- Improved support of binary fields on Oracle and IBM DB2.
- Improved SQL Server configuration capabilities via both
sqlsrv
andpdo_sqlsrv
. - Improved handling of
AUTOINCREMENT
ed primary keys in SQLite. - Integration tests are run against IBM DB2 on Travis CI.
- Code coverage is collected for the Oracle platform on continuousphp.
Total issues resolved: 33
Deprecations:
- 3187: Deprecate usage of binary fields whose length exceeds maximum thanks to @morozov
- 3188: Deprecated usage of binary fields whose length exceeds the platform maximum thanks to @morozov
- 3192: Added more information to the deprecation notice thanks to @morozov
- 3212: Deprecated usage of DB-generated UUIDs thanks to @morozov
New Features:
- 3109: Allow to specify arbitrary SQL expression in AbstractPlatform::getDummySelectSQL() thanks to @morozov
- 3128: Add MySQL 8 reserved keywords thanks to @mlocati
- 3160: Test against Postgres 11 thanks to @Majkl578
Bug Fixes:
- 3149: Introduced binary binding type to support binary parameters on Oracle thanks to @morozov
- 3178: Fix incorrect exception thrown from SQLAnywhere16Platform thanks to @Majkl578
- 3044: Functional test for allowing dynamic intervals in date sub/add thanks to @AshleyDawson
Improvements:
- 3033: Added support for available DSN parameters for the PDOSqlsrv driver thanks to @aashmelev
- 3141: allow creating PRIMARY KEY AUTOINCREMENT fields for sqlite (unit tests) thanks to @TimoBakx
- 3143: initialize sql array into platform files thanks to @AlessandroMinoccheri
- 3157: When building a limit query, zero offset without a limit should be ignored thanks to @morozov
- 3180: Import simplified version of Common\Util\Debug for var dumping purposes thanks to @Majkl578
Documentation Improvements:
- 3117: Added badges for the develop branch in README thanks to @morozov
- 3125: Upgrading docs thanks to @jwage
- 3144: added improvement type into pull request template thanks to @AlessandroMinoccheri
Code Quality Improvements:
- 3025: Added PHPStan, apply changes for level 3 thanks to @Majkl578
- 3200: Php Inspections (EA Ultimate): minor code tweaks thanks to @kalessil
- 3204: Fix typo in AbstractPlatform thanks to @Majkl578
- 3205: Ignore OCI-* classes in static analysis (no stubs) thanks to @Majkl578
Continuous Integration Improvements:
- 3049: Test failures caused by invalid database connection result in fatal error thanks to @Majkl578
- 3102: Use newer PHPUnit to prevent crashes on failures thanks to @Majkl578
- 3112: Removed hard-coded configuration filenames from the test runner thanks to @morozov
- 3133: Travis DB2 thanks to @Majkl578, @morozov
- 3135: AppVeyor tweaks, retry coverage upload on failure thanks to @Majkl578
- 3137: Workaround for the inability to use a post-PHPUnit script on ContinuousPHP thanks to @morozov
- 3151: MSSQL DLL 5.2.0 has been released. thanks to @photodude
Dependencies
- 3173: Fix composer branch aliases thanks to @Majkl578
- 3176: Eliminate dependency on doctrine/common thanks to @Majkl578
- 3181: Remove dependency on doctrine/common thanks to @Majkl578
- 3193: DBAL 2.8 needs Common 2.9 thanks to @Majkl578
Release v2.7.2
Release v2.7.2
This release backports the bug fixes implemented in newer DBAL versions.
Total issues resolved: 7
Platforms:
Schema Comparison:
- 3086: Postgres, Oracle and SQL Server Sequence increment_by & min_value as int thanks to @simPod
- 3210: Unnecessary alter sequence queries generated on Oracle db during schema update thanks to @bobvandevijver
Performance:
- 3114: Portability Statement still fetches all data in iterator mode thanks to @morozov
- 3115: Replaced ArrayIterator with StatementIterator in Portability\Connection thanks to @morozov
Documentation:
v2.7.1
Release v2.7.1
This release fixes unintentional BC breaks:
- It was impossible to use deprecated fetch modes with PDO-based drivers.
- An unsupported option passed to the
Column
object prevented subsequent options from being applied. - Date interval values stored prior to upgrade to
v2.7.0
were reported as invalid.
Total issues resolved: 10
Backwards Compatibility Fixes:
- 3082: Custom PDO fetch modes and 2.7.0 thanks to @corphi
- 3088: Fix #3082: Add BC for PDO-only fetch modes thanks to @corphi
- 3089: Don't skip column options. thanks to @andytruong
- 3093: When updating to version v2.7 type DateInterval throws errors thanks to @fnagel
- 3097: Fix compatibility for pre-2.7 DateIntervalType format thanks to @Majkl578
Documentation Improvements:
- 3083: Document the correct way of configuring a MariaDB database with serverVersion thanks to @tristanbes
- 3084: README: Add 2.7, drop 2.5 thanks to @Majkl578
Continuous Integration Improvements:
v2.7.0
This is a minor release of Doctrine DBAL that aggregates over 80 fixes and improvements developed over the last 8 months.
This release includes all changes of the 2.6.x
series, as well as feature additions and improvements that couldn't land in patch releases.
Backwards Compatibility Breaks
This release comes with one potential Backwards Compatibility (BC) break that is to be considered during upgrade.
Please see the details below.
Dependency requirement changes
There are no changes in requirements to runtime dependencies.
Deprecations
- Direct usage of
PDO::
constants in calls to DBAL API is deprecated. - Calls to
\PDOStatement
methods on a\Doctrine\DBAL\Driver\PDOStatement
instance are deprecated. - A series of enum-like constants are deprecated.
- Setting unsupported options on a schema column object is deprecated.
Please see details in the UPGRADE.md documentation.
New features
This release introduces the following major additions:
- MariaDB 10.2 platform support
- PostgreSQL 10 platform support
Improvements and Fixes
This release comes with a few bug fixes and a significant set of improvements in continuous integration processes, code style and documentation:
- The code is continuously tested on all supported versions of SQL Server on Windows and Linux.
- The code is tested with lowest compatible versions of dependencies.
- New improved code style requirements have been introduced.
- The codebase has been cleaned up from the fragments required to support the older PHP versions and uses the full power of the PHP 7.1.
- All pull requests are validated for compliance with the coding standards before getting accepted.
- Handling of platform-specific features has been improved.
A detailed list of fixes can be found below.
Total issues resolved: 81
BC Breaks:
Deprecations:
- 2846: Ensure column options map to an existing method thanks to @greg0ire
- 2996: Forward compatibility with 3.x thanks to @morozov
- 2998: Extract some constants into TransactionIsolationLevel, TrimMode and DateIntervalUnit thanks to @Majkl578
New Features:
- 2825: MariaDB 10.2 initial support thanks to @belgattitude
- 2893: PostgreSQL 10 support thanks to @simPod
Bug Fixes:
- 2819: PHP Fatal error: Uncaught Doctrine\DBAL\DBALException: Failed to connect to the database: Invalid platform version "5.5.5-10.1.25-MariaDB thanks to @stfast
- 2868: Doctrine\DBAL\Exception\InvalidFieldNameException when working with DB schema on PostgreSQL 10 thanks to @skobkin
- 2988: renameColumn will changed default from NULL to 'NULL' thanks to @kingshark8848
Improvements:
- 2551: Implement the column collation for Mysql thanks to @mikeSimonson
- 2578: DateIntervalType (negative support) thanks to @galeaspablo
- 2588: Inherit charset from master connection if not set explicitly thanks to @Deltachaos
- 2718: Add iterators for non pdo drivers. thanks to @jenkoian
- 2616: CI testing of MSSQL on windows with AppVeyor thanks to @photodude
- 2617: Testing of MSSQL on Windows with AppVeyor thanks to @photodude
- 2835: Stop relying on Type::__toString thanks to @greg0ire
- 2851: Test default value declaration for the date type thanks to @greg0ire
- 2919: Add tests for column collation to prove it works thanks to @Tobion
- 2952: Enabled testFetchLongBlob() for PDO SQL Server driver thanks to @morozov
- 2954: The IBM DB2 Statement driver suppresses errors triggered by db2_execute thanks to @morozov
- 2955: Removed error suppression in IBM DB2 Statement thanks to @morozov
- 3009: PHPUnit 7 thanks to @carusogabriel
- 3013: Escape LIKE metacharacters thanks to @greg0ire
- 3019: Allow dynamic intervals in DATE_ADD & DATE_SUB for SQLite thanks to @fogs
- 3020: Improve handling of schemas in SQL Server >= 2008 thanks to @stlrnz
- 3031: Connection parameters are cached hashed thanks to @fullbl
Documentation Improvements:
- 2793: Fix articles of words sounding with a consonant (SQL => ESS-kew-ELL) thanks to @afoeder
- 2799: Fix Shard Manager docs with more accurate docblocks in
SQLAzureShardManager
andPoolingShardManager
thanks to @tolbon - 2813: fixed return type into OCI8Statement thanks to @AlessandroMinoccheri
- 2814: Incorrect documentation example for
QueryBuilder#set()
thanks to @Dormilich - 2818: #2814 removing incorrect
QueryBuilder#set()
documentation, which was showing wrong password hashing and value binding practices (combo!) thanks to @Dormilich - 2827: use intended semantics thanks to @greg0ire
- 2840: Proofread types doc thanks to @greg0ire
- 2874: Tenant documentation typos thanks to @phil-davis
- 2875: Doc typos and grammar thanks to @phil-davis
- 2864: Removed the "OCI8: SQL Queries with Question Marks" section thanks to @morozov
- 2935: Improve deprecation wording in
Doctrine\DBAL\Schema\Column#setOptions()
thanks to @greg0ire - 2940: Clean up note on query builder setParameter documentation thanks to @jnvsor
- 3027: Documentation: Warn against using object fields in MySQL and MariaDB thanks to @Jasu
- 3068: typo in known vendor issues documentation thanks to @gdc676463
- 3069: fix typo in known vendor issues documentation thanks to @gdc676463
Continuous Integration Improvements:
- 2801: added badges for continuousphp and other badges for 2.6 thanks to @ppaulis
- 2849: Update build to use stages (adding PHPCS to check for CS violations) thanks to @lcobucci
- 2920: Improve build configuration thanks to @lcobucci
- 2936: Incremental check for coding standards in pull requests thanks to @morozov
- 2946: Attempt to run PostgeSQL 10 on Travis thanks to @Majkl578
- 2956: Travis: Test against lowest and dev dependencies thanks to @Majkl578
- 2961: Code style check fails on develop thanks to @morozov
- 2962: Fixed code style check failures for pull request against non-master branches thanks to @morozov
- 3050: Test SQL Server 17 on Travis thanks to @Majkl578
- 3056: Set Appveyor to use PHP 7.2 thanks to @photodude
- 3062: Added badges for AppVeyor thanks to @morozov
Code Style Improvements:
- 2789: Use short array declarations thanks to @AlessandroMinoccheri
- 2797: Typing final class DriverManager thanks to @tolbon
- 2798: Fix PSR2 rules : "the static declaration should come after visibility" thanks to @tolbon
- 2800: Fix inconsistent/missing return statements thanks to @tolbon
- 2809: Missing @throws declarations in Connection thanks to @bestform
- 2810: add @throws declarations to docs in Connection thanks to @bestform
- 2856: use newer PHP syntax thanks to @AlessandroMinoccheri
- 2857: use newer PHP syntax thanks to @AlessandroMinoccheri
- 2858: Style improvements thanks to @greg0ire
- [2869: fixed typo into security documentation](https://github.com/doctrine/dbal/pull...
v2.6.3
This release fixes the generation of default values of immutable date/datetime
times, default values of PostgreSQL's SERIAL types, and the required arguments
for SSL connections using MySQLi.
Also includes a fix for a BC-break related to json types comparison.
Total issues resolved: 11
- 2815: mysqli ssl_key and ssl_cert should not be mandatory thanks to @gauauu
- 2816: #2815 don't require
ssl_key
andssl_cert
to usessl_ca
thanks to @gauauu - 2596: Schema diff keeps thinking custom mapping types have changed thanks to @vicdelfant
- 2905: Fixes custom type comment regex thanks to @jeremy-smith-maco
- 2679: Fix: Doctrine custom types now accepts anything but ')' thanks to @PedroTroller
- 2907: Don't Set a Default Value on PostgreSQL SERIAL Fields thanks to @chrisguitarguy
- 2906: Cannot Generate [BIG]SERIAL Columns Without a Default or NOT NULL thanks to @chrisguitarguy
- 2859: DateTimeImmutable error with default value CURRENT_TIMESTAMP thanks to @tok-amsiq
- 2861: Default value declaration for immutable types thanks to @tok-amsiq
- 2880: Symfony 3 - Postgresql JSON type always appear in diff thanks to @PapsOu
- 2855: Fix BC-break regarding JsonArrayType thanks to @lcobucci