| Bug #13613 | substring function in stored procedure | ||
|---|---|---|---|
| Submitted: | 29 Sep 2005 17:17 | Modified: | 24 Nov 2005 14:21 |
| Reporter: | Samir Seba | Email Updates: | |
| Status: | Can't repeat | Impact on me: | |
| Category: | MySQL Server: Stored Routines | Severity: | S3 (Non-critical) |
| Version: | 5.0.13 | OS: | Windows (windows x86/Linux) |
| Assigned to: | Alexander Nozdrin | CPU Architecture: | Any |
[29 Sep 2005 17:17]
Samir Seba
[29 Sep 2005 19:54]
MySQL Verification Team
miguel@hegel:~/dbs/5.0> bin/mysql -uroot test
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 5.0.14-rc-debug
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> delimiter //
mysql> CREATE PROCEDURE test (x varchar(50) )
-> begin
-> set x = substring(x,1,3);
-> select x;
-> end//
Query OK, 0 rows affected (0.00 sec)
mysql> call test("abcdef")//
+-----+
| x |
+-----+
| |
+-----+
1 row in set (0.01 sec)
Query OK, 0 rows affected (0.01 sec)
mysql> set @myvar = "abcdef"//
Query OK, 0 rows affected (0.00 sec)
mysql> select substring(@myvar,1,3)//
+-----------------------+
| substring(@myvar,1,3) |
+-----------------------+
| abc |
+-----------------------+
1 row in set (0.00 sec)
mysql>
[29 Sep 2005 21:18]
Samir Seba
if you need more detail let me know
[29 Sep 2005 21:21]
Samir Seba
the issue is when you do a substring from a varibale and assign it to the same variable the select substring(x,1,3) is working fine , but set x = substring(x,1,3) and i need that in my source. for the moment i used an other variable
[30 Sep 2005 12:16]
Samir Seba
i want to let know that i need the result of substring( x, 1,3) in the call of my stored procedure , i mean. my stored procedure could be like following:
create procedure test ( x varchar(50))
begin
set x=substring(x,1,3);
/* display the value of x */
select x;
call second_proc(x);
end
the two tests you did are as following :
1- in console mode
mysql >set @x='abcde'
mysql> select substring(@x,1,3)
in that mode it's working fine , i known that but my question was about stored procedure. i have the same thing in the sql server and i'm testing to migrate stored procedure from mssql to mysql.
2- the way you did it in the stored procedure is not the way i want it ( as i explain it in the beginning of this comment.
[24 Nov 2005 14:21]
Alexander Nozdrin
mysql> delimiter |
mysql>
mysql> CREATE PROCEDURE p1(x VARCHAR(50))
-> BEGIN
-> SET x = SUBSTRING(x, 1, 3);
-> SELECT x;
-> END|
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> delimiter ;
mysql>
mysql> CALL p1('abcdef');
+-----+
| x |
+-----+
| abc |
+-----+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
mysql> select version();
+-------------------------------+
| version() |
+-------------------------------+
| 5.0.17-valgrind-max-debug-log |
+-------------------------------+
1 row in set (0.00 sec)
[24 Nov 2005 15:22]
Konstantin Osipov
Alik, please add a test case for this bug to the test suite (sp.test), unless you're sure that this is covered already.
[24 Nov 2005 16:00]
Alexander Nozdrin
Added into sp-vars.test.
