Commit e79847d1 authored by Sergei Golubchik's avatar Sergei Golubchik

after merge fixes

sql/sql_base.cc:
  fix a memory leak
storage/xtradb/handler/ha_innodb.cc:
  fix for a visual studio
storage/xtradb/row/row0ins.c:
  valgrind complains about uninitialized variable.
  incorrect errors in the innodb.test too
parent a293d078
--source include/have_innodb_plugin.inc
--source include/have_xtradb.inc
SET storage_engine=innodb;
--source include/gis_generic.inc
--source include/gis_keys.inc
......
......@@ -5,7 +5,7 @@
# main testing code t/innodb_mysql.test -> include/mix1.inc
#
-- source include/have_innodb_plugin.inc
-- source include/have_xtradb.inc
-- source include/have_query_cache.inc
let $engine_type= InnoDB;
......
......@@ -196,8 +196,8 @@ check_scramble_323(const unsigned char *scrambled, const char *message,
struct my_rnd_struct rand_st;
ulong hash_message[2];
/* Big enough for checks. */
char buff[16], scrambled_buff[SCRAMBLE_LENGTH_323 + 1];
char *to, extra;
uchar buff[16], scrambled_buff[SCRAMBLE_LENGTH_323 + 1];
uchar *to, extra;
const uchar *pos;
/* Ensure that the scrambled message is null-terminated. */
......
......@@ -2309,7 +2309,12 @@ bool reopen_name_locked_table(THD* thd, TABLE_LIST* table_list, bool link_in)
if (thd->killed || !table)
DBUG_RETURN(TRUE);
orig_table= *table;
/*
make a copy. we may need to restore it later.
don't use orig_table=*table, because we need an exact replica,
not a C++ copy that may modify the data in the copy constructor.
*/
memcpy(&orig_table, table, sizeof(*table));
if (open_unireg_entry(thd, table, table_list, table_name,
table->s->table_cache_key.str,
......@@ -2322,9 +2327,10 @@ bool reopen_name_locked_table(THD* thd, TABLE_LIST* table_list, bool link_in)
properly release name-lock in this case we should restore this
object to its original state.
*/
*table= orig_table;
memcpy(table, &orig_table, sizeof(*table));
DBUG_RETURN(TRUE);
}
orig_table.alias.free();
share= table->s;
/*
......
......@@ -11614,14 +11614,13 @@ static MYSQL_SYSVAR_ULONG(concurrency_tickets, srv_n_free_tickets_to_enter,
"Number of times a thread is allowed to enter InnoDB within the same SQL query after it has once got the ticket",
NULL, NULL, 500L, 1L, ~0L, 0);
static MYSQL_SYSVAR_LONG(kill_idle_transaction, srv_kill_idle_transaction,
PLUGIN_VAR_RQCMDARG,
#ifdef EXTENDED_FOR_KILLIDLE
"If non-zero value, the idle session with transaction which is idle over the value in seconds is killed by InnoDB.",
#define kill_idle_help_text "If non-zero value, the idle session with transaction which is idle over the value in seconds is killed by InnoDB."
#else
"No effect for this build.",
#define kill_idle_help_text "No effect for this build."
#endif
NULL, NULL, 0, 0, LONG_MAX, 0);
static MYSQL_SYSVAR_LONG(kill_idle_transaction, srv_kill_idle_transaction,
PLUGIN_VAR_RQCMDARG, kill_idle_help_text, NULL, NULL, 0, 0, LONG_MAX, 0);
static MYSQL_SYSVAR_LONG(file_io_threads, innobase_file_io_threads,
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY | PLUGIN_VAR_NOSYSVAR,
......
......@@ -493,7 +493,8 @@ row_ins_cascade_calc_update_vec(
ufield->field_no
= dict_table_get_nth_col_pos(
table, dict_col_get_no(col));
ufield->exp = NULL;
ufield->orig_len = 0;
ufield->new_val = parent_ufield->new_val;
ufield_len = dfield_get_len(&ufield->new_val);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment