mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
additional changes to merge fix for bug 26346
This commit is contained in:
@@ -1486,10 +1486,7 @@ static uint dump_events_for_db(char *db)
|
|||||||
mysql_query(mysql, "LOCK TABLES mysql.event READ");
|
mysql_query(mysql, "LOCK TABLES mysql.event READ");
|
||||||
|
|
||||||
if (mysql_query_with_error_report(mysql, &event_list_res, "show events"))
|
if (mysql_query_with_error_report(mysql, &event_list_res, "show events"))
|
||||||
{
|
|
||||||
safe_exit(EX_MYSQLERR);
|
|
||||||
DBUG_RETURN(0);
|
DBUG_RETURN(0);
|
||||||
}
|
|
||||||
|
|
||||||
strcpy(delimiter, ";");
|
strcpy(delimiter, ";");
|
||||||
if (mysql_num_rows(event_list_res) > 0)
|
if (mysql_num_rows(event_list_res) > 0)
|
||||||
@@ -2928,25 +2925,25 @@ static int dump_tablespaces_for_tables(char *db, char **table_names, int tables)
|
|||||||
|
|
||||||
mysql_real_escape_string(mysql, name_buff, db, strlen(db));
|
mysql_real_escape_string(mysql, name_buff, db, strlen(db));
|
||||||
|
|
||||||
init_dynamic_string(&where, " AND TABLESPACE_NAME IN ("
|
init_dynamic_string_checked(&where, " AND TABLESPACE_NAME IN ("
|
||||||
"SELECT DISTINCT TABLESPACE_NAME FROM"
|
"SELECT DISTINCT TABLESPACE_NAME FROM"
|
||||||
" INFORMATION_SCHEMA.PARTITIONS"
|
" INFORMATION_SCHEMA.PARTITIONS"
|
||||||
" WHERE"
|
" WHERE"
|
||||||
" TABLE_SCHEMA='", 256, 1024);
|
" TABLE_SCHEMA='", 256, 1024);
|
||||||
dynstr_append(&where, name_buff);
|
dynstr_append_checked(&where, name_buff);
|
||||||
dynstr_append(&where, "' AND TABLE_NAME IN (");
|
dynstr_append_checked(&where, "' AND TABLE_NAME IN (");
|
||||||
|
|
||||||
for (i=0 ; i<tables ; i++)
|
for (i=0 ; i<tables ; i++)
|
||||||
{
|
{
|
||||||
mysql_real_escape_string(mysql, name_buff,
|
mysql_real_escape_string(mysql, name_buff,
|
||||||
table_names[i], strlen(table_names[i]));
|
table_names[i], strlen(table_names[i]));
|
||||||
|
|
||||||
dynstr_append(&where, "'");
|
dynstr_append_checked(&where, "'");
|
||||||
dynstr_append(&where, name_buff);
|
dynstr_append_checked(&where, name_buff);
|
||||||
dynstr_append(&where, "',");
|
dynstr_append_checked(&where, "',");
|
||||||
}
|
}
|
||||||
dynstr_trunc(&where, 1);
|
dynstr_trunc(&where, 1);
|
||||||
dynstr_append(&where,"))");
|
dynstr_append_checked(&where,"))");
|
||||||
|
|
||||||
DBUG_PRINT("info",("Dump TS for Tables where: %s",where.str));
|
DBUG_PRINT("info",("Dump TS for Tables where: %s",where.str));
|
||||||
r= dump_tablespaces(where.str);
|
r= dump_tablespaces(where.str);
|
||||||
@@ -2960,7 +2957,7 @@ static int dump_tablespaces_for_databases(char** databases)
|
|||||||
int r;
|
int r;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
init_dynamic_string(&where, " AND TABLESPACE_NAME IN ("
|
init_dynamic_string_checked(&where, " AND TABLESPACE_NAME IN ("
|
||||||
"SELECT DISTINCT TABLESPACE_NAME FROM"
|
"SELECT DISTINCT TABLESPACE_NAME FROM"
|
||||||
" INFORMATION_SCHEMA.PARTITIONS"
|
" INFORMATION_SCHEMA.PARTITIONS"
|
||||||
" WHERE"
|
" WHERE"
|
||||||
@@ -2971,12 +2968,12 @@ static int dump_tablespaces_for_databases(char** databases)
|
|||||||
char db_name_buff[NAME_LEN*2+3];
|
char db_name_buff[NAME_LEN*2+3];
|
||||||
mysql_real_escape_string(mysql, db_name_buff,
|
mysql_real_escape_string(mysql, db_name_buff,
|
||||||
databases[i], strlen(databases[i]));
|
databases[i], strlen(databases[i]));
|
||||||
dynstr_append(&where, "'");
|
dynstr_append_checked(&where, "'");
|
||||||
dynstr_append(&where, db_name_buff);
|
dynstr_append_checked(&where, db_name_buff);
|
||||||
dynstr_append(&where, "',");
|
dynstr_append_checked(&where, "',");
|
||||||
}
|
}
|
||||||
dynstr_trunc(&where, 1);
|
dynstr_trunc(&where, 1);
|
||||||
dynstr_append(&where,"))");
|
dynstr_append_checked(&where,"))");
|
||||||
|
|
||||||
DBUG_PRINT("info",("Dump TS for DBs where: %s",where.str));
|
DBUG_PRINT("info",("Dump TS for DBs where: %s",where.str));
|
||||||
r= dump_tablespaces(where.str);
|
r= dump_tablespaces(where.str);
|
||||||
@@ -2998,7 +2995,7 @@ static int dump_tablespaces(char* ts_where)
|
|||||||
char *ubs;
|
char *ubs;
|
||||||
char *endsemi;
|
char *endsemi;
|
||||||
|
|
||||||
init_dynamic_string(&sqlbuf,
|
init_dynamic_string_checked(&sqlbuf,
|
||||||
"SELECT LOGFILE_GROUP_NAME,"
|
"SELECT LOGFILE_GROUP_NAME,"
|
||||||
" FILE_NAME,"
|
" FILE_NAME,"
|
||||||
" TOTAL_EXTENTS,"
|
" TOTAL_EXTENTS,"
|
||||||
@@ -3011,16 +3008,16 @@ static int dump_tablespaces(char* ts_where)
|
|||||||
256, 1024);
|
256, 1024);
|
||||||
if(ts_where)
|
if(ts_where)
|
||||||
{
|
{
|
||||||
dynstr_append(&sqlbuf,
|
dynstr_append_checked(&sqlbuf,
|
||||||
" AND LOGFILE_GROUP_NAME IN ("
|
" AND LOGFILE_GROUP_NAME IN ("
|
||||||
"SELECT DISTINCT LOGFILE_GROUP_NAME"
|
"SELECT DISTINCT LOGFILE_GROUP_NAME"
|
||||||
" FROM INFORMATION_SCHEMA.FILES"
|
" FROM INFORMATION_SCHEMA.FILES"
|
||||||
" WHERE FILE_TYPE = 'DATAFILE'"
|
" WHERE FILE_TYPE = 'DATAFILE'"
|
||||||
);
|
);
|
||||||
dynstr_append(&sqlbuf, ts_where);
|
dynstr_append_checked(&sqlbuf, ts_where);
|
||||||
dynstr_append(&sqlbuf, ")");
|
dynstr_append_checked(&sqlbuf, ")");
|
||||||
}
|
}
|
||||||
dynstr_append(&sqlbuf,
|
dynstr_append_checked(&sqlbuf,
|
||||||
" GROUP BY LOGFILE_GROUP_NAME, FILE_NAME"
|
" GROUP BY LOGFILE_GROUP_NAME, FILE_NAME"
|
||||||
", ENGINE"
|
", ENGINE"
|
||||||
" ORDER BY LOGFILE_GROUP_NAME");
|
" ORDER BY LOGFILE_GROUP_NAME");
|
||||||
@@ -3093,7 +3090,7 @@ static int dump_tablespaces(char* ts_where)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
dynstr_free(&sqlbuf);
|
dynstr_free(&sqlbuf);
|
||||||
init_dynamic_string(&sqlbuf,
|
init_dynamic_string_checked(&sqlbuf,
|
||||||
"SELECT DISTINCT TABLESPACE_NAME,"
|
"SELECT DISTINCT TABLESPACE_NAME,"
|
||||||
" FILE_NAME,"
|
" FILE_NAME,"
|
||||||
" LOGFILE_GROUP_NAME,"
|
" LOGFILE_GROUP_NAME,"
|
||||||
@@ -3105,9 +3102,9 @@ static int dump_tablespaces(char* ts_where)
|
|||||||
256, 1024);
|
256, 1024);
|
||||||
|
|
||||||
if(ts_where)
|
if(ts_where)
|
||||||
dynstr_append(&sqlbuf, ts_where);
|
dynstr_append_checked(&sqlbuf, ts_where);
|
||||||
|
|
||||||
dynstr_append(&sqlbuf, " ORDER BY TABLESPACE_NAME, LOGFILE_GROUP_NAME");
|
dynstr_append_checked(&sqlbuf, " ORDER BY TABLESPACE_NAME, LOGFILE_GROUP_NAME");
|
||||||
|
|
||||||
if (mysql_query_with_error_report(mysql, &tableres, sqlbuf.str))
|
if (mysql_query_with_error_report(mysql, &tableres, sqlbuf.str))
|
||||||
return 1;
|
return 1;
|
||||||
|
Reference in New Issue
Block a user