| Bug #9572 | Stored procedures: variable type declarations ignored | ||
|---|---|---|---|
| Submitted: | 1 Apr 2005 20:36 | Modified: | 7 Dec 2005 20:40 |
| Reporter: | Peter Gulutzan | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Stored Routines | Severity: | S3 (Non-critical) |
| Version: | 5.0 | OS: | Linux (SUSE 9.2) |
| Assigned to: | Alexander Nozdrin | CPU Architecture: | Any |
[1 Apr 2005 20:36]
Peter Gulutzan
[14 Sep 2005 10:04]
Valeriy Kravchuk
Verified on 5.0.13-BK also:
mysql> set sql_mode='traditional'//
Query OK, 0 rows affected (0,03 sec)
mysql> create procedure ptiny () begin declare v tinyint default 1e200; select
-> vv; end//
Query OK, 0 rows affected (0,23 sec)
mysql> call ptiny()//
+----------------------+
| v |
+----------------------+
| -9223372036854775808 |
+----------------------+
1 row in set (0,00 sec)
Query OK, 0 rows affected (0,00 sec)
mysql> create procedure pdec () begin declare v decimal(5) default 1e200; select
-> v; end//
Query OK, 0 rows affected (0,01 sec)
mysql> call pdec()//
+-------------------------------------------------------------------------------
----+
| v
|
+-------------------------------------------------------------------------------
----+
| 182135734368278484639385041047239877871023591066789981811181813306167128854888
448 |
+-------------------------------------------------------------------------------
----+
1 row in set (0,00 sec)
Query OK, 0 rows affected, 1 warning (0,00 sec)
mysql> create procedure pchar () begin declare v char(5) default 'abc '; select
-> v like 'abc__'; end//
Query OK, 0 rows affected (0,04 sec)
mysql> call pchar()//
+----------------+
| v like 'abc__' |
+----------------+
| 1 |
+----------------+
1 row in set (0,03 sec)
Query OK, 0 rows affected (0,03 sec)
mysql> select version()//
+-------------------+
| version() |
+-------------------+
| 5.0.13-beta-debug |
+-------------------+
1 row in set (0,00 sec)
[21 Oct 2005 12:30]
Roland Bouman
I'm having similar trouble in WinXP, and for parameters and variables alike:
create procedure p_varchar(in v varchar(2))
begin
declare vv varchar(1);
set vv := v;
select v,vv;
end;
//
call p_varchar('aaa');
//
+-----+-----+
| v | vv |
+-----+-----+
| aaa | aaa |
+-----+-----+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
create procedure p_char(in v char(2))
begin
declare vv char(1);
set vv := v;
select v,vv;
end;
//
call p_char('aa');
//
+-----+-----+
| v | vv |
+-----+-----+
| aaa | aaa |
+-----+-----+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
create procedure p_decimal(in v decimal(2))
begin
declare vv decimal(1);
set vv := v;
select v,vv;
end;
//
call p_decimal(10);
+-----+-----+
| v | vv |
+-----+-----+
| 111 | 111 |
+-----+-----+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
[7 Dec 2005 20:40]
Paul DuBois
Noted in 5.0.18 changelog.
