Merge bb-10.2-ext into 10.3

This commit is contained in:
Marko Mäkelä 2018-01-30 21:04:48 +02:00
commit 33714d2065
23 changed files with 137 additions and 78 deletions

View file

@ -5071,7 +5071,7 @@ handle_options(int argc, char **argv, char ***argv_client, char ***argv_server)
setup_error_messages();
sys_var_init();
plugin_mutex_init();
mysql_rwlock_init(key_rwlock_LOCK_system_variables_hash, &LOCK_system_variables_hash);
mysql_prlock_init(key_rwlock_LOCK_system_variables_hash, &LOCK_system_variables_hash);
opt_stack_trace = 1;
test_flags |= TEST_SIGINT;
init_signals();

View file

@ -8376,6 +8376,45 @@ DECLARE v ROW(a INT);
SELECT 'a' IN ('b',v);
END $$
ERROR HY000: Illegal parameter data types varchar and row for operation 'in'
#
# MDEV-15112 Inconsistent evaluation of spvariable=0 in strict mode
#
SET sql_mode=STRICT_ALL_TABLES;
CREATE OR REPLACE TABLE t1 (e TIMESTAMP(6));
INSERT INTO t1 VALUES ('2001-01-01 10:20:30');
CREATE FUNCTION f1(a VARBINARY(255))
RETURNS INT
DETERMINISTIC
BEGIN
RETURN a = timestamp'2038-01-19 03:14:07.999999'
OR a = 0;
END
$$
CREATE FUNCTION f2(a VARBINARY(255))
RETURNS INT
DETERMINISTIC
BEGIN
RETURN a = 0;
END
$$
CREATE OR REPLACE FUNCTION f3(a VARBINARY(255))
RETURNS INT
DETERMINISTIC
BEGIN
RETURN a = timestamp'2038-01-19 03:14:07.999999'
OR a = sleep(0);
END
$$
SELECT f1(e) FROM t1;
ERROR 22007: Truncated incorrect DOUBLE value: '2001-01-01 10:20:30'
SELECT f2(e) FROM t1;
ERROR 22007: Truncated incorrect DOUBLE value: '2001-01-01 10:20:30'
SELECT f3(e) FROM t1;
ERROR 22007: Truncated incorrect DOUBLE value: '2001-01-01 10:20:30'
DROP FUNCTION f1;
DROP FUNCTION f2;
DROP FUNCTION f3;
DROP TABLE t1;
# Test affected rows from an sp
create table t1 (a int);
create procedure p1()

View file

@ -22,7 +22,7 @@ COUNT(DISTINCT f1)
SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE
USER = 'system user' AND STATE NOT LIKE 'InnoDB%';
COUNT(*)
5
3
connection default;
DROP TABLE t1;
DROP TABLE ten;

View file

