Details
-
Task
-
Status: Open (View Workflow)
-
Minor
-
Resolution: Unresolved
-
None
-
None
Description
Test case for MySQL "WL#5576 Prohibit CREATE TABLE ... SELECT to modify other tables" fails in 10.0.
Test diff attached. Please try to apply test case as is unless it is applicable.
Relevant 5.6 revision:
revno: 2876.368.90
|
committer: Libing Song <anders.song@greatopensource.com>
|
branch nick: mysql-trunk
|
timestamp: Mon 2011-02-21 10:57:30 +0800
|
message:
|
WL#5576 Prohibit CREATE TABLE ... SELECT to modify other tables
|
BUG#11749792 and BUG#11763193 are fixed by this worklog.
|
|
In 'CREATE TABLE ... SELECT' statement, SELECT clause could call store functions
|
to modify other tables. It made CTS's behavior towards complex and not
|
understandable. It also caused some binlogging problem. So the behavior modifying
|
other tables is prohibited in this worklog.
|
|
In this patch, code is added to check if there is any other table owning WRITE
|
lock just after all tables have been locked. CREATE TABLE ... SELECT will fail
|
and print an error immediately if any other table has WRITE lock.
|
As SELECT ... FOR UPDATE uses WRITE lock too. FOR UPDATE clause is also
|
prohibited in CREATE TABLE ... SELECT statement.
|
Attachments
Issue Links
- is part of
-
MDEV-4784 merge test cases from 5.6
-
- Stalled
-
- relates to
-
MDEV-10719 'create temporary table as select' generates unnecessary table locks
-
- Confirmed
-
mysql commit 53fdfe1c9386a7738e70949dae4834a1d8ae992e now that its no longer in bzr.
The error message ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT has been ported wit mariadb-10.3 with nothing that uses it.
Like MDEV-10719 I don't see why such a restriction applies.