Bug #128 INTO OUTFILE/DUMPFILE should not be cached
Submitted: 6 Mar 2003 8:24 Modified: 6 Mar 2003 8:24
Reporter: Oleksandr Byelkin Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:4.0 OS:Any (any)
Assigned to: Oleksandr Byelkin CPU Architecture:Any

[6 Mar 2003 8:24] Oleksandr Byelkin
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; 
        };