Skip to content
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

Merged
merged 1 commit into from
Jan 6, 2019
Merged

Conversation

leofeyer
Copy link
Contributor

@leofeyer leofeyer commented Jan 2, 2019

Q A
Type bug
BC Break no

Fixes #3415.

Summary

When using MySQL, AbstractSchemaManager::listTableIndexes() will return the index length as string, which makes the strict comparison in Index::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.

@leofeyer
Copy link
Contributor Author

leofeyer commented Jan 3, 2019

@morozov Can we be certain that this issue is not limited to MySQL? Otherwise I would prefer to apply the changes to the MySqlSchemaManager class only.

Edit: I guess we should apply the logic to MySQL only, as the changes break the OCI tests.

@morozov
Copy link
Member

morozov commented Jan 4, 2019

@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.

@leofeyer
Copy link
Contributor Author

leofeyer commented Jan 5, 2019

Done.

@Ocramius Ocramius changed the title Index length can be a string Index length can be a string: ensure that it is an integer when read by the MySqlSchemaManager Jan 5, 2019
Ocramius
Ocramius previously approved these changes Jan 5, 2019
Copy link
Member

@Ocramius Ocramius left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@morozov morozov changed the base branch from 2.9 to master January 6, 2019 02:41
@morozov
Copy link
Member

morozov commented Jan 6, 2019

@leofeyer please rebase on master and fix the code style violation.

@leofeyer
Copy link
Contributor Author

leofeyer commented Jan 6, 2019

Done.

@morozov morozov merged commit 0731608 into doctrine:master Jan 6, 2019
morozov added a commit that referenced this pull request Jan 6, 2019
@morozov
Copy link
Member

morozov commented Jan 6, 2019

Thank you @leofeyer 👍

@leofeyer leofeyer deleted the hotfix/index-length branch January 11, 2019 12:05
@morozov morozov self-assigned this Feb 27, 2019
rgrellmann added a commit to Rossmann-IT/dbal that referenced this pull request Apr 22, 2020
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
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 9, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants