@@ -344,7 +344,8 @@ get_mysql_vars(MYSQL *connection)
344344char *innodb_data_home_dir_var = NULL ;
345345char *innodb_undo_directory_var = NULL ;
346346char *innodb_page_size_var = NULL ;
347-
347+ char *innodb_undo_tablespaces_var = NULL ;
348+ char *endptr;
348349unsigned long server_version = mysql_get_server_version (connection);
349350
350351bool ret = true ;
@@ -372,6 +373,7 @@ get_mysql_vars(MYSQL *connection)
372373{" innodb_data_home_dir" , &innodb_data_home_dir_var},
373374{" innodb_undo_directory" , &innodb_undo_directory_var},
374375{" innodb_page_size" , &innodb_page_size_var},
376+ {" innodb_undo_tablespaces" , &innodb_undo_tablespaces_var},
375377{NULL , NULL }
376378};
377379
@@ -460,62 +462,55 @@ get_mysql_vars(MYSQL *connection)
460462}
461463
462464/* get some default values is they are missing from my.cnf */
463- if (! check_if_param_set ( " datadir " ) && datadir_var && *datadir_var) {
465+ if (datadir_var && *datadir_var) {
464466strmake (mysql_real_data_home, datadir_var, FN_REFLEN - 1 );
465467mysql_data_home= mysql_real_data_home;
466468}
467469
468- if (!check_if_param_set (" innodb_data_file_path" )
469- && innodb_data_file_path_var && *innodb_data_file_path_var) {
470+ if (innodb_data_file_path_var && *innodb_data_file_path_var) {
470471innobase_data_file_path = my_strdup (
471472innodb_data_file_path_var, MYF (MY_FAE));
472473}
473474
474- if (!check_if_param_set (" innodb_data_home_dir" )
475- && innodb_data_home_dir_var && *innodb_data_home_dir_var) {
475+ if (innodb_data_home_dir_var && *innodb_data_home_dir_var) {
476476innobase_data_home_dir = my_strdup (
477477innodb_data_home_dir_var, MYF (MY_FAE));
478478}
479479
480- if (!check_if_param_set (" innodb_log_group_home_dir" )
481- && innodb_log_group_home_dir_var
480+ if (innodb_log_group_home_dir_var
482481 && *innodb_log_group_home_dir_var) {
483482srv_log_group_home_dir = my_strdup (
484483innodb_log_group_home_dir_var, MYF (MY_FAE));
485484}
486485
487- if (!check_if_param_set (" innodb_undo_directory" )
488- && innodb_undo_directory_var && *innodb_undo_directory_var) {
486+ if (innodb_undo_directory_var && *innodb_undo_directory_var) {
489487srv_undo_dir = my_strdup (
490488innodb_undo_directory_var, MYF (MY_FAE));
491489}
492490
493- if (!check_if_param_set (" innodb_log_files_in_group" )
494- && innodb_log_files_in_group_var) {
495- char *endptr;
496-
491+ if (innodb_log_files_in_group_var) {
497492innobase_log_files_in_group = strtol (
498493innodb_log_files_in_group_var, &endptr, 10 );
499494ut_ad (*endptr == 0 );
500495}
501496
502- if (!check_if_param_set (" innodb_log_file_size" )
503- && innodb_log_file_size_var) {
504- char *endptr;
505-
497+ if (innodb_log_file_size_var) {
506498innobase_log_file_size = strtoll (
507499innodb_log_file_size_var, &endptr, 10 );
508500ut_ad (*endptr == 0 );
509501}
510502
511- if (!check_if_param_set (" innodb_page_size" ) && innodb_page_size_var) {
512- char *endptr;
513-
503+ if (innodb_page_size_var) {
514504innobase_page_size = strtoll (
515505innodb_page_size_var, &endptr, 10 );
516506ut_ad (*endptr == 0 );
517507}
518508
509+ if (innodb_undo_tablespaces_var) {
510+ srv_undo_tablespaces = strtoul (innodb_undo_tablespaces_var, &endptr, 10 );
511+ ut_ad (*endptr == 0 );
512+ }
513+
519514out:
520515free_mysql_variables (mysql_vars);
521516
0 commit comments