Bug #55617 Irrelevant error on attempt to override an existing view by CREATE IF NOT EXISTS
| Submitted: | 28 Jul 2010 21:48 | Modified: | 8 Sep 2010 2:10 |
|---|---|---|---|
| Reporter: | Elena Stepanova | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server | Severity: | S3 (Non-critical) |
| Version: | trunk-wl5370 | OS: | Any |
| Assigned to: | Libing Song | CPU Architecture: | Any |
[28 Jul 2010 21:48]
Elena Stepanova
[30 Jul 2010 10:01]
Nidhi Shrotriya
To add here- - CREATE TABLE..SELECT should give ER_TABLE_EXISTS_ERROR. - CREATE TABLE IF NOT EXISTS..SELECT should produce the warning. wl5370 spec. should also be corrected here as below- Init: CREATE an updatable view t1. - verify that CREATE TABLE t1 ... SELECT --update here produces ER_TABLE_EXISTS_ERROR and otherwise has no effect - CREATE TABLE IF NOT EXISTS t1 ... SELECT produces a warning and does not insert into the view.
[2 Aug 2010 10:10]
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/commits/114821 3080 Li-Bing.Song@sun.com 2010-08-02 Bug#55617 Irrelevant error on attempt to override an existing view by CREATE IF NOT EXISTS If a view v already exists and reads from a table t, and CREATE TABLE IF NOT EXISTS v AS SELECT * FROM t is attempted, it fails with ER_VIEW_PREVENT_UPDATE. It is not reasonable with the new logic, since the insert is not going to happen anyway After this patch, ER_VIEW_PREVENT_UPDATE is replaced by ER_TABLE_EXISTS_ERROR. @ mysql-test/t/create.test After WL#5370, the statement just generates a warning that the table already exists @ mysql-test/t/merge.test After WL#5370, the error ER_UPDATE_TABLE_USED will never appear on 'CREATE TABLE IF NOT EXISTS ... SELECT' statement. So this test for bug#15522 is removed. @ mysql-test/t/union.test After WL#5370, the statement just generates a warning that the table already exists @ sql/sql_parse.cc After WL#5370, it doesn't need to check whether the creating table is appearing in SELECT clause. As the statement will end immediately with an error or a warning if it already exists.
[2 Aug 2010 10:59]
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/commits/114826 3080 Li-Bing.Song@sun.com 2010-08-02 Bug#55617 Irrelevant error on attempt to override an existing view by CREATE IF NOT EXISTS If a view v already exists and reads from a table t, and CREATE TABLE IF NOT EXISTS v AS SELECT * FROM t is attempted, it fails with ER_VIEW_PREVENT_UPDATE. It is not reasonable with the new logic, since the insert is not going to happen anyway After this patch, ER_VIEW_PREVENT_UPDATE is replaced by ER_TABLE_EXISTS_ERROR. @ mysql-test/t/create.test After WL#5370, the statements just generates a warning or an error that ER_TABLE_EXISTS_ERROR instead of ER_UPDATE_TABLE_USED. @ mysql-test/t/merge.test After WL#5370, the statement just generates a warning that the table already exists @ mysql-test/t/union.test After WL#5370, the statement generates the ER_TABLE_EXISTS_ERROR error. @ sql/sql_parse.cc After WL#5370, it doesn't need to check whether the creating table is appearing in SELECT clause. As the statement will end immediately with an error or a warning if it already exists.
[18 Aug 2010 9:27]
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/commits/116060 3184 Li-Bing.Song@sun.com 2010-08-18 WL#5370 Keep forward-compatibility when changing 'CREATE TABLE IF NOT EXISTS ... SELECT' behaviour BUG#47132, BUG#47442, BUG49494, BUG#23992 and BUG#48814 will disappear automatically after the this patch. BUG#55617 is fixed by this patch too. This is the 5.5 part. It implements: - 'CREATE TABLE IF NOT EXISTS ... SELECT' statement will not insert anything and binlog anything if the table already exists. It only generate a warning that table already exists. - A couple of test cases for the behavior changing.
[18 Aug 2010 9:38]
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/commits/116062 3186 Li-Bing.Song@sun.com 2010-08-18 WL#5370 Keep forward-compatibility when changing 'CREATE TABLE IF NOT EXISTS ... SELECT' behaviour BUG#47132, BUG#47442, BUG49494, BUG#23992 and BUG#48814 will disappear automatically after the this patch. BUG#55617 is fixed by this patch too. This is the 5.5 part. It implements: - 'CREATE TABLE IF NOT EXISTS ... SELECT' statement will not insert anything and binlog anything if the table already exists. It only generate a warning that table already exists. - A couple of test cases for the behavior changing.
[19 Aug 2010 7:45]
Libing Song
It was fixed in the final patch for WL#5370.
[25 Aug 2010 9:22]
Bugs System
Pushed into mysql-5.5 5.5.6-m3 (revid:alik@ibmvm-20100825092002-2yvkb3iwu43ycpnm) (version source revid:alik@ibmvm-20100825092002-2yvkb3iwu43ycpnm) (merge vers: 5.5.6-m3) (pib:20)
[30 Aug 2010 8:30]
Bugs System
Pushed into mysql-trunk 5.6.1-m4 (revid:alik@sun.com-20100830082732-n2eyijnv86exc5ci) (version source revid:alik@sun.com-20100830082732-n2eyijnv86exc5ci) (merge vers: 5.6.1-m4) (pib:21)
[30 Aug 2010 8:34]
Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100830082745-n6sh01wlwh3itasv) (version source revid:alik@sun.com-20100830082745-n6sh01wlwh3itasv) (pib:21)
[8 Sep 2010 2:10]
Paul DuBois
Bug does not appear in any released version. No changelog entry needed.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.052 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.