Bug #25123 insert into view on dup key, allows cross table reference
| Submitted: | 17 Dec 2006 19:28 | Modified: | 8 Feb 2007 18:40 |
|---|---|---|---|
| Reporter: | Martin Friebe (Gold Quality Contributor) (OCA) | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Views | Severity: | S3 (Non-critical) |
| Version: | 5.0.30/5.1BK | OS: | FreeBSD (freebsd) |
| Assigned to: | Evgeny Potemkin | CPU Architecture: | Any |
| Tags: | VIEW | ||
[17 Dec 2006 19:28]
Martin Friebe
[18 Dec 2006 2:03]
Martin Friebe
Just seen, hittng the dup for a=2, cannot modify d, as there is no row in table b2 However hitting a=1 as duplicate, which has a row in b2, does neither update b2. insert into v1 (a) values (1) on duplicate key update d = d+1; As I said, I dont actually espect it to update b2 (even multi-table updates are posssible.) Reading from b2 and updating b1 does work partially (but seems to ignore te where insert into v1 (a) values (1) on duplicate key update b = d+1000; I does indeed read from b2, but not always the correct value. Try: insert into v1 (a) values (7) on duplicate key update b = d+1000; insert into v1 (a) values (7) on duplicate key update b = d+1000; select * from b1; # b does have a value 1010 or 1030 (the later for me) The 2nd should (if at all allowed) read a null for d. it returns one of the numeric values from the column (But then, it is not documented, that you can read b2 in this way at all)
[18 Dec 2006 12:17]
MySQL Verification Team
Thank you for the bug report.
[23 Dec 2006 21:19]
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/17365 ChangeSet@1.2351, 2006-12-24 00:18:42+03:00, evgen@moonbone.local +3 -0 Bug#25123: ON DUPLICATE KEY clause allows fields not from the insert table. When inserting into a join-based view update fields from the ON DUPLICATE KEY UPDATE wasn't checked to be from the table being inserted into and was silently ignored. The new check_view_single_update() function is added. It performs check for insert/update fields being from the same single table of the view.
[22 Jan 2007 12:15]
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/18535 ChangeSet@1.2389, 2007-01-22 15:14:38+03:00, evgen@moonbone.local +3 -0 Bug#25123: ON DUPLICATE KEY clause allows fields not from the insert table. When inserting into a join-based view the update fields from the ON DUPLICATE KEY UPDATE wasn't checked to be from the table being inserted into and were silently ignored. The new check_view_single_update() function is added to check that insert/update fields are being from the same single table of the view.
[22 Jan 2007 19:09]
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/18575 ChangeSet@1.2390, 2007-01-22 22:08:51+03:00, evgen@moonbone.local +1 -0 sql_prepare.cc: Post fix for bug#25123.
[28 Jan 2007 2:21]
Igor Babaev
The fix has been pushed into 5.0.36, 5.1.16-beta main trees.
[8 Feb 2007 18:40]
Paul DuBois
Noted in 5.0.36, 5.1.16 changelogs. Use of ON DUPLICATE KEY UPDATE defeated the usual restriction against inserting into a join-based view unless only one of the underlying tables is used.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.060 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.