Bug #13095 | Cannot create VIEWs in prepared statements | ||
---|---|---|---|
Submitted: | 9 Sep 2005 20:46 | Modified: | 27 Oct 2005 7:25 |
Reporter: | philip antoniades | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Stored Routines | Severity: | S3 (Non-critical) |
Version: | 5.0.13-beta | OS: | Linux (Linux (RHAS 3.0)) |
Assigned to: | Alexander Nozdrin | CPU Architecture: | Any |
[9 Sep 2005 20:46]
philip antoniades
[9 Sep 2005 20:56]
MySQL Verification Team
I was unable to repeat with below changeset: ChangeSet@1.1961, 2005-09-08 18:27:05+02:00, petr@mysql.com Merge bk-internal.mysql.com:/home/bk/mysql-5.0 into mysql.com:/usersnfs/pchardin/mysql-5.0 miguel@hegel:~/dbs/5.0> bin/mysql -uroot test Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 to server version: 5.0.13-beta-debug Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> delimiter // mysql> create procedure dynamic_view -> ( -> str_tablename varchar(32) -> ) -> BEGIN -> SET @create_table = CONCAT( "CREATE TABLE IF NOT EXISTS ", str_tablename, "( "> stuff char(15) )" ); -> PREPARE stmt_tbl FROM @create_table; -> EXECUTE stmt_tbl; -> -> SET @add_rows = CONCAT( "INSERT INTO ", str_tablename, " VALUES( 'rar' ),( "> 'gar' ),( 'har' )" ); -> PREPARE stmt_tbl FROM @add_rows; -> EXECUTE stmt_tbl; -> -> SET @create_view = CONCAT( "CREATE VIEW MyView( mystuff ) AS SELECT stuff FROM "> ", str_tablename ); -> PREPARE stmt_view FROM @create_view; -> EXECUTE stmt_view; -> -> SELECT * FROM MyView; -> END// Query OK, 0 rows affected (0.03 sec) mysql> show create procedure dynamic_view\G *************************** 1. row *************************** Procedure: dynamic_view sql_mode: Create Procedure: CREATE PROCEDURE `dynamic_view`( str_tablename varchar(32) ) BEGIN SET @create_table = CONCAT( "CREATE TABLE IF NOT EXISTS ", str_tablename, "( stuff char(15) )" ); PREPARE stmt_tbl FROM @create_table; EXECUTE stmt_tbl; SET @add_rows = CONCAT( "INSERT INTO ", str_tablename, " VALUES( 'rar' ),( 'gar' ),( 'har' )" ); PREPARE stmt_tbl FROM @add_rows; EXECUTE stmt_tbl; SET @create_view = CONCAT( "CREATE VIEW MyView( mystuff ) AS SELECT stuff FROM ", str_tablename ); PREPARE stmt_view FROM @create_view; EXECUTE stmt_view; SELECT * FROM MyView; END 1 row in set (0.00 sec) mysql>
[13 Sep 2005 20:36]
philip antoniades
Hi, Were you also able to execute the procedure and get results? thanks, Philip
[24 Oct 2005 20:54]
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/31405
[24 Oct 2005 21:05]
Alexander Nozdrin
Approved by Sanja Byelkin by email. Fixed in 5.0, currently tagged 5.0.15.
[27 Oct 2005 7:25]
Jon Stephens
Thank you for your bug report. This issue has already been fixed in the latest released version of that product, which you can download at http://www.mysql.com/downloads/ Additional info: Documented fix in 5.0.15 changelog.