Correction of WL#1567: row_count() is -1 following non-insert/update/delete
statements.
This commit is contained in:
parent
296ba0ea57
commit
e1182c5226
@ -823,6 +823,11 @@ delete from t1|
|
|||||||
select row_count()|
|
select row_count()|
|
||||||
row_count()
|
row_count()
|
||||||
0
|
0
|
||||||
|
select * from t1|
|
||||||
|
id data
|
||||||
|
select row_count()|
|
||||||
|
row_count()
|
||||||
|
-1
|
||||||
drop procedure rc|
|
drop procedure rc|
|
||||||
create procedure bug822(a_id char(16), a_data int)
|
create procedure bug822(a_id char(16), a_data int)
|
||||||
begin
|
begin
|
||||||
|
@ -947,6 +947,8 @@ delete from t1|
|
|||||||
select row_count()|
|
select row_count()|
|
||||||
delete from t1|
|
delete from t1|
|
||||||
select row_count()|
|
select row_count()|
|
||||||
|
select * from t1|
|
||||||
|
select row_count()|
|
||||||
drop procedure rc|
|
drop procedure rc|
|
||||||
|
|
||||||
|
|
||||||
|
@ -829,7 +829,7 @@ public:
|
|||||||
bool charset_is_system_charset, charset_is_collation_connection;
|
bool charset_is_system_charset, charset_is_collation_connection;
|
||||||
bool slow_command;
|
bool slow_command;
|
||||||
|
|
||||||
ulong row_count_func; /* For the ROW_COUNT() function */
|
longlong row_count_func; /* For the ROW_COUNT() function */
|
||||||
sp_rcontext *spcont; // SP runtime context
|
sp_rcontext *spcont; // SP runtime context
|
||||||
sp_cache *sp_proc_cache;
|
sp_cache *sp_proc_cache;
|
||||||
sp_cache *sp_func_cache;
|
sp_cache *sp_func_cache;
|
||||||
|
@ -3727,6 +3727,26 @@ unsent_create_error:
|
|||||||
}
|
}
|
||||||
thd->proc_info="query end"; // QQ
|
thd->proc_info="query end"; // QQ
|
||||||
|
|
||||||
|
/*
|
||||||
|
The return value for ROW_COUNT() is "implementation dependent" if
|
||||||
|
the statement is not DELETE, INSERT or UPDATE (or a CALL executing
|
||||||
|
such a statement), but -1 is what JDBC and ODBC wants.
|
||||||
|
*/
|
||||||
|
switch (lex->sql_command) {
|
||||||
|
case SQLCOM_UPDATE:
|
||||||
|
case SQLCOM_UPDATE_MULTI:
|
||||||
|
case SQLCOM_REPLACE:
|
||||||
|
case SQLCOM_INSERT:
|
||||||
|
case SQLCOM_REPLACE_SELECT:
|
||||||
|
case SQLCOM_INSERT_SELECT:
|
||||||
|
case SQLCOM_DELETE:
|
||||||
|
case SQLCOM_DELETE_MULTI:
|
||||||
|
case SQLCOM_CALL:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
thd->row_count_func= -1;
|
||||||
|
}
|
||||||
|
|
||||||
// We end up here if res == 0 and send_ok() has been done,
|
// We end up here if res == 0 and send_ok() has been done,
|
||||||
// or res != 0 and no send_error() has yet been done.
|
// or res != 0 and no send_error() has yet been done.
|
||||||
if (res < 0)
|
if (res < 0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user