Commit 4768db8a authored by Otto Kekäläinen's avatar Otto Kekäläinen
Browse files

Update upstream source from tag 'upstream/10.1.34'

Update to upstream version '10.1.34'
with Debian dir 4b26ffc88bd634f8403c4707b28cee52312ddd15
parents 840ab6db 7c477360
...@@ -25,6 +25,7 @@ pcre/testdata/greppatN4 -text ...@@ -25,6 +25,7 @@ pcre/testdata/greppatN4 -text
*.MYD binary *.MYD binary
*.MYI binary *.MYI binary
*.class binary *.class binary
*.jar binary
*.c diff=cpp *.c diff=cpp
*.h diff=cpp *.h diff=cpp
......
...@@ -120,6 +120,7 @@ scripts/mytop ...@@ -120,6 +120,7 @@ scripts/mytop
scripts/wsrep_sst_common scripts/wsrep_sst_common
scripts/wsrep_sst_mysqldump scripts/wsrep_sst_mysqldump
scripts/wsrep_sst_rsync scripts/wsrep_sst_rsync
scripts/wsrep_sst_rsync_wan
scripts/wsrep_sst_mariabackup scripts/wsrep_sst_mariabackup
scripts/wsrep_sst_xtrabackup scripts/wsrep_sst_xtrabackup
scripts/wsrep_sst_xtrabackup-v2 scripts/wsrep_sst_xtrabackup-v2
...@@ -477,3 +478,9 @@ UpgradeLog*.htm ...@@ -477,3 +478,9 @@ UpgradeLog*.htm
# Microsoft Fakes # Microsoft Fakes
FakesAssemblies/ FakesAssemblies/
# macOS garbage
.DS_Store
# QtCreator && CodeBlocks
*.cbp
...@@ -56,9 +56,9 @@ ENDIF() ...@@ -56,9 +56,9 @@ ENDIF()
SET(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING SET(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING
"Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel") "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel")
# MAX_INDEXES - Set the maximum number of indexes per table, default 64U # MAX_INDEXES - Set the maximum number of indexes per table, default 64
IF (NOT MAX_INDEXES) IF (NOT MAX_INDEXES)
SET(MAX_INDEXES 64U) SET(MAX_INDEXES 64)
ENDIF(NOT MAX_INDEXES) ENDIF(NOT MAX_INDEXES)
IF (${MAX_INDEXES} GREATER 128) IF (${MAX_INDEXES} GREATER 128)
...@@ -162,6 +162,7 @@ INCLUDE(plugin) ...@@ -162,6 +162,7 @@ INCLUDE(plugin)
INCLUDE(install_macros) INCLUDE(install_macros)
INCLUDE(systemd) INCLUDE(systemd)
INCLUDE(mysql_add_executable) INCLUDE(mysql_add_executable)
INCLUDE(compile_flags)
# Handle options # Handle options
OPTION(DISABLE_SHARED OPTION(DISABLE_SHARED
...@@ -361,6 +362,10 @@ INCLUDE(maintainer) ...@@ -361,6 +362,10 @@ INCLUDE(maintainer)
IF(WITH_UNIT_TESTS) IF(WITH_UNIT_TESTS)
ENABLE_TESTING() ENABLE_TESTING()
# This is the only instance where ADD_TEST should be used,
# to make sure that make test will run MTR,
# use MY_ADD_TEST macro to add other tests
ADD_TEST(NAME MTR COMMAND ./mysql-test-run WORKING_DIRECTORY "mysql-test")
ADD_SUBDIRECTORY(unittest/mytap) ADD_SUBDIRECTORY(unittest/mytap)
ADD_SUBDIRECTORY(unittest/strings) ADD_SUBDIRECTORY(unittest/strings)
ADD_SUBDIRECTORY(unittest/examples) ADD_SUBDIRECTORY(unittest/examples)
......
...@@ -3,16 +3,16 @@ organization registered in the USA. ...@@ -3,16 +3,16 @@ organization registered in the USA.
The current main sponsors of the MariaDB Foundation are: The current main sponsors of the MariaDB Foundation are:
Alibaba Cloud https://intl.aliyun.com (2017) Alibaba Cloud https://www.alibabacloud.com/ (2017)
Booking.com https://www.booking.com (2013) Booking.com https://www.booking.com (2013)
MariaDB Corporation https://www.mariadb.com (2013)
Microsoft https://microsoft.com/ (2017)
Tencent Cloud https://cloud.tencent.com (2017) Tencent Cloud https://cloud.tencent.com (2017)
Development Bank of Singapore https://dbs.com (2016) Development Bank of Singapore https://dbs.com (2016)
IBM https://www.ibm.com (2017) IBM https://www.ibm.com (2017)
MariaDB Corporation https://www.mariadb.com (2013)
Visma https://visma.com (2015) Visma https://visma.com (2015)
Acronis http://acronis.com (2016) Acronis http://acronis.com (2016)
Nexedi https://www.nexedi.com (2016) Nexedi https://www.nexedi.com (2016)
Automattic https://automattic.com (2014)
Tencent Game DBA http://tencentdba.com/about (2016) Tencent Game DBA http://tencentdba.com/about (2016)
Tencent TDSQL http://tdsql.org (2016) Tencent TDSQL http://tdsql.org (2016)
Verkkokauppa.com https://www.verkkokauppa.com (2015) Verkkokauppa.com https://www.verkkokauppa.com (2015)
......
commit: 05103c84ecc519eae4090b720f48203a648e2ab9 commit: 9f848da640dd6c3f44d56eae18204370ae7f835c
date: 2017-11-13 18:41:55 +0000 date: 2018-06-16 01:20:44 +0200
build-date: 2017-11-13 18:46:50 +0000 build-date: 2018-06-16 00:19:48 +0000
short: 05103c8 short: 9f848da
branch: HEAD branch: HEAD
MariaDB source 10.1.29 MariaDB source 10.1.34
MYSQL_VERSION_MAJOR=10 MYSQL_VERSION_MAJOR=10
MYSQL_VERSION_MINOR=1 MYSQL_VERSION_MINOR=1
MYSQL_VERSION_PATCH=29 MYSQL_VERSION_PATCH=34
...@@ -1140,6 +1140,7 @@ int main(int argc,char *argv[]) ...@@ -1140,6 +1140,7 @@ int main(int argc,char *argv[])
current_prompt = my_strdup(default_prompt,MYF(MY_WME)); current_prompt = my_strdup(default_prompt,MYF(MY_WME));
prompt_counter=0; prompt_counter=0;
aborted= 0; aborted= 0;
sf_leaking_memory= 1; /* no memory leak reports yet */
outfile[0]=0; // no (default) outfile outfile[0]=0; // no (default) outfile
strmov(pager, "stdout"); // the default, if --pager wasn't given strmov(pager, "stdout"); // the default, if --pager wasn't given
...@@ -1174,11 +1175,7 @@ int main(int argc,char *argv[]) ...@@ -1174,11 +1175,7 @@ int main(int argc,char *argv[])
close(stdout_fileno_copy); /* Clean up dup(). */ close(stdout_fileno_copy); /* Clean up dup(). */
} }
if (load_defaults("my",load_default_groups,&argc,&argv)) load_defaults_or_exit("my", load_default_groups, &argc, &argv);
{
my_end(0);
exit(1);
}
defaults_argv=argv; defaults_argv=argv;
if ((status.exit_status= get_options(argc, (char **) argv))) if ((status.exit_status= get_options(argc, (char **) argv)))
mysql_end(-1); mysql_end(-1);
...@@ -1200,6 +1197,7 @@ int main(int argc,char *argv[]) ...@@ -1200,6 +1197,7 @@ int main(int argc,char *argv[])
my_end(0); my_end(0);
exit(1); exit(1);
} }
sf_leaking_memory= 0;
glob_buffer.realloc(512); glob_buffer.realloc(512);
completion_hash_init(&ht, 128); completion_hash_init(&ht, 128);
init_alloc_root(&hash_mem_root, 16384, 0, MYF(0)); init_alloc_root(&hash_mem_root, 16384, 0, MYF(0));
...@@ -1227,15 +1225,17 @@ int main(int argc,char *argv[]) ...@@ -1227,15 +1225,17 @@ int main(int argc,char *argv[])
window_resize(0); window_resize(0);
#endif #endif
put_info("Welcome to the MariaDB monitor. Commands end with ; or \\g.", if (!status.batch)
INFO_INFO); {
my_snprintf((char*) glob_buffer.ptr(), glob_buffer.alloced_length(), put_info("Welcome to the MariaDB monitor. Commands end with ; or \\g.",
"Your %s connection id is %lu\nServer version: %s\n", INFO_INFO);
mysql_get_server_name(&mysql), my_snprintf((char*) glob_buffer.ptr(), glob_buffer.alloced_length(),
mysql_thread_id(&mysql), server_version_string(&mysql)); "Your %s connection id is %lu\nServer version: %s\n",
put_info((char*) glob_buffer.ptr(),INFO_INFO); mysql_get_server_name(&mysql),
mysql_thread_id(&mysql), server_version_string(&mysql));
put_info(ORACLE_WELCOME_COPYRIGHT_NOTICE("2000"), INFO_INFO); put_info((char*) glob_buffer.ptr(),INFO_INFO);
put_info(ORACLE_WELCOME_COPYRIGHT_NOTICE("2000"), INFO_INFO);
}
#ifdef HAVE_READLINE #ifdef HAVE_READLINE
initialize_readline((char*) my_progname); initialize_readline((char*) my_progname);
...@@ -1793,8 +1793,9 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -1793,8 +1793,9 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
break; break;
case OPT_MYSQL_PROTOCOL: case OPT_MYSQL_PROTOCOL:
#ifndef EMBEDDED_LIBRARY #ifndef EMBEDDED_LIBRARY
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib, if ((opt_protocol= find_type_with_warning(argument, &sql_protocol_typelib,
opt->name); opt->name)) <= 0)
exit(1);
#endif #endif
break; break;
case OPT_SERVER_ARG: case OPT_SERVER_ARG:
...@@ -4589,8 +4590,11 @@ static char *get_arg(char *line, get_arg_mode mode) ...@@ -4589,8 +4590,11 @@ static char *get_arg(char *line, get_arg_mode mode)
} }
for (start=ptr ; *ptr; ptr++) for (start=ptr ; *ptr; ptr++)
{ {
if ((*ptr == '\\' && ptr[1]) || // escaped character /* if short_cmd use historical rules (only backslash) otherwise SQL rules */
(!short_cmd && qtype && *ptr == qtype && ptr[1] == qtype)) // quote if (short_cmd
? (*ptr == '\\' && ptr[1]) // escaped character
: (*ptr == '\\' && ptr[1] && qtype != '`') || // escaped character
(qtype && *ptr == qtype && ptr[1] == qtype)) // quote
{ {
// Remove (or skip) the backslash (or a second quote) // Remove (or skip) the backslash (or a second quote)
if (mode != CHECK) if (mode != CHECK)
......
...@@ -166,8 +166,8 @@ static struct my_option my_long_options[]= ...@@ -166,8 +166,8 @@ static struct my_option my_long_options[]=
"server with which it was built/distributed.", "server with which it was built/distributed.",
&opt_version_check, &opt_version_check, 0, &opt_version_check, &opt_version_check, 0,
GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0}, GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0},
{"write-binlog", OPT_WRITE_BINLOG, "All commands including those, " {"write-binlog", OPT_WRITE_BINLOG, "All commands including those "
"issued by mysqlcheck, are written to the binary log.", "issued by mysqlcheck are written to the binary log.",
&opt_write_binlog, &opt_write_binlog, 0, GET_BOOL, NO_ARG, &opt_write_binlog, &opt_write_binlog, 0, GET_BOOL, NO_ARG,
0, 0, 0, 0, 0, 0}, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0} {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
...@@ -1133,6 +1133,8 @@ int main(int argc, char **argv) ...@@ -1133,6 +1133,8 @@ int main(int argc, char **argv)
char self_name[FN_REFLEN + 1]; char self_name[FN_REFLEN + 1];
MY_INIT(argv[0]); MY_INIT(argv[0]);
load_defaults_or_exit("my", load_default_groups, &argc, &argv);
defaults_argv= argv; /* Must be freed by 'free_defaults' */
#if __WIN__ #if __WIN__
if (GetModuleFileName(NULL, self_name, FN_REFLEN) == 0) if (GetModuleFileName(NULL, self_name, FN_REFLEN) == 0)
...@@ -1145,10 +1147,6 @@ int main(int argc, char **argv) ...@@ -1145,10 +1147,6 @@ int main(int argc, char **argv)
init_dynamic_string(&conn_args, "", 512, 256)) init_dynamic_string(&conn_args, "", 512, 256))
die("Out of memory"); die("Out of memory");
if (load_defaults("my", load_default_groups, &argc, &argv))
die(NULL);
defaults_argv= argv; /* Must be freed by 'free_defaults' */
if (handle_options(&argc, &argv, my_long_options, get_one_option)) if (handle_options(&argc, &argv, my_long_options, get_one_option))
die(NULL); die(NULL);
if (debug_info_flag) if (debug_info_flag)
......
...@@ -298,8 +298,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -298,8 +298,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
#endif #endif
break; break;
case OPT_MYSQL_PROTOCOL: case OPT_MYSQL_PROTOCOL:
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib, if ((opt_protocol= find_type_with_warning(argument, &sql_protocol_typelib,
opt->name); opt->name)) <= 0)
{
sf_leaking_memory= 1; /* no memory leak reports here */
exit(1);
}
break; break;
} }
return 0; return 0;
...@@ -315,8 +319,7 @@ int main(int argc,char *argv[]) ...@@ -315,8 +319,7 @@ int main(int argc,char *argv[])
MY_INIT(argv[0]); MY_INIT(argv[0]);
mysql_init(&mysql); mysql_init(&mysql);
sf_leaking_memory=1; /* don't report memory leaks on early exits */ sf_leaking_memory=1; /* don't report memory leaks on early exits */
if ((error= load_defaults("my",load_default_groups,&argc,&argv))) load_defaults_or_exit("my", load_default_groups, &argc, &argv);
goto err1;
save_argv = argv; /* Save for free_defaults */ save_argv = argv; /* Save for free_defaults */
if ((error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((error=handle_options(&argc, &argv, my_long_options, get_one_option)))
...@@ -496,10 +499,8 @@ int main(int argc,char *argv[]) ...@@ -496,10 +499,8 @@ int main(int argc,char *argv[])
my_free(shared_memory_base_name); my_free(shared_memory_base_name);
#endif #endif
free_defaults(save_argv); free_defaults(save_argv);
err1:
my_end(my_end_arg); my_end(my_end_arg);
exit(error); return error;
return 0;
} }
......
...@@ -1649,8 +1649,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -1649,8 +1649,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
remote_opt= 1; remote_opt= 1;
break; break;
case OPT_MYSQL_PROTOCOL: case OPT_MYSQL_PROTOCOL:
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib, if ((opt_protocol= find_type_with_warning(argument, &sql_protocol_typelib,
opt->name); opt->name)) <= 0)
{
sf_leaking_memory= 1; /* no memory leak reports here */
exit(1);
}
break; break;
case OPT_START_DATETIME: case OPT_START_DATETIME:
start_datetime= convert_str_to_timestamp(start_datetime_str); start_datetime= convert_str_to_timestamp(start_datetime_str);
...@@ -1663,8 +1667,15 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -1663,8 +1667,15 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
opt_base64_output_mode= BASE64_OUTPUT_ALWAYS; opt_base64_output_mode= BASE64_OUTPUT_ALWAYS;
else else
{ {
opt_base64_output_mode= (enum_base64_output_mode) int val;
(find_type_or_exit(argument, &base64_output_mode_typelib, opt->name)-1);
if ((val= find_type_with_warning(argument, &base64_output_mode_typelib,
opt->name)) <= 0)
{
sf_leaking_memory= 1; /* no memory leak reports here */
exit(1);
}
opt_base64_output_mode= (enum_base64_output_mode) (val - 1);
} }
break; break;
case OPT_REWRITE_DB: // db_from->db_to case OPT_REWRITE_DB: // db_from->db_to
...@@ -2655,9 +2666,7 @@ int main(int argc, char** argv) ...@@ -2655,9 +2666,7 @@ int main(int argc, char** argv)
tzset(); // set tzname tzset(); // set tzname
init_alloc_root(&s_mem_root, 16384, 0, MYF(0)); init_alloc_root(&s_mem_root, 16384, 0, MYF(0));
if (load_defaults("my", load_groups, &argc, &argv)) load_defaults_or_exit("my", load_groups, &argc, &argv);
exit(1);
defaults_argv= argv; defaults_argv= argv;
if (!(binlog_filter= new Rpl_filter)) if (!(binlog_filter= new Rpl_filter))
......
...@@ -367,8 +367,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -367,8 +367,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
print_version(); exit(0); print_version(); exit(0);
break; break;
case OPT_MYSQL_PROTOCOL: case OPT_MYSQL_PROTOCOL:
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib, if ((opt_protocol= find_type_with_warning(argument, &sql_protocol_typelib,
opt->name); opt->name)) <= 0)
{
sf_leaking_memory= 1; /* no memory leak reports here */
exit(1);
}
break; break;
} }
...@@ -1161,9 +1165,7 @@ int main(int argc, char **argv) ...@@ -1161,9 +1165,7 @@ int main(int argc, char **argv)
/* /*
** Check out the args ** Check out the args
*/ */
if (load_defaults("my", load_default_groups, &argc, &argv)) load_defaults_or_exit("my", load_default_groups, &argc, &argv);
goto end2;
defaults_argv= argv; defaults_argv= argv;
if (get_options(&argc, &argv)) if (get_options(&argc, &argv))
goto end1; goto end1;
...@@ -1239,7 +1241,6 @@ int main(int argc, char **argv) ...@@ -1239,7 +1241,6 @@ int main(int argc, char **argv)
my_free(shared_memory_base_name); my_free(shared_memory_base_name);
mysql_library_end(); mysql_library_end();
free_defaults(defaults_argv); free_defaults(defaults_argv);
end2:
my_end(my_end_arg); my_end(my_end_arg);
return ret; return ret;
} /* main */ } /* main */
...@@ -956,8 +956,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -956,8 +956,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
break; break;
} }
case (int) OPT_MYSQL_PROTOCOL: case (int) OPT_MYSQL_PROTOCOL:
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib, if ((opt_protocol= find_type_with_warning(argument, &sql_protocol_typelib,
opt->name); opt->name)) <= 0)
{
sf_leaking_memory= 1; /* no memory leak reports here */
exit(1);
}
break; break;
} }
return 0; return 0;
...@@ -972,8 +976,7 @@ static int get_options(int *argc, char ***argv) ...@@ -972,8 +976,7 @@ static int get_options(int *argc, char ***argv)
opt_net_buffer_length= *mysql_params->p_net_buffer_length; opt_net_buffer_length= *mysql_params->p_net_buffer_length;
md_result_file= stdout; md_result_file= stdout;
if (load_defaults("my",load_default_groups,argc,argv)) load_defaults_or_exit("my", load_default_groups, argc, argv);
return 1;
defaults_argv= *argv; defaults_argv= *argv;
if (my_hash_init(&ignore_table, charset_info, 16, 0, 0, if (my_hash_init(&ignore_table, charset_info, 16, 0, 0,
...@@ -4991,6 +4994,14 @@ static int dump_selected_tables(char *db, char **table_names, int tables) ...@@ -4991,6 +4994,14 @@ static int dump_selected_tables(char *db, char **table_names, int tables)
if (opt_xml) if (opt_xml)
print_xml_tag(md_result_file, "", "\n", "database", "name=", db, NullS); print_xml_tag(md_result_file, "", "\n", "database", "name=", db, NullS);
/* obtain dump of routines (procs/functions) */
if (opt_routines && mysql_get_server_version(mysql) >= 50009)
{
DBUG_PRINT("info", ("Dumping routines for database %s", db));
dump_routines_for_db(db);
}
if (opt_single_transaction && mysql_get_server_version(mysql) >= 50500) if (opt_single_transaction && mysql_get_server_version(mysql) >= 50500)
{ {
verbose_msg("-- Setting savepoint...\n"); verbose_msg("-- Setting savepoint...\n");
...@@ -5000,7 +5011,6 @@ static int dump_selected_tables(char *db, char **table_names, int tables) ...@@ -5000,7 +5011,6 @@ static int dump_selected_tables(char *db, char **table_names, int tables)
DBUG_RETURN(1); DBUG_RETURN(1);
} }
} }
/* Dump each selected table */ /* Dump each selected table */
for (pos= dump_tables; pos < end; pos++) for (pos= dump_tables; pos < end; pos++)
{ {
...@@ -5062,12 +5072,6 @@ static int dump_selected_tables(char *db, char **table_names, int tables) ...@@ -5062,12 +5072,6 @@ static int dump_selected_tables(char *db, char **table_names, int tables)
DBUG_PRINT("info", ("Dumping events for database %s", db)); DBUG_PRINT("info", ("Dumping events for database %s", db));
dump_events_for_db(db); dump_events_for_db(db);
} }
/* obtain dump of routines (procs/functions) */
if (opt_routines && mysql_get_server_version(mysql) >= 50009)
{
DBUG_PRINT("info", ("Dumping routines for database %s", db));
dump_routines_for_db(db);
}
free_root(&glob_root, MYF(0)); free_root(&glob_root, MYF(0));
if (opt_xml) if (opt_xml)
{ {
......
...@@ -249,8 +249,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -249,8 +249,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
break; break;
#endif #endif
case OPT_MYSQL_PROTOCOL: case OPT_MYSQL_PROTOCOL:
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib, if ((opt_protocol= find_type_with_warning(argument, &sql_protocol_typelib,
opt->name); opt->name)) <= 0)
{
sf_leaking_memory= 1; /* no memory leak reports here */
exit(1);
}
break; break;
case '#': case '#':
DBUG_PUSH(argument ? argument : "d:t:o"); DBUG_PUSH(argument ? argument : "d:t:o");
...@@ -637,8 +641,7 @@ int main(int argc, char **argv) ...@@ -637,8 +641,7 @@ int main(int argc, char **argv)
MY_INIT(argv[0]); MY_INIT(argv[0]);
sf_leaking_memory=1; /* don't report memory leaks on early exits */ sf_leaking_memory=1; /* don't report memory leaks on early exits */
if (load_defaults("my",load_default_groups,&argc,&argv)) load_defaults_or_exit("my", load_default_groups, &argc, &argv);
return 1;
/* argv is changed in the program */ /* argv is changed in the program */
argv_to_free= argv; argv_to_free= argv;
if (get_options(&argc, &argv)) if (get_options(&argc, &argv))
......
...@@ -71,8 +71,7 @@ int main(int argc, char **argv) ...@@ -71,8 +71,7 @@ int main(int argc, char **argv)
static char **defaults_argv; static char **defaults_argv;
MY_INIT(argv[0]); MY_INIT(argv[0]);
sf_leaking_memory=1; /* don't report memory leaks on early exits */ sf_leaking_memory=1; /* don't report memory leaks on early exits */
if (load_defaults("my",load_default_groups,&argc,&argv)) load_defaults_or_exit("my", load_default_groups, &argc, &argv);
exit(1);
defaults_argv=argv; defaults_argv=argv;
get_options(&argc,&argv); get_options(&argc,&argv);
...@@ -328,8 +327,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -328,8 +327,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
#endif #endif
break; break;
case OPT_MYSQL_PROTOCOL: case OPT_MYSQL_PROTOCOL:
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib, if ((opt_protocol= find_type_with_warning(argument, &sql_protocol_typelib,
opt->name); opt->name)) <= 0)
{
sf_leaking_memory= 1; /* no memory leak reports here */
exit(1);
}
break; break;
case '#': case '#':
DBUG_PUSH(argument ? argument : "d:t:o"); DBUG_PUSH(argument ? argument : "d:t:o");
......
...@@ -325,11 +325,7 @@ int main(int argc, char **argv) ...@@ -325,11 +325,7 @@ int main(int argc, char **argv)
MY_INIT(argv[0]); MY_INIT(argv[0]);
sf_leaking_memory=1; /* don't report memory leaks on early exits */ sf_leaking_memory=1; /* don't report memory leaks on early exits */
if (load_defaults("my",load_default_groups,&argc,&argv)) load_defaults_or_exit("my", load_default_groups, &argc, &argv);
{
my_end(0);
exit(1);
}
defaults_argv=argv; defaults_argv=argv;
if (get_options(&argc,&argv)) if (get_options(&argc,&argv))
{ {
...@@ -779,8 +775,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -779,8 +775,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
#endif #endif
break; break;
case OPT_MYSQL_PROTOCOL: case OPT_MYSQL_PROTOCOL:
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib, if ((opt_protocol= find_type_with_warning(argument, &sql_protocol_typelib,
opt->name); opt->name)) <= 0)
{
sf_leaking_memory= 1; /* no memory leak reports here */
exit(1);
}
break; break;
case '#': case '#':
DBUG_PUSH(argument ? argument : default_dbug_option); DBUG_PUSH(argument ? argument : default_dbug_option);
...@@ -853,7 +853,7 @@ build_table_string(void) ...@@ -853,7 +853,7 @@ build_table_string(void)
if (auto_generate_sql_guid_primary) if (auto_generate_sql_guid_primary)
{ {
dynstr_append(&table_string, "id varchar(32) primary key"); dynstr_append(&table_string, "id varchar(36) primary key");
if (num_int_cols || num_char_cols || auto_generate_sql_guid_primary) if (num_int_cols || num_char_cols || auto_generate_sql_guid_primary)
dynstr_append(&table_string, ","); dynstr_append(&table_string, ",");
...@@ -868,7 +868,7 @@ build_table_string(void) ...@@ -868,7 +868,7 @@ build_table_string(void)
if (count) /* Except for the first pass we add a comma */ if (count) /* Except for the first pass we add a comma */
dynstr_append(&table_string, ","); dynstr_append(&table_string, ",");
if (snprintf(buf, HUGE_STRING_LENGTH, "id%d varchar(32) unique key", count) if (snprintf(buf, HUGE_STRING_LENGTH, "id%d varchar(36) unique key", count)
> HUGE_STRING_LENGTH) > HUGE_STRING_LENGTH)
{ {
fprintf(stderr, "Memory Allocation error in create table\n"); fprintf(stderr, "Memory Allocation error in create table\n");
......
...@@ -520,7 +520,7 @@ struct st_match_err ...@@ -520,7 +520,7 @@ struct st_match_err
struct st_expected_errors struct st_expected_errors
{ {
struct st_match_err err[10]; struct st_match_err err[12];
uint count; uint count;
}; };
static struct st_expected_errors saved_expected_errors; static struct st_expected_errors saved_expected_errors;
...@@ -903,6 +903,8 @@ pthread_handler_t connection_thread(void *arg) ...@@ -903,6 +903,8 @@ pthread_handler_t connection_thread(void *arg)
end_thread: end_thread:
cn->query_done= 1; cn->query_done= 1;
mysql_close(cn->mysql);
cn->mysql= 0;
mysql_thread_end(); mysql_thread_end();
pthread_exit(0); pthread_exit(0);
return 0; return 0;
...@@ -1418,7 +1420,7 @@ void close_statements() ...@@ -1418,7 +1420,7 @@ void close_statements()
for (con= connections; con < next_con; con++) for (con= connections; con < next_con; con++)
{ {
if (con->stmt) if (con->stmt)
mysql_stmt_close(con->stmt); do_stmt_close(con);
con->stmt= 0; con->stmt= 0;
} }
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
...@@ -1523,7 +1525,6 @@ static void cleanup_and_exit(int exit_code) ...@@ -1523,7 +1525,6 @@ static void cleanup_and_exit(int exit_code)
} }
} }
sf_leaking_memory= 0; /* all memory should be freed by now */
exit(exit_code); exit(exit_code);
} }
...@@ -2679,7 +2680,7 @@ void var_query_set(VAR *var, const char *query, const char** query_end) ...@@ -2679,7 +2680,7 @@ void var_query_set(VAR *var, const char *query, const char** query_end)
init_dynamic_string(&ds_query, 0, (end - query) + 32, 256); init_dynamic_string(&ds_query, 0, (end - query) + 32, 256);
do_eval(&ds_query, query, end, FALSE); do_eval(&ds_query, query, end, FALSE);
if (mysql_real_query(mysql, ds_query.str, ds_query.length)) if (mysql_real_query(mysql, ds_query.str, ds_query.length) || !(res= mysql_store_result(mysql)))
{ {
handle_error(curr_command, mysql_errno(mysql), mysql_error(mysql), handle_error(curr_command, mysql_errno(mysql), mysql_error(mysql),
mysql_sqlstate(mysql), &ds_res); mysql_sqlstate(mysql), &ds_res);
...@@ -2689,13 +2690,6 @@ void var_query_set(VAR *var, const char *query, const char** query_end) ...@@ -2689,13 +2690,6 @@ void var_query_set(VAR *var, const char *query, const char** query_end)
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
} }
if (!(res= mysql_store_result(mysql)))
{
report_or_die("Query '%s' didn't return a result set", ds_query.str);
dynstr_free(&ds_query);
eval_expr(var, "", 0);
DBUG_VOID_RETURN;
}
dynstr_free(&ds_query); dynstr_free(&ds_query);
if ((row= mysql_fetch_row(res)) && row[0]) if ((row= mysql_fetch_row(res)) && row[0])
...@@ -7292,8 +7286,9 @@ get_one_option(int optid, const struct my_option *opt, char *argument) ...@@ -7292,8 +7286,9 @@ get_one_option(int optid, const struct my_option *opt, char *argument)
exit(0); exit(0);
case OPT_MYSQL_PROTOCOL: case OPT_MYSQL_PROTOCOL:
#ifndef EMBEDDED_LIBRARY #ifndef EMBEDDED_LIBRARY
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib, if ((opt_protocol= find_type_with_warning(argument, &sql_protocol_typelib,
opt->name); opt->name)) <= 0)
exit(1);
#endif #endif
break; break;
case '?': case '?':
...@@ -7306,9 +7301,7 @@ get_one_option(int optid, const struct my_option *opt, char *argument) ...@@ -7306,9 +7301,7 @@ get_one_option(int optid, const struct my_option *opt, char *argument)
int parse_args(int argc, char **argv) int parse_args(int argc, char **argv)
{ {
if (load_defaults("my",load_default_groups,&argc,&argv)) load_defaults_or_exit("my", load_default_groups, &argc, &argv);
exit(1);
default_argv= argv; default_argv= argv;
if ((handle_options(&argc, &argv, my_long_options, get_one_option))) if ((handle_options(&argc, &argv, my_long_options, get_one_option)))
...@@ -8746,6 +8739,7 @@ void init_re(void) ...@@ -8746,6 +8739,7 @@ void init_re(void)
"[[:space:]]*SELECT[[:space:]]|" "[[:space:]]*SELECT[[:space:]]|"
"[[:space:]]*CREATE[[:space:]]+TABLE[[:space:]]|" "[[:space:]]*CREATE[[:space:]]+TABLE[[:space:]]|"
"[[:space:]]*DO[[:space:]]|" "[[:space:]]*DO[[:space:]]|"
"[[:space:]]*HANDLER[[:space:]]+.*[[:space:]]+READ[[:space:]]|"
"[[:space:]]*SET[[:space:]]+OPTION[[:space:]]|" "[[:space:]]*SET[[:space:]]+OPTION[[:space:]]|"
"[[:space:]]*DELETE[[:space:]]+MULTI[[:space:]]|" "[[:space:]]*DELETE[[:space:]]+MULTI[[:space:]]|"
"[[:space:]]*UPDATE[[:space:]]+MULTI[[:space:]]|" "[[:space:]]*UPDATE[[:space:]]+MULTI[[:space:]]|"
......
# Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2018, MariaDB Corporation
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
......
...@@ -32,25 +32,25 @@ MACRO (MY_CHECK_CXX_COMPILER_FLAG flag) ...@@ -32,25 +32,25 @@ MACRO (MY_CHECK_CXX_COMPILER_FLAG flag)
SET(CMAKE_REQUIRED_FLAGS "${SAVE_CMAKE_REQUIRED_FLAGS}") SET(CMAKE_REQUIRED_FLAGS "${SAVE_CMAKE_REQUIRED_FLAGS}")
ENDMACRO() ENDMACRO()
FUNCTION(MY_CHECK_AND_SET_COMPILER_FLAG flag) FUNCTION(MY_CHECK_AND_SET_COMPILER_FLAG flag_to_set)
# At the moment this is gcc-only. # At the moment this is gcc-only.
# Let's avoid expensive compiler tests on Windows: # Let's avoid expensive compiler tests on Windows:
IF(WIN32) IF(WIN32)
RETURN() RETURN()
ENDIF() ENDIF()
MY_CHECK_C_COMPILER_FLAG(${flag}) STRING(REGEX REPLACE "^-Wno-" "-W" flag_to_check ${flag_to_set})
MY_CHECK_CXX_COMPILER_FLAG(${flag}) MY_CHECK_C_COMPILER_FLAG(${flag_to_check})
STRING(REGEX REPLACE "[-,= +]" "_" result "${flag}") MY_CHECK_CXX_COMPILER_FLAG(${flag_to_check})
STRING(REGEX REPLACE "[-,= +]" "_" result "${flag_to_check}")
FOREACH(lang C CXX) FOREACH(lang C CXX)
IF (HAVE_${lang}_${result}) IF (HAVE_${lang}_${result})
IF(ARGN) IF(ARGN)
FOREACH(type ${ARGN}) FOREACH(type ${ARGN})
SET(CMAKE_${lang}_FLAGS_${type} "${CMAKE_${lang}_FLAGS_${type}} ${flag}" PARENT_SCOPE) SET(CMAKE_${lang}_FLAGS_${type} "${CMAKE_${lang}_FLAGS_${type}} ${flag_to_set}" PARENT_SCOPE)
ENDFOREACH() ENDFOREACH()
ELSE() ELSE()
SET(CMAKE_${lang}_FLAGS "${CMAKE_${lang}_FLAGS} ${flag}" PARENT_SCOPE) SET(CMAKE_${lang}_FLAGS "${CMAKE_${lang}_FLAGS} ${flag_to_set}" PARENT_SCOPE)
ENDIF() ENDIF()
ENDIF() ENDIF()
ENDFOREACH() ENDFOREACH()
ENDFUNCTION() ENDFUNCTION()
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/cmake_parse_arguments.cmake) INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/cmake_parse_arguments.cmake)
MACRO(MY_ADD_TEST name) MACRO(MY_ADD_TEST name)
ADD_TEST(${name} ${name}-t) ADD_TEST(NAME ${name} COMMAND ${name}-t CONFIGURATIONS default_ignore)
ENDMACRO() ENDMACRO()
MACRO (MY_ADD_TESTS) MACRO (MY_ADD_TESTS)
......
...@@ -42,7 +42,8 @@ MACRO(CHECK_DTRACE) ...@@ -42,7 +42,8 @@ MACRO(CHECK_DTRACE)
# On FreeBSD, dtrace does not handle userland tracing yet # On FreeBSD, dtrace does not handle userland tracing yet
IF(DTRACE AND NOT CMAKE_SYSTEM_NAME MATCHES "FreeBSD" IF(DTRACE AND NOT CMAKE_SYSTEM_NAME MATCHES "FreeBSD"
AND NOT BUGGY_GCC_NO_DTRACE_MODULES AND NOT BUGGY_GCC_NO_DTRACE_MODULES
AND NOT BUGGY_LINUX_DTRACE) AND NOT BUGGY_LINUX_DTRACE
AND NOT CMAKE_SYSTEM_NAME MATCHES "SunOS")
SET(ENABLE_DTRACE ON CACHE BOOL "Enable dtrace") SET(ENABLE_DTRACE ON CACHE BOOL "Enable dtrace")
ENDIF() ENDIF()
SET(HAVE_DTRACE ${ENABLE_DTRACE}) SET(HAVE_DTRACE ${ENABLE_DTRACE})
......
Supports Markdown
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