Commit dd934da9 authored by unknown's avatar unknown

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
parent e4e67d58
...@@ -1000,3 +1000,10 @@ t ...@@ -1000,3 +1000,10 @@ t
1000000 1000000
1 1
drop table t1; 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
...@@ -662,4 +662,11 @@ select rpad(i, 7, ' ') as t from t1; ...@@ -662,4 +662,11 @@ select rpad(i, 7, ' ') as t from t1;
--disable_metadata --disable_metadata
drop table t1; 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
...@@ -38,7 +38,6 @@ select load_file(concat(@tmpdir,"/outfile-test.3")); ...@@ -38,7 +38,6 @@ select load_file(concat(@tmpdir,"/outfile-test.3"));
#--error 1086 #--error 1086
#eval select * into dumpfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.3" from t1; #eval select * into dumpfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.3" from t1;
#enable_query_log; #enable_query_log;
--error 13,2
select load_file(concat(@tmpdir,"/outfile-test.not-exist")); 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.1
--exec rm $MYSQL_TEST_DIR/var/tmp/outfile-test.2 --exec rm $MYSQL_TEST_DIR/var/tmp/outfile-test.2
......
...@@ -2489,7 +2489,7 @@ String *Item_load_file::val_str(String *str) ...@@ -2489,7 +2489,7 @@ String *Item_load_file::val_str(String *str)
(void) fn_format(path, file_name->c_ptr(), mysql_real_data_home, "", (void) fn_format(path, file_name->c_ptr(), mysql_real_data_home, "",
MY_RELATIVE_PATH | MY_UNPACK_FILENAME); 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; goto err;
if (!(stat_info.st_mode & S_IROTH)) if (!(stat_info.st_mode & S_IROTH))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment