Loading client/mysql_upgrade.c +56 −81 Original line number Diff line number Diff line Loading @@ -259,6 +259,10 @@ get_one_option(int optid, const struct my_option *opt, } /** Run a command using the shell, storing its output in the supplied dynamic string. */ static int run_command(char* cmd, DYNAMIC_STRING *ds_res) { Loading Loading @@ -331,36 +335,16 @@ static int run_tool(char *tool_path, DYNAMIC_STRING *ds_res, ...) } /* Try to get the full path to this exceutable Return 0 if path found /** Look for the filename of given tool, with the presumption that it is in the same directory as mysql_upgrade and that the same executable-searching mechanism will be used when we run our sub-shells with popen() later. */ static my_bool get_full_path_to_executable(char* path) static void find_tool(char *tool_executable_name, const char *tool_name, const char *self_name) { my_bool ret; DBUG_ENTER("get_full_path_to_executable"); #ifdef __WIN__ ret= (GetModuleFileName(NULL, path, FN_REFLEN) == 0); #else /* my_readlink returns 0 if a symlink was read */ ret= (my_readlink(path, "/proc/self/exe", MYF(0)) != 0); /* Might also want to try with /proc/$$/exe if the above fails */ #endif DBUG_PRINT("exit", ("path: %s", path)); DBUG_RETURN(ret); } /* Look for the tool in the same directory as mysql_upgrade. */ char *last_fn_libchar; static void find_tool(char *tool_path, const char *tool_name) { char path[FN_REFLEN]; DYNAMIC_STRING ds_tmp; DBUG_ENTER("find_tool"); DBUG_PRINT("enter", ("progname: %s", my_progname)); Loading @@ -368,36 +352,24 @@ static void find_tool(char *tool_path, const char *tool_name) if (init_dynamic_string(&ds_tmp, "", 32, 32)) die("Out of memory"); /* Initialize path with the full path to this program */ if (get_full_path_to_executable(path)) last_fn_libchar= strrchr(self_name, FN_LIBCHAR); if (last_fn_libchar == NULL) { /* Easy way to get full executable path failed, try other methods mysql_upgrade was found by the shell searching the path. A sibling next to us should be found the same way. */ if (my_progname[0] == FN_LIBCHAR) { /* 1. my_progname contains full path */ strmake(path, my_progname, FN_REFLEN); } else if (my_progname[0] == '.') { /* 2. my_progname contains relative path, prepend wd */ char buf[FN_REFLEN]; my_getwd(buf, FN_REFLEN, MYF(0)); my_snprintf(path, FN_REFLEN, "%s%s", buf, my_progname); strncpy(tool_executable_name, tool_name, FN_REFLEN); } else { /* 3. Just go for it and hope tool is in path */ path[0]= 0; } } int len; DBUG_PRINT("info", ("path: '%s'", path)); /* Chop off binary name (i.e mysql-upgrade) from path */ dirname_part(path, path); /* mysql_upgrade was run absolutely or relatively. We can find a sibling by replacing our name after the LIBCHAR with the new tool name. */ /* When running in a not yet installed build and using libtool, Loading @@ -407,38 +379,32 @@ static void find_tool(char *tool_path, const char *tool_name) mysqlcheck). Thus if path ends in .libs/, step up one directory and execute the tools from there */ path[max((strlen(path)-1), 0)]= 0; /* Chop off last / */ if (strncmp(path + dirname_length(path), ".libs", 5) == 0) if (((last_fn_libchar - 6) >= self_name) && (strncmp(last_fn_libchar - 5, ".libs", 5) == 0) && (*(last_fn_libchar - 6) == FN_LIBCHAR)) { DBUG_PRINT("info", ("Chopping off .libs from '%s'", path)); /* Chop off .libs */ dirname_part(path, path); DBUG_PRINT("info", ("Chopping off \".libs\" from end of path")); last_fn_libchar -= 6; } len= last_fn_libchar - self_name; DBUG_PRINT("info", ("path: '%s'", path)); /* Format name of the tool to search for */ fn_format(tool_path, tool_name, path, "", MYF(MY_REPLACE_DIR)); verbose("Looking for '%s' in: %s", tool_name, tool_path); my_snprintf(tool_executable_name, FN_REFLEN, "%.*s%c%s", len, self_name, FN_LIBCHAR, tool_name); } /* Make sure the tool exists */ if (my_access(tool_path, F_OK) != 0) die("Can't find '%s'", tool_path); verbose("Looking for '%s' as: %s", tool_name, tool_executable_name); /* Make sure it can be executed */ if (run_tool(tool_path, if (run_tool(tool_executable_name, &ds_tmp, /* Get output from command, discard*/ "--help", "2>&1", IF_WIN("> NUL", "> /dev/null"), NULL)) die("Can't execute '%s'", tool_path); die("Can't execute '%s'", tool_executable_name); dynstr_free(&ds_tmp); Loading Loading @@ -748,11 +714,20 @@ static const char *load_default_groups[]= int main(int argc, char **argv) { char self_name[FN_REFLEN]; MY_INIT(argv[0]); #ifdef __NETWARE__ setscreenmode(SCR_AUTOCLOSE_ON_EXIT); #endif #if __WIN__ if (GetModuleFileName(NULL, self_name, FN_REFLEN) == 0) #endif { strncpy(self_name, argv[0], FN_REFLEN); } if (init_dynamic_string(&ds_args, "", 512, 256)) die("Out of memory"); Loading @@ -774,10 +749,10 @@ int main(int argc, char **argv) dynstr_append(&ds_args, " "); /* Find mysql */ find_tool(mysql_path, IF_WIN("mysql.exe", "mysql")); find_tool(mysql_path, IF_WIN("mysql.exe", "mysql"), self_name); /* Find mysqlcheck */ find_tool(mysqlcheck_path, IF_WIN("mysqlcheck.exe", "mysqlcheck")); find_tool(mysqlcheck_path, IF_WIN("mysqlcheck.exe", "mysqlcheck"), self_name); /* Read the mysql_upgrade_info file to check if mysql_upgrade Loading configure.in +2 −2 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ AC_INIT(sql/mysqld.cc) AC_CANONICAL_SYSTEM # The Docs Makefile.am parses this line! # remember to also change ndb version below and update version.c in ndb AM_INIT_AUTOMAKE(mysql, 5.0.68) AM_INIT_AUTOMAKE(mysql, 5.0.70) AM_CONFIG_HEADER([include/config.h:config.h.in]) PROTOCOL_VERSION=10 Loading @@ -23,7 +23,7 @@ NDB_SHARED_LIB_VERSION=$NDB_SHARED_LIB_MAJOR_VERSION:0:0 # ndb version NDB_VERSION_MAJOR=5 NDB_VERSION_MINOR=0 NDB_VERSION_BUILD=68 NDB_VERSION_BUILD=70 NDB_VERSION_STATUS="" # Set all version vars based on $VERSION. How do we do this more elegant ? Loading innobase/buf/buf0buf.c +2 −0 Original line number Diff line number Diff line Loading @@ -2260,6 +2260,7 @@ buf_print(void) ut_a(buf_validate()); } #ifdef UNIV_DEBUG /************************************************************************* Returns the number of latched pages in the buffer pool. */ Loading Loading @@ -2290,6 +2291,7 @@ buf_get_latched_pages_number(void) mutex_exit(&(buf_pool->mutex)); return fixed_pages_number; } #endif /* UNIV_DEBUG */ /************************************************************************* Returns the number of pending buf pool ios. */ Loading innobase/dict/dict0dict.c +1 −1 Original line number Diff line number Diff line Loading @@ -3554,7 +3554,7 @@ dict_foreign_parse_drop_constraints( ptr = dict_accept(ptr, "FOREIGN", &success); if (!success) { if (!success || !ib_isspace(*ptr)) { goto loop; } Loading innobase/include/buf0buf.h +8 −5 Original line number Diff line number Diff line Loading @@ -495,7 +495,15 @@ Prints info of the buffer pool data structure. */ void buf_print(void); /*============*/ /************************************************************************* Returns the number of latched pages in the buffer pool. */ ulint buf_get_latched_pages_number(void); /*==============================*/ #endif /* UNIV_DEBUG */ /************************************************************************ Prints a page to stderr. */ Loading @@ -503,12 +511,7 @@ void buf_page_print( /*===========*/ byte* read_buf); /* in: a database page */ /************************************************************************* Returns the number of latched pages in the buffer pool. */ ulint buf_get_latched_pages_number(void); /*==============================*/ /************************************************************************* Returns the number of pending buf pool ios. */ Loading Loading
client/mysql_upgrade.c +56 −81 Original line number Diff line number Diff line Loading @@ -259,6 +259,10 @@ get_one_option(int optid, const struct my_option *opt, } /** Run a command using the shell, storing its output in the supplied dynamic string. */ static int run_command(char* cmd, DYNAMIC_STRING *ds_res) { Loading Loading @@ -331,36 +335,16 @@ static int run_tool(char *tool_path, DYNAMIC_STRING *ds_res, ...) } /* Try to get the full path to this exceutable Return 0 if path found /** Look for the filename of given tool, with the presumption that it is in the same directory as mysql_upgrade and that the same executable-searching mechanism will be used when we run our sub-shells with popen() later. */ static my_bool get_full_path_to_executable(char* path) static void find_tool(char *tool_executable_name, const char *tool_name, const char *self_name) { my_bool ret; DBUG_ENTER("get_full_path_to_executable"); #ifdef __WIN__ ret= (GetModuleFileName(NULL, path, FN_REFLEN) == 0); #else /* my_readlink returns 0 if a symlink was read */ ret= (my_readlink(path, "/proc/self/exe", MYF(0)) != 0); /* Might also want to try with /proc/$$/exe if the above fails */ #endif DBUG_PRINT("exit", ("path: %s", path)); DBUG_RETURN(ret); } /* Look for the tool in the same directory as mysql_upgrade. */ char *last_fn_libchar; static void find_tool(char *tool_path, const char *tool_name) { char path[FN_REFLEN]; DYNAMIC_STRING ds_tmp; DBUG_ENTER("find_tool"); DBUG_PRINT("enter", ("progname: %s", my_progname)); Loading @@ -368,36 +352,24 @@ static void find_tool(char *tool_path, const char *tool_name) if (init_dynamic_string(&ds_tmp, "", 32, 32)) die("Out of memory"); /* Initialize path with the full path to this program */ if (get_full_path_to_executable(path)) last_fn_libchar= strrchr(self_name, FN_LIBCHAR); if (last_fn_libchar == NULL) { /* Easy way to get full executable path failed, try other methods mysql_upgrade was found by the shell searching the path. A sibling next to us should be found the same way. */ if (my_progname[0] == FN_LIBCHAR) { /* 1. my_progname contains full path */ strmake(path, my_progname, FN_REFLEN); } else if (my_progname[0] == '.') { /* 2. my_progname contains relative path, prepend wd */ char buf[FN_REFLEN]; my_getwd(buf, FN_REFLEN, MYF(0)); my_snprintf(path, FN_REFLEN, "%s%s", buf, my_progname); strncpy(tool_executable_name, tool_name, FN_REFLEN); } else { /* 3. Just go for it and hope tool is in path */ path[0]= 0; } } int len; DBUG_PRINT("info", ("path: '%s'", path)); /* Chop off binary name (i.e mysql-upgrade) from path */ dirname_part(path, path); /* mysql_upgrade was run absolutely or relatively. We can find a sibling by replacing our name after the LIBCHAR with the new tool name. */ /* When running in a not yet installed build and using libtool, Loading @@ -407,38 +379,32 @@ static void find_tool(char *tool_path, const char *tool_name) mysqlcheck). Thus if path ends in .libs/, step up one directory and execute the tools from there */ path[max((strlen(path)-1), 0)]= 0; /* Chop off last / */ if (strncmp(path + dirname_length(path), ".libs", 5) == 0) if (((last_fn_libchar - 6) >= self_name) && (strncmp(last_fn_libchar - 5, ".libs", 5) == 0) && (*(last_fn_libchar - 6) == FN_LIBCHAR)) { DBUG_PRINT("info", ("Chopping off .libs from '%s'", path)); /* Chop off .libs */ dirname_part(path, path); DBUG_PRINT("info", ("Chopping off \".libs\" from end of path")); last_fn_libchar -= 6; } len= last_fn_libchar - self_name; DBUG_PRINT("info", ("path: '%s'", path)); /* Format name of the tool to search for */ fn_format(tool_path, tool_name, path, "", MYF(MY_REPLACE_DIR)); verbose("Looking for '%s' in: %s", tool_name, tool_path); my_snprintf(tool_executable_name, FN_REFLEN, "%.*s%c%s", len, self_name, FN_LIBCHAR, tool_name); } /* Make sure the tool exists */ if (my_access(tool_path, F_OK) != 0) die("Can't find '%s'", tool_path); verbose("Looking for '%s' as: %s", tool_name, tool_executable_name); /* Make sure it can be executed */ if (run_tool(tool_path, if (run_tool(tool_executable_name, &ds_tmp, /* Get output from command, discard*/ "--help", "2>&1", IF_WIN("> NUL", "> /dev/null"), NULL)) die("Can't execute '%s'", tool_path); die("Can't execute '%s'", tool_executable_name); dynstr_free(&ds_tmp); Loading Loading @@ -748,11 +714,20 @@ static const char *load_default_groups[]= int main(int argc, char **argv) { char self_name[FN_REFLEN]; MY_INIT(argv[0]); #ifdef __NETWARE__ setscreenmode(SCR_AUTOCLOSE_ON_EXIT); #endif #if __WIN__ if (GetModuleFileName(NULL, self_name, FN_REFLEN) == 0) #endif { strncpy(self_name, argv[0], FN_REFLEN); } if (init_dynamic_string(&ds_args, "", 512, 256)) die("Out of memory"); Loading @@ -774,10 +749,10 @@ int main(int argc, char **argv) dynstr_append(&ds_args, " "); /* Find mysql */ find_tool(mysql_path, IF_WIN("mysql.exe", "mysql")); find_tool(mysql_path, IF_WIN("mysql.exe", "mysql"), self_name); /* Find mysqlcheck */ find_tool(mysqlcheck_path, IF_WIN("mysqlcheck.exe", "mysqlcheck")); find_tool(mysqlcheck_path, IF_WIN("mysqlcheck.exe", "mysqlcheck"), self_name); /* Read the mysql_upgrade_info file to check if mysql_upgrade Loading
configure.in +2 −2 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ AC_INIT(sql/mysqld.cc) AC_CANONICAL_SYSTEM # The Docs Makefile.am parses this line! # remember to also change ndb version below and update version.c in ndb AM_INIT_AUTOMAKE(mysql, 5.0.68) AM_INIT_AUTOMAKE(mysql, 5.0.70) AM_CONFIG_HEADER([include/config.h:config.h.in]) PROTOCOL_VERSION=10 Loading @@ -23,7 +23,7 @@ NDB_SHARED_LIB_VERSION=$NDB_SHARED_LIB_MAJOR_VERSION:0:0 # ndb version NDB_VERSION_MAJOR=5 NDB_VERSION_MINOR=0 NDB_VERSION_BUILD=68 NDB_VERSION_BUILD=70 NDB_VERSION_STATUS="" # Set all version vars based on $VERSION. How do we do this more elegant ? Loading
innobase/buf/buf0buf.c +2 −0 Original line number Diff line number Diff line Loading @@ -2260,6 +2260,7 @@ buf_print(void) ut_a(buf_validate()); } #ifdef UNIV_DEBUG /************************************************************************* Returns the number of latched pages in the buffer pool. */ Loading Loading @@ -2290,6 +2291,7 @@ buf_get_latched_pages_number(void) mutex_exit(&(buf_pool->mutex)); return fixed_pages_number; } #endif /* UNIV_DEBUG */ /************************************************************************* Returns the number of pending buf pool ios. */ Loading
innobase/dict/dict0dict.c +1 −1 Original line number Diff line number Diff line Loading @@ -3554,7 +3554,7 @@ dict_foreign_parse_drop_constraints( ptr = dict_accept(ptr, "FOREIGN", &success); if (!success) { if (!success || !ib_isspace(*ptr)) { goto loop; } Loading
innobase/include/buf0buf.h +8 −5 Original line number Diff line number Diff line Loading @@ -495,7 +495,15 @@ Prints info of the buffer pool data structure. */ void buf_print(void); /*============*/ /************************************************************************* Returns the number of latched pages in the buffer pool. */ ulint buf_get_latched_pages_number(void); /*==============================*/ #endif /* UNIV_DEBUG */ /************************************************************************ Prints a page to stderr. */ Loading @@ -503,12 +511,7 @@ void buf_page_print( /*===========*/ byte* read_buf); /* in: a database page */ /************************************************************************* Returns the number of latched pages in the buffer pool. */ ulint buf_get_latched_pages_number(void); /*==============================*/ /************************************************************************* Returns the number of pending buf pool ios. */ Loading