Commit 56392008 authored by unknown's avatar unknown

InnoDB: fix bug in call to innobase_invalidate_query_cache(),

  introduced in ChangeSet@1.1843.1.25
InnoDB: fix bug in the error exit of
  fil_create_new_single_table_tablespace(), introduced in
  ChangeSet@1.1843.1.11


innobase/row/row0ins.c:
  row_ins_foreign_check_on_constraint():
   the string passed to innobase_invalidate_query_cache() was truncated;
   now it is passed correctly again
innobase/fil/fil0fil.c:
  fil_create_new_single_table_tablespace():
   delete the file if fil_space_create() fails
parent b1cecee0
......@@ -2220,6 +2220,7 @@ fil_create_new_single_table_tablespace(
ut_free(buf2);
error_exit:
os_file_close(file);
error_exit2:
os_file_delete(path);
mem_free(path);
......@@ -2262,10 +2263,7 @@ fil_create_new_single_table_tablespace(
os_file_close(file);
if (*space_id == ULINT_UNDEFINED) {
os_file_delete(path);
error_exit2:
mem_free(path);
return(DB_ERROR);
goto error_exit2;
}
success = fil_space_create(path, *space_id, FIL_TABLESPACE);
......
......@@ -42,14 +42,13 @@ extern
void
innobase_invalidate_query_cache(
/*============================*/
trx_t* trx, /* in: transaction which modifies
the table */
const char* full_name, /* in: concatenation of database name,
null char '\0', table name, null char
'\0'; NOTE that in Windows this is
always in LOWER CASE! */
ulint full_name_len); /* in: full name length where also the
null chars count */
trx_t* trx, /* in: transaction which modifies the table */
char* full_name, /* in: concatenation of database name, null
char '\0', table name, null char'\0';
NOTE that in Windows this is always
in LOWER CASE! */
ulint full_name_len); /* in: full name length where also the null
chars count */
/*************************************************************************
......@@ -663,11 +662,12 @@ row_ins_foreign_check_on_constraint(
ptr = strchr(table->name, '/');
ut_a(ptr);
table_name = mem_strdupl(table->name, ptr - table->name);
table_name = mem_strdup(table->name);
table_name[ptr - table->name] = 0;
/* We call a function in ha_innodb.cc */
innobase_invalidate_query_cache(thr_get_trx(thr), table_name,
ptr - table->name + 1);
strlen(table->name) + 1);
mem_free(table_name);
#endif
node = thr->run_node;
......
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