| Bug #14885 | Out of memory when creating view in stored procedure | ||
|---|---|---|---|
| Submitted: | 11 Nov 2005 20:01 | Modified: | 6 Dec 2005 21:43 |
| Reporter: | Paul DuBois | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Stored Routines | Severity: | S3 (Non-critical) |
| Version: | 5.0.15-nt, 5.0.16 | OS: | Windows (Windows, Mac OS X 10.4.2) |
| Assigned to: | Oleksandr Byelkin | CPU Architecture: | Any |
[13 Nov 2005 12:29]
Valeriy Kravchuk
On Windows XP and 5.0.15-nt call p() leads to server crash and view is not created:
mysql> use test;
Database changed
mysql> drop view if exists v;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> drop procedure if exists p;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> delimiter //
mysql> create procedure p () deterministic
-> begin
-> create view v as select 1;
-> end;
-> //
Query OK, 0 rows affected (0.01 sec)
mysql> delimiter ;
mysql> call p();
ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql> exit
Bye
C:\Documents and Settings\openxs>net start MySQL5
...
C:\Documents and Settings\openxs>mysql -uroot -p -P3307
Enter password: ****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.15-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> use test;
Database changed
mysql> show create view v;
ERROR 1146 (42S02): Table 'test.v' doesn't exist
On Linux and 5.0.17-BK everything works as expected.
Sorry, but I have no Mac OS X to verify.
[30 Nov 2005 12:49]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/internals/32856
[2 Dec 2005 18:19]
Konstantin Osipov
Approved by email with few small notes.
[2 Dec 2005 19:18]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/internals/32976
[3 Dec 2005 17:52]
Oleksandr Byelkin
Thank you for bugreport! The patch for this bug id pushed to 5.0.17 and 5.1.4
[6 Dec 2005 21:43]
Paul DuBois
Noted in 5.0.17, 5.1.4 changelogs.

Description: I see this problem on Mac OS X (Tiger), but not on Linux. Creating a view within a stored procedure causes an out of memory error. However, the server does not crash, and the view appears to have been created! How to repeat: Input file: drop view if exists v; drop procedure if exists p; delimiter // create procedure p () deterministic begin create view v as select 1; end; // delimiter ; call p(); show create view v; Result: mysql> drop view if exists v; Query OK, 0 rows affected (0.07 sec) mysql> drop procedure if exists p; Query OK, 0 rows affected (0.40 sec) mysql> delimiter // mysql> create procedure p () deterministic -> begin -> create view v as select 1; -> end; -> // Query OK, 0 rows affected (0.02 sec) mysql> delimiter ; mysql> call p(); ERROR 5 (HY000): Out of memory (Needed 4281230632 bytes) mysql> show create view v; +--------------------------------------------------------------------------------------------------------+ | View | Create View |+--------------------------------------------------------------------------------------------------------+ | v | CREATE ALGORITHM=UNDEFINED DEFINER=`paul`@`localhost` SQL SECURITY DEFINER VIEW `v` AS select 1 AS `1` | +--------------------------------------------------------------------------------------------------------+ 1 row in set (0.04 sec)