| Bug #72064 | since 5.7 error 1416 is considered fatal, but it shouldn't be. | ||
|---|---|---|---|
| Submitted: | 17 Mar 2014 18:57 | Modified: | 28 Mar 2014 20:27 |
| Reporter: | Shane Bester (Platinum Quality Contributor) | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Stored Routines | Severity: | S3 (Non-critical) |
| Version: | 5.7.3 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
[28 Mar 2014 20:27]
Paul DuBois
Noted in 5.7.5 changelog. ER_CANT_CREATE_GEOMETRY_OBJECT was treated as a fatal error, thus not catchable with condition handlers.

Description: mysql> call `p1`(); ERROR 1416 (22003): Cannot get geometry object from data you send to the GEOMETRY field mysql> select version(); +-----------------+ | version() | +-----------------+ | 5.7.5-m15-debug | +-----------------+ 1 row in set (0.00 sec) ...vs... mysql> call `p1`(); +----+ | hi | +----+ | hi | +----+ 1 row in set (0.02 sec) Query OK, 0 rows affected (0.02 sec) mysql> select version(); +--------------+ | version() | +--------------+ | 5.6.16-debug | +--------------+ 1 row in set (0.00 sec) How to repeat: drop procedure if exists `p1`; drop table if exists `t1`; create table `t1`(`a` point not null,spatial key(`a`))engine=myisam; delimiter $ create procedure `p1`() begin declare continue handler for sqlexception begin select 'hi'; end; insert into `t1` values(""); end $ delimiter ; call `p1`(); select version(); Suggested fix: I would like the handler to catch this so that random testcases can be written in stored procedure instead of some script.