From dd934da9159a6eb69fdd7fdd91a78c801a0b7caa Mon Sep 17 00:00:00 2001 From: unknown <tnurnberg@mysql.com> Date: Mon, 8 May 2006 04:37:58 +0200 Subject: [PATCH] Bug#10418: LOAD_FILE does not behave like in manual if file does not exist load_file() string-function should return NULL rather than throw an error if the file doesn't exist, as per the manual. mysql-test/t/outfile.test: expect NULL rather than error if file given to load_file() doesn't exist mysql-test/t/func_str.test: show that load_file() will return NULL rather than throw an error if file doesn't exist mysql-test/r/outfile.result: expect NULL rather than error if file given to load_file() doesn't exist mysql-test/r/func_str.result: expect NULL rather than error if file given to load_file() doesn't exist sql/item_strfunc.cc: load_file() should return NULL as per the docs if file not found, rather than throw an error --- mysql-test/r/func_str.result | 7 +++++++ mysql-test/r/outfile.result | Bin 959 -> 988 bytes mysql-test/t/func_str.test | 9 ++++++++- mysql-test/t/outfile.test | 1 - sql/item_strfunc.cc | 2 +- 5 files changed, 16 insertions(+), 3 deletions(-) diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result index ae6578795f..0609624af1 100644 --- a/mysql-test/r/func_str.result +++ b/mysql-test/r/func_str.result @@ -1000,3 +1000,10 @@ t 1000000 1 drop table t1; +select load_file("lkjlkj"); +load_file("lkjlkj") +NULL +select ifnull(load_file("lkjlkj"),"it's null"); +ifnull(load_file("lkjlkj"),"it's null") +it's null +End of 4.1 tests diff --git a/mysql-test/r/outfile.result b/mysql-test/r/outfile.result index 5eb24a78ef0d0242fcdd2f0ad1dfbf47f9d60dac..bcafae831d560242e84f6ab21d5d454deaf87079 100644 GIT binary patch delta 25 hcmdnbeusU-U&e{cG$y}i<YDFV3-$5YEXlNt5deoI2?YQE delta 41 wcmcb^zMp-=Uq%`C{1S!yyi|q!G=-9kRE3<(;*!)9h18;={G#H`W=zW%0ZUX5N&o-= diff --git a/mysql-test/t/func_str.test b/mysql-test/t/func_str.test index 8afbe673ce..c2f76dbac4 100644 --- a/mysql-test/t/func_str.test +++ b/mysql-test/t/func_str.test @@ -662,4 +662,11 @@ select rpad(i, 7, ' ') as t from t1; --disable_metadata drop table t1; -# End of 4.1 tests +# +# Bug #10418: LOAD_FILE does not behave like in manual if file does not exist +# + +select load_file("lkjlkj"); +select ifnull(load_file("lkjlkj"),"it's null"); + +--echo End of 4.1 tests diff --git a/mysql-test/t/outfile.test b/mysql-test/t/outfile.test index a74bebe146..81fcc7fd56 100644 --- a/mysql-test/t/outfile.test +++ b/mysql-test/t/outfile.test @@ -38,7 +38,6 @@ select load_file(concat(@tmpdir,"/outfile-test.3")); #--error 1086 #eval select * into dumpfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.3" from t1; #enable_query_log; ---error 13,2 select load_file(concat(@tmpdir,"/outfile-test.not-exist")); --exec rm $MYSQL_TEST_DIR/var/tmp/outfile-test.1 --exec rm $MYSQL_TEST_DIR/var/tmp/outfile-test.2 diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index f0127ed2a5..e74d0100b5 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -2489,7 +2489,7 @@ String *Item_load_file::val_str(String *str) (void) fn_format(path, file_name->c_ptr(), mysql_real_data_home, "", MY_RELATIVE_PATH | MY_UNPACK_FILENAME); - if (!my_stat(path, &stat_info, MYF(MY_WME))) + if (!my_stat(path, &stat_info, MYF(0))) goto err; if (!(stat_info.st_mode & S_IROTH)) -- 2.30.9