Bug #15767 call x() fails - single-letter procedures require space before arguments list
Submitted: 15 Dec 2005 0:31 Modified: 21 Dec 2005 4:06
Reporter: Timothy Smith Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: Stored Routines Severity:S3 (Non-critical)
Version:5.0.17-bk OS:Any (any)
Assigned to: CPU Architecture:Any

[15 Dec 2005 0:31] Timothy Smith
Description:
If a procedure is named with a single letter, then calling it requires putting a space before the parentheses "(".

If a procedure has at least two letters in its name, the parentheses can follow the procedure name directly in the call statement.

How to repeat:
delimiter //

create procedure a() begin select 1; end//
create procedure aa() begin select 1; end//

delimiter;

call a();  -- Syntax error
call aa();  -- OK

call a ();  -- OK
call aa ();  -- OK

Suggested fix:

Fix parser?  The workaround is obvious....
[20 Dec 2005 11:03] Sergei Golubchik
cannot repeat

mysql> call a(); 
+---+
| 1 |
+---+
| 1 |
+---+
[21 Dec 2005 4:06] Timothy Smith
I just re-tested with a fresh BK version, and I don't get a syntax error.  So it must have been a transient problem.

Thanks,

Timothy