mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge ramayana.hindu.god:/home/tsmith/m/bk/build/b25146/51
into ramayana.hindu.god:/home/tsmith/m/bk/build/51
This commit is contained in:
@ -2207,33 +2207,26 @@ com_go(String *buffer,char *line __attribute__((unused)))
|
||||
}
|
||||
#endif
|
||||
|
||||
if (error)
|
||||
{
|
||||
executing_query= 0;
|
||||
buffer->length(0); // Remove query on error
|
||||
return error;
|
||||
}
|
||||
error=0;
|
||||
buffer->length(0);
|
||||
|
||||
if (error)
|
||||
goto end;
|
||||
|
||||
do
|
||||
{
|
||||
if (quick)
|
||||
{
|
||||
if (!(result=mysql_use_result(&mysql)) && mysql_field_count(&mysql))
|
||||
{
|
||||
executing_query= 0;
|
||||
return put_error(&mysql);
|
||||
error= put_error(&mysql);
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
error= mysql_store_result_for_lazy(&result);
|
||||
if (error)
|
||||
{
|
||||
executing_query= 0;
|
||||
return error;
|
||||
}
|
||||
goto end;
|
||||
}
|
||||
|
||||
if (verbose >= 3 || !opt_silent)
|
||||
@ -2310,12 +2303,10 @@ com_go(String *buffer,char *line __attribute__((unused)))
|
||||
if (err >= 1)
|
||||
error= put_error(&mysql);
|
||||
|
||||
end:
|
||||
|
||||
if (show_warnings == 1 && warnings >= 1) /* Show warnings if any */
|
||||
{
|
||||
init_pager();
|
||||
print_warnings();
|
||||
end_pager();
|
||||
}
|
||||
|
||||
if (!error && !status.batch &&
|
||||
(mysql.server_status & SERVER_STATUS_DB_DROPPED))
|
||||
@ -2741,6 +2732,9 @@ static void print_warnings()
|
||||
MYSQL_ROW cur;
|
||||
my_ulonglong num_rows;
|
||||
|
||||
/* Save current error before calling "show warnings" */
|
||||
uint error= mysql_errno(&mysql);
|
||||
|
||||
/* Get the warnings */
|
||||
query= "show warnings";
|
||||
mysql_real_query_for_lazy(query, strlen(query));
|
||||
@ -2748,16 +2742,28 @@ static void print_warnings()
|
||||
|
||||
/* Bail out when no warnings */
|
||||
if (!(num_rows= mysql_num_rows(result)))
|
||||
{
|
||||
mysql_free_result(result);
|
||||
return;
|
||||
}
|
||||
goto end;
|
||||
|
||||
cur= mysql_fetch_row(result);
|
||||
|
||||
/*
|
||||
Don't print a duplicate of the current error. It is possible for SHOW
|
||||
WARNINGS to return multiple errors with the same code, but different
|
||||
messages. To be safe, skip printing the duplicate only if it is the only
|
||||
warning.
|
||||
*/
|
||||
if (!cur || num_rows == 1 && error == (uint) strtoul(cur[1], NULL, 10))
|
||||
goto end;
|
||||
|
||||
/* Print the warnings */
|
||||
while ((cur= mysql_fetch_row(result)))
|
||||
init_pager();
|
||||
do
|
||||
{
|
||||
tee_fprintf(PAGER, "%s (Code %s): %s\n", cur[0], cur[1], cur[2]);
|
||||
}
|
||||
} while ((cur= mysql_fetch_row(result)));
|
||||
end_pager();
|
||||
|
||||
end:
|
||||
mysql_free_result(result);
|
||||
}
|
||||
|
||||
|
@ -180,3 +180,10 @@ ERROR at line 1: DELIMITER cannot contain a backslash character
|
||||
1
|
||||
End of 5.0 tests
|
||||
WARNING: --server-arg option not supported in this configuration.
|
||||
Warning (Code 1286): Unknown table engine 'nonexistent'
|
||||
Warning (Code 1266): Using storage engine MyISAM for table 't2'
|
||||
Warning (Code 1286): Unknown table engine 'nonexistent'
|
||||
Warning (Code 1266): Using storage engine MyISAM for table 't2'
|
||||
Error (Code 1050): Table 't2' already exists
|
||||
drop tables t1, t2;
|
||||
End of tests
|
||||
|
@ -290,3 +290,21 @@ remove_file $MYSQLTEST_VARDIR/tmp/bug21412.sql;
|
||||
--disable_query_log
|
||||
--exec $MYSQL --server-arg=no-defaults test -e "quit"
|
||||
--enable_query_log
|
||||
|
||||
#
|
||||
# Bug #25146: Some warnings/errors not shown when using --show-warnings
|
||||
#
|
||||
|
||||
# This one should succeed with no warnings
|
||||
--exec $MYSQL --show-warnings test -e "create table t1 (id int)"
|
||||
|
||||
# This should succeed, with warnings about conversion from nonexistent engine
|
||||
--exec $MYSQL --show-warnings test -e "create table t2 (id int) engine=nonexistent"
|
||||
|
||||
# This should fail, with warnings as well
|
||||
--error 1
|
||||
--exec $MYSQL --show-warnings test -e "create table t2 (id int) engine=nonexistent"
|
||||
|
||||
drop tables t1, t2;
|
||||
|
||||
--echo End of tests
|
||||
|
Reference in New Issue
Block a user