mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-29644 post-merge fixup
Applyingb98375f
instead of9b32e4b
for version 10.5-10.8. Applying5075f4e
instead of9b32e4b
for version 10.9+.
This commit is contained in:
@@ -12,9 +12,9 @@ alter table t2 ENGINE=Spider COMMENT='WRAPPER "mysql", srv "srv",TABLE "t0"';
|
|||||||
select * from t0;
|
select * from t0;
|
||||||
ERROR HY000: An infinite loop is detected when opening table test.t0
|
ERROR HY000: An infinite loop is detected when opening table test.t0
|
||||||
select * from t1;
|
select * from t1;
|
||||||
ERROR HY000: An infinite loop is detected when opening table test.t1
|
ERROR HY000: An infinite loop is detected when opening table test.t0
|
||||||
select * from t2;
|
select * from t2;
|
||||||
ERROR HY000: An infinite loop is detected when opening table test.t2
|
ERROR HY000: An infinite loop is detected when opening table test.t0
|
||||||
drop table t0, t1, t2;
|
drop table t0, t1, t2;
|
||||||
for master_1
|
for master_1
|
||||||
for child2
|
for child2
|
||||||
|
@@ -2289,30 +2289,35 @@ bool spider_db_mbase::is_xa_nota_error(
|
|||||||
DBUG_RETURN(xa_nota);
|
DBUG_RETURN(xa_nota);
|
||||||
}
|
}
|
||||||
|
|
||||||
void spider_db_mbase::fetch_and_print_warnings(struct tm *l_time)
|
int spider_db_mbase::fetch_and_print_warnings(struct tm *l_time)
|
||||||
{
|
{
|
||||||
|
int error_num = 0;
|
||||||
DBUG_ENTER("spider_db_mbase::fetch_and_print_warnings");
|
DBUG_ENTER("spider_db_mbase::fetch_and_print_warnings");
|
||||||
|
DBUG_PRINT("info",("spider this=%p", this));
|
||||||
|
|
||||||
if (spider_param_dry_access() || db_conn->status != MYSQL_STATUS_READY ||
|
if (spider_param_dry_access() || db_conn->status != MYSQL_STATUS_READY ||
|
||||||
db_conn->server_status & SERVER_MORE_RESULTS_EXISTS)
|
db_conn->server_status & SERVER_MORE_RESULTS_EXISTS ||
|
||||||
DBUG_VOID_RETURN;
|
!db_conn->warning_count)
|
||||||
|
DBUG_RETURN(0);
|
||||||
|
|
||||||
if (mysql_real_query(db_conn, SPIDER_SQL_SHOW_WARNINGS_STR,
|
if (mysql_real_query(db_conn, SPIDER_SQL_SHOW_WARNINGS_STR,
|
||||||
SPIDER_SQL_SHOW_WARNINGS_LEN))
|
SPIDER_SQL_SHOW_WARNINGS_LEN))
|
||||||
DBUG_VOID_RETURN;
|
DBUG_RETURN(0);
|
||||||
|
|
||||||
MYSQL_RES *res= mysql_store_result(db_conn);
|
MYSQL_RES *res= mysql_store_result(db_conn);
|
||||||
if (!res)
|
if (!res)
|
||||||
DBUG_VOID_RETURN;
|
DBUG_RETURN(0);
|
||||||
|
|
||||||
uint num_fields= mysql_num_fields(res);
|
uint num_fields= mysql_num_fields(res);
|
||||||
if (num_fields != 3)
|
if (num_fields != 3)
|
||||||
{
|
{
|
||||||
mysql_free_result(res);
|
mysql_free_result(res);
|
||||||
DBUG_VOID_RETURN;
|
DBUG_RETURN(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
MYSQL_ROW row= mysql_fetch_row(res);
|
MYSQL_ROW row= mysql_fetch_row(res);
|
||||||
|
if (l_time)
|
||||||
|
{
|
||||||
while (row)
|
while (row)
|
||||||
{
|
{
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
@@ -2324,9 +2329,24 @@ void spider_db_mbase::fetch_and_print_warnings(struct tm *l_time)
|
|||||||
row[1], row[2]);
|
row[1], row[2]);
|
||||||
row= mysql_fetch_row(res);
|
row= mysql_fetch_row(res);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
while (row)
|
||||||
|
{
|
||||||
|
DBUG_PRINT("info",("spider row[0]=%s", row[0]));
|
||||||
|
DBUG_PRINT("info",("spider row[1]=%s", row[1]));
|
||||||
|
DBUG_PRINT("info",("spider row[2]=%s", row[2]));
|
||||||
|
longlong res_num =
|
||||||
|
(longlong) my_strtoll10(row[1], (char**) NULL, &error_num);
|
||||||
|
DBUG_PRINT("info",("spider res_num=%lld", res_num));
|
||||||
|
my_printf_error((int) res_num, row[2], MYF(0));
|
||||||
|
error_num = (int) res_num;
|
||||||
|
row = mysql_fetch_row(res);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
mysql_free_result(res);
|
mysql_free_result(res);
|
||||||
|
|
||||||
DBUG_VOID_RETURN;
|
DBUG_RETURN(error_num);
|
||||||
}
|
}
|
||||||
|
|
||||||
spider_db_result *spider_db_mbase::store_result(
|
spider_db_result *spider_db_mbase::store_result(
|
||||||
@@ -14630,11 +14650,9 @@ int spider_mbase_handler::show_table_status(
|
|||||||
DBUG_RETURN(error_num);
|
DBUG_RETURN(error_num);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ((error_num = ((spider_db_mbase *) conn->db_conn)->fetch_and_print_warnings(NULL)))
|
||||||
{
|
{
|
||||||
time_t cur_time = (time_t) time((time_t*) 0);
|
DBUG_RETURN(error_num);
|
||||||
struct tm lt;
|
|
||||||
struct tm *l_time = localtime_r(&cur_time, <);
|
|
||||||
((spider_db_mbase *) conn->db_conn)->fetch_and_print_warnings(l_time);
|
|
||||||
}
|
}
|
||||||
if (share->static_records_for_status != -1)
|
if (share->static_records_for_status != -1)
|
||||||
{
|
{
|
||||||
|
@@ -442,7 +442,7 @@ public:
|
|||||||
bool is_xa_nota_error(
|
bool is_xa_nota_error(
|
||||||
int error_num
|
int error_num
|
||||||
);
|
);
|
||||||
void fetch_and_print_warnings(struct tm *l_time);
|
int fetch_and_print_warnings(struct tm *l_time);
|
||||||
spider_db_result *store_result(
|
spider_db_result *store_result(
|
||||||
spider_db_result_buffer **spider_res_buf,
|
spider_db_result_buffer **spider_res_buf,
|
||||||
st_spider_db_request_key *request_key,
|
st_spider_db_request_key *request_key,
|
||||||
|
Reference in New Issue
Block a user