1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-27 05:41:41 +03:00
Files
mariadb/mysql-test/suite/innodb/r
Alexander Barkov c59d6395a6 A joint patch for MDEV-19284 and MDEV-19285 (INSTANT ALTER)
This patch fixes:

- MDEV-19284 INSTANT ALTER with ucs2-to-utf16 conversion produces bad data
- MDEV-19285 INSTANT ALTER from ascii_general_ci to latin1_general_ci produces corrupt data

These regressions were introduced in 10.4.3 by:
- MDEV-15564 Avoid table rebuild in ALTER TABLE on collation or charset changes

Changes:

1. Cleanup: Adding a helper method
   Field_longstr::csinfo_change_allows_instant_alter(),
   to remove some duplicate code in field.cc.

2. Cleanup: removing Type_handler::Charsets_are_compatible() and static
   function charsets_are_compatible() and
   introducing new methods in the recently added class Charset instead:
   - encoding_allows_reinterpret_as()
   - encoding_and_order_allow_reinterpret_as()

3. Bug fix: Removing the code that allowed instant conversion for
   ascii-to->8bit and ucs2-to->utf16.
   This actually fixes MDEV-19284 and MDEV-19285.

4. Bug fix: Adding a helper method Charset::collation_specific_name().
   The old corresponding code in Type_handler::Charsets_are_compatible()
   was not safe against (badly named) user-defined collations whose
   character set name can be longer than collation name.
2019-05-16 16:20:25 +04:00
..
2019-04-05 11:41:03 +03:00
2019-03-06 09:00:52 +02:00
2014-08-02 21:26:16 +02:00
2019-04-25 16:05:20 +03:00
2019-03-12 13:11:07 +02:00
2017-02-10 06:30:42 -05:00
2019-03-25 17:18:15 +02:00
2017-02-10 06:30:42 -05:00
2019-02-05 21:50:52 +02:00
2019-04-25 16:05:20 +03:00
2018-07-02 12:27:28 +03:00
2019-04-12 12:45:06 +03:00
2019-02-19 17:41:13 +02:00
2019-04-12 12:45:06 +03:00
2019-04-17 15:59:30 +03:00
2016-12-30 13:48:22 +02:00
2019-02-05 21:51:35 +02:00
2018-02-15 10:22:03 +02:00
2017-02-10 06:30:42 -05:00
2018-11-06 09:40:39 +02:00
2018-12-13 21:58:35 +02:00
2019-04-25 09:04:09 +03:00