On Thu, 2010-12-16 at 11:10 -0200, Davi Arnaut wrote:
> Hi Libing,
>
> On 12/16/10 10:33 AM, Li-Bing.Song@stripped wrote:
> > #At file:///home/anders/Work/bzrwork/wt1/mysql-trunk-wl5576/ based on
> revid:alexander.nozdrin@stripped
> >
> > 3207 Li-Bing.Song@stripped 2010-12-16
> > WL#5576 Prohibit CREATE TABLE ... SELECT to modify other tables
> >
> > 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.
> >
> > BUG#39804 and BUG#55876 are fixed by this worklog.
>
> Nice work. Patch approved given the comments below are addressed.
>
> [..]
>
> > === modified file 'sql/share/errmsg-utf8.txt'
> > --- a/sql/share/errmsg-utf8.txt 2010-11-15 16:43:41 +0000
> > +++ b/sql/share/errmsg-utf8.txt 2010-12-16 12:33:08 +0000
> > @@ -6446,3 +6446,6 @@ ER_RPL_INFO_DATA_TOO_LONG
> > eng "Data for column '%s' too long"
> > ER_CANT_LOCK_RPL_INFO_TABLE
> > eng "You can't use locks with rpl info tables."
> > +
> > +ER_CANT_UPDATE_USED_TABLE_IN_CREATE_TABLE_SELECT
>
> Suggest to rename to ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT.
OK.
>
> > + eng "Can't update table '%-.192s' using a stored function while '%-.192s' is
> being created. CREATE TABLE ... SELECT statement aborted."
>
> The last part "CREATE TABLE ... SELECT statement aborted." is
> unnecessary. Please drop it.
>
OK.
Thanks.
> Regards,
>
> Davi
--
Your Sincerely,
Libing Song
==================================
MySQL Replication Team
Software Engineer
Email : Li-Bing.Song@stripped
Skype : libing.song
MSN : slb_database@stripped
Phone : +86 010-6505-4020 ext. 319
Mobile: +86 138-1144-2038
==================================