mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
Applied InnoDB snapshot 5.1-ss927
Fixes: - Bug #23368: crash during insert, table has foreign key pointing into other schema,permission
This commit is contained in:
parent
07db2bc7e5
commit
09e094850b
3 changed files with 18 additions and 16 deletions
|
@ -4146,18 +4146,8 @@ dict_print_info_on_foreign_key_in_create_format(
|
|||
dict_remove_db_name(
|
||||
foreign->referenced_table_name));
|
||||
} else {
|
||||
/* Look for the '/' in the table name */
|
||||
|
||||
i = 0;
|
||||
while (foreign->referenced_table_name[i] != '/') {
|
||||
i++;
|
||||
}
|
||||
|
||||
ut_print_namel(file, trx, TRUE,
|
||||
foreign->referenced_table_name, i);
|
||||
putc('.', file);
|
||||
ut_print_name(file, trx, TRUE,
|
||||
foreign->referenced_table_name + i + 1);
|
||||
foreign->referenced_table_name);
|
||||
}
|
||||
|
||||
putc(' ', file);
|
||||
|
|
|
@ -218,7 +218,10 @@ ut_print_filename(
|
|||
struct trx_struct;
|
||||
|
||||
/**************************************************************************
|
||||
Outputs a NUL-terminated string, quoted as an SQL identifier. */
|
||||
Outputs a fixed-length string, quoted as an SQL identifier.
|
||||
If the string contains a slash '/', the string will be
|
||||
output as two identifiers separated by a period (.),
|
||||
as in SQL database_name.identifier. */
|
||||
|
||||
void
|
||||
ut_print_name(
|
||||
|
@ -230,7 +233,10 @@ ut_print_name(
|
|||
const char* name); /* in: name to print */
|
||||
|
||||
/**************************************************************************
|
||||
Outputs a fixed-length string, quoted as an SQL identifier. */
|
||||
Outputs a fixed-length string, quoted as an SQL identifier.
|
||||
If the string contains a slash '/', the string will be
|
||||
output as two identifiers separated by a period (.),
|
||||
as in SQL database_name.identifier. */
|
||||
|
||||
void
|
||||
ut_print_namel(
|
||||
|
|
|
@ -394,7 +394,10 @@ done:
|
|||
}
|
||||
|
||||
/**************************************************************************
|
||||
Outputs a NUL-terminated string, quoted as an SQL identifier. */
|
||||
Outputs a fixed-length string, quoted as an SQL identifier.
|
||||
If the string contains a slash '/', the string will be
|
||||
output as two identifiers separated by a period (.),
|
||||
as in SQL database_name.identifier. */
|
||||
|
||||
void
|
||||
ut_print_name(
|
||||
|
@ -409,7 +412,10 @@ ut_print_name(
|
|||
}
|
||||
|
||||
/**************************************************************************
|
||||
Outputs a fixed-length string, quoted as an SQL identifier. */
|
||||
Outputs a fixed-length string, quoted as an SQL identifier.
|
||||
If the string contains a slash '/', the string will be
|
||||
output as two identifiers separated by a period (.),
|
||||
as in SQL database_name.identifier. */
|
||||
|
||||
void
|
||||
ut_print_namel(
|
||||
|
@ -424,7 +430,7 @@ ut_print_namel(
|
|||
#ifdef UNIV_HOTBACKUP
|
||||
fwrite(name, 1, namelen, f);
|
||||
#else
|
||||
char* slash = strchr(name, '/');
|
||||
char* slash = memchr(name, '/', namelen);
|
||||
|
||||
if (UNIV_LIKELY_NULL(slash)) {
|
||||
/* Print the database name and table name separately. */
|
||||
|
|
Loading…
Reference in a new issue