mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 02:05:57 +01:00
Merge bb-10.2-ext into 10.3
This commit is contained in:
commit
33714d2065
23 changed files with 137 additions and 78 deletions
|
@ -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();
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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` (
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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)');
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue