Bug #29985 mysqlslap -- improper handling of resultsets in SPROCs
| Submitted: | 23 Jul 2007 19:56 | Modified: | 5 Nov 2007 2:34 |
|---|---|---|---|
| Reporter: | Johan Andersson | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Command-line Clients | Severity: | S2 (Serious) |
| Version: | 5.1.* | OS: | Any |
| Assigned to: | Gleb Shchepa | CPU Architecture: | Any |
[23 Jul 2007 21:48]
Johan Andersson
How to fix it: http://dev.mysql.com/doc/refman/5.1/en/c-api-multiple-queries.html
[24 Jul 2007 18:42]
Sveta Smirnova
test case
Attachment: bug29985.test (application/octet-stream, text), 1.35 KiB.
[24 Jul 2007 18:43]
Sveta Smirnova
Thank you for the report. Verified as described using attached test case.
[17 Sep 2007 16:29]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/34350 ChangeSet@1.2614, 2007-09-17 21:39:07+05:00, gshchepa@gleb.loc +3 -0 Fixed bug #29985. Multiple-result processing is required during the execution of CALL statements for stored procedures, however the mysqlslap client lacked that processing.
[29 Oct 2007 8:47]
Bugs System
Pushed into 5.1.23-beta
[29 Oct 2007 8:51]
Bugs System
Pushed into 6.0.4-alpha
[5 Nov 2007 2:34]
Paul DuBois
Noted in 5.1.23, 6.0.4 changelogs. mysqlslap did not properly handle multiple result sets from stored procedures.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.042 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
Description: johan@stingray:~/dev/mysqlslapd$ mysqlslap --defaults-file=/data/etc/my.cnf --query=query.txt mysqlslap: Cannot run query call test.myproc1(2); ERROR : Commands out of sync; you can't run this command now johan@stingray:~/dev/mysqlslapd$ Dooh! Two simple SPROCS are defined: drop procedure myproc1; delimiter $$ create procedure myproc1( in id integer) begin set @stmt = concat("select b from t1 where a = ", id); ##select @stmt; prepare stmt from @stmt; execute stmt; drop prepare stmt; end; $$ delimiter ; drop procedure myproc2; delimiter $$ create procedure myproc2( in id integer, in name char(10)) begin set @stmt = concat("insert into t1 values(",id,",'",name,"')"); ##select @stmt; prepare stmt from @stmt; execute stmt; drop prepare stmt; end; $$ delimiter ; How to repeat: 1) create the sprocs above. 2) make a query.txt - cat query.txt: call test.myproc2(1,'johan1'); call test.myproc2(2,'johan2'); call test.myproc2(3,'johan3'); call test.myproc2(4,'johan4'); call test.myproc2(5,'johan5'); call test.myproc1(1); call test.myproc1(2); call test.myproc1(3); call test.myproc1(4); call test.myproc1(5); 3) create a table in database test; create table t1(a integer, b char(10), primary key(a)) engine=ndb; 4) mysqlslap --defaults-file=/data/etc/my.cnf --query=query.txt Suggested fix: just do it!