This is now otherwise on level wsrep-25.9, but storage/innobase has not been fully merged
wsrep-5.5 is not good source for that, so we probably have to cherry pick innodb changes from wsrep-5.6
restore old innodb get_innobase_type_from_mysql_type() function,
record all mysql_type->innodb_type mapping
(as generated by mysql-5.6).
add safety code to disable online alter when internal types don't match
storage/innobase/dict/dict0stats.cc:
revert to 5.6 state
The merge is still missing a few hunks related to temporary tables and
InnoDB log file size. The associated code did not seem to exist in
10.0, so the merge of that needs more work. Until this is fixed, there
are a number of test failures as a result.
For compatibility purposes let InnoDB use DATA_INT for MYSQL_TYPE_ENUM and MYSQL_TYPE_SET.
Silence the warning for these types and let the index translation table to be built anyway.
Test case by Jeremy Cole.
Add an error code to the wait_for_commit facility.
Now, when a transaction fails, it can signal the error to
any subsequent transaction that is waiting for it to commit.
The waiting transactions then receive the error code back from
wait_for_prior_commit() and can handle the error appropriately.
Also fix one race that could cause crash if @@slave_parallel_threads
were changed several times quickly in succession.
This helps when moving from MariaDB 5.5 to MariaDB 10.0 as sometimes the log file size is rounded differently.
storage/innobase/srv/srv0start.c:
Give a warning, not an error, if the log file size in innodb doesn't match what is on disk
storage/xtradb/srv/srv0start.c:
Give a warning, not an error, if the log file size in innodb doesn't match what is on disk
Analysis: After ALTER TABLE the table statistics needs to be rebuilt and therefore stat_initialized is set false. It will be rebuilt when the table is loaded again and table is closed when alter table is completed. However, during alter table table could be used by concurrent SELECT from I_S. Therefore, we need to rebuild transient table statistics meanwhile until table can be reloaded.
Analysis: There is debug assertion ut_ad(trx->start_file != 0); and ut_ad(trx->start_line != 0); on trx_start_low funcition at trx0trx.cc. These fields are initialized on include/trx0trx.h at function trx_start_if_not_started_xa. Thus at trx_prepare_for_mysql function should call trx_start_if_not_started_xa(trx); not trx_start_if_not_started_xa_low(trx) directly;
Following variables do not require LOCK_open protection anymore:
- table_def_cache (renamed to tdc_hash) is protected by rw-lock
LOCK_tdc_hash;
- table_def_shutdown_in_progress doesn't need LOCK_open protection;
- last_table_id use atomics;
- TABLE_SHARE::ref_count (renamed to TABLE_SHARE::tdc.ref_count)
is protected by TABLE_SHARE::tdc.LOCK_table_share;
- TABLE_SHARE::next, ::prev (renamed to tdc.next and tdc.prev),
oldest_unused_share, end_of_unused_share are protected by
LOCK_unused_shares;
- TABLE_SHARE::m_flush_tickets (renamed to tdc.m_flush_tickets)
is protected by TABLE_SHARE::tdc.LOCK_table_share;
- refresh_version (renamed to tdc_version) use atomics.
remove unused HA_CAN_EXPORT
(with the merge of "FLUSH TABLE <table_list> FOR EXPORT",
this functionality should be added back, but differently -
no table flag, handler::extra() returns an error instead)
Fixed "check of testcases" failure.
Value of INFORMATION_SCHEMA.PLUGINS.PLUGIN_TYPE_VERSION was
pointing to incorrect address and could change after server
restart.
storage/innobase/handler/i_s.cc:
Use proper plugin info pointer (struct st_mysql_information_schema
instead of ST_FIELD_INFO[]).
* update results
* don't force HA_CREATE_DELAY_KEY_WRITE on all temp tables,
(bad for CREATE ... LIKE) instead imply it in myisam/aria
* restore HA_ERR_TABLE_DEF_CHANGED in archive
* increase the default number of rwlock classes in P_S to fit all our rwlocks
includes:
* remove some remnants of "Bug#14521864: MYSQL 5.1 TO 5.5 BUGS PARTITIONING"
* introduce LOCK_share, now LOCK_ha_data is strictly for engines
* rea_create_table() always creates .par file (even in "frm-only" mode)
* fix a 5.6 bug, temp file leak on dummy ALTER TABLE