Hi Serg, On Mon, Jun 8, 2015 at 11:07 AM, Sergei Golubchik <serg@mariadb.org> wrote:
Hi, Nirbhay!
On Jun 02, Nirbhay Choubey wrote:
revision-id: 1ed46831ed3a1c842b45f7819edd48a233080ce4 parent(s): 6d5b723bdc3e04978619b9673fca266e0426916f committer: Nirbhay Choubey branch nick: 10.0-galera.ctas timestamp: 2015-06-02 17:59:32 -0400 message:
MDEV-8260 : Issues related to concurrent CTAS
* Wait for aborted thd (victim) to release MDL locks * Skip aborting an already aborted thd * Defer setting OK status in case of CTAS * Minor cosmetic changes * Added a test case
So, I'm only reviewing non-wsrep part, ok?
Ok. :) ..skip..
I think we've discussed a slightly different fix,where the parent class (select_insert) wouldn't need to check thd->lex->sql_command. Like, create two methods
select_insert::prepare_eof select_insert::send_ok_packet
the first method will have everything of the current select_insert::send_eof but without ::my_ok part. Then select_insert::send_eof() will be just
bool select_insert::send_eof() { return prepare_eof() || send_ok_packet(); }
and select_create::send_eof() will do prepare_eof(), commit and other stuff, send_ok_packet().
In this case you won't need to test for thd->lex->sql_command in the parent class. And you won't need prepare_ok_info(), it'll be inside send_ok_packet().
I have redone the patch with your suggestions. http://lists.askmonty.org/pipermail/commits/2015-June/008023.html Please have a look. Thanks! -- Nirbhay
Regards, Sergei