| Bug #10976 | Stored procedures: "warnings" aren't caught by SQLWARNING | ||
|---|---|---|---|
| Submitted: | 30 May 2005 21:04 | Modified: | 20 Jan 2006 9:19 |
| Reporter: | Peter Gulutzan | Email Updates: | |
| Status: | Duplicate | Impact on me: | |
| Category: | MySQL Server: Stored Routines | Severity: | S3 (Non-critical) |
| Version: | 5.0.7-beta-debug, 5.0.14-rc | OS: | Linux (SUSE 9.2) |
| Assigned to: | Assigned Account | CPU Architecture: | Any |
[30 May 2005 21:04]
Peter Gulutzan
[30 May 2005 21:25]
MySQL Verification Team
Thank you for the bug report.
[4 Aug 2005 14:14]
Anders Karlsson
This should not be assigned to me.
[16 Sep 2005 16:36]
Valeriy Kravchuk
Reverified on 5.0.14-rc. Still exists:
mysql> create table tno (s1 decimal(38));
Query OK, 0 rows affected (0.01 sec)
mysql> insert into tno values
-> (12345678901234567890123456789012345678),(1234567890123456789012345678901
2345678
-> );
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select variance(s1) from tno;
+-------------------------------------------------------------------------------
---+
| variance(s1)
|
+-------------------------------------------------------------------------------
---+
| 148148146814814804879621854003514651080099786588925528265859187877110349824.00
00 |
+-------------------------------------------------------------------------------
---+
1 row in set, 1 warning (0.01 sec)
mysql> show warnings;
+-------+------+---------------------------------------+
| Level | Code | Message |
+-------+------+---------------------------------------+
| Error | 1292 | Truncated incorrect DECIMAL value: '' |
+-------+------+---------------------------------------+
1 row in set (0.00 sec)
mysql> delimiter //
mysql> create procedure pno () begin declare continue handler for sqlwarning
-> select 'x'; select variance(s1) from tno; end//
Query OK, 0 rows affected (0.00 sec)
mysql> call pno()//
+-------------------------------------------------------------------------------
---+
| variance(s1)
|
+-------------------------------------------------------------------------------
---+
| 148148146814814804879621854003514651080099786588925528265859187877110349824.00
00 |
+-------------------------------------------------------------------------------
---+
1 row in set (0.00 sec)
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> select version()//
+-----------+
| version() |
+-----------+
| 5.0.14-rc |
+-----------+
1 row in set (0.00 sec)
[18 Jan 2006 20:50]
Konstantin Osipov
The test case: create table t1 (s1 decimal(38)); insert into t1 values (12345678901234567890123456789012345678), (12345678901234567890123456789012345678); select variance(s1) from t1; show warnings; delimiter // drop procedure if exists pno// create procedure pno() begin declare continue handler for sqlwarning select 'x'; select variance(s1) from t1; end// delimiter ; call pno(); show warnings; select version();
[20 Jan 2006 9:19]
Per-Erik Martin
This is a duplicate of BUG#9857: Stored procedures: handler for sqlwarning ignored (which is "to be fixed later").
