-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Index length can be a string
: ensure that it is an integer when read by the MySqlSchemaManager
#3420
Conversation
@morozov Can we be certain that this issue is not limited to MySQL? Otherwise I would prefer to apply the changes to the Edit: I guess we should apply the logic to MySQL only, as the changes break the OCI tests. |
@leofeyer if I'm not mistaken, prefix indices are only supported by MySQL, so it should be fine to fix/test it only for MySQL. Once the changes are complete, please squash the commits. |
Done. |
string
: ensure that it is an integer when read by the MySqlSchemaManager
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
tests/Doctrine/Tests/DBAL/Functional/Schema/MySqlSchemaManagerTest.php
Outdated
Show resolved
Hide resolved
@leofeyer please rebase on master and fix the code style violation. |
Done. |
Thank you @leofeyer 👍 |
Release v2.9.3 [![Build Status](https://travis-ci.org/doctrine/dbal.svg?branch=v2.9.3)](https://travis-ci.org/doctrine/dbal) 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](doctrine#3686) thanks to @morozov and @Junker - [3456: Compare type class when comparing columns.](doctrine#3456) thanks to @garret-gunter and @cs278 **Other bugs** - [3679: fix begin trasaction after reconnect](doctrine#3679) thanks to @kalinin-k-a - [3547: Default column expressions do not work on SQL Server](doctrine#3547) thanks to @morozov - [3420: Index length can be a `string`: ensure that it is an integer when read by the `MySqlSchemaManager`](doctrine#3420) thanks to @leofeyer **CI improvements and maintenance** - [3702: Updated SQL Server extensions to fix build failures on PHP 7.4](doctrine#3702) thanks to @morozov - [3662: Marked connection exception test incomplete on MySQL 8](doctrine#3662) thanks to @morozov - [3622: Switched from ibmcom/db2express-c to ibmcom/db2](doctrine#3622) thanks to @morozov - [3465: Replaced MySQL 5.7 installed from a PPA with an official Docker image](doctrine#3465) thanks to @morozov - [3454: CI: Test against PHP 7.4snapshot instead of nightly (8.0)](doctrine#3454) thanks to @Majkl578 - [3452: Fixed AppVeyor build configuration and the issue on SQL Server](doctrine#3452) thanks to @morozov and @Majkl578 - [3447: Replaced custom docker image for PostgreSQL with the official one](doctrine#3447) thanks to @morozov - [3407: CI: Test against MySQL 8.0 on Travis](doctrine#3407) thanks to @morozov **PHP 7.4 support** - [3642: Fixed test failures on PHP 7.4](doctrine#3642) thanks to @morozov # gpg: Signature made Sat Nov 2 23:20:42 2019 # gpg: using RSA key 374EADAF543AE995 # gpg: Can't check signature: public key not found
Fixes #3415.
Summary
When using MySQL,
AbstractSchemaManager::listTableIndexes()
will return the index length as string, which makes the strict comparison inIndex::hasSameColumnLengths()
fail.$this->options['length']
will have the index length as string and$other->options['length']
as integer.I am not 100% sure if my fix is in the right place, as we could also cast to int in the _getPortableTableIndexesList() method. So feel free to adjust the PR as necessary.