| Bug #50941 | Changes in view are not reflected in prepared statements | ||
|---|---|---|---|
| Submitted: | 5 Feb 2010 12:00 | Modified: | 5 Feb 2010 17:48 |
| Reporter: | Roy Lyseng | Email Updates: | |
| Status: | Duplicate | Impact on me: | |
| Category: | MySQL Server: Prepared statements | Severity: | S2 (Serious) |
| Version: | 5.1,6.0 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
[5 Feb 2010 12:00]
Roy Lyseng
[5 Feb 2010 14:34]
Valeriy Kravchuk
Thank you for the bug report. Verified just as described:
C:\Program Files\MySQL\MySQL Server 5.1\bin>mysql -uroot -proot -P3310 test
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.1.43-community MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> CREATE TABLE t1(a INT PRIMARY KEY, b INT);
Query OK, 0 rows affected (0.92 sec)
mysql> INSERT INTO t1 VALUES(1,10),(2,20);
Query OK, 2 rows affected (0.19 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> CREATE VIEW v1 AS SELECT a AS va FROM t1;
Query OK, 0 rows affected (0.13 sec)
mysql> PREPARE stmt FROM "
"> SELECT va FROM v1;
"> ";
Query OK, 0 rows affected (0.09 sec)
Statement prepared
mysql> EXECUTE stmt;
+----+
| va |
+----+
| 1 |
| 2 |
+----+
2 rows in set (0.03 sec)
mysql> DROP VIEW v1;
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE VIEW v1 AS SELECT a+b AS va FROM t1;
Query OK, 0 rows affected (0.09 sec)
mysql> EXECUTE stmt;
+----+
| va |
+----+
| 1 |
| 2 |
+----+
2 rows in set (0.00 sec)
mysql> PREPARE stmt FROM "
"> SELECT va FROM v1;
"> ";
Query OK, 0 rows affected (0.00 sec)
Statement prepared
mysql> EXECUTE stmt;
+----+
| va |
+----+
| 1 |
| 2 |
+----+
2 rows in set (0.00 sec)
mysql> DROP VIEW v1;
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE VIEW v1 AS SELECT a+b AS va FROM t1 WHERE b<20;
Query OK, 0 rows affected (0.03 sec)
mysql> EXECUTE stmt;
+------+
| va |
+------+
| 11 |
| 22 |
+------+
2 rows in set (0.00 sec)
Reprepare does NOT happen:
mysql> show session status like 'Com_stmt_%';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| Com_stmt_close | 1 |
| Com_stmt_execute | 4 |
| Com_stmt_fetch | 0 |
| Com_stmt_prepare | 2 |
| Com_stmt_reprepare | 0 |
| Com_stmt_reset | 0 |
| Com_stmt_send_long_data | 0 |
+-------------------------+-------+
7 rows in set (0.05 sec)
mysql> DROP VIEW v1;
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE VIEW v1 AS SELECT a+b AS va FROM t1;
Query OK, 0 rows affected (0.03 sec)
mysql> EXECUTE stmt;
+------+
| va |
+------+
| 11 |
| 22 |
+------+
2 rows in set (0.00 sec)
mysql> show session status like 'Com_stmt_%';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| Com_stmt_close | 1 |
| Com_stmt_execute | 5 |
| Com_stmt_fetch | 0 |
| Com_stmt_prepare | 2 |
| Com_stmt_reprepare | 0 |
| Com_stmt_reset | 0 |
| Com_stmt_send_long_data | 0 |
+-------------------------+-------+
7 rows in set (0.00 sec)
[5 Feb 2010 17:07]
Konstantin Osipov
Valeriy, it's a duplicate of a well-known bug -- could you please at least mention that?
[5 Feb 2010 17:48]
Sveta Smirnova
Duplicate of bug #36002