@ -38,14 +38,11 @@ t1 CREATE TABLE `t1` (
`c2` geometry NOT NULL,
SPATIAL KEY `idx` (`c2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SET DEBUG='+d,row_merge_ins_spatial_fail';
Warnings:
Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
SET @save_dbug = @@SESSION.debug_dbug;
SET debug_dbug='+d,row_merge_ins_spatial_fail';
create spatial index idx2 on t1(c2);
ERROR HY000: Got error 1000 "Unknown error 1000" from storage engine InnoDB
SET DEBUG='-d,row_merge_ins_spatial_fail';
Warnings:
Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
SET debug_dbug = @save_dbug;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (

View file

@ -49,10 +49,11 @@ create spatial index idx on t1(c2);
show create table t1;
SET DEBUG='+d,row_merge_ins_spatial_fail';
SET @save_dbug = @@SESSION.debug_dbug;
SET debug_dbug='+d,row_merge_ins_spatial_fail';
--error ER_GET_ERRNO
create spatial index idx2 on t1(c2);
SET DEBUG='-d,row_merge_ins_spatial_fail';
SET debug_dbug = @save_dbug;
show create table t1;
# Check table.

View file

@ -38,9 +38,10 @@ select count(*) from t1 where MBRWithin(t1.c2, @g1);
set @g1 = ST_GeomFromText('Polygon((100 100,100 800,800 800,800 100,100 100))');
select count(*) from t1 where MBRWithin(t1.c2, @g1);
#SET DEBUG='+d, rtr_pessimistic_position';
#SET @save_dbug= @@session.debug_dbug;
#SET debug_dbug = '+d,rtr_pessimistic_position';
#select count(*) from t1 where MBRWithin(t1.c2, @g1);
#SET DEBUG='-d, rtr_pessimistic_position';
#SET debug_dbug = @save_dbug;
# Equality search
set @g1 = ST_GeomFromText('Point(1 1)');

View file

@ -9887,6 +9887,52 @@ BEGIN NOT ATOMIC
END $$
DELIMITER ;$$
--echo #
--echo # MDEV-15112 Inconsistent evaluation of spvariable=0 in strict mode
--echo #
SET sql_mode=STRICT_ALL_TABLES;
CREATE OR REPLACE TABLE t1 (e TIMESTAMP(6));
INSERT INTO t1 VALUES ('2001-01-01 10:20:30');
DELIMITER $$;
CREATE FUNCTION f1(a VARBINARY(255))
RETURNS INT
DETERMINISTIC
BEGIN
RETURN a = timestamp'2038-01-19 03:14:07.999999'
OR a = 0;
END
$$
CREATE FUNCTION f2(a VARBINARY(255))
RETURNS INT
DETERMINISTIC
BEGIN
RETURN a = 0;
END
$$
CREATE OR REPLACE FUNCTION f3(a VARBINARY(255))
RETURNS INT
DETERMINISTIC
BEGIN
RETURN a = timestamp'2038-01-19 03:14:07.999999'
OR a = sleep(0);
END
$$
DELIMITER ;$$
--error ER_TRUNCATED_WRONG_VALUE
SELECT f1(e) FROM t1;
--error ER_TRUNCATED_WRONG_VALUE
SELECT f2(e) FROM t1;
--error ER_TRUNCATED_WRONG_VALUE
SELECT f3(e) FROM t1;
DROP FUNCTION f1;
DROP FUNCTION f2;
DROP FUNCTION f3;
DROP TABLE t1;
--echo # Test affected rows from an sp
create table t1 (a int);

View file

@ -779,7 +779,7 @@ mysql_mutex_t LOCK_prepared_stmt_count;
mysql_mutex_t LOCK_des_key_file;
#endif
mysql_rwlock_t LOCK_grant, LOCK_sys_init_connect, LOCK_sys_init_slave;
mysql_rwlock_t LOCK_system_variables_hash;
mysql_prlock_t LOCK_system_variables_hash;
mysql_cond_t COND_thread_count, COND_start_thread;
pthread_t signal_thread;
pthread_attr_t connection_attrib;
@ -2384,7 +2384,7 @@ static void clean_up_mutexes()
mysql_rwlock_destroy(&LOCK_sys_init_connect);
mysql_rwlock_destroy(&LOCK_sys_init_slave);
mysql_mutex_destroy(&LOCK_global_system_variables);
mysql_rwlock_destroy(&LOCK_system_variables_hash);
mysql_prlock_destroy(&LOCK_system_variables_hash);
mysql_mutex_destroy(&LOCK_short_uuid_generator);
mysql_mutex_destroy(&LOCK_prepared_stmt_count);
mysql_mutex_destroy(&LOCK_error_messages);
@ -4742,7 +4742,7 @@ static int init_thread_environment()
&LOCK_global_system_variables, MY_MUTEX_INIT_FAST);
mysql_mutex_record_order(&LOCK_active_mi, &LOCK_global_system_variables);
mysql_mutex_record_order(&LOCK_status, &LOCK_thread_count);
mysql_rwlock_init(key_rwlock_LOCK_system_variables_hash,
mysql_prlock_init(key_rwlock_LOCK_system_variables_hash,
&LOCK_system_variables_hash);
mysql_mutex_init(key_LOCK_prepared_stmt_count,
&LOCK_prepared_stmt_count, MY_MUTEX_INIT_FAST);

View file

@ -627,7 +627,7 @@ extern mysql_mutex_t LOCK_des_key_file;
extern mysql_mutex_t LOCK_server_started;
extern mysql_cond_t COND_server_started;
extern mysql_rwlock_t LOCK_grant, LOCK_sys_init_connect, LOCK_sys_init_slave;
extern mysql_rwlock_t LOCK_system_variables_hash;
extern mysql_prlock_t LOCK_system_variables_hash;
extern mysql_cond_t COND_thread_count, COND_start_thread;
extern mysql_cond_t COND_manager;
extern mysql_cond_t COND_slave_background;

View file

@ -597,10 +597,10 @@ int mysql_del_sys_var_chain(sys_var *first)
{
int result= 0;
mysql_rwlock_wrlock(&LOCK_system_variables_hash);
mysql_prlock_wrlock(&LOCK_system_variables_hash);
for (sys_var *var= first; var; var= var->next)
result|= my_hash_delete(&system_variable_hash, (uchar*) var);
mysql_rwlock_unlock(&LOCK_system_variables_hash);
mysql_prlock_unlock(&LOCK_system_variables_hash);
return result;
}
@ -1082,7 +1082,7 @@ int fill_sysvars(THD *thd, TABLE_LIST *tables, COND *cond)
cond= make_cond_for_info_schema(thd, cond, tables);
thd->count_cuted_fields= CHECK_FIELD_WARN;
mysql_rwlock_rdlock(&LOCK_system_variables_hash);
mysql_prlock_rdlock(&LOCK_system_variables_hash);
for (uint i= 0; i < system_variable_hash.records; i++)
{
@ -1245,7 +1245,7 @@ int fill_sysvars(THD *thd, TABLE_LIST *tables, COND *cond)
}
res= 0;
end:
mysql_rwlock_unlock(&LOCK_system_variables_hash);
mysql_prlock_unlock(&LOCK_system_variables_hash);
thd->count_cuted_fields= save_count_cuted_fields;
return res;
}

View file

@ -1430,10 +1430,10 @@ static int plugin_initialize(MEM_ROOT *tmp_root, struct st_plugin_int *plugin,
mysql_mutex_unlock(&LOCK_plugin);
mysql_rwlock_wrlock(&LOCK_system_variables_hash);
mysql_prlock_wrlock(&LOCK_system_variables_hash);
if (test_plugin_options(tmp_root, plugin, argc, argv))
state= PLUGIN_IS_DISABLED;
mysql_rwlock_unlock(&LOCK_system_variables_hash);
mysql_prlock_unlock(&LOCK_system_variables_hash);
if (options_only || state == PLUGIN_IS_DISABLED)
{
@ -2842,11 +2842,11 @@ sys_var *find_sys_var_ex(THD *thd, const char *str, size_t length,
if (!locked)
mysql_mutex_lock(&LOCK_plugin);
mysql_rwlock_rdlock(&LOCK_system_variables_hash);
mysql_prlock_rdlock(&LOCK_system_variables_hash);
if ((var= intern_find_sys_var(str, length)) &&
(pi= var->cast_pluginvar()))
{
mysql_rwlock_unlock(&LOCK_system_variables_hash);
mysql_prlock_unlock(&LOCK_system_variables_hash);
LEX *lex= thd ? thd->lex : 0;
if (!(plugin= intern_plugin_lock(lex, plugin_int_to_ref(pi->plugin))))
var= NULL; /* failed to lock it, it must be uninstalling */
@ -2859,7 +2859,7 @@ sys_var *find_sys_var_ex(THD *thd, const char *str, size_t length,
}
}
else
mysql_rwlock_unlock(&LOCK_system_variables_hash);
mysql_prlock_unlock(&LOCK_system_variables_hash);
if (!locked)
mysql_mutex_unlock(&LOCK_plugin);
@ -3089,9 +3089,9 @@ static uchar *intern_sys_var_ptr(THD* thd, int offset, bool global_lock)
if (!thd->variables.dynamic_variables_ptr ||
(uint)offset > thd->variables.dynamic_variables_head)
{
mysql_rwlock_rdlock(&LOCK_system_variables_hash);
mysql_prlock_rdlock(&LOCK_system_variables_hash);
sync_dynamic_session_variables(thd, global_lock);
mysql_rwlock_unlock(&LOCK_system_variables_hash);
mysql_prlock_unlock(&LOCK_system_variables_hash);
}
DBUG_RETURN((uchar*)thd->variables.dynamic_variables_ptr + offset);
}
@ -3206,7 +3206,7 @@ static void cleanup_variables(struct system_variables *vars)
st_bookmark *v;
uint idx;
mysql_rwlock_rdlock(&LOCK_system_variables_hash);
mysql_prlock_rdlock(&LOCK_system_variables_hash);
for (idx= 0; idx < bookmark_hash.records; idx++)
{
v= (st_bookmark*) my_hash_element(&bookmark_hash, idx);
@ -3225,7 +3225,7 @@ static void cleanup_variables(struct system_variables *vars)
*ptr= NULL;
}
}
mysql_rwlock_unlock(&LOCK_system_variables_hash);
mysql_prlock_unlock(&LOCK_system_variables_hash);
DBUG_ASSERT(vars->table_plugin == NULL);
DBUG_ASSERT(vars->tmp_table_plugin == NULL);
@ -4280,10 +4280,10 @@ int thd_key_create(MYSQL_THD_KEY_T *key)
PLUGIN_VAR_NOSYSVAR | PLUGIN_VAR_NOCMDOPT;
char namebuf[256];
snprintf(namebuf, sizeof(namebuf), "%u", thd_key_no++);
mysql_rwlock_wrlock(&LOCK_system_variables_hash);
mysql_prlock_wrlock(&LOCK_system_variables_hash);
// non-letters in the name as an extra safety
st_bookmark *bookmark= register_var("\a\v\a\t\a\r", namebuf, flags);
mysql_rwlock_unlock(&LOCK_system_variables_hash);
mysql_prlock_unlock(&LOCK_system_variables_hash);
if (bookmark)
{
*key= bookmark->offset;

View file

@ -7699,7 +7699,7 @@ int fill_variables(THD *thd, TABLE_LIST *tables, COND *cond)
COND *partial_cond= make_cond_for_info_schema(thd, cond, tables);
mysql_rwlock_rdlock(&LOCK_system_variables_hash);
mysql_prlock_rdlock(&LOCK_system_variables_hash);
/*
Avoid recursive LOCK_system_variables_hash acquisition in
@ -7714,7 +7714,7 @@ int fill_variables(THD *thd, TABLE_LIST *tables, COND *cond)
res= show_status_array(thd, wild, enumerate_sys_vars(thd, sorted_vars, scope),
scope, NULL, "", tables->table,
upper_case_names, partial_cond);
mysql_rwlock_unlock(&LOCK_system_variables_hash);
mysql_prlock_unlock(&LOCK_system_variables_hash);
DBUG_RETURN(res);
}

View file

@ -122,7 +122,7 @@ void wsrep_post_commit(THD* thd, bool all)
case LOCAL_COMMIT:
{
DBUG_ASSERT(thd->wsrep_trx_meta.gtid.seqno != WSREP_SEQNO_UNDEFINED);
if (wsrep->post_commit(wsrep, &thd->wsrep_ws_handle))
if (wsrep && wsrep->post_commit(wsrep, &thd->wsrep_ws_handle))
{
DBUG_PRINT("wsrep", ("set committed fail"));
WSREP_WARN("set committed fail: %llu %d",
@ -254,7 +254,7 @@ static int wsrep_rollback(handlerton *hton, THD *thd, bool all)
if ((all || !thd_test_options(thd, OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN)) &&
(thd->variables.wsrep_on && thd->wsrep_conflict_state != MUST_REPLAY))
{
if (wsrep->post_rollback(wsrep, &thd->wsrep_ws_handle))
if (wsrep && wsrep->post_rollback(wsrep, &thd->wsrep_ws_handle))
{
DBUG_PRINT("wsrep", ("setting rollback fail"));
WSREP_ERROR("settting rollback fail: thd: %llu, schema: %s, SQL: %s",
@ -296,7 +296,7 @@ int wsrep_commit(handlerton *hton, THD *thd, bool all)
possible changes to clean state.
*/
if (WSREP_PROVIDER_EXISTS) {
if (wsrep->post_rollback(wsrep, &thd->wsrep_ws_handle))
if (wsrep && wsrep->post_rollback(wsrep, &thd->wsrep_ws_handle))
{
DBUG_PRINT("wsrep", ("setting rollback fail"));
WSREP_ERROR("settting rollback fail: thd: %llu, schema: %s, SQL: %s",
@ -473,7 +473,7 @@ wsrep_run_wsrep_commit(THD *thd, bool all)
}
else if (!rcode)
{
if (WSREP_OK == rcode)
if (WSREP_OK == rcode && wsrep)
rcode = wsrep->pre_commit(wsrep,
(wsrep_conn_id_t)thd->thread_id,
&thd->wsrep_ws_handle,

View file

@ -601,9 +601,6 @@ static PSI_mutex_info all_innodb_mutexes[] = {
PSI_KEY(srv_innodb_monitor_mutex),
PSI_KEY(srv_misc_tmpfile_mutex),
PSI_KEY(srv_monitor_file_mutex),
# ifdef UNIV_DEBUG
PSI_KEY(sync_thread_mutex),
# endif /* UNIV_DEBUG */
PSI_KEY(buf_dblwr_mutex),
PSI_KEY(trx_undo_mutex),
PSI_KEY(trx_pool_mutex),

View file

@ -37,8 +37,6 @@ Created 11/26/1995 Heikki Tuuri
/** Start a mini-transaction. */
#define mtr_start(m) (m)->start()
/** Start a mini-transaction. */
#define mtr_start_trx(m, t) (m)->start((t))
/** Start a synchronous mini-transaction */
#define mtr_start_sync(m) (m)->start(true)
@ -217,9 +215,6 @@ struct mtr_t {
/** Owning mini-transaction */
mtr_t* m_mtr;
/* Transaction handle */
trx_t* m_trx;
};
mtr_t()
@ -239,15 +234,7 @@ struct mtr_t {
/** Start a mini-transaction.
@param sync true if it is a synchronous mini-transaction
@param read_only true if read only mini-transaction */
void start(bool sync = true, bool read_only = false)
{
start(NULL, sync, read_only);
}
/** Start a mini-transaction.
@param sync true if it is a synchronous mini-transaction
@param read_only true if read only mini-transaction */
void start(trx_t* trx, bool sync = true, bool read_only = false);
void start(bool sync = true, bool read_only = false);
/** @return whether this is an asynchronous mini-transaction. */
bool is_async() const

View file

@ -93,9 +93,6 @@ extern mysql_pfs_key_t rw_lock_mutex_key;
extern mysql_pfs_key_t srv_innodb_monitor_mutex_key;
extern mysql_pfs_key_t srv_misc_tmpfile_mutex_key;
extern mysql_pfs_key_t srv_monitor_file_mutex_key;
# ifdef UNIV_DEBUG
extern mysql_pfs_key_t sync_thread_mutex_key;
# endif /* UNIV_DEBUG */
extern mysql_pfs_key_t buf_dblwr_mutex_key;
extern mysql_pfs_key_t trx_undo_mutex_key;
extern mysql_pfs_key_t trx_mutex_key;

View file

@ -337,7 +337,6 @@ enum latch_id_t {
LATCH_ID_SRV_INNODB_MONITOR,
LATCH_ID_SRV_MISC_TMPFILE,
LATCH_ID_SRV_MONITOR_FILE,
LATCH_ID_SYNC_THREAD,
LATCH_ID_BUF_DBLWR,
LATCH_ID_TRX_UNDO,
LATCH_ID_TRX_POOL,

View file

@ -492,7 +492,7 @@ mtr_write_log(
@param sync true if it is a synchronous mini-transaction
@param read_only true if read only mini-transaction */
void
mtr_t::start(trx_t* trx, bool sync, bool read_only)
mtr_t::start(bool sync, bool read_only)
{
UNIV_MEM_INVALID(this, sizeof(*this));
@ -517,7 +517,6 @@ mtr_t::start(trx_t* trx, bool sync, bool read_only)
m_impl.m_undo_space = NULL;
m_impl.m_sys_space = NULL;
m_impl.m_flush_observer = NULL;
m_impl.m_trx = trx;
ut_d(m_impl.m_magic_n = MTR_MAGIC_N);
}

View file

@ -306,7 +306,7 @@ row_undo_mod_clust(
/* We may have to modify tree structure: do a pessimistic
descent down the index tree */
mtr_start_trx(&mtr, thr_get_trx(thr));
mtr.start();
if (index->table->is_temporary()) {
mtr.set_log_mode(MTR_LOG_NO_REDO);
} else {
@ -366,7 +366,7 @@ row_undo_mod_clust(
if (err == DB_SUCCESS && node->rec_type == TRX_UNDO_UPD_DEL_REC) {
mtr_start_trx(&mtr, thr_get_trx(thr));
mtr.start();
if (index->table->is_temporary()) {
mtr.set_log_mode(MTR_LOG_NO_REDO);
} else {
@ -384,7 +384,7 @@ row_undo_mod_clust(
/* We may have to modify tree structure: do a
pessimistic descent down the index tree */
mtr_start_trx(&mtr, thr_get_trx(thr));
mtr.start();
if (index->table->is_temporary()) {
mtr.set_log_mode(MTR_LOG_NO_REDO);
} else {
@ -498,7 +498,7 @@ row_undo_mod_del_mark_or_remove_sec_low(
which cannot be purged yet, requires its existence. If some requires,
we should delete mark the record. */
mtr_start_trx(&mtr_vers, thr_get_trx(thr));
mtr_vers.start();
success = btr_pcur_restore_position(BTR_SEARCH_LEAF, &(node->pcur),
&mtr_vers);

View file

@ -248,7 +248,7 @@ row_upd_check_references_constraints(
DEBUG_SYNC_C("foreign_constraint_check_for_update");
mtr_start_trx(mtr, trx);
mtr->start();
if (trx->dict_operation_lock_mode == 0) {
got_s_lock = TRUE;
@ -2319,7 +2319,7 @@ row_upd_sec_index_entry(
DEBUG_SYNC_C_IF_THD(trx->mysql_thd,
"before_row_upd_sec_index_entry");
mtr_start_trx(&mtr, trx);
mtr.start();
switch (index->space) {
case SRV_TMP_SPACE_ID:
@ -2880,7 +2880,7 @@ row_upd_clust_rec(
/* We may have to modify the tree structure: do a pessimistic descent
down the index tree */
mtr_start_trx(mtr, thr_get_trx(thr));
mtr->start();
mtr->set_named_space(index->space);
/* Disable REDO logging as lifetime of temp-tables is limited to
@ -3068,7 +3068,7 @@ row_upd_clust_step(
/* We have to restore the cursor to its position */
mtr_start_trx(&mtr, thr_get_trx(thr));
mtr.start();
mtr.set_named_space(index->space);
if (dict_table_is_temporary(node->table)) {
@ -3129,9 +3129,9 @@ row_upd_clust_step(
dict_drop_index_tree(
btr_pcur_get_rec(pcur), pcur, &mtr);
mtr_commit(&mtr);
mtr.commit();
mtr_start_trx(&mtr, thr_get_trx(thr));
mtr.start();
mtr.set_named_space(index->space);
success = btr_pcur_restore_position(BTR_MODIFY_LEAF, pcur,
@ -3139,7 +3139,7 @@ row_upd_clust_step(
if (!success) {
err = DB_ERROR;
mtr_commit(&mtr);
mtr.commit();
return(err);
}
@ -3154,7 +3154,7 @@ row_upd_clust_step(
0, btr_pcur_get_block(pcur),
rec, index, offsets, thr);
if (err != DB_SUCCESS) {
mtr_commit(&mtr);
mtr.commit();
goto exit_func;
}
}

View file

@ -1398,11 +1398,6 @@ sync_latch_meta_init()
LATCH_ADD_MUTEX(SRV_MONITOR_FILE, SYNC_NO_ORDER_CHECK,
srv_monitor_file_mutex_key);
#ifdef UNIV_DEBUG
LATCH_ADD_MUTEX(SYNC_THREAD, SYNC_NO_ORDER_CHECK,
sync_thread_mutex_key);
#endif /* UNIV_DEBUG */
LATCH_ADD_MUTEX(BUF_DBLWR, SYNC_DOUBLEWRITE, buf_dblwr_mutex_key);
LATCH_ADD_MUTEX(TRX_UNDO, SYNC_TRX_UNDO, trx_undo_mutex_key);

View file

@ -68,7 +68,6 @@ mysql_pfs_key_t redo_rseg_mutex_key;
mysql_pfs_key_t noredo_rseg_mutex_key;
mysql_pfs_key_t page_zip_stat_per_index_mutex_key;
# ifdef UNIV_DEBUG
mysql_pfs_key_t sync_thread_mutex_key;
mysql_pfs_key_t rw_lock_debug_mutex_key;
# endif /* UNIV_DEBUG */
mysql_pfs_key_t rtr_active_mutex_key;

View file

@ -29,3 +29,5 @@ cluster_key_part: engine options on partitioned tables
i_s_tokudb_lock_waits_released: unstable, race conditions
i_s_tokudb_locks_released: unstable, race conditions
row_format: n/a
tokudb.change_column_all_1000_1: We are too lazy to fix this properly
tokudb.change_column_all_1000_10: We are too lazy to fix this properly