Bug #56 MySQL server crashes if BLOB column is updated with load_file()
Submitted: 4 Feb 2003 18:24 Modified: 4 Feb 2003 18:24
Reporter: Sinisa Milivojevic Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:4.0 and higher OS:Any (ALL)
Assigned to: Sinisa Milivojevic

[4 Feb 2003 18:24] Sinisa Milivojevic
Description:
UPDATE a blob column with load_file() or with a long string.

How to repeat:
drop table if exists teste;
create table teste ( id integer auto_increment unique,imagem LONGBLOB not null);
insert into teste (id) values (1);
update teste set imagem=load_file("/mnt/mail/archive/slike/pic1.jpg") where id=1;
select if(imagem is null, "ERRO", "OK") from teste where id = 1;
drop table if exists teste;

Suggested fix:
===== sql/sql_update.cc 1.74 vs edited =====
*** /tmp/sql_update.cc-1.74-30953       Wed Dec 18 18:59:56 2002
--- edited/sql/sql_update.cc    Tue Feb  4 19:11:08 2003
***************
*** 116,121 ****
--- 116,122 ----
  
    // Don't count on usage of 'only index' when calculating which key to use
    table->used_keys=0;
+   table->copy_blobs=1;
    select=make_select(table,0,0,conds,&error);
    if (error ||
        (select && select->check_quick(safe_update, limit)) || !limit)
***************
*** 474,479 ****
--- 475,481 ----
        tl->shared= table_count++;
        table->no_keyread=1;
        table->used_keys=0;
+       table->copy_blobs=1;      
        table->pos_in_table_list= tl;
      }
    }