1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-30 05:23:50 +03:00
Files
mariadb/mysql-test/suite/innodb/t
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-03-20 10:41:32 +02:00
2015-12-09 10:00:49 +01:00
2019-04-25 09:04:09 +03:00
2019-03-12 13:11:07 +02:00
2017-02-10 06:30:42 -05:00
2019-04-25 16:05:20 +03:00
2019-04-25 16:05:20 +03:00
2017-02-10 06:30:42 -05:00
2018-07-02 12:27:28 +03:00
2017-10-25 17:17:21 +03:00
2017-10-25 17:17:21 +03:00
2019-01-18 13:58:33 +02:00
2015-10-05 17:14:13 +02:00
2018-06-06 11:25:33 +03:00
2017-09-17 11:05:33 +03:00
2018-09-14 08:47:22 +02:00
2018-06-18 15:43:59 +03:00
2019-03-05 12:56:05 +02:00
2019-03-06 09:00:52 +02:00
2019-02-11 17:55:25 +02:00
2017-02-10 06:30:42 -05:00
2017-02-10 06:30:42 -05:00
2015-10-23 18:49:02 +03:00
2018-07-02 12:27:28 +03:00
2018-07-26 09:19:52 +03:00
2018-05-17 09:37:01 +03:00
2017-08-29 10:07:33 +03:00