Hi Sergei, On Thu, Jan 20, 2022 at 5:35 PM Sergei Golubchik <serg@mariadb.org> wrote:
Hi, Marko,
On Jan 20, Marko Mäkelä wrote:
revision-id: 673ea509e2c (mariadb-10.2.40-230-g673ea509e2c)
[snip]
+-- source include/have_symlink.inc
when can have_symlink be false?
The tests where I added that line would fail after this change if I ran them with ./mtr --mysqld=--skip-symbolic-links
Why InnoDB tests depend on server's symlink support? InnoDB does not use symlinks, it uses isl files.
In https://jira.mariadb.org/browse/MDEV-26870 you suggested using my_use_symdir, which I did. That variable is bound to the Boolean start-up parameter symbolic_links. Changing InnoDB to use actual symlinks (and to stop creating "databasename" directories, to be similar to other storage engines) would be a file format change that could break downgrades to earlier minor versions. Therefore, it is only doable in a development release.
+ push_warning( + m_thd, Sql_condition::WARN_LEVEL_WARN, + ER_ILLEGAL_HA_CREATE_OPTION, + "InnoDB: DATA DIRECTORY requires HAVE_SYMLINK."); + ret = "DATA DIRECTORY";
MyISAM does
push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, WARN_OPTION_IGNORED, ER_THD(thd, WARN_OPTION_IGNORED), "DATA DIRECTORY"); Archive does
if (create_info->data_file_name) my_error(WARN_OPTION_IGNORED, MYF(ME_WARNING), "DATA DIRECTORY");
I suggest you do one of the above too.
I had copied the reporting style of create_table_info_t::create_option_data_directory_is_valid(). I agree that it is better to flag warnings for the --skip-symbolic-links rather than errors. It will cause fewer surprises to users as well. Best regards, Marko -- Marko Mäkelä, Lead Developer InnoDB MariaDB Corporation