mariadb/mysys
Michael Widenius 192678e7bf MDEV-5241: Collation incompatibilities with MySQL-5.6
- Character set code & tests from Alexander Barkov
- Integration with ALTER TABLE, REPAIR and open_table from Monty

The problem was that MySQL 5.6 added some croatian and vitanamese character set collations that are incompatible with MariaDB.

The fix is to move the MariaDB conflicting collation numbers out of the region that MySQL is likely to use.
mysql_upgrade, REPAIR TABLE or ALTER TABLE will fix the collations.
If one tries to access and old incompatible table, one will get the error "Table upgrade required...."
After this patch, MariaDB supports all the MySQL character set collations and the old MariaDB croatian collations, which are closer to the latest standard than the MySQL versions.

New character sets:
ucs2_croatian_mysql561_uca_ci
utf8_croatian_mysql561_uca_ci
utf16_croatian_mysql561_uca_ci
utf32_croatian_mysql561_uca_ci
utf8mb4_croatian_mysql561_uca_ci

Other things:
- Fixed some compiler warnings
- mysql_upgrade prints information about repaired tables.
- Increased version number

VERSION:
  Increased VERSION number
client/mysqlcheck.c:
  Print repaired table name when using --verbose
include/m_ctype.h:
  Add new MariaDB collation regions that are not likely to conflict with MySQL
include/my_base.h:
  Added flag to detect if table was opened for ALTER TABLE
mysql-test/r/ctype_ldml.result:
  Updated result
mysql-test/r/ctype_uca.result:
  Updated result
mysql-test/r/ctype_upgrade.result:
  Updated result
mysql-test/r/ctype_utf16_uca.result:
  Updated result
mysql-test/r/ctype_utf32_uca.result:
  Updated result
mysql-test/r/ctype_utf8mb4_uca.result:
  Updated result
mysql-test/std_data/ctype_upgrade:
  Test files for testing upgrading of conflicting collations
mysql-test/suite/engines/funcs/r/db_alter_collate_ascii.result:
  New collations added
mysql-test/suite/engines/funcs/r/db_alter_collate_utf8.result:
  New collations added
mysql-test/suite/innodb/r/innodb_ctype_ldml.result:
  Updated test result
mysql-test/suite/innodb/t/innodb_ctype_ldml.test:
  Updated test result
mysql-test/suite/plugins/r/show_all_plugins.result:
  Updated version number
mysql-test/suite/roles/create_and_drop_role_invalid_user_table.result:
  Updated version number
mysql-test/t/ctype_ldml.test:
  Updated test
mysql-test/t/ctype_uca.test:
  Testing of new collations
mysql-test/t/ctype_upgrade.test:
  Testing of upgrading tables with old collations
  The test ensures that:
  - We will get an error if we try to open a table with old collations.
  - CHECK TABLE will detect that the table needs to be upgraded.
  - ALTER TABLE and REPAIR will fix the table.
  - mysql_upgrade works as expected
mysql-test/t/ctype_utf16_uca.test:
  Testing of new collations
mysql-test/t/ctype_utf32_uca.test:
  Testing of new collations
mysql-test/t/ctype_utf8mb4_uca.test:
  Testing of new collations
mysys/charset-def.c:
  Added new character sets
mysys/charset.c:
  Always give an error, if requested, if a character set didn't exist
sql/handler.cc:
  - Added upgrade_collation() to check if collation is compatible with old version
  - check_collation_compatibility() checks if we are using an old collation from MariaDB 5.5 or MySQL 5.6
  - ha_check_for_upgrade() returns HA_ADMIN_NEEDS_ALTER if we have an incompatible collation
sql/handler.h:
  Added new prototypes
sql/sql_table.cc:
  - Mark that tables are opened for ALTER TABLE
  - If table needs to be upgraded, ensure we are not using online alter table.
sql/table.cc:
  - If we are using an old incompatible collation, change to use the new one and mark table as incompatible.
  - Give an error if we try to open an incompatible table.
sql/table.h:
  Added error that table needs to be rebuild
storage/connect/ha_connect.cc:
  Fixed compiler warning
strings/ctype-uca.c:
  New character sets
2013-11-09 00:20:07 +02:00
..
array.c 10.0-base merge (roles) 2013-10-29 15:08:44 +01:00
base64.c A clean-up for the base64 functions. 2013-09-24 17:28:02 +04:00
ChangeLog
charset-def.c MDEV-5241: Collation incompatibilities with MySQL-5.6 2013-11-09 00:20:07 +02:00
charset.c MDEV-5241: Collation incompatibilities with MySQL-5.6 2013-11-09 00:20:07 +02:00
checksum.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
CMakeLists.txt 10.0-base merge. 2013-09-21 10:14:42 +02:00
errors.c 5.5 merge 2013-06-06 17:51:28 +02:00
file_logger.c MDEV-4472 Audit-plugin. Server-related part of the task. 2013-09-09 16:56:35 +05:00
hash.c 10.0-monty merge 2013-07-21 16:39:19 +02:00
lf_alloc-pin.c 10.0-monty merge 2013-07-21 16:39:19 +02:00
lf_dynarray.c Temporary commit of 10.0-merge 2013-03-26 00:03:13 +02:00
lf_hash.c cleanup: remove LF_REQUIRE_PINS, use compile_time_assert() instead of reimplementing it 2013-06-24 20:56:55 +02:00
list.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
ma_dyncol.c 10.0-base merge. 2013-09-21 10:14:42 +02:00
md5.c.THIS 10.0-monty merge 2013-07-21 16:39:19 +02:00
md5_compute.cc Temporary commit of merge of MariaDB 10.0-base and MySQL 5.6 2012-08-01 17:27:34 +03:00
mf_arr_appstr.c Fix for Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 15:53:48 +01:00
mf_cache.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
mf_dirname.c Temporary commit of 10.0-merge 2013-03-26 00:03:13 +02:00
mf_fn_ext.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
mf_format.c 10.0-monty merge 2013-07-21 16:39:19 +02:00
mf_getdate.c Updated/added copyright headers. 2013-02-25 15:26:00 +01:00
mf_iocache.c Temporary commit of 10.0-merge 2013-03-26 00:03:13 +02:00
mf_iocache2.c 10.0-monty merge 2013-07-21 16:39:19 +02:00
mf_keycache.c 5.3 merge 2013-07-16 19:03:06 +02:00
mf_keycaches.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
mf_loadpath.c 5.3 merge 2012-01-13 15:50:02 +01:00
mf_pack.c MDEV-4503 : Installation fails if TEMP directory contains "~" subdirectory. 2013-06-17 19:18:14 +02:00
mf_path.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
mf_qsort.c mysql-5.5.32 merge 2013-07-16 19:09:54 +02:00
mf_qsort2.c Fix for Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 15:53:48 +01:00
mf_radix.c 5.5 merge 2013-07-17 21:24:29 +02:00
mf_same.c Fix for Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 15:53:48 +01:00
mf_sort.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
mf_soundex.c mysql-5.5.32 merge 2013-07-16 19:09:54 +02:00
mf_tempdir.c 5.5 merge and fixes for compiler/test errors 2013-09-18 13:07:31 +02:00
mf_tempfile.c MDEV-4165 [PATCH] RFE: make tmpdir a build-time configurable option 2013-08-17 17:20:09 +04:00
mf_unixpath.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
mf_wcomp.c Fix for Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 15:53:48 +01:00
mulalloc.c Fix for Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 15:53:48 +01:00
my_access.c 10.0-monty merge 2013-07-21 16:39:19 +02:00
my_addr_resolve.c mysql-5.5.22 merge 2012-03-28 01:04:46 +02:00
my_aes.c.THIS 10.0-monty merge 2013-07-21 16:39:19 +02:00
my_alarm.c Fix for Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 15:53:48 +01:00
my_alloc.c Temporary commit of 10.0-merge 2013-03-26 00:03:13 +02:00
my_atomic.c Updated/added copyright headers 2011-06-30 17:46:53 +02:00
my_basename.c - Fix rpl_checksum test. Use basename of file in error messages, not the o 2012-01-20 01:57:58 +01:00
my_bit.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
my_bitmap.c 10.0-monty merge 2013-07-21 16:39:19 +02:00
my_chmod.c MDEV-4011 Added per thread memory counting and usage 2013-01-23 16:16:14 +01:00
my_chsize.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
my_compare.c 10.0-monty merge 2013-07-21 16:39:19 +02:00
my_compress.c 10.0-monty merge 2013-07-21 16:39:19 +02:00
my_conio.c 10.0-monty merge 2013-07-21 16:39:19 +02:00
my_context.c 10.0-base merge 2013-07-18 16:46:57 +02:00
my_copy.c MDEV-4011 Added per thread memory counting and usage 2013-01-23 16:16:14 +01:00
my_crc32.c Fix for Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 15:53:48 +01:00
my_create.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
my_default.c 10.0-monty merge 2013-07-21 16:39:19 +02:00
my_delete.c 5.5 merge 2013-07-17 21:24:29 +02:00
my_div.c Fix for Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 15:53:48 +01:00
my_error.c Temporary commit of 10.0-merge 2013-03-26 00:03:13 +02:00
my_file.c Temporary commit of 10.0-merge 2013-03-26 00:03:13 +02:00
my_fopen.c 5.5 merge 2013-07-17 21:24:29 +02:00
my_fstream.c MDEV-4011 Added per thread memory counting and usage 2013-01-23 16:16:14 +01:00
my_gethwaddr.c Speed up connection time: 2013-03-25 11:13:42 +02:00
my_getncpus.c 5.3 merge 2012-01-13 15:50:02 +01:00
my_getopt.c Merge from 10.0-base to 10.0 the feature MDEV-4506: Parallel replication. 2013-11-01 12:00:11 +01:00
my_getpagesize.c Fix for Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 15:53:48 +01:00
my_getsystime.c fix a comment 2013-08-14 11:12:57 +02:00
my_getwd.c MDEV-4011 Added per thread memory counting and usage 2013-01-23 16:16:14 +01:00
my_init.c Updated/added copyright headers. 2013-02-25 15:26:00 +01:00
my_largepage.c Updated/added copyright headers. 2013-02-25 15:26:00 +01:00
my_lib.c my_dir() cleanup 2013-04-07 15:19:45 +02:00
my_libwrap.c Fix for Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 15:53:48 +01:00
my_lock.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
my_lockmem.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
my_malloc.c 5.5 merge 2013-06-06 17:51:28 +02:00
my_memmem.c Fix for Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 15:53:48 +01:00
my_mess.c Updated/added copyright headers 2011-06-30 17:46:53 +02:00
my_mkdir.c Fix for Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 15:53:48 +01:00
my_mmap.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
my_new.cc Updated/added copyright headers. 2013-02-25 15:26:00 +01:00
my_once.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
my_open.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
my_port.c Merge with MySQL 5.1.57/58 2011-05-02 20:58:45 +03:00
my_pread.c MDEV-4011 Added per thread memory counting and usage 2013-01-23 16:16:14 +01:00
my_pthread.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
my_quick.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
my_rdtsc.c Updated/added copyright headers 2011-06-30 17:46:53 +02:00
my_read.c 5.5 merge 2013-07-17 21:24:29 +02:00
my_redel.c 5.5 merge 2013-07-17 21:24:29 +02:00
my_rename.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
my_rnd.c 10.0-monty merge 2013-07-21 16:39:19 +02:00
my_safehash.c use PSI wrappers in aria and other non-MySQL code 2011-07-13 21:10:18 +02:00
my_safehash.h use PSI wrappers in aria and other non-MySQL code 2011-07-13 21:10:18 +02:00
my_seek.c MDEV-4011 Added per thread memory counting and usage 2013-01-23 16:16:14 +01:00
my_sleep.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
my_static.c 10.0-base merge. 2013-09-21 10:14:42 +02:00
my_static.h Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
my_symlink.c mysql-5.1.62 merge 2012-04-05 10:49:38 +02:00
my_symlink2.c mysql-5.5.32 merge 2013-07-16 19:09:54 +02:00
my_sync.c MDEV-4011 Added per thread memory counting and usage 2013-01-23 16:16:14 +01:00
my_thr_init.c 10.0-monty merge 2013-07-21 16:39:19 +02:00
my_timer_cycles.il Updated/added copyright headers 2011-06-30 17:46:53 +02:00
my_uuid.c 10.0-monty merge 2013-07-21 16:39:19 +02:00
my_wincond.c Merge with 5.2. 2011-12-11 11:34:44 +02:00
my_windac.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
my_winerr.c Updated/added copyright headers 2011-06-30 17:46:53 +02:00
my_winfile.c Updated/added copyright headers 2011-06-30 17:46:53 +02:00
my_winthread.c Updated/added copyright headers. 2013-02-25 15:26:00 +01:00
my_write.c 5.5 merge 2013-06-06 17:51:28 +02:00
mysys_priv.h Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
psi_noop.c Temporary commit of 10.0-merge 2013-03-26 00:03:13 +02:00
ptr_cmp.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
queues.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
safemalloc.c ha_partition.cc and ha_partition.h are now completely merged 2013-06-27 14:01:03 +03:00
stacktrace.c Temporary commit of 10.0-merge 2013-03-26 00:03:13 +02:00
string.c Temporary commit of 10.0-merge 2013-03-26 00:03:13 +02:00
test_charset.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
test_dir.c Fix for Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 15:53:48 +01:00
test_thr_mutex.c Add missing file: Testing of mutex-wrong-usage-detector 2008-12-03 00:09:37 +02:00
test_xml.c Fix for Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 15:53:48 +01:00
testhash.c Temporary commit of 10.0-merge 2013-03-26 00:03:13 +02:00
thr_alarm.c mysql-5.5.31 merge 2013-05-07 13:05:09 +02:00
thr_lock.c fixes for test failures 2012-09-27 20:09:46 +02:00
thr_mutex.c Fixed timing failure in myisam-metadata.test 2013-06-06 15:51:36 +03:00
thr_rwlock.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
tree.c Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
typelib.c 5.5 merge 2013-07-17 21:24:29 +02:00
waiting_threads.c merge 5.5 -> 10.0-base 2013-08-20 14:48:29 +03:00
wqueue.c fix the include guards and add missing gplv2 headers 2012-02-17 12:19:38 +01:00