Loading mysql-test/r/kill.result +2 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ select 4; 4 4 drop table t1; kill (select count(*) from mysql.user); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select count(*) from mysql.user)' at line 1 create table t1 (id int primary key); create table t2 (id int unsigned not null); insert into t2 select id from t1; Loading mysql-test/t/kill.test +5 −2 Original line number Diff line number Diff line Loading @@ -39,9 +39,12 @@ select @id != connection_id(); connection con2; select 4; drop table t1; disconnect con2; connection default; disconnect con2; --error 1064 kill (select count(*) from mysql.user); # # BUG#14851: killing long running subquery processed via a temporary table. # Loading sql/sql_yacc.yy +7 −10 Original line number Diff line number Diff line Loading @@ -3564,8 +3564,7 @@ select_derived2: { LEX *lex= Lex; lex->derived_tables= 1; if (((int)lex->sql_command >= (int)SQLCOM_HA_OPEN && lex->sql_command <= (int)SQLCOM_HA_READ) || if (lex->sql_command == (int)SQLCOM_HA_READ || lex->sql_command == (int)SQLCOM_KILL) { yyerror(ER(ER_SYNTAX_ERROR)); Loading Loading @@ -4739,16 +4738,15 @@ purge_option: /* kill threads */ kill: KILL_SYM expr KILL_SYM { Lex->sql_command= SQLCOM_KILL; } expr { LEX *lex=Lex; if ($2->fix_fields(lex->thd, 0, &$2) || $2->check_cols(1)) if ($3->fix_fields(lex->thd, 0, &$3) || $3->check_cols(1)) { send_error(lex->thd, ER_SET_CONSTANTS_ONLY); YYABORT; } lex->sql_command=SQLCOM_KILL; lex->thread_id= (ulong) $2->val_int(); lex->thread_id= (ulong) $3->val_int(); }; /* change database */ Loading Loading @@ -6162,8 +6160,7 @@ subselect_start: '(' SELECT_SYM { LEX *lex=Lex; if (((int)lex->sql_command >= (int)SQLCOM_HA_OPEN && lex->sql_command <= (int)SQLCOM_HA_READ) || if (lex->sql_command == (int)SQLCOM_HA_READ || lex->sql_command == (int)SQLCOM_KILL) { yyerror(ER(ER_SYNTAX_ERROR)); Loading Loading
mysql-test/r/kill.result +2 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ select 4; 4 4 drop table t1; kill (select count(*) from mysql.user); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select count(*) from mysql.user)' at line 1 create table t1 (id int primary key); create table t2 (id int unsigned not null); insert into t2 select id from t1; Loading
mysql-test/t/kill.test +5 −2 Original line number Diff line number Diff line Loading @@ -39,9 +39,12 @@ select @id != connection_id(); connection con2; select 4; drop table t1; disconnect con2; connection default; disconnect con2; --error 1064 kill (select count(*) from mysql.user); # # BUG#14851: killing long running subquery processed via a temporary table. # Loading
sql/sql_yacc.yy +7 −10 Original line number Diff line number Diff line Loading @@ -3564,8 +3564,7 @@ select_derived2: { LEX *lex= Lex; lex->derived_tables= 1; if (((int)lex->sql_command >= (int)SQLCOM_HA_OPEN && lex->sql_command <= (int)SQLCOM_HA_READ) || if (lex->sql_command == (int)SQLCOM_HA_READ || lex->sql_command == (int)SQLCOM_KILL) { yyerror(ER(ER_SYNTAX_ERROR)); Loading Loading @@ -4739,16 +4738,15 @@ purge_option: /* kill threads */ kill: KILL_SYM expr KILL_SYM { Lex->sql_command= SQLCOM_KILL; } expr { LEX *lex=Lex; if ($2->fix_fields(lex->thd, 0, &$2) || $2->check_cols(1)) if ($3->fix_fields(lex->thd, 0, &$3) || $3->check_cols(1)) { send_error(lex->thd, ER_SET_CONSTANTS_ONLY); YYABORT; } lex->sql_command=SQLCOM_KILL; lex->thread_id= (ulong) $2->val_int(); lex->thread_id= (ulong) $3->val_int(); }; /* change database */ Loading Loading @@ -6162,8 +6160,7 @@ subselect_start: '(' SELECT_SYM { LEX *lex=Lex; if (((int)lex->sql_command >= (int)SQLCOM_HA_OPEN && lex->sql_command <= (int)SQLCOM_HA_READ) || if (lex->sql_command == (int)SQLCOM_HA_READ || lex->sql_command == (int)SQLCOM_KILL) { yyerror(ER(ER_SYNTAX_ERROR)); Loading