Description:
INTO OUTFILE/DUMPFILE should not be cached
How to repeat:
Select *
INTO OUTFILE "YourFileName"
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
From AnyTable;
twice with switched on query cache
Suggested fix:
diff -Nrc a/sql/sql_yacc.yy b/sql/sql_yacc.yy
*** a/sql/sql_yacc.yy Thu Mar 6 17:37:39 2003
--- b/sql/sql_yacc.yy Thu Mar 6 17:37:39 2003
***************
*** 2448,2460 ****
opt_into:
INTO OUTFILE TEXT_STRING
{
! if (!(Lex->exchange= new sql_exchange($3.str,0)))
YYABORT;
}
opt_field_term opt_line_term
| INTO DUMPFILE TEXT_STRING
{
! if (!(Lex->exchange= new sql_exchange($3.str,1)))
YYABORT;
};
--- 2448,2464 ----
opt_into:
INTO OUTFILE TEXT_STRING
{
! THD *thd= current_thd;
! thd->safe_to_cache_query= 0;
! if (!(thd->lex.exchange= new sql_exchange($3.str,0)))
YYABORT;
}
opt_field_term opt_line_term
| INTO DUMPFILE TEXT_STRING
{
! THD *thd= current_thd;
! thd->safe_to_cache_query= 0;
! if (!(thd->lex.exchange= new sql_exchange($3.str,1)))
YYABORT;
};
Description: INTO OUTFILE/DUMPFILE should not be cached How to repeat: Select * INTO OUTFILE "YourFileName" FIELDS TERMINATED BY ',' ENCLOSED BY '"' From AnyTable; twice with switched on query cache Suggested fix: diff -Nrc a/sql/sql_yacc.yy b/sql/sql_yacc.yy *** a/sql/sql_yacc.yy Thu Mar 6 17:37:39 2003 --- b/sql/sql_yacc.yy Thu Mar 6 17:37:39 2003 *************** *** 2448,2460 **** opt_into: INTO OUTFILE TEXT_STRING { ! if (!(Lex->exchange= new sql_exchange($3.str,0))) YYABORT; } opt_field_term opt_line_term | INTO DUMPFILE TEXT_STRING { ! if (!(Lex->exchange= new sql_exchange($3.str,1))) YYABORT; }; --- 2448,2464 ---- opt_into: INTO OUTFILE TEXT_STRING { ! THD *thd= current_thd; ! thd->safe_to_cache_query= 0; ! if (!(thd->lex.exchange= new sql_exchange($3.str,0))) YYABORT; } opt_field_term opt_line_term | INTO DUMPFILE TEXT_STRING { ! THD *thd= current_thd; ! thd->safe_to_cache_query= 0; ! if (!(thd->lex.exchange= new sql_exchange($3.str,1))) YYABORT; };