Auto-merge from mysql-next-mr-bugfixing.

This commit is contained in:
Alexander Nozdrin 2010-02-24 10:32:22 +03:00
commit bca31a686d
82 changed files with 699 additions and 747 deletions

View File

@ -1,4 +1,4 @@
[MYSQL]
post_commit_to = "commits@lists.mysql.com"
post_push_to = "commits@lists.mysql.com"
tree_name = "mysql-next-mr"
tree_name = "mysql-next-mr-bugfixing"

View File

@ -7,8 +7,8 @@ cmake -P cmake/check_minimal_version.cmake >/dev/null 2>&1 || HAVE_CMAKE=no
perl --version >/dev/null 2>&1 || HAVE_CMAKE=no
if test "$HAVE_CMAKE" = "no"
then
sh ./configure.am $@
sh ./configure.am "$@"
else
perl ./cmake/configure.pl $@
perl ./cmake/configure.pl "$@"
fi

View File

@ -268,7 +268,8 @@ ELSE()
SET(CPACK_GENERATOR "TGZ")
ENDIF()
INCLUDE(CPack)
INSTALL(FILES COPYING EXCEPTIONS-CLIENT README DESTINATION ${INSTALL_DOCREADMEDIR})
INSTALL(FILES COPYING EXCEPTIONS-CLIENT LICENSE.mysql DESTINATION ${INSTALL_DOCREADMEDIR} OPTIONAL)
INSTALL(FILES README DESTINATION ${INSTALL_DOCREADMEDIR})
IF(UNIX)
INSTALL(FILES Docs/INSTALL-BINARY DESTINATION
${INSTALL_DOCREADMEDIR})

View File

@ -34,7 +34,7 @@
enum options_client
{
OPT_CHARSETS_DIR=256, OPT_DEFAULT_CHARSET,
OPT_PAGER, OPT_NOPAGER, OPT_TEE, OPT_NOTEE,
OPT_PAGER, OPT_TEE,
OPT_LOW_PRIORITY, OPT_AUTO_REPAIR, OPT_COMPRESS,
OPT_DROP, OPT_LOCKS, OPT_KEYWORDS, OPT_DELAYED, OPT_OPTIMIZE,
OPT_FTB, OPT_LTB, OPT_ENC, OPT_O_ENC, OPT_ESC, OPT_TABLES,
@ -48,8 +48,8 @@ enum options_client
OPT_PROMPT, OPT_IGN_LINES,OPT_TRANSACTION,OPT_MYSQL_PROTOCOL,
OPT_SHARED_MEMORY_BASE_NAME, OPT_FRM, OPT_SKIP_OPTIMIZATION,
OPT_COMPATIBLE, OPT_RECONNECT, OPT_DELIMITER, OPT_SECURE_AUTH,
OPT_OPEN_FILES_LIMIT, OPT_SET_CHARSET, OPT_CREATE_OPTIONS, OPT_SERVER_ARG,
OPT_START_POSITION, OPT_STOP_POSITION, OPT_START_DATETIME, OPT_STOP_DATETIME,
OPT_OPEN_FILES_LIMIT, OPT_SET_CHARSET, OPT_SERVER_ARG,
OPT_STOP_POSITION, OPT_START_DATETIME, OPT_STOP_DATETIME,
OPT_SIGINT_IGNORE, OPT_HEXBLOB, OPT_ORDER_BY_PRIMARY, OPT_COUNT,
#ifdef HAVE_NDBCLUSTER_DB
OPT_NDBCLUSTER, OPT_NDB_CONNECTSTRING,

View File

@ -1373,7 +1373,7 @@ static struct my_option my_long_options[] =
(uchar**) &opt_rehash, (uchar**) &opt_rehash, 0, GET_BOOL, NO_ARG, 1, 0, 0, 0,
0, 0},
{"no-auto-rehash", 'A',
"No automatic rehashing. One has to use 'rehash' to get table and field completion. This gives a quicker start of mysql and disables rehashing on reconnect. WARNING: options deprecated; use --disable-auto-rehash instead.",
"No automatic rehashing. One has to use 'rehash' to get table and field completion. This gives a quicker start of mysql and disables rehashing on reconnect.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"auto-vertical-output", OPT_AUTO_VERTICAL_OUTPUT,
"Automatically switch to vertical output mode if the result is wider than the terminal width.",
@ -1425,9 +1425,6 @@ static struct my_option my_long_options[] =
"Enable named commands. Named commands mean this program's internal commands; see mysql> help . When enabled, the named commands can be used from any line of the query, otherwise only from the first line, before an enter. Disable with --disable-named-commands. This option is disabled by default.",
(uchar**) &named_cmds, (uchar**) &named_cmds, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0,
0, 0},
{"no-named-commands", 'g',
"Named commands are disabled. Use \\* form only, or use named commands only in the beginning of a line ending with a semicolon (;) Since version 10.9 the client now starts with this option ENABLED by default! Disable with '-G'. Long format commands still work from the first line. WARNING: option deprecated; use --disable-named-commands instead.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"ignore-spaces", 'i', "Ignore space after function names.",
(uchar**) &ignore_spaces, (uchar**) &ignore_spaces, 0, GET_BOOL, NO_ARG, 0, 0,
0, 0, 0, 0},
@ -1449,7 +1446,7 @@ static struct my_option my_long_options[] =
{"line-numbers", OPT_LINE_NUMBERS, "Write line numbers for errors.",
(uchar**) &line_numbers, (uchar**) &line_numbers, 0, GET_BOOL,
NO_ARG, 1, 0, 0, 0, 0, 0},
{"skip-line-numbers", 'L', "Don't write line number for errors. WARNING: -L is deprecated, use long version of this option instead.", 0, 0, 0, GET_NO_ARG,
{"skip-line-numbers", 'L', "Don't write line number for errors.", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0},
{"unbuffered", 'n', "Flush buffer after each query.", (uchar**) &unbuffered,
(uchar**) &unbuffered, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
@ -1457,11 +1454,8 @@ static struct my_option my_long_options[] =
(uchar**) &column_names, (uchar**) &column_names, 0, GET_BOOL,
NO_ARG, 1, 0, 0, 0, 0, 0},
{"skip-column-names", 'N',
"Don't write column names in results. WARNING: -N is deprecated, use long version of this options instead.",
"Don't write column names in results.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"set-variable", 'O',
"Change the value of a variable. Please note that this option is deprecated; you can set variables directly with --variable-name=value.",
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"sigint-ignore", OPT_SIGINT_IGNORE, "Ignore SIGINT (CTRL-C)",
(uchar**) &opt_sigint_ignore, (uchar**) &opt_sigint_ignore, 0, GET_BOOL,
NO_ARG, 0, 0, 0, 0, 0, 0},
@ -1472,9 +1466,6 @@ static struct my_option my_long_options[] =
{"pager", OPT_PAGER,
"Pager to use to display results. If you don't supply an option the default pager is taken from your ENV variable PAGER. Valid pagers are less, more, cat [> filename], etc. See interactive help (\\h) also. This option does not work in batch mode. Disable with --disable-pager. This option is disabled by default.",
0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
{"no-pager", OPT_NOPAGER,
"Disable pager and print to stdout. See interactive help (\\h) also. WARNING: option deprecated; use --disable-pager instead.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
#endif
{"password", 'p',
"Password to use when connecting to server. If password is not given it's asked from the tty.",
@ -1520,8 +1511,6 @@ static struct my_option my_long_options[] =
{"tee", OPT_TEE,
"Append everything into outfile. See interactive help (\\h) also. Does not work in batch mode. Disable with --disable-tee. This option is disabled by default.",
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"no-tee", OPT_NOTEE, "Disable outfile. See interactive help (\\h) also. WARNING: option deprecated; use --disable-tee instead", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0},
#ifndef DONT_ALLOW_USER_CHANGE
{"user", 'u', "User for login if not current user.", (uchar**) &current_user,
(uchar**) &current_user, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
@ -1660,11 +1649,6 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
else
init_tee(argument);
break;
case OPT_NOTEE:
printf("WARNING: option deprecated; use --disable-tee instead.\n");
if (opt_outfile)
end_tee();
break;
case OPT_PAGER:
if (argument == disabled_my_option)
opt_nopager= 1;
@ -1683,10 +1667,6 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
opt_nopager= 1;
}
break;
case OPT_NOPAGER:
printf("WARNING: option deprecated; use --disable-pager instead.\n");
opt_nopager= 1;
break;
case OPT_MYSQL_PROTOCOL:
#ifndef EMBEDDED_LIBRARY
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib,

View File

@ -1077,11 +1077,6 @@ static struct my_option my_long_options[] =
"built-in default (" STRINGIFY_ARG(MYSQL_PORT) ").",
(uchar**) &port, (uchar**) &port, 0, GET_INT, REQUIRED_ARG,
0, 0, 0, 0, 0, 0},
{"position", 'j', "Deprecated. Use --start-position instead.",
(uchar**) &start_position, (uchar**) &start_position, 0, GET_ULL,
REQUIRED_ARG, BIN_LOG_HEADER_SIZE, BIN_LOG_HEADER_SIZE,
/* COM_BINLOG_DUMP accepts only 4 bytes for the position */
(ulonglong)(~(uint32)0), 0, 0, 0},
{"protocol", OPT_MYSQL_PROTOCOL,
"The protocol of connection (tcp,socket,pipe,memory).",
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
@ -1120,7 +1115,7 @@ static struct my_option my_long_options[] =
"(you should probably use quotes for your shell to set it properly).",
(uchar**) &start_datetime_str, (uchar**) &start_datetime_str,
0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"start-position", OPT_START_POSITION,
{"start-position", 'j',
"Start reading the binlog at position N. Applies to the first binlog "
"passed on the command line.",
(uchar**) &start_position, (uchar**) &start_position, 0, GET_ULL,

View File

@ -184,9 +184,6 @@ HASH ignore_table;
static struct my_option my_long_options[] =
{
{"all", 'a', "Deprecated. Use --create-options instead.",
(uchar**) &create_options, (uchar**) &create_options, 0, GET_BOOL, NO_ARG, 1,
0, 0, 0, 0, 0},
{"all-databases", 'A',
"Dump all the databases. This will be same as --databases with all databases selected.",
(uchar**) &opt_alldbs, (uchar**) &opt_alldbs, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0,
@ -239,7 +236,7 @@ static struct my_option my_long_options[] =
{"compress", 'C', "Use compression in server/client protocol.",
(uchar**) &opt_compress, (uchar**) &opt_compress, 0, GET_BOOL, NO_ARG, 0, 0, 0,
0, 0, 0},
{"create-options", OPT_CREATE_OPTIONS,
{"create-options", 'a',
"Include all MySQL specific create options.",
(uchar**) &create_options, (uchar**) &create_options, 0, GET_BOOL, NO_ARG, 1,
0, 0, 0, 0, 0},
@ -304,9 +301,6 @@ static struct my_option my_long_options[] =
(uchar**) &opt_enclosed, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0 ,0, 0},
{"fields-escaped-by", OPT_ESC, "Fields in the i.file are escaped by ...",
(uchar**) &escaped, (uchar**) &escaped, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"first-slave", 'x', "Deprecated, renamed to --lock-all-tables.",
(uchar**) &opt_lock_all_tables, (uchar**) &opt_lock_all_tables, 0, GET_BOOL, NO_ARG,
0, 0, 0, 0, 0, 0},
{"flush-logs", 'F', "Flush logs file in server before starting dump. "
"Note that if you dump many databases at once (using the option "
"--databases= or --all-databases), the logs will be flushed for "
@ -394,8 +388,7 @@ static struct my_option my_long_options[] =
NO_ARG, 0, 0, 0, 0, 0, 0},
{"no-data", 'd', "No row information.", (uchar**) &opt_no_data,
(uchar**) &opt_no_data, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
{"no-set-names", 'N',
"Deprecated. Use --skip-set-charset instead.",
{"no-set-names", 'N', "Same as--skip-set-charset.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"opt", OPT_OPTIMIZE,
"Same as --add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, and --disable-keys. Enabled by default, disable with --skip-opt.",
@ -433,9 +426,6 @@ static struct my_option my_long_options[] =
"Add 'SET NAMES default_character_set' to the output.",
(uchar**) &opt_set_charset, (uchar**) &opt_set_charset, 0, GET_BOOL, NO_ARG, 1,
0, 0, 0, 0, 0},
{"set-variable", 'O',
"Change the value of a variable. Please note that this option is deprecated; you can set variables directly with --variable-name=value.",
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
#ifdef HAVE_SMEM
{"shared-memory-base-name", OPT_SHARED_MEMORY_BASE_NAME,
"Base name of shared memory.", (uchar**) &shared_memory_base_name, (uchar**) &shared_memory_base_name,

View File

@ -4460,12 +4460,13 @@ typedef struct
{
const char *name;
uint code;
const char *text;
} st_error;
static st_error global_error_names[] =
{
#include <mysqld_ername.h>
{ 0, 0 }
{ 0, 0, 0 }
};
uint get_errcode_from_name(char *error_name, char *error_end)

View File

@ -38,12 +38,55 @@ sub set_installdir
}
}
# CMake understands CC and CXX env.variables correctly, if they contain 1 or 2 tokens
# e.g CXX=gcc and CXX="ccache gcc" are ok. However it could have a problem if there
# (recognizing gcc) with more tokens ,e.g CXX="ccache gcc --pipe".
# The problem is simply fixed by splitting compiler and flags, e.g
# CXX="ccache gcc --pipe" => CXX=ccache gcc CXXFLAGS=--pipe
sub check_compiler
{
my ($varname, $flagsvarname) = @_;
my @tokens = split(/ /,$ENV{$varname});
if($#tokens >= 2)
{
$ENV{$varname} = $tokens[0]." ".$tokens[1];
my $flags;
for(my $i=2; $i<=$#tokens; $i++)
{
$flags= $flags." ".$tokens[$i];
}
if(defined $ENV{$flagsvarname})
{
$flags = $flags." ".$ENV{$flagsvarname};
}
$ENV{$flagsvarname}=$flags;
print("$varname=$ENV{$varname}\n");
print("$flagsvarname=$ENV{$flagsvarname}\n");
}
}
check_compiler("CC", "CFLAGS");
check_compiler("CXX", "CXXFLAGS");
foreach my $option (@ARGV)
{
if (substr ($option, 0, 2) == "--")
if (substr ($option, 0, 2) eq "--")
{
$option = substr($option, 2);
}
else
{
# This must be environment variable
my @v = split('=', $option);
my $name = shift(@v);
if(@v)
{
$ENV{$name} = join('=', @v);
}
next;
}
if($option =~ /srcdir/)
{
$srcdir = substr($option,7);

View File

@ -839,7 +839,7 @@ AC_HEADER_DIRENT
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(fcntl.h fenv.h float.h floatingpoint.h ieeefp.h limits.h \
memory.h pwd.h select.h \
memory.h pwd.h select.h poll.h \
stdlib.h stddef.h \
strings.h string.h synch.h sys/mman.h sys/socket.h netinet/in.h arpa/inet.h \
sys/timeb.h sys/types.h sys/un.h sys/vadvise.h sys/wait.h term.h \

View File

@ -199,11 +199,34 @@ int main(int argc, char *argv[])
}
static void print_escaped_string(FILE *f, const char *str)
{
const char *tmp = str;
while (tmp[0] != 0)
{
switch (tmp[0])
{
case '\\': fprintf(f, "\\\\"); break;
case '\'': fprintf(f, "\\\'"); break;
case '\"': fprintf(f, "\\\""); break;
case '\n': fprintf(f, "\\n"); break;
case '\r': fprintf(f, "\\r"); break;
default: fprintf(f, "%c", tmp[0]);
}
tmp++;
}
}
static int create_header_files(struct errors *error_head)
{
uint er_last;
FILE *er_definef, *sql_statef, *er_namef;
struct errors *tmp_error;
struct message *er_msg;
const char *er_text;
DBUG_ENTER("create_header_files");
LINT_INIT(er_last);
@ -245,9 +268,12 @@ static int create_header_files(struct errors *error_head)
"{ %-40s,\"%s\", \"%s\" },\n", tmp_error->er_name,
tmp_error->sql_code1, tmp_error->sql_code2);
/*generating er_name file */
fprintf(er_namef, "{ \"%s\", %d },\n", tmp_error->er_name,
er_msg= find_message(tmp_error, default_language, 0);
er_text = (er_msg ? er_msg->text : "");
fprintf(er_namef, "{ \"%s\", %d, \"", tmp_error->er_name,
tmp_error->d_code);
print_escaped_string(er_namef, er_text);
fprintf(er_namef, "\" },\n");
}
/* finishing off with mysqld_error.h */
fprintf(er_definef, "#define ER_ERROR_LAST %d\n", er_last);

View File

@ -184,6 +184,45 @@ static const char *get_ha_error_msg(int code)
return NullS;
}
typedef struct
{
const char *name;
uint code;
const char *text;
} st_error;
static st_error global_error_names[] =
{
#include <mysqld_ername.h>
{ 0, 0, 0 }
};
/**
Lookup an error by code in the global_error_names array.
@param code the code to lookup
@param [out] name_ptr the error name, when found
@param [out] msg_ptr the error text, when found
@return 1 when found, otherwise 0
*/
int get_ER_error_msg(uint code, const char **name_ptr, const char **msg_ptr)
{
st_error *tmp_error;
tmp_error= & global_error_names[0];
while (tmp_error->name != NULL)
{
if (tmp_error->code == code)
{
*name_ptr= tmp_error->name;
*msg_ptr= tmp_error->text;
return 1;
}
tmp_error++;
}
return 0;
}
#if defined(__WIN__)
static my_bool print_win_error_msg(DWORD error, my_bool verbose)
@ -211,6 +250,7 @@ int main(int argc,char *argv[])
{
int error,code,found;
const char *msg;
const char *name;
char *unknown_error = 0;
#if defined(__WIN__)
my_bool skip_win_message= 0;
@ -316,6 +356,14 @@ int main(int argc,char *argv[])
else
puts(msg);
}
if (get_ER_error_msg(code, & name, & msg))
{
found= 1;
if (verbose)
printf("MySQL error code %3d (%s): %s\n", code, name, msg);
else
puts(msg);
}
if (!found)
{
#if defined(__WIN__)

View File

@ -118,6 +118,7 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command,
net_clear_error(net);
thd->current_stmt= stmt;
thd->thread_stack= (char*) &thd;
thd->store_globals(); // Fix if more than one connect
/*
We have to call free_old_query before we start to fill mysql->fields

View File

@ -15,7 +15,6 @@ main.outfile_loaddata @solaris # Bug#46895 2010-01-20 alik Test "outfi
main.plugin # Bug#47146 Linking problem with example plugin when dtrace enabled
main.signal_demo3 @solaris # Bug#47791 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun
main.sp @solaris # Bug#47791 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun
main.sp-error @windows # Bug#43201 2010-02-22 alik sp-error.test fails on Windows debug build in embedded mode. The patch will come from -bugfixing.
rpl.rpl_heartbeat_basic # BUG#43828 2009-10-22 luis fails sporadically
rpl.rpl_heartbeat_2slaves # BUG#43828 2009-10-22 luis fails sporadically
@ -24,7 +23,6 @@ rpl.rpl_innodb_bug30888* @solaris # Bug#47646 2009-09-25 alik rpl.rpl_inn
rpl.rpl_killed_ddl @windows # Bug#47638 2010-01-20 alik The rpl_killed_ddl test fails on Windows
rpl.rpl_plugin_load* @solaris # Bug#47146
rpl.rpl_row_sp011* @solaris # Bug#47791 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun
rpl.rpl_timezone* # Bug#47017 2009-10-27 alik rpl_timezone fails on PB-2 with mismatch error
sys_vars.max_sp_recursion_depth_func @solaris # Bug#47791 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun

View File

@ -8,9 +8,10 @@
--echo Cleaning up after setup_fake_relay_log.inc
# Remove files.
remove_file $_fake_relay_log;
remove_file $_fake_relay_index;
--disable_query_log
--disable_warnings
STOP SLAVE SQL_THREAD;
RESET SLAVE;
eval SET @@global.relay_log_purge= $_fake_relay_log_purge;
--enable_warnings
--enable_query_log

View File

@ -17,7 +17,7 @@
[mysqld]
open-files-limit= 1024
local-infile
default-character-set= latin1
character-set-server= latin1
# Increase default connect_timeout to avoid intermittent
# disconnects when test servers are put under load see BUG#28359

View File

@ -201,6 +201,8 @@ INSERT INTO global_suppressions VALUES
("==[0-9]*== For more details"),
/* This comes with innodb plugin tests */
("==[0-9]*== Warning: set address range perms: large range"),
/* valgrind-3.5.0 dumps this */
("==[0-9]*== Command: "),
/* valgrind warnings: invalid file descriptor -1 in syscall
write()/read(). Bug #50414 */

View File

@ -66,8 +66,16 @@ let $_fake_relay_index= $MYSQLD_DATADIR/$_fake_filename.index;
# CHANGE MASTER modifies it (see the manual for CHANGE MASTER).
let $_fake_relay_log_purge= `SELECT @@global.relay_log_purge`;
# Reset slave and remove relay log and index files if they exist
RESET SLAVE;
error 0,1;
remove_file $MYSQLD_DATADIR/$_fake_filename.000001;
error 0,1;
remove_file $MYSQLD_DATADIR/$_fake_filename.index;
# Create relay log file.
copy_file $fake_relay_log $_fake_relay_log;
# Create relay log index.
# After patch for BUG#12190, the filename used in CHANGE MASTER
@ -77,28 +85,12 @@ copy_file $fake_relay_log $_fake_relay_log;
if (`select convert(@@version_compile_os using latin1) IN ("Win32","Win64","Windows") = 0`)
{
-- let $_index_entry= ./$_fake_filename-fake.000001
eval select './$_fake_filename-fake.000001\n' into dumpfile '$_fake_relay_index';
}
if (`select convert(@@version_compile_os using latin1) IN ("Win32","Win64","Windows") != 0`)
{
-- let $_index_entry= .\\\\$_fake_filename-fake.000001
}
if (`SELECT LENGTH(@@secure_file_priv) > 0`)
{
-- let $_file_priv_dir= `SELECT @@secure_file_priv`;
-- let $_suffix= `SELECT UUID()`
-- let $_tmp_file= $_file_priv_dir/fake-index.$_suffix
-- eval select '$_index_entry\n' into dumpfile '$_tmp_file'
-- copy_file $_tmp_file $_fake_relay_index
-- remove_file $_tmp_file
}
if (`SELECT LENGTH(@@secure_file_priv) = 0`)
{
-- eval select '$_index_entry\n' into dumpfile '$_fake_relay_index'
eval select '.\\\\$_fake_filename-fake.000001\n' into dumpfile '$_fake_relay_index';
}
# Setup replication from existing relay log.

View File

@ -152,7 +152,6 @@ our $exe_mysqldump;
our $exe_mysqlslap;
our $exe_mysqlimport;
our $exe_mysqlshow;
our $exe_mysql_fix_system_tables;
our $file_mysql_fix_privilege_tables;
our $exe_mysqltest;
our $exe_ndbd;
@ -805,7 +804,7 @@ sub command_line_setup () {
"$glob_basedir/sql/share",
"$glob_basedir/share");
$path_language= mtr_path_exists("$path_share/english");
$path_language= mtr_path_exists("$path_share");
$path_charsetsdir= mtr_path_exists("$path_share/charsets");
@ -1468,7 +1467,7 @@ sub collect_mysqld_features () {
#
# --datadir must exist, mysqld will chdir into it
#
my $list= `$exe_mysqld --no-defaults --datadir=$tmpdir --language=$path_language --skip-grant-tables --verbose --help`;
my $list= `$exe_mysqld --no-defaults --datadir=$tmpdir --lc-messages-dir=$path_language --skip-grant-tables --verbose --help`;
foreach my $line (split('\n', $list))
{
@ -1680,14 +1679,6 @@ sub executable_setup () {
$exe_mysql_upgrade= "";
}
if ( ! $glob_win32 )
{
# Look for mysql_fix_system_table script
$exe_mysql_fix_system_tables=
mtr_script_exists("$glob_basedir/scripts/mysql_fix_privilege_tables",
"$path_client_bindir/mysql_fix_privilege_tables");
}
# Look for mysql_fix_privilege_tables.sql script
$file_mysql_fix_privilege_tables=
mtr_file_exists("$glob_basedir/scripts/mysql_fix_privilege_tables.sql",
@ -1812,7 +1803,7 @@ sub mysql_client_test_arguments()
if ( $glob_use_embedded_server )
{
mtr_add_arg($args,
" -A --language=$path_language");
" -A --lc-messages-dir=$path_language");
mtr_add_arg($args,
" -A --datadir=$slave->[0]->{'path_myddir'}");
mtr_add_arg($args,
@ -2159,20 +2150,6 @@ sub environment_setup () {
$ENV{'MYSQL_UPGRADE'}= mysql_upgrade_arguments();
}
# ----------------------------------------------------
# Setup env so childs can execute mysql_fix_system_tables
# ----------------------------------------------------
if ( !$opt_extern && ! $glob_win32 )
{
my $cmdline_mysql_fix_system_tables=
"$exe_mysql_fix_system_tables --no-defaults --host=localhost " .
"--user=root --password= " .
"--basedir=$glob_basedir --bindir=$path_client_bindir --verbose " .
"--port=$master->[0]->{'port'} " .
"--socket=$master->[0]->{'path_sock'}";
$ENV{'MYSQL_FIX_SYSTEM_TABLES'}= $cmdline_mysql_fix_system_tables;
}
$ENV{'MYSQL_FIX_PRIVILEGE_TABLES'}= $file_mysql_fix_privilege_tables;
# ----------------------------------------------------
@ -3163,7 +3140,7 @@ sub install_db ($$) {
if ( ! $glob_netware )
{
mtr_add_arg($args, "--language=%s", $path_language);
mtr_add_arg($args, "--lc-messages-dir=%s", $path_language);
mtr_add_arg($args, "--character-sets-dir=%s", $path_charsetsdir);
}
@ -3288,10 +3265,10 @@ socket = $instance->{path_sock}
pid-file = $instance->{path_pid}
port = $instance->{port}
datadir = $instance->{path_datadir}
lc-messages-dir = $path_language
log = $instance->{path_datadir}/mysqld$server_id.log
log-error = $instance->{path_datadir}/mysqld$server_id.err.log
log-slow-queries = $instance->{path_datadir}/mysqld$server_id.slow.log
language = $path_language
character-sets-dir = $path_charsetsdir
basedir = $path_my_basedir
server_id = $server_id
@ -3898,8 +3875,8 @@ sub mysqld_arguments ($$$$) {
mtr_add_arg($args, "%s--log-bin-trust-function-creators", $prefix);
}
mtr_add_arg($args, "%s--default-character-set=latin1", $prefix);
mtr_add_arg($args, "%s--language=%s", $prefix, $path_language);
mtr_add_arg($args, "%s--character-set-server=latin1", $prefix);
mtr_add_arg($args, "%s--lc-messages-dir=%s", $prefix, $path_language);
mtr_add_arg($args, "%s--tmpdir=$opt_tmpdir", $prefix);
# Increase default connect_timeout to avoid intermittent

View File

@ -61,10 +61,10 @@ create table t1 (a int unique);
create table t2 (a int);
drop function if exists f1;
Warnings:
Note 1305 FUNCTION f1 does not exist
Note 1305 FUNCTION test.f1 does not exist
drop function if exists f2;
Warnings:
Note 1305 FUNCTION f2 does not exist
Note 1305 FUNCTION test.f2 does not exist
create function f1() returns int
begin
insert into t1 (a) values (1);

View File

@ -678,11 +678,6 @@ timestampadd(WEEK, 1, date)
select timestampadd(SQL_TSI_SECOND, 1, date) from t1;
timestampadd(SQL_TSI_SECOND, 1, date)
2003-01-02 00:00:01
select timestampadd(SQL_TSI_FRAC_SECOND, 1, date) from t1;
timestampadd(SQL_TSI_FRAC_SECOND, 1, date)
2003-01-02 00:00:00.000001
Warnings:
Warning 1287 The syntax 'FRAC_SECOND' is deprecated and will be removed in MySQL 6.2. Please use MICROSECOND instead
select timestampdiff(MONTH, '2001-02-01', '2001-05-01') as a;
a
3
@ -713,11 +708,6 @@ a
select timestampdiff(SQL_TSI_SECOND, '2001-02-01 12:59:59', '2001-05-01 12:58:58') as a;
a
7689539
select timestampdiff(SQL_TSI_FRAC_SECOND, '2001-02-01 12:59:59.120000', '2001-05-01 12:58:58.119999') as a;
a
7689538999999
Warnings:
Warning 1287 The syntax 'FRAC_SECOND' is deprecated and will be removed in MySQL 6.2. Please use MICROSECOND instead
select timestampdiff(SQL_TSI_DAY, '1986-02-01', '1986-03-01') as a1,
timestampdiff(SQL_TSI_DAY, '1900-02-01', '1900-03-01') as a2,
timestampdiff(SQL_TSI_DAY, '1996-02-01', '1996-03-01') as a3,
@ -1082,13 +1072,6 @@ week(20061108), week(20061108.01), week(20061108085411.000002);
isnull(week(now() + 0)) isnull(week(now() + 0.2)) week(20061108) week(20061108.01) week(20061108085411.000002)
0 0 45 45 45
End of 4.1 tests
explain extended select timestampdiff(SQL_TSI_WEEK, '2001-02-01', '2001-05-01') as a1,
timestampdiff(SQL_TSI_FRAC_SECOND, '2001-02-01 12:59:59.120000', '2001-05-01 12:58:58.119999') as a2;
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
Warning 1287 The syntax 'FRAC_SECOND' is deprecated and will be removed in MySQL 6.2. Please use MICROSECOND instead
Note 1003 select timestampdiff(WEEK,'2001-02-01','2001-05-01') AS `a1`,timestampdiff(SECOND_FRAC,'2001-02-01 12:59:59.120000','2001-05-01 12:58:58.119999') AS `a2`
select time_format('100:00:00', '%H %k %h %I %l');
time_format('100:00:00', '%H %k %h %I %l')
100 100 04 04 4
@ -1282,24 +1265,6 @@ DATE_ADD(20071108, INTERVAL 1 DAY)
select LAST_DAY('2007-12-06 08:59:19.05') - INTERVAL 1 SECOND;
LAST_DAY('2007-12-06 08:59:19.05') - INTERVAL 1 SECOND
2007-12-30 23:59:59
SELECT TIMESTAMPADD(FRAC_SECOND, 1, '2008-02-18');
TIMESTAMPADD(FRAC_SECOND, 1, '2008-02-18')
2008-02-18 00:00:00.000001
Warnings:
Warning 1287 The syntax 'FRAC_SECOND' is deprecated and will be removed in MySQL 6.2. Please use MICROSECOND instead
SELECT TIMESTAMPDIFF(FRAC_SECOND, '2008-02-17', '2008-02-18');
TIMESTAMPDIFF(FRAC_SECOND, '2008-02-17', '2008-02-18')
86400000000
Warnings:
Warning 1287 The syntax 'FRAC_SECOND' is deprecated and will be removed in MySQL 6.2. Please use MICROSECOND instead
SELECT DATE_ADD('2008-02-18', INTERVAL 1 FRAC_SECOND);
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FRAC_SECOND)' at line 1
SELECT DATE_SUB('2008-02-18', INTERVAL 1 FRAC_SECOND);
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FRAC_SECOND)' at line 1
SELECT '2008-02-18' + INTERVAL 1 FRAC_SECOND;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FRAC_SECOND' at line 1
SELECT '2008-02-18' - INTERVAL 1 FRAC_SECOND;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FRAC_SECOND' at line 1
select date_add('1000-01-01 00:00:00', interval '1.03:02:01.05' day_microsecond);
date_add('1000-01-01 00:00:00', interval '1.03:02:01.05' day_microsecond)
1000-01-02 03:02:01.050000

View File

@ -1231,7 +1231,7 @@ Warnings:
Note 1051 Unknown table 'test'
drop function if exists test_function;
Warnings:
Note 1305 FUNCTION test_function does not exist
Note 1305 FUNCTION test.test_function does not exist
drop view if exists v1;
Warnings:
Note 1051 Unknown table 'test.v1'

View File

@ -2297,3 +2297,28 @@ t2 CREATE TABLE `t2` (
CONSTRAINT `x` FOREIGN KEY (`fk`) REFERENCES `t1` (`pk`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t2, t1;
#
# Bug#44613 SELECT statement inside FUNCTION takes a shared lock
#
DROP TABLE IF EXISTS t1;
DROP FUNCTION IF EXISTS f1;
CREATE TABLE t1(x INT PRIMARY KEY, y INT) ENGINE=innodb;
INSERT INTO t1 VALUES (1, 0), (2, 0);
CREATE FUNCTION f1(z INT) RETURNS INT READS SQL DATA
RETURN (SELECT x FROM t1 WHERE x = z);
# Connection default
START TRANSACTION;
SELECT f1(1);
f1(1)
1
# Connection con2
START TRANSACTION;
SELECT f1(1);
f1(1)
1
UPDATE t1 SET y = 1 WHERE x = 1;
COMMIT;
# Connection default
COMMIT;
DROP TABLE t1;
DROP FUNCTION f1;

View File

@ -51,7 +51,7 @@ DROP TABLE t1;
#
SET lc_messages=sr_YU;
Warnings:
Warning 1287 'sr_YU' is deprecated; use 'sr_RS' instead
Warning 1287 'sr_YU' is deprecated and will be removed in a future release. Please use sr_RS instead
SHOW VARIABLES LIKE 'lc_messages';
Variable_name Value
lc_messages sr_RS

View File

@ -187,7 +187,7 @@ DELIMITER ;
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- --position --
--- --start-position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
@ -388,7 +388,7 @@ DELIMITER ;
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- --position --
--- --start-position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;

View File

@ -97,12 +97,6 @@ The following options may be given as the first argument:
--date-format=name The DATE format (ignored)
--datetime-format=name
The DATETIME format (ignored)
-C, --default-character-set=name
Set the default character set (deprecated option, use
--character-set-server instead).
--default-collation=name
Set the default collation (deprecated option, use
--collation-server instead).
--default-storage-engine=name
The default storage engine for new tables
--default-time-zone=name
@ -111,10 +105,6 @@ The following options may be given as the first argument:
The default week format used by WEEK() functions
--delay-key-write[=name]
Type of DELAY_KEY_WRITE
--delay-key-write-for-all-tables
Don't flush key buffers between writes for any MyISAM
table (Deprecated option, use --delay-key-write=all
instead).
--delayed-insert-limit=#
After inserting delayed_insert_limit rows, the INSERT
DELAYED handler will check if there are any SELECT
@ -134,7 +124,6 @@ The following options may be given as the first argument:
--div-precision-increment=#
Precision of the result of '/' operator will be increased
on that value
--enable-locking Deprecated option, use --external-locking instead.
--engine-condition-pushdown
Push supported query conditions to the storage engine.
Deprecated, use --optimizer-switch instead.
@ -241,10 +230,6 @@ The following options may be given as the first argument:
can safely set this to TRUE
--log-error[=name] Error log file
--log-isam[=name] Log all MyISAM changes to file.
-0, --log-long-format
Log some extra information to update log. Please note
that this option is deprecated; see --log-short-format
option.
--log-output=name Syntax: log-output=value[,value...], where "value" could
be TABLE, FILE or NONE
--log-queries-not-using-indexes
@ -271,9 +256,6 @@ The following options may be given as the first argument:
transactions that affect more than one storage engine,
when binary log is disabled)
--log-tc-size=# Size of transaction coordinator log.
--log-update[=name] The update log is deprecated since version 5.0, is
replaced by the binary log and this option justs turns on
--log-bin instead.
-W, --log-warnings[=#]
Log some not critical warnings to the log file
--long-query-time=# Log all queries that have taken more than long_query_time
@ -502,7 +484,6 @@ The following options may be given as the first argument:
When reading rows in sorted order after a sort, the rows
are read through this buffer to avoid a disk seeks. If
not set, then it's set to the value of record_buffer
--record-buffer=# Deprecated; use --read-buffer-size instead.
--relay-log=name The location and name to use for relay logs
--relay-log-index=name
The location and name to use for the file that keeps a
@ -599,8 +580,6 @@ The following options may be given as the first argument:
--rpl-recovery-rank=#
Unused, will be removed
--safe-mode Skip some optimize stages (for testing).
--safe-show-database
Deprecated option; use GRANT SHOW DATABASES instead...
--safe-user-create Don't allow new user creation by the user who has no
write privileges to the mysql.user table.
--secure-auth Disallow authentication for accounts that have old
@ -610,16 +589,11 @@ The following options may be given as the first argument:
files within specified directory
--server-id=# Uniquely identifies the server instance in the community
of replication partners
-O, --set-variable=name
Change the value of a variable. Please note that this
option is deprecated;you can set variables directly with
--variable-name=value.
--show-slave-auth-info
Show user and password in SHOW SLAVE HOSTS on this master
--skip-grant-tables Start without grant tables. This gives all users FULL
ACCESS to all tables!
--skip-host-cache Don't cache host names.
--skip-locking Deprecated option, use --skip-external-locking instead.
--skip-name-resolve Don't resolve hostnames. All hostnames are IP's or
'localhost'.
--skip-networking Don't allow connection with TCP/IP
@ -628,8 +602,6 @@ The following options may be given as the first argument:
Don't allow 'SHOW DATABASE' commands
--skip-slave-start If set, slave is not autostarted.
--skip-stack-trace Don't print a stack trace on failure.
--skip-symlink Don't allow symlinking of tables. Deprecated option. Use
--skip-symbolic-links instead.
--skip-thread-priority
Don't give threads different priorities. This option is
deprecated because it has no effect; the implied behavior
@ -681,10 +653,6 @@ The following options may be given as the first argument:
--sporadic-binlog-dump-fail
Option used by mysql-test for debugging and testing of
replication.
--sql-bin-update-same
The update log is deprecated since version 5.0, is
replaced by the binary log and this option does nothing
anymore.
--sql-mode=name Syntax: sql-mode=mode[,mode[,mode...]]. See the manual
for the complete list of valid sql modes
-s, --symbolic-links
@ -752,7 +720,6 @@ The following options may be given as the first argument:
-V, --version Output version information and exit.
--wait-timeout=# The number of seconds the server waits for activity on a
connection before closing it
-W, --warnings[=#] Deprecated; use --log-warnings instead.
Variables (--variable-name=value)
abort-slave-event-count 0
@ -780,8 +747,6 @@ connect-timeout 10
console FALSE
date-format %Y-%m-%d
datetime-format %Y-%m-%d %H:%i:%s
default-character-set latin1
default-collation latin1_swedish_ci
default-storage-engine MyISAM
default-time-zone (No default value)
default-week-format 0
@ -791,7 +756,6 @@ delayed-insert-timeout 300
delayed-queue-size 1000
disconnect-slave-event-count 0
div-precision-increment 4
enable-locking FALSE
engine-condition-pushdown TRUE
event-scheduler OFF
expire-logs-days 0
@ -839,7 +803,6 @@ log-slow-admin-statements FALSE
log-slow-slave-statements FALSE
log-tc tc.log
log-tc-size 24576
log-update (No default value)
log-warnings 1
long-query-time 10
low-priority-updates FALSE
@ -921,7 +884,6 @@ range-alloc-block-size 4096
read-buffer-size 131072
read-only FALSE
read-rnd-buffer-size 262144
record-buffer 131072
relay-log (No default value)
relay-log-index (No default value)
relay-log-info-file relay-log.info
@ -979,7 +941,6 @@ updatable-views-with-limit YES
use-symbolic-links FALSE
verbose TRUE
wait-timeout 28800
warnings 1
To see what values a running MySQL server is using, type
'mysqladmin variables' instead of 'mysqld --verbose --help'.

View File

@ -97,12 +97,6 @@ The following options may be given as the first argument:
--date-format=name The DATE format (ignored)
--datetime-format=name
The DATETIME format (ignored)
-C, --default-character-set=name
Set the default character set (deprecated option, use
--character-set-server instead).
--default-collation=name
Set the default collation (deprecated option, use
--collation-server instead).
--default-storage-engine=name
The default storage engine for new tables
--default-time-zone=name
@ -111,10 +105,6 @@ The following options may be given as the first argument:
The default week format used by WEEK() functions
--delay-key-write[=name]
Type of DELAY_KEY_WRITE
--delay-key-write-for-all-tables
Don't flush key buffers between writes for any MyISAM
table (Deprecated option, use --delay-key-write=all
instead).
--delayed-insert-limit=#
After inserting delayed_insert_limit rows, the INSERT
DELAYED handler will check if there are any SELECT
@ -134,7 +124,6 @@ The following options may be given as the first argument:
--div-precision-increment=#
Precision of the result of '/' operator will be increased
on that value
--enable-locking Deprecated option, use --external-locking instead.
--engine-condition-pushdown
Push supported query conditions to the storage engine.
Deprecated, use --optimizer-switch instead.
@ -240,10 +229,6 @@ The following options may be given as the first argument:
can safely set this to TRUE
--log-error[=name] Error log file
--log-isam[=name] Log all MyISAM changes to file.
-0, --log-long-format
Log some extra information to update log. Please note
that this option is deprecated; see --log-short-format
option.
--log-output=name Syntax: log-output=value[,value...], where "value" could
be TABLE, FILE or NONE
--log-queries-not-using-indexes
@ -270,9 +255,6 @@ The following options may be given as the first argument:
transactions that affect more than one storage engine,
when binary log is disabled)
--log-tc-size=# Size of transaction coordinator log.
--log-update[=name] The update log is deprecated since version 5.0, is
replaced by the binary log and this option justs turns on
--log-bin instead.
-W, --log-warnings[=#]
Log some not critical warnings to the log file
--long-query-time=# Log all queries that have taken more than long_query_time
@ -502,7 +484,6 @@ The following options may be given as the first argument:
When reading rows in sorted order after a sort, the rows
are read through this buffer to avoid a disk seeks. If
not set, then it's set to the value of record_buffer
--record-buffer=# Deprecated; use --read-buffer-size instead.
--relay-log=name The location and name to use for relay logs
--relay-log-index=name
The location and name to use for the file that keeps a
@ -599,8 +580,6 @@ The following options may be given as the first argument:
--rpl-recovery-rank=#
Unused, will be removed
--safe-mode Skip some optimize stages (for testing).
--safe-show-database
Deprecated option; use GRANT SHOW DATABASES instead...
--safe-user-create Don't allow new user creation by the user who has no
write privileges to the mysql.user table.
--secure-auth Disallow authentication for accounts that have old
@ -610,10 +589,6 @@ The following options may be given as the first argument:
files within specified directory
--server-id=# Uniquely identifies the server instance in the community
of replication partners
-O, --set-variable=name
Change the value of a variable. Please note that this
option is deprecated;you can set variables directly with
--variable-name=value.
--shared-memory Enable the shared memory
--shared-memory-base-name=name
Base name of shared memory
@ -622,7 +597,6 @@ The following options may be given as the first argument:
--skip-grant-tables Start without grant tables. This gives all users FULL
ACCESS to all tables!
--skip-host-cache Don't cache host names.
--skip-locking Deprecated option, use --skip-external-locking instead.
--skip-name-resolve Don't resolve hostnames. All hostnames are IP's or
'localhost'.
--skip-networking Don't allow connection with TCP/IP
@ -631,8 +605,6 @@ The following options may be given as the first argument:
Don't allow 'SHOW DATABASE' commands
--skip-slave-start If set, slave is not autostarted.
--skip-stack-trace Don't print a stack trace on failure.
--skip-symlink Don't allow symlinking of tables. Deprecated option. Use
--skip-symbolic-links instead.
--skip-thread-priority
Don't give threads different priorities. This option is
deprecated because it has no effect; the implied behavior
@ -684,10 +656,6 @@ The following options may be given as the first argument:
--sporadic-binlog-dump-fail
Option used by mysql-test for debugging and testing of
replication.
--sql-bin-update-same
The update log is deprecated since version 5.0, is
replaced by the binary log and this option does nothing
anymore.
--sql-mode=name Syntax: sql-mode=mode[,mode[,mode...]]. See the manual
for the complete list of valid sql modes
--standalone Dummy option to start as a standalone program (NT).
@ -756,7 +724,6 @@ The following options may be given as the first argument:
-V, --version Output version information and exit.
--wait-timeout=# The number of seconds the server waits for activity on a
connection before closing it
-W, --warnings[=#] Deprecated; use --log-warnings instead.
Variables (--variable-name=value)
abort-slave-event-count 0
@ -784,8 +751,6 @@ connect-timeout 10
console FALSE
date-format %Y-%m-%d
datetime-format %Y-%m-%d %H:%i:%s
default-character-set latin1
default-collation latin1_swedish_ci
default-storage-engine MyISAM
default-time-zone (No default value)
default-week-format 0
@ -795,7 +760,6 @@ delayed-insert-timeout 300
delayed-queue-size 1000
disconnect-slave-event-count 0
div-precision-increment 4
enable-locking FALSE
engine-condition-pushdown TRUE
event-scheduler OFF
expire-logs-days 0
@ -842,7 +806,6 @@ log-slow-admin-statements FALSE
log-slow-slave-statements FALSE
log-tc tc.log
log-tc-size 24576
log-update (No default value)
log-warnings 1
long-query-time 10
low-priority-updates FALSE
@ -925,7 +888,6 @@ range-alloc-block-size 4096
read-buffer-size 131072
read-only FALSE
read-rnd-buffer-size 262144
record-buffer 131072
relay-log (No default value)
relay-log-index (No default value)
relay-log-info-file relay-log.info
@ -985,7 +947,6 @@ updatable-views-with-limit YES
use-symbolic-links FALSE
verbose TRUE
wait-timeout 28800
warnings 1
To see what values a running MySQL server is using, type
'mysqladmin variables' instead of 'mysqld --verbose --help'.

View File

@ -1 +1,6 @@
Illegal error code: 10000
MySQL error code 1062 (ER_DUP_ENTRY): Duplicate entry '%-.192s' for key %d
MySQL error code 1076 (ER_READY): %s: ready for connections.
Version: '%s' socket: '%s' port: %d
MySQL error code 1459 (ER_TABLE_NEEDS_UPGRADE): Table upgrade required. Please do "REPAIR TABLE `%-.32s`" or dump/reload to fix it!
MySQL error code 1461 (ER_MAX_PREPARED_STMT_COUNT_REACHED): Can't create more than max_prepared_stmt_count statements (current value: %lu)

View File

@ -2181,7 +2181,7 @@ drop procedure peter_p1 $$
drop procedure peter_p2 $$
drop procedure if exists peter_p3 $$
Warnings:
Note 1305 PROCEDURE peter_p3 does not exist
Note 1305 PROCEDURE test.peter_p3 does not exist
create procedure peter_p3()
begin
declare continue handler for sqlexception

View File

@ -46,7 +46,7 @@ call foo()|
ERROR 42000: PROCEDURE test.foo does not exist
drop procedure if exists foo|
Warnings:
Note 1305 PROCEDURE foo does not exist
Note 1305 PROCEDURE test.foo does not exist
show create procedure foo|
ERROR 42000: PROCEDURE foo does not exist
show create function foo|
@ -1028,7 +1028,7 @@ drop table t1|
drop function bug_13627_f|
drop function if exists bug12329;
Warnings:
Note 1305 FUNCTION bug12329 does not exist
Note 1305 FUNCTION test.bug12329 does not exist
create table t1 as select 1 a;
create table t2 as select 1 a;
create function bug12329() returns int return (select a from t1);

View File

@ -394,10 +394,10 @@ CASE expression tests.
DROP PROCEDURE IF EXISTS p1;
Warnings:
Note 1305 PROCEDURE p1 does not exist
Note 1305 PROCEDURE test.p1 does not exist
DROP PROCEDURE IF EXISTS p2;
Warnings:
Note 1305 PROCEDURE p2 does not exist
Note 1305 PROCEDURE test.p2 does not exist
DROP TABLE IF EXISTS t1;
Warnings:
Note 1051 Unknown table 't1'

View File

@ -2695,10 +2695,10 @@ delete from t3|
insert into t3 values(1)|
drop procedure if exists bug7992_1|
Warnings:
Note 1305 PROCEDURE bug7992_1 does not exist
Note 1305 PROCEDURE test.bug7992_1 does not exist
drop procedure if exists bug7992_2|
Warnings:
Note 1305 PROCEDURE bug7992_2 does not exist
Note 1305 PROCEDURE test.bug7992_2 does not exist
create procedure bug7992_1()
begin
declare i int;

View File

@ -21,11 +21,11 @@ end|
call bug4902_2()|
show warnings|
Level Code Message
Note 1305 PROCEDURE bug4902_2 does not exist
Note 1305 PROCEDURE test.bug4902_2 does not exist
call bug4902_2()|
show warnings|
Level Code Message
Note 1305 PROCEDURE bug4902_2 does not exist
Note 1305 PROCEDURE test.bug4902_2 does not exist
drop procedure bug4902_2|
drop table if exists t1|
create table t1 (

View File

@ -1183,7 +1183,7 @@ drop table t1;
create table t1 (col1 tinyint);
drop procedure if exists t1;
Warnings:
Note 1305 PROCEDURE t1 does not exist
Note 1305 PROCEDURE test.t1 does not exist
create procedure t1 () begin declare exit handler for sqlexception
select'a'; insert into t1 values (200); end;|
call t1();

View File

@ -392,6 +392,52 @@ a
4
DROP FUNCTION sequence;
DROP TABLE t1,t2;
drop function if exists test.metaphon;
drop function if exists metaphon;
CREATE FUNCTION metaphon RETURNS STRING SONAME "UDF_EXAMPLE_LIB";
select metaphon("Hello");
metaphon("Hello")
HL
drop function if exists test.metaphon;
Warnings:
Note 1305 FUNCTION test.metaphon does not exist
select metaphon("Hello");
metaphon("Hello")
HL
drop function metaphon;
CREATE FUNCTION test.metaphon(a TEXT) RETURNS TEXT return "This is a SF";
create database db_31767;
use db_31767;
CREATE FUNCTION metaphon RETURNS STRING SONAME "UDF_EXAMPLE_LIB";
use test;
select metaphon("Hello");
metaphon("Hello")
HL
select test.metaphon("Hello");
test.metaphon("Hello")
This is a SF
drop function metaphon;
select metaphon("Hello");
metaphon("Hello")
This is a SF
drop function metaphon;
use db_31767;
drop database db_31767;
drop function if exists no_such_func;
Warnings:
Note 1305 FUNCTION (UDF) no_such_func does not exist
drop function no_such_func;
ERROR 42000: FUNCTION (UDF) no_such_func does not exist
drop function if exists test.no_such_func;
Warnings:
Note 1305 FUNCTION test.no_such_func does not exist
drop function test.no_such_func;
ERROR 42000: FUNCTION test.no_such_func does not exist
drop procedure if exists no_such_proc;
ERROR 3D000: No database selected
drop procedure no_such_proc;
ERROR 3D000: No database selected
use test;
#
# Bug#46259: 5.0.83 -> 5.1.36, query doesn't work
#

View File

@ -569,9 +569,6 @@ set sql_big_tables=1;
set sql_buffer_result=1;
set sql_log_bin=1;
set sql_log_off=1;
set sql_log_update=1;
Warnings:
Note 1315 The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been ignored. This option will be removed in MySQL 5.6.
set sql_low_priority_updates=1;
set sql_quote_show_create=1;
set sql_safe_updates=1;

View File

@ -2086,7 +2086,7 @@ CREATE TABLE t1 ( bug_table_seq INTEGER NOT NULL);
CREATE OR REPLACE VIEW v1 AS SELECT * from t1;
DROP PROCEDURE IF EXISTS p1;
Warnings:
Note 1305 PROCEDURE p1 does not exist
Note 1305 PROCEDURE test.p1 does not exist
CREATE PROCEDURE p1 ( )
BEGIN
DO (SELECT @next := IFNULL(max(bug_table_seq),0) + 1 FROM v1);
@ -4004,3 +4004,36 @@ CREATE VIEW t2 AS SELECT * FROM t1;
ERROR HY000: Can't execute the query because you have a conflicting read lock
UNLOCK TABLES;
DROP TABLE t1, t2;
#
# Bug#48315 Metadata lock is not taken for merged views that
# use an INFORMATION_SCHEMA table
#
DROP TABLE IF EXISTS t1;
DROP VIEW IF EXISTS v1;
DROP PROCEDURE IF EXISTS p1;
# Connection default
CREATE VIEW v1 AS SELECT schema_name FROM information_schema.schemata;
CREATE TABLE t1 (str VARCHAR(50));
CREATE PROCEDURE p1() INSERT INTO t1 SELECT * FROM v1;
# CALL p1() so the view is merged.
CALL p1();
# Connection 3
LOCK TABLE t1 READ;
# Connection default
# Try to CALL p1() again, this time it should block for t1.
# Sending:
CALL p1();
# Connection 2
# ... then try to drop the view. This should block.
# Sending:
DROP VIEW v1;
# Connection 3
# Now allow CALL p1() to complete
UNLOCK TABLES;
# Connection default
# Reaping: CALL p1()
# Connection 2
# Reaping: DROP VIEW v1
# Connection default
DROP PROCEDURE p1;
DROP TABLE t1;

View File

@ -228,13 +228,13 @@ INSERT INTO t2 VALUES ( 'a`', 'a`' );
INSERT INTO t3 VALUES ( 'a`', 'a`', '1000-01-1' );
DROP PROCEDURE IF EXISTS sp1;
Warnings:
Note 1305 PROCEDURE sp1 does not exist
Note 1305 PROCEDURE test.sp1 does not exist
DROP PROCEDURE IF EXISTS sp2;
Warnings:
Note 1305 PROCEDURE sp2 does not exist
Note 1305 PROCEDURE test.sp2 does not exist
DROP PROCEDURE IF EXISTS sp3;
Warnings:
Note 1305 PROCEDURE sp3 does not exist
Note 1305 PROCEDURE test.sp3 does not exist
CREATE PROCEDURE sp1()
BEGIN
DECLARE x NUMERIC ZEROFILL;

View File

@ -1,74 +0,0 @@
# BUG#33029 5.0 to 5.1 replication fails on dup key when inserting
# using a trig in SP
# For all 5.0 up to 5.0.58 exclusive, and 5.1 up to 5.1.12 exclusive,
# if one statement in a SP generated AUTO_INCREMENT value by the top
# statement, all statements after it would be considered generated
# AUTO_INCREMENT value by the top statement, and a erroneous INSERT_ID
# value might be associated with these statement, which could cause
# duplicate entry error and stop the slave.
# Test if the slave can replicate from such a buggy master
# The bug33029-slave-relay-bin.000001 file is the
# slave-replay-bin.000003 file generated by run the
# rpl_auto_increment_bug33029.test with clean up statements at the end
# of the test case removed on a buggy 5.0 server
source include/have_log_bin.inc;
# Need to restore this at the end; CHANGE MASTER modifies it (see the
# manual for CHANGE MASTER).
SET @old_relay_log_purge= @@global.relay_log_purge;
let $MYSQLD_DATADIR= `select @@datadir`;
copy_file $MYSQL_TEST_DIR/std_data/bug33029-slave-relay-bin.000001 $MYSQLD_DATADIR/slave-relay-bin.000001;
# After patch for BUG#12190, the filename used in CHANGE MASTER
# RELAY_LOG_FILE will be automatically added the directory of the
# relay log before comparison, thus we need to added the directory
# part (./ on unix .\ on windows) when faking the relay-log-bin.index.
disable_query_log;
if (`select convert(@@version_compile_os using latin1) IN ("Win32","Win64","Windows") = 0`)
{
eval select './slave-relay-bin.000001\n' into dumpfile '$MYSQLD_DATADIR/slave-relay-bin.index';
}
if (`select convert(@@version_compile_os using latin1) IN ("Win32","Win64","Windows") != 0`)
{
eval select '.\\\\slave-relay-bin.000001\n' into dumpfile '$MYSQLD_DATADIR/slave-relay-bin.index';
}
enable_query_log;
change master to
MASTER_HOST='dummy.localdomain',
RELAY_LOG_FILE='slave-relay-bin.000001',
RELAY_LOG_POS=4;
start slave sql_thread;
disable_result_log;
select MASTER_POS_WAIT('master-bin.000001', 3776);
enable_result_log;
echo # Result on slave;
SELECT * FROM t1;
SELECT * FROM t2;
# clean up
disable_warnings;
DROP TABLE IF EXISTS t1, t2;
DROP PROCEDURE IF EXISTS p1;
DROP PROCEDURE IF EXISTS p2;
DROP FUNCTION IF EXISTS f1;
DROP TRIGGER IF EXISTS tr1;
enable_warnings;
stop slave sql_thread;
reset slave;
source include/wait_for_slave_sql_to_stop.inc;
remove_file $MYSQLD_DATADIR/slave-relay-bin.000001;
remove_file $MYSQLD_DATADIR/slave-relay-bin.index;
SET @@global.relay_log_purge= @old_relay_log_purge;

View File

@ -787,6 +787,7 @@ f1 f2 f3
222222 bbbbbb 2
drop table t1;
Illegal ndb error code: 1186
MySQL error code 1186 (ER_FLUSH_MASTER_BINLOG_CLOSED): Binlog closed, cannot RESET MASTER
CREATE TABLE t1 (
a VARBINARY(40) NOT NULL,
b VARCHAR (256) CHARACTER SET UTF8 NOT NULL,

View File

@ -1,8 +1,4 @@
SET @old_relay_log_purge= @@global.relay_log_purge;
change master to
MASTER_HOST='dummy.localdomain',
RELAY_LOG_FILE='slave-relay-bin.000001',
RELAY_LOG_POS=4;
Setting up fake replication from MYSQL_TEST_DIR/std_data/bug33029-slave-relay-bin.000001
start slave sql_thread;
select MASTER_POS_WAIT('master-bin.000001', 3776);
# Result on slave
@ -38,5 +34,4 @@ DROP PROCEDURE IF EXISTS p2;
DROP FUNCTION IF EXISTS f1;
DROP TRIGGER IF EXISTS tr1;
stop slave sql_thread;
reset slave;
SET @@global.relay_log_purge= @old_relay_log_purge;
Cleaning up after setup_fake_relay_log.inc

View File

@ -0,0 +1,42 @@
# BUG#33029 5.0 to 5.1 replication fails on dup key when inserting
# using a trig in SP
# For all 5.0 up to 5.0.58 exclusive, and 5.1 up to 5.1.12 exclusive,
# if one statement in a SP generated AUTO_INCREMENT value by the top
# statement, all statements after it would be considered generated
# AUTO_INCREMENT value by the top statement, and a erroneous INSERT_ID
# value might be associated with these statement, which could cause
# duplicate entry error and stop the slave.
# Test if the slave can replicate from such a buggy master
# The bug33029-slave-relay-bin.000001 file is the
# slave-replay-bin.000003 file generated by run the
# rpl_auto_increment_bug33029.test with clean up statements at the end
# of the test case removed on a buggy 5.0 server
source include/have_log_bin.inc;
let $fake_relay_log= $MYSQL_TEST_DIR/std_data/bug33029-slave-relay-bin.000001;
source include/setup_fake_relay_log.inc;
start slave sql_thread;
disable_result_log;
select MASTER_POS_WAIT('master-bin.000001', 3776);
enable_result_log;
echo # Result on slave;
SELECT * FROM t1;
SELECT * FROM t2;
# clean up
disable_warnings;
DROP TABLE IF EXISTS t1, t2;
DROP PROCEDURE IF EXISTS p1;
DROP PROCEDURE IF EXISTS p2;
DROP FUNCTION IF EXISTS f1;
DROP TRIGGER IF EXISTS tr1;
enable_warnings;
stop slave sql_thread;
source include/cleanup_fake_relay_log.inc;

View File

@ -161,14 +161,14 @@ connection master;
remove_file $MYSQLTEST_VARDIR/tmp/master.sql;
# this test for position option
# this test for start-position option
# By setting this position to 416, we should only get the create of t3
--disable_query_log
select "--- Test 2 position test --" as "";
--enable_query_log
let $MYSQLD_DATADIR= `select @@datadir;`;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --position=417 --stop-position=570 $MYSQLD_DATADIR/master-bin.000001
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --start-position=417 --stop-position=570 $MYSQLD_DATADIR/master-bin.000001
# These are tests for remote binlog.
# They should return the same as previous test.
@ -266,7 +266,7 @@ let $MYSQLD_DATADIR= `select @@datadir;`;
select "--- Test 7 reading stdin w/position --" as "";
--enable_query_log
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
--exec $MYSQL_BINLOG --short-form --position=417 --stop-position=570 - < $MYSQLD_DATADIR/master-bin.000001
--exec $MYSQL_BINLOG --short-form --start-position=417 --stop-position=570 - < $MYSQLD_DATADIR/master-bin.000001
# Bug#16217 (mysql client did not know how not switch its internal charset)
--disable_query_log

View File

@ -460,7 +460,7 @@ SELECT @@session.lc_time_names;
sq_AL
SET @@session.lc_time_names=sr_YU;
Warnings:
Warning 1287 'sr_YU' is deprecated; use 'sr_RS' instead
Warning 1287 'sr_YU' is deprecated and will be removed in a future release. Please use sr_RS instead
SELECT @@session.lc_time_names;
@@session.lc_time_names
sr_RS
@ -907,7 +907,7 @@ SELECT @@global.lc_time_names;
sq_AL
SET @@global.lc_time_names=sr_YU;
Warnings:
Warning 1287 'sr_YU' is deprecated; use 'sr_RS' instead
Warning 1287 'sr_YU' is deprecated and will be removed in a future release. Please use sr_RS instead
SELECT @@global.lc_time_names;
@@global.lc_time_names
sr_RS

View File

@ -66,7 +66,7 @@ SET GLOBAL max_prepared_stmt_count=3;
** Creating procedure **
DROP PROCEDURE IF EXISTS sp_checkstmts;
Warnings:
Note 1305 PROCEDURE sp_checkstmts does not exist
Note 1305 PROCEDURE test.sp_checkstmts does not exist
CREATE PROCEDURE sp_checkstmts ()
BEGIN
PREPARE newstmt from "SELECT * FROM information_schema.CHARACTER_SETS C";

View File

@ -1,82 +0,0 @@
SET @start_global_value = @@global.sql_log_update;
SELECT @start_global_value;
@start_global_value
1
select @@global.sql_log_update;
@@global.sql_log_update
1
select @@session.sql_log_update;
@@session.sql_log_update
1
show global variables like 'sql_log_update';
Variable_name Value
sql_log_update ON
show session variables like 'sql_log_update';
Variable_name Value
sql_log_update ON
select * from information_schema.global_variables where variable_name='sql_log_update';
VARIABLE_NAME VARIABLE_VALUE
SQL_LOG_UPDATE ON
select * from information_schema.session_variables where variable_name='sql_log_update';
VARIABLE_NAME VARIABLE_VALUE
SQL_LOG_UPDATE ON
set global sql_log_update=1;
Warnings:
Note 1315 The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been ignored. This option will be removed in MySQL 5.6.
set session sql_log_update=ON;
Warnings:
Note 1315 The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been ignored. This option will be removed in MySQL 5.6.
select @@global.sql_log_update;
@@global.sql_log_update
1
select @@session.sql_log_update;
@@session.sql_log_update
1
show global variables like 'sql_log_update';
Variable_name Value
sql_log_update ON
show session variables like 'sql_log_update';
Variable_name Value
sql_log_update ON
select * from information_schema.global_variables where variable_name='sql_log_update';
VARIABLE_NAME VARIABLE_VALUE
SQL_LOG_UPDATE ON
select * from information_schema.session_variables where variable_name='sql_log_update';
VARIABLE_NAME VARIABLE_VALUE
SQL_LOG_UPDATE ON
set global sql_log_update=0;
Warnings:
Note 1315 The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been ignored. This option will be removed in MySQL 5.6.
set session sql_log_update=OFF;
Warnings:
Note 1315 The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been ignored. This option will be removed in MySQL 5.6.
select @@global.sql_log_update;
@@global.sql_log_update
0
select @@session.sql_log_update;
@@session.sql_log_update
0
show global variables like 'sql_log_update';
Variable_name Value
sql_log_update OFF
show session variables like 'sql_log_update';
Variable_name Value
sql_log_update OFF
select * from information_schema.global_variables where variable_name='sql_log_update';
VARIABLE_NAME VARIABLE_VALUE
SQL_LOG_UPDATE OFF
select * from information_schema.session_variables where variable_name='sql_log_update';
VARIABLE_NAME VARIABLE_VALUE
SQL_LOG_UPDATE OFF
set global sql_log_update=1.1;
ERROR 42000: Incorrect argument type to variable 'sql_log_update'
set global sql_log_update=1e1;
ERROR 42000: Incorrect argument type to variable 'sql_log_update'
set global sql_log_update="foo";
ERROR 42000: Variable 'sql_log_update' can't be set to the value of 'foo'
SET @@global.sql_log_update = @start_global_value;
Warnings:
Note 1315 The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been ignored. This option will be removed in MySQL 5.6.
SELECT @@global.sql_log_update;
@@global.sql_log_update
1

View File

@ -1,53 +0,0 @@
#
# 2010-01-20 OBN - Added check of I_S tables after variable value changes.
# - Added value change to ON/OFF to ensure change of current value
#
--source include/have_profiling.inc
SET @start_global_value = @@global.sql_log_update;
SELECT @start_global_value;
#
# exists as global and session
#
select @@global.sql_log_update;
select @@session.sql_log_update;
show global variables like 'sql_log_update';
show session variables like 'sql_log_update';
select * from information_schema.global_variables where variable_name='sql_log_update';
select * from information_schema.session_variables where variable_name='sql_log_update';
#
# show that it's writable
#
set global sql_log_update=1;
set session sql_log_update=ON;
select @@global.sql_log_update;
select @@session.sql_log_update;
show global variables like 'sql_log_update';
show session variables like 'sql_log_update';
select * from information_schema.global_variables where variable_name='sql_log_update';
select * from information_schema.session_variables where variable_name='sql_log_update';
set global sql_log_update=0;
set session sql_log_update=OFF;
select @@global.sql_log_update;
select @@session.sql_log_update;
show global variables like 'sql_log_update';
show session variables like 'sql_log_update';
select * from information_schema.global_variables where variable_name='sql_log_update';
select * from information_schema.session_variables where variable_name='sql_log_update';
#
# incorrect types
#
--error ER_WRONG_TYPE_FOR_VAR
set global sql_log_update=1.1;
--error ER_WRONG_TYPE_FOR_VAR
set global sql_log_update=1e1;
--error ER_WRONG_VALUE_FOR_VAR
set global sql_log_update="foo";
SET @@global.sql_log_update = @start_global_value;
SELECT @@global.sql_log_update;

View File

@ -1 +1 @@
--default-character-set=utf8 --skip-character-set-client-handshake
--character-set-server=utf8 --skip-character-set-client-handshake

View File

@ -1 +1 @@
--default-character-set=latin1 --default-collation=latin1_german2_ci
--character-set-server=latin1 --collation-server=latin1_german2_ci

View File

@ -1 +1 @@
--default-collation=ucs2_unicode_ci --default-character-set=ucs2,latin1
--collation-server=ucs2_unicode_ci --character-set-server=ucs2,latin1

View File

@ -345,10 +345,6 @@ select date_add(date,INTERVAL "1" QUARTER) from t1;
select timestampadd(MINUTE, 1, date) from t1;
select timestampadd(WEEK, 1, date) from t1;
select timestampadd(SQL_TSI_SECOND, 1, date) from t1;
# mysqltest.c discards an expected 'deprecated' warning on prepare stage
--disable_ps_protocol
select timestampadd(SQL_TSI_FRAC_SECOND, 1, date) from t1;
--enable_ps_protocol
select timestampdiff(MONTH, '2001-02-01', '2001-05-01') as a;
select timestampdiff(YEAR, '2002-05-01', '2001-01-01') as a;
@ -360,10 +356,6 @@ select timestampdiff(SQL_TSI_HOUR, '2001-02-01', '2001-05-01') as a;
select timestampdiff(SQL_TSI_DAY, '2001-02-01', '2001-05-01') as a;
select timestampdiff(SQL_TSI_MINUTE, '2001-02-01 12:59:59', '2001-05-01 12:58:59') as a;
select timestampdiff(SQL_TSI_SECOND, '2001-02-01 12:59:59', '2001-05-01 12:58:58') as a;
# mysqltest.c discards an expected 'deprecated' warning on prepare stage
--disable_ps_protocol
select timestampdiff(SQL_TSI_FRAC_SECOND, '2001-02-01 12:59:59.120000', '2001-05-01 12:58:58.119999') as a;
--enable_ps_protocol
select timestampdiff(SQL_TSI_DAY, '1986-02-01', '1986-03-01') as a1,
timestampdiff(SQL_TSI_DAY, '1900-02-01', '1900-03-01') as a2,
@ -602,9 +594,6 @@ select isnull(week(now() + 0)), isnull(week(now() + 0.2)),
--echo End of 4.1 tests
explain extended select timestampdiff(SQL_TSI_WEEK, '2001-02-01', '2001-05-01') as a1,
timestampdiff(SQL_TSI_FRAC_SECOND, '2001-02-01 12:59:59.120000', '2001-05-01 12:58:58.119999') as a2;
#
# Bug #10590: %h, %I, and %l format specifies should all return results in
# the 0-11 range
@ -797,27 +786,11 @@ select DATE_ADD(20071108, INTERVAL 1 DAY);
select LAST_DAY('2007-12-06 08:59:19.05') - INTERVAL 1 SECOND;
#
# Bug#33834: FRAC_SECOND: Applicability not clear in documentation
#
# Show that he use of FRAC_SECOND, for anything other than
# TIMESTAMPADD / TIMESTAMPDIFF, is a server error.
# mysqltest.c discards an expected 'deprecated' warning on prepare stage
--disable_ps_protocol
SELECT TIMESTAMPADD(FRAC_SECOND, 1, '2008-02-18');
SELECT TIMESTAMPDIFF(FRAC_SECOND, '2008-02-17', '2008-02-18');
--enable_ps_protocol
--error ER_PARSE_ERROR
SELECT DATE_ADD('2008-02-18', INTERVAL 1 FRAC_SECOND);
--error ER_PARSE_ERROR
SELECT DATE_SUB('2008-02-18', INTERVAL 1 FRAC_SECOND);
--error ER_PARSE_ERROR
SELECT '2008-02-18' + INTERVAL 1 FRAC_SECOND;
--error ER_PARSE_ERROR
SELECT '2008-02-18' - INTERVAL 1 FRAC_SECOND;
# Test case removed since FRAC_SECOND was deprecated and
# removed as part of WL#5154
#
#
# Bug #36466:

View File

@ -555,3 +555,42 @@ create table t2 (fk int, key x (fk),
constraint x foreign key (FK) references t1 (PK)) engine=InnoDB;
show create table t2;
drop table t2, t1;
--echo #
--echo # Bug#44613 SELECT statement inside FUNCTION takes a shared lock
--echo #
--disable_warnings
DROP TABLE IF EXISTS t1;
DROP FUNCTION IF EXISTS f1;
--enable_warnings
CREATE TABLE t1(x INT PRIMARY KEY, y INT) ENGINE=innodb;
INSERT INTO t1 VALUES (1, 0), (2, 0);
CREATE FUNCTION f1(z INT) RETURNS INT READS SQL DATA
RETURN (SELECT x FROM t1 WHERE x = z);
--echo # Connection default
START TRANSACTION;
SELECT f1(1);
--echo # Connection con2
--disable_query_log
connect (con2, localhost, root);
--enable_query_log
START TRANSACTION;
SELECT f1(1);
# This next statement used to block.
UPDATE t1 SET y = 1 WHERE x = 1;
COMMIT;
disconnect con2;
--source include/wait_until_disconnected.inc
--echo # Connection default
connection default;
COMMIT;
DROP TABLE t1;
DROP FUNCTION f1;

View File

@ -65,13 +65,13 @@ select "--- --database --" as "";
--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --database=nottest $MYSQLD_DATADIR/master-bin.000001 2> /dev/null
# this test for position option
# this test for start-position option
--disable_query_log
select "--- --position --" as "";
select "--- --start-position --" as "";
--enable_query_log
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --position=1074 $MYSQLD_DATADIR/master-bin.000002
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --start-position=1074 $MYSQLD_DATADIR/master-bin.000002
# These are tests for remote binlog.
# They should return the same as previous test.
@ -103,11 +103,11 @@ select "--- --database --" as "";
# Strangely but this works
--disable_query_log
select "--- --position --" as "";
select "--- --start-position --" as "";
--enable_query_log
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --read-from-remote-server --position=1074 --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000002
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --read-from-remote-server --start-position=1074 --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000002
# Bug#7853 mysqlbinlog does not accept input from stdin
@ -120,7 +120,7 @@ select "--- reading stdin --" as "";
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/
--exec $MYSQL_BINLOG --short-form --position=79 - < $MYSQL_TEST_DIR/std_data/trunc_binlog.000001
--exec $MYSQL_BINLOG --short-form --start-position=79 - < $MYSQL_TEST_DIR/std_data/trunc_binlog.000001
drop table t1,t2;
#

View File

@ -17,3 +17,17 @@ enable_query_log;
# As there is no error code defined for 10000, expect error
--error 1
--exec $MY_PERROR 10000 2>&1
#
# Bug#10143 (Perror not showing error description)
#
# test reported case
--exec $MY_PERROR 1062 2>&1
# test errors that contain characters to escape in the text.
--exec $MY_PERROR 1076 2>&1
--exec $MY_PERROR 1459 2>&1
--exec $MY_PERROR 1461 2>&1

View File

@ -1 +1 @@
--log-output=table,file --log-slow-queries --log-long-format --log-queries-not-using-indexes
--log-output=table,file --log-slow-queries --log-queries-not-using-indexes

View File

@ -1 +1 @@
--log-output=table,file --log-slow-queries --log-long-format --log-queries-not-using-indexes --myisam-recover=""
--log-output=table,file --log-slow-queries --log-queries-not-using-indexes --myisam-recover=""

View File

@ -436,6 +436,75 @@ SELECT * FROM t2 WHERE a = sequence();
DROP FUNCTION sequence;
DROP TABLE t1,t2;
#
# Bug#31767 (DROP FUNCTION name resolution)
#
--disable_warnings
drop function if exists test.metaphon;
drop function if exists metaphon;
--enable_warnings
--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
eval CREATE FUNCTION metaphon RETURNS STRING SONAME "$UDF_EXAMPLE_LIB";
select metaphon("Hello");
# The UDF should not be dropped
drop function if exists test.metaphon;
select metaphon("Hello");
drop function metaphon;
CREATE FUNCTION test.metaphon(a TEXT) RETURNS TEXT return "This is a SF";
create database db_31767;
use db_31767;
--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
eval CREATE FUNCTION metaphon RETURNS STRING SONAME "$UDF_EXAMPLE_LIB";
use test;
# Uses the UDF
select metaphon("Hello");
# Uses the SF
select test.metaphon("Hello");
# Should drop the UDF, resolving the name the same way select does.
drop function metaphon;
# Should call the SF
select metaphon("Hello");
# Drop the SF
drop function metaphon;
# Change the current database to none.
use db_31767;
drop database db_31767;
drop function if exists no_such_func;
--error ER_SP_DOES_NOT_EXIST
drop function no_such_func;
drop function if exists test.no_such_func;
--error ER_SP_DOES_NOT_EXIST
drop function test.no_such_func;
--error ER_NO_DB_ERROR
drop procedure if exists no_such_proc;
--error ER_NO_DB_ERROR
drop procedure no_such_proc;
use test;
--echo #
--echo # Bug#46259: 5.0.83 -> 5.1.36, query doesn't work
--echo #

View File

@ -1 +1 @@
--log-slow-queries --log-long-format --log-queries-not-using-indexes
--log-slow-queries --log-queries-not-using-indexes

View File

@ -346,7 +346,6 @@ set sql_big_tables=1;
set sql_buffer_result=1;
set sql_log_bin=1;
set sql_log_off=1;
set sql_log_update=1;
set sql_low_priority_updates=1;
set sql_quote_show_create=1;
set sql_safe_updates=1;

View File

@ -6,6 +6,9 @@ drop database if exists mysqltest;
--enable_warnings
use test;
# Save the initial number of concurrent sessions.
--source include/count_sessions.inc
#
# some basic test of views and its functionality
#
@ -3975,3 +3978,79 @@ CREATE VIEW t2 AS SELECT * FROM t1;
UNLOCK TABLES;
DROP TABLE t1, t2;
--echo #
--echo # Bug#48315 Metadata lock is not taken for merged views that
--echo # use an INFORMATION_SCHEMA table
--echo #
--disable_warnings
DROP TABLE IF EXISTS t1;
DROP VIEW IF EXISTS v1;
DROP PROCEDURE IF EXISTS p1;
--enable_warnings
connect (con2, localhost, root);
connect (con3, localhost, root);
--echo # Connection default
connection default;
CREATE VIEW v1 AS SELECT schema_name FROM information_schema.schemata;
CREATE TABLE t1 (str VARCHAR(50));
CREATE PROCEDURE p1() INSERT INTO t1 SELECT * FROM v1;
--echo # CALL p1() so the view is merged.
CALL p1();
--echo # Connection 3
connection con3;
LOCK TABLE t1 READ;
--echo # Connection default
connection default;
--echo # Try to CALL p1() again, this time it should block for t1.
--echo # Sending:
--send CALL p1()
--echo # Connection 2
connection con2;
let $wait_condition=
SELECT COUNT(*) = 1 from information_schema.processlist
WHERE state = "Table lock" AND info = "INSERT INTO t1 SELECT * FROM v1";
--source include/wait_condition.inc
--echo # ... then try to drop the view. This should block.
--echo # Sending:
--send DROP VIEW v1
--echo # Connection 3
connection con3;
let $wait_condition=
SELECT COUNT(*) = 1 from information_schema.processlist
WHERE state = "Waiting for table" AND info = "DROP VIEW v1";
--source include/wait_condition.inc
--echo # Now allow CALL p1() to complete
UNLOCK TABLES;
--echo # Connection default
connection default;
--echo # Reaping: CALL p1()
--reap
--echo # Connection 2
connection con2;
--echo # Reaping: DROP VIEW v1
--reap
--echo # Connection default
connection default;
DROP PROCEDURE p1;
DROP TABLE t1;
disconnect con2;
disconnect con3;
# Check that all connections opened by test cases in this file are really
# gone so execution of other tests won't be affected by their presence.
--source include/wait_until_count_sessions.inc

View File

@ -42,7 +42,7 @@ IF (WIN32)
SET (MYSYS_SOURCES ${MYSYS_SOURCES} my_winthread.c my_wincond.c my_winerr.c my_winfile.c my_windac.c my_conio.c)
ENDIF()
IF(CMAKE_COMPILER_IS_GNUCC AND NOT HAVE_CXX_NEW)
IF(NOT HAVE_CXX_NEW)
# gcc as C++ compiler does not have new/delete
SET(MYSYS_SOURCES ${MYSYS_SOURCES} my_new.cc)
ADD_DEFINITIONS( -DUSE_MYSYS_NEW)

View File

@ -66,6 +66,7 @@ INSTALL(FILES
${CMAKE_CURRENT_SOURCE_DIR}/mysql_system_tables_data.sql
${CMAKE_CURRENT_SOURCE_DIR}/fill_help_tables.sql
${CMAKE_CURRENT_SOURCE_DIR}/mysql_test_data_timezone.sql
${FIX_PRIVILEGES_SQL}
DESTINATION ${INSTALL_MYSQLSHAREDIR}
)

View File

@ -59,18 +59,6 @@ sub main
push @defaults_options, (shift @ARGV);
}
# Handle deprecated --config-file option: convert to --defaults-extra-file
foreach my $arg (@ARGV)
{
if ($arg =~ m/^--config-file=(.*)/)
{
# Put it at the beginning of the list, so it has lower precedence
# than a correct --defaults-extra-file option
unshift @defaults_options, "--defaults-extra-file=$1";
}
}
foreach (@defaults_options)
{
$_ = quote_shell_word($_);
@ -79,11 +67,6 @@ sub main
# Add [mysqld_multi] options to front of @ARGV, ready for GetOptions()
unshift @ARGV, defaults_for_group('mysqld_multi');
# The --config-file option can be ignored; if passed on the command
# line, it's already handled; if specified in the configuration file,
# it's redundant and not useful
@ARGV= grep { not /^--config-file=/ } @ARGV;
# We've already handled --no-defaults, --defaults-file, etc.
if (!GetOptions("help", "example", "version", "mysqld=s", "mysqladmin=s",
"user=s", "password=s", "log=s", "no-log",
@ -740,8 +723,8 @@ from both [mysqld_multi] and [mysqld#], a group that is tried to be
used, $my_progname will abort with an error.
$my_progname will search for groups named [mysqld#] from my.cnf (or
the given --config-file=...), where '#' can be any positive integer
starting from 1. These groups should be the same as the regular
the given --defaults-extra-file=...), where '#' can be any positive
integer starting from 1. These groups should be the same as the regular
[mysqld] group, but with those port, socket and any other options
that are to be used with each separate mysqld process. The number
in the group name has another function; it can be used for starting,
@ -767,7 +750,6 @@ These options must be given before any others:
standard system-wide and user-specific files
Using: @{[join ' ', @defaults_options]}
--config-file=... Deprecated, please use --defaults-extra-file instead
--example Give an example of a config file with extra information.
--help Print this help and exit.
--log=... Log file. Full path to and the name for the log file. NOTE:

View File

@ -2865,9 +2865,7 @@ bool Item_func_case::fix_fields(THD *thd, Item **ref)
buff should match stack usage from
Item_func_case::val_int() -> Item_func_case::find_item()
*/
#ifndef EMBEDDED_LIBRARY
uchar buff[MAX_FIELD_WIDTH*2+sizeof(String)*2+sizeof(String*)*2+sizeof(double)*2+sizeof(longlong)*2];
#endif
bool res= Item_func::fix_fields(thd, ref);
/*
Call check_stack_overrun after fix_fields to be sure that stack variable
@ -4081,9 +4079,7 @@ Item_cond::fix_fields(THD *thd, Item **ref)
DBUG_ASSERT(fixed == 0);
List_iterator<Item> li(list);
Item *item;
#ifndef EMBEDDED_LIBRARY
uchar buff[sizeof(char*)]; // Max local vars in function
#endif
not_null_tables_cache= used_tables_cache= 0;
const_item_cache= 1;
/*

View File

@ -151,9 +151,7 @@ Item_func::fix_fields(THD *thd, Item **ref)
{
DBUG_ASSERT(fixed == 0);
Item **arg,**arg_end;
#ifndef EMBEDDED_LIBRARY // Avoid compiler warning
uchar buff[STACK_BUFF_ALLOC]; // Max argument in function
#endif
used_tables_cache= not_null_tables_cache= 0;
const_item_cache=1;
@ -2839,9 +2837,7 @@ bool
udf_handler::fix_fields(THD *thd, Item_result_field *func,
uint arg_count, Item **arguments)
{
#ifndef EMBEDDED_LIBRARY // Avoid compiler warning
uchar buff[STACK_BUFF_ALLOC]; // Max argument in function
#endif
DBUG_ENTER("Item_udf_func::fix_fields");
if (check_stack_overrun(thd, STACK_MIN_SIZE, buff))

View File

@ -226,7 +226,6 @@ static SYMBOL symbols[] = {
{ "FORCE", SYM(FORCE_SYM)},
{ "FOREIGN", SYM(FOREIGN)},
{ "FOUND", SYM(FOUND_SYM)},
{ "FRAC_SECOND", SYM(FRAC_SECOND_SYM)},
{ "FROM", SYM(FROM)},
{ "FULL", SYM(FULL)},
{ "FULLTEXT", SYM(FULLTEXT_SYM)},
@ -517,7 +516,6 @@ static SYMBOL symbols[] = {
{ "SQL_NO_CACHE", SYM(SQL_NO_CACHE_SYM)},
{ "SQL_SMALL_RESULT", SYM(SQL_SMALL_RESULT)},
{ "SQL_THREAD", SYM(SQL_THREAD)},
{ "SQL_TSI_FRAC_SECOND", SYM(FRAC_SECOND_SYM)},
{ "SQL_TSI_SECOND", SYM(SECOND_SYM)},
{ "SQL_TSI_MINUTE", SYM(MINUTE_SYM)},
{ "SQL_TSI_HOUR", SYM(HOUR_SYM)},

View File

@ -198,12 +198,12 @@ char* query_table_status(THD *thd,const char *db,const char *table_name);
if (((THD *) Thd) != NULL) \
push_warning_printf(((THD *) Thd), MYSQL_ERROR::WARN_LEVEL_WARN, \
ER_WARN_DEPRECATED_SYNTAX, \
ER(ER_WARN_DEPRECATED_SYNTAX_WITH_VER), \
(Old), #VerHi "." #VerLo, (New)); \
ER(ER_WARN_DEPRECATED_SYNTAX), \
(Old), (New)); \
else \
sql_print_warning("The syntax '%s' is deprecated and will be removed " \
"in MySQL %s. Please use %s instead.", \
(Old), #VerHi "." #VerLo, (New)); \
"in a future release. Please use %s instead.", \
(Old), (New)); \
} while(0)
extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *system_charset_info;
@ -2027,7 +2027,7 @@ extern bool in_bootstrap;
extern uint volatile thread_count, global_read_lock;
extern uint connection_count;
extern my_bool opt_sql_bin_update, opt_safe_user_create, opt_no_mix_types;
extern my_bool opt_safe_show_db, opt_local_infile, opt_myisam_use_mmap;
extern my_bool opt_local_infile, opt_myisam_use_mmap;
extern my_bool opt_slave_compressed_protocol, use_temp_pool;
extern uint slave_exec_mode_options;
extern ulonglong slave_type_conversions_options;
@ -2534,14 +2534,14 @@ inline bool is_user_table(TABLE * table)
#ifndef EMBEDDED_LIBRARY
extern "C" void unireg_abort(int exit_code) __attribute__((noreturn));
void kill_delayed_threads(void);
bool check_stack_overrun(THD *thd, long margin, uchar *dummy);
#else
extern "C" void unireg_clear(int exit_code);
#define unireg_abort(exit_code) do { unireg_clear(exit_code); DBUG_RETURN(exit_code); } while(0)
inline void kill_delayed_threads(void) {}
#define check_stack_overrun(A, B, C) 0
#endif
bool check_stack_overrun(THD *thd, long margin, uchar *dummy);
/* This must match the path length limit in the ER_NOT_RW_DIR error msg. */
#define ER_NOT_RW_DIR_PATHSIZE 200
bool is_usable_directory(THD *thd, const char *varname,
@ -2639,7 +2639,6 @@ enum options_mysqld
OPT_BOOTSTRAP,
OPT_CONSOLE,
OPT_DEBUG_SYNC_TIMEOUT,
OPT_DELAY_KEY_WRITE_ALL,
OPT_ISAM_LOG,
OPT_KEY_BUFFER_SIZE,
OPT_KEY_CACHE_AGE_THRESHOLD,
@ -2658,19 +2657,16 @@ enum options_mysqld
OPT_SAFE,
OPT_SERVER_ID,
OPT_SKIP_HOST_CACHE,
OPT_SKIP_LOCK,
OPT_SKIP_NEW,
OPT_SKIP_PRIOR,
OPT_SKIP_RESOLVE,
OPT_SKIP_STACK_TRACE,
OPT_SKIP_SYMLINKS,
OPT_SLOW_QUERY_LOG,
OPT_SSL_CA,
OPT_SSL_CAPATH,
OPT_SSL_CERT,
OPT_SSL_CIPHER,
OPT_SSL_KEY,
OPT_UPDATE_LOG,
OPT_WANT_CORE,
OPT_ENGINE_CONDITION_PUSHDOWN
};

View File

@ -52,6 +52,10 @@
#include "sp_rcontext.h"
#include "sp_cache.h"
#ifdef HAVE_POLL_H
#include <poll.h>
#endif
#define mysqld_charset &my_charset_latin1
/* stack traces are only supported on linux intel */
@ -4011,21 +4015,13 @@ static int init_server_components()
Implementation of the above :
- If mysqld is started with --log-update and --log-bin,
ignore --log-update (print a warning), push a warning when SQL_LOG_UPDATE
is used, and turn off --sql-bin-update-same.
is used,
This will completely ignore SQL_LOG_UPDATE
- If mysqld is started with --log-update only,
change it to --log-bin (with the filename passed to log-update,
plus '-bin') (print a warning), push a warning when SQL_LOG_UPDATE is
used, and turn on --sql-bin-update-same.
used.
This will translate SQL_LOG_UPDATE to SQL_LOG_BIN.
Note that we tell the user that --sql-bin-update-same is deprecated and
does nothing, and we don't take into account if he used this option or
not; but internally we give this variable a value to have the behaviour
we want (i.e. have SQL_LOG_UPDATE influence SQL_LOG_BIN or not).
As sql-bin-update-same, log-update and log-bin cannot be changed by the
user after starting the server (they are not variables), the user will
not later interfere with the settings we do here.
*/
if (opt_bin_log)
{
@ -5351,26 +5347,47 @@ void handle_connections_sockets()
{
my_socket sock,new_sock;
uint error_count=0;
uint max_used_connection= (uint) (max(ip_sock,unix_sock)+1);
fd_set readFDs,clientFDs;
THD *thd;
struct sockaddr_storage cAddr;
int ip_flags=0,socket_flags=0,flags;
int ip_flags=0,socket_flags=0,flags,retval;
st_vio *vio_tmp;
#ifdef HAVE_POLL
int socket_count= 0;
struct pollfd fds[2]; // for ip_sock and unix_sock
#else
fd_set readFDs,clientFDs;
uint max_used_connection= (uint) (max(ip_sock,unix_sock)+1);
#endif
DBUG_ENTER("handle_connections_sockets");
LINT_INIT(new_sock);
#ifndef HAVE_POLL
FD_ZERO(&clientFDs);
#endif
if (ip_sock != INVALID_SOCKET)
{
#ifdef HAVE_POLL
fds[socket_count].fd= ip_sock;
fds[socket_count].events= POLLIN;
socket_count++;
#else
FD_SET(ip_sock,&clientFDs);
#endif
#ifdef HAVE_FCNTL
ip_flags = fcntl(ip_sock, F_GETFL, 0);
#endif
}
#ifdef HAVE_SYS_UN_H
#ifdef HAVE_POLL
fds[socket_count].fd= unix_sock;
fds[socket_count].events= POLLIN;
socket_count++;
#else
FD_SET(unix_sock,&clientFDs);
#endif
#ifdef HAVE_FCNTL
socket_flags=fcntl(unix_sock, F_GETFL, 0);
#endif
@ -5380,12 +5397,15 @@ void handle_connections_sockets()
MAYBE_BROKEN_SYSCALL;
while (!abort_loop)
{
readFDs=clientFDs;
#ifdef HPUX10
if (select(max_used_connection,(int*) &readFDs,0,0,0) < 0)
continue;
#ifdef HAVE_POLL
retval= poll(fds, socket_count, -1);
#else
if (select((int) max_used_connection,&readFDs,0,0,0) < 0)
readFDs=clientFDs;
retval= select((int) max_used_connection,&readFDs,0,0,0);
#endif
if (retval < 0)
{
if (socket_errno != SOCKET_EINTR)
{
@ -5395,7 +5415,7 @@ void handle_connections_sockets()
MAYBE_BROKEN_SYSCALL
continue;
}
#endif /* HPUX10 */
if (abort_loop)
{
MAYBE_BROKEN_SYSCALL;
@ -5403,6 +5423,21 @@ void handle_connections_sockets()
}
/* Is this a new connection request ? */
#ifdef HAVE_POLL
for (int i= 0; i < socket_count; ++i)
{
if (fds[i].revents & POLLIN)
{
sock= fds[i].fd;
#ifdef HAVE_FCNTL
flags= fcntl(sock, F_GETFL, 0);
#else
flags= 0;
#endif // HAVE_FCNTL
break;
}
}
#else // HAVE_POLL
#ifdef HAVE_SYS_UN_H
if (FD_ISSET(unix_sock,&readFDs))
{
@ -5410,11 +5445,12 @@ void handle_connections_sockets()
flags= socket_flags;
}
else
#endif
#endif // HAVE_SYS_UN_H
{
sock = ip_sock;
flags= ip_flags;
}
#endif // HAVE_POLL
#if !defined(NO_FCNTL_NONBLOCK)
if (!(test_flags & TEST_BLOCKING))
@ -5978,12 +6014,6 @@ struct my_option my_long_options[]=
0, 0, 0},
{"core-file", OPT_WANT_CORE, "Write core on errors.", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0},
{"default-character-set", 'C', "Set the default character set (deprecated option, use --character-set-server instead).",
(uchar**) &default_character_set_name, (uchar**) &default_character_set_name,
0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },
{"default-collation", 0, "Set the default collation (deprecated option, use --collation-server instead).",
(uchar**) &default_collation_name, (uchar**) &default_collation_name,
0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },
/* default-storage-engine should have "MyISAM" as def_value. Instead
of initializing it here it is done in init_common_variables() due
to a compiler bug in Sun Studio compiler. */
@ -5993,9 +6023,6 @@ struct my_option my_long_options[]=
{"default-time-zone", 0, "Set the default time zone.",
(uchar**) &default_tz_name, (uchar**) &default_tz_name,
0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },
{"delay-key-write-for-all-tables", OPT_DELAY_KEY_WRITE_ALL,
"Don't flush key buffers between writes for any MyISAM table (Deprecated option, use --delay-key-write=all instead).",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
#ifdef HAVE_OPENSSL
{"des-key-file", 0,
"Load keys for des_encrypt() and des_encrypt from given file.",
@ -6009,10 +6036,6 @@ struct my_option my_long_options[]=
(uchar**) &disconnect_slave_event_count, 0, GET_INT, REQUIRED_ARG, 0, 0, 0,
0, 0, 0},
#endif /* HAVE_REPLICATION */
{"enable-locking", 0,
"Deprecated option, use --external-locking instead.",
(uchar**) &opt_external_locking, (uchar**) &opt_external_locking,
0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
#ifdef HAVE_STACK_TRACE_ON_SEGV
{"enable-pstack", 0, "Print a symbolic stack trace on failure.",
(uchar**) &opt_do_pstack, (uchar**) &opt_do_pstack, 0, GET_BOOL, NO_ARG, 0, 0,
@ -6065,9 +6088,6 @@ struct my_option my_long_options[]=
{"log-isam", OPT_ISAM_LOG, "Log all MyISAM changes to file.",
(uchar**) &myisam_log_filename, (uchar**) &myisam_log_filename, 0, GET_STR,
OPT_ARG, 0, 0, 0, 0, 0, 0},
{"log-long-format", '0',
"Log some extra information to update log. Please note that this option is deprecated; see --log-short-format option.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"log-short-format", 0,
"Don't log extra information to update and slow-query logs.",
(uchar**) &opt_short_log_format, (uchar**) &opt_short_log_format,
@ -6100,11 +6120,6 @@ struct my_option my_long_options[]=
REQUIRED_ARG, TC_LOG_MIN_SIZE, TC_LOG_MIN_SIZE, ULONG_MAX, 0,
TC_LOG_PAGE_SIZE, 0},
#endif
{"log-update", OPT_UPDATE_LOG,
"The update log is deprecated since version 5.0, is replaced by the binary \
log and this option justs turns on --log-bin instead.",
(uchar**) &opt_update_logname, (uchar**) &opt_update_logname, 0, GET_STR,
OPT_ARG, 0, 0, 0, 0, 0, 0},
{"master-info-file", 0,
"The location and name of the file that remembers the master and where the I/O replication \
thread is in the master's binlogs.",
@ -6168,11 +6183,6 @@ Can't be set to 1 if --log-slave-updates is used.",
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"safe-mode", OPT_SAFE, "Skip some optimize stages (for testing).",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
#ifndef TO_BE_DELETED
{"safe-show-database", 0,
"Deprecated option; use GRANT SHOW DATABASES instead...",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
#endif
{"safe-user-create", 0,
"Don't allow new user creation by the user who has no write privileges to the mysql.user table.",
(uchar**) &opt_safe_user_create, (uchar**) &opt_safe_user_create, 0, GET_BOOL,
@ -6185,9 +6195,6 @@ Can't be set to 1 if --log-slave-updates is used.",
(uchar**)&sf_malloc_mem_limit, (uchar**)&sf_malloc_mem_limit, 0, GET_UINT,
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
#endif
{"set-variable", 'O',
"Change the value of a variable. Please note that this option is deprecated;you can set variables directly with --variable-name=value.",
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"show-slave-auth-info", 0,
"Show user and password in SHOW SLAVE HOSTS on this master",
(uchar**) &opt_show_slave_auth_info, (uchar**) &opt_show_slave_auth_info, 0,
@ -6200,9 +6207,6 @@ Can't be set to 1 if --log-slave-updates is used.",
#endif
{"skip-host-cache", OPT_SKIP_HOST_CACHE, "Don't cache host names.", 0, 0, 0,
GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"skip-locking", OPT_SKIP_LOCK,
"Deprecated option, use --skip-external-locking instead.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"skip-name-resolve", OPT_SKIP_RESOLVE,
"Don't resolve hostnames. All hostnames are IP's or 'localhost'.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
@ -6214,8 +6218,6 @@ Can't be set to 1 if --log-slave-updates is used.",
{"skip-stack-trace", OPT_SKIP_STACK_TRACE,
"Don't print a stack trace on failure.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0,
0, 0, 0, 0},
{"skip-symlink", OPT_SKIP_SYMLINKS, "Don't allow symlinking of tables. Deprecated option. Use --skip-symbolic-links instead.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"skip-thread-priority", OPT_SKIP_PRIOR,
"Don't give threads different priorities. This option is deprecated "
"because it has no effect; the implied behavior is already the default.",
@ -6227,10 +6229,6 @@ Can't be set to 1 if --log-slave-updates is used.",
(uchar**) &opt_sporadic_binlog_dump_fail, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0,
0},
#endif /* HAVE_REPLICATION */
{"sql-bin-update-same", 0,
"The update log is deprecated since version 5.0, is replaced by the "
"binary log and this option does nothing anymore.",
0, 0, 0, GET_DISABLED, NO_ARG, 0, 0, 0, 0, 0, 0},
#ifdef HAVE_OPENSSL
{"ssl", 0,
"Enable SSL for connection (automatically enabled with other flags).",
@ -6289,20 +6287,12 @@ Can't be set to 1 if --log-slave-updates is used.",
0, 0},
{"version", 'V', "Output version information and exit.", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0},
{"warnings", 'W', "Deprecated; use --log-warnings instead.",
(uchar**) &global_system_variables.log_warnings,
(uchar**) &max_system_variables.log_warnings, 0, GET_ULONG, OPT_ARG,
1, 0, ULONG_MAX, 0, 0, 0},
{"plugin-load", 0,
"Optional semicolon-separated list of plugins to load, where each plugin is "
"identified as name=library, where name is the plugin name and library "
"is the plugin library in plugin_dir.",
(uchar**) &opt_plugin_load, (uchar**) &opt_plugin_load, 0,
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"record_buffer", 0, "Deprecated; use --read-buffer-size instead.",
(uchar**) &global_system_variables.read_buff_size,
(uchar**) &max_system_variables.read_buff_size,0, GET_ULONG, REQUIRED_ARG,
128*1024L, IO_SIZE*2, INT_MAX32, 0, IO_SIZE, 0},
{"table_cache", 0, "Deprecated; use --table-open-cache instead.",
(uchar**) &table_cache_size, (uchar**) &table_cache_size, 0, GET_ULONG,
REQUIRED_ARG, TABLE_OPEN_CACHE_DEFAULT, 1, 512*1024L, 0, 1, 0},
@ -7216,9 +7206,6 @@ mysqld_get_one_option(int optid,
case (int) OPT_ISAM_LOG:
opt_myisam_log=1;
break;
case (int) OPT_UPDATE_LOG:
opt_update_log=1;
break;
case (int) OPT_BIN_LOG:
opt_bin_log= test(argument != disabled_my_option);
break;
@ -7339,9 +7326,6 @@ mysqld_get_one_option(int optid,
"and will be removed in MySQL 7.0. This option has no effect "
"as the implied behavior is already the default.");
break;
case (int) OPT_SKIP_LOCK:
opt_external_locking=0;
break;
case (int) OPT_SKIP_HOST_CACHE:
opt_specialflag|= SPECIAL_NO_HOST_CACHE;
break;
@ -7354,9 +7338,6 @@ mysqld_get_one_option(int optid,
case (int) OPT_SKIP_STACK_TRACE:
test_flags|=TEST_NO_STACKTRACE;
break;
case (int) OPT_SKIP_SYMLINKS:
my_use_symdir=0;
break;
case (int) OPT_BIND_ADDRESS:
{
struct addrinfo *res_lst, hints;
@ -7389,12 +7370,6 @@ mysqld_get_one_option(int optid,
case OPT_SERVER_ID:
server_id_supplied = 1;
break;
case OPT_DELAY_KEY_WRITE_ALL:
if (argument != disabled_my_option)
delay_key_write_options= DELAY_KEY_WRITE_ALL;
else
delay_key_write_options= DELAY_KEY_WRITE_NONE;
break;
case OPT_ONE_THREAD:
thread_handling= SCHEDULER_ONE_THREAD_PER_CONNECTION;
break;

View File

@ -2266,9 +2266,7 @@ int SQL_SELECT::test_quick_select(THD *thd, key_map keys_to_use,
keys_to_use.intersect(head->keys_in_use_for_query);
if (!keys_to_use.is_clear_all())
{
#ifndef EMBEDDED_LIBRARY // Avoid compiler warning
uchar buff[STACK_BUFF_ALLOC];
#endif
MEM_ROOT alloc;
SEL_TREE *tree= NULL;
KEY_PART *key_parts;

View File

@ -5018,10 +5018,8 @@ ER_UNKNOWN_STORAGE_ENGINE 42000
ger "Unbekannte Speicher-Engine '%s'"
por "Motor de tabela desconhecido '%s'"
spa "Desconocido motor de tabla '%s'"
# When using this error code, use ER(ER_WARN_DEPRECATED_SYNTAX_WITH_VER)
# for the message string. See, for example, code in mysql_priv.h.
ER_WARN_DEPRECATED_SYNTAX
eng "'%s' is deprecated; use '%s' instead"
eng "'%s' is deprecated and will be removed in a future release. Please use %s instead"
ger "'%s' ist veraltet. Bitte benutzen Sie '%s'"
por "'%s' é desatualizado. Use '%s' em seu lugar"
spa "'%s' está desaprobado, use '%s' en su lugar"

View File

@ -1602,7 +1602,7 @@ static void write_ignored_events_info_to_relay_log(THD *thd, Master_info *mi)
" to the relay log, SHOW SLAVE STATUS may be"
" inaccurate");
rli->relay_log.harvest_bytes_written(&rli->log_space_total);
if (flush_master_info(mi, TRUE, FALSE))
if (flush_master_info(mi, TRUE, TRUE))
sql_print_error("Failed to flush master info file");
delete ev;
}

View File

@ -1612,9 +1612,8 @@ int Gis_multi_polygon::area(double *ar, const char **end_of_data) const
int Gis_multi_polygon::centroid(String *result) const
{
uint32 n_polygons;
bool first_loop= 1;
Gis_polygon p;
double UNINIT_VAR(res_area), UNINIT_VAR(res_cx), UNINIT_VAR(res_cy);
double res_area= 0.0, res_cx= 0.0, res_cy= 0.0;
double cur_area, cur_cx, cur_cy;
const char *data= m_data;
@ -1631,21 +1630,14 @@ int Gis_multi_polygon::centroid(String *result) const
p.centroid_xy(&cur_cx, &cur_cy))
return 1;
if (!first_loop)
{
double sum_area= res_area + cur_area;
res_cx= (res_area * res_cx + cur_area * cur_cx) / sum_area;
res_cy= (res_area * res_cy + cur_area * cur_cy) / sum_area;
}
else
{
first_loop= 0;
res_area= cur_area;
res_cx= cur_cx;
res_cy= cur_cy;
}
res_area+= cur_area;
res_cx+= cur_area * cur_cx;
res_cy+= cur_area * cur_cy;
}
res_cx/= res_area;
res_cy/= res_area;
return create_point(result, res_cx, res_cy);
}

View File

@ -4168,8 +4168,17 @@ open_and_process_table(THD *thd, LEX *lex, TABLE_LIST *tables,
TABLE_LIST is processed. This code works only during re-execution.
*/
if (tables->view)
{
/*
We still need to take a MDL lock on the merged view to protect
it from concurrent changes.
*/
if (!open_table_get_mdl_lock(thd, tables, &tables->mdl_request,
ot_ctx, flags))
goto process_view_routines;
if (!mysql_schema_table(thd, lex, tables) &&
/* Fall-through to return error. */
}
else if (!mysql_schema_table(thd, lex, tables) &&
!check_and_update_table_version(thd, tables, tables->table->s))
{
goto end;

View File

@ -4132,6 +4132,47 @@ create_sp_error:
case SQLCOM_DROP_PROCEDURE:
case SQLCOM_DROP_FUNCTION:
{
#ifdef HAVE_DLOPEN
if (lex->sql_command == SQLCOM_DROP_FUNCTION &&
! lex->spname->m_explicit_name)
{
/* DROP FUNCTION <non qualified name> */
udf_func *udf = find_udf(lex->spname->m_name.str,
lex->spname->m_name.length);
if (udf)
{
if (check_access(thd, DELETE_ACL, "mysql", NULL, NULL, 1, 0))
goto error;
if (!(res = mysql_drop_function(thd, &lex->spname->m_name)))
{
my_ok(thd);
break;
}
my_error(ER_SP_DROP_FAILED, MYF(0),
"FUNCTION (UDF)", lex->spname->m_name.str);
goto error;
}
if (lex->spname->m_db.str == NULL)
{
if (lex->drop_if_exists)
{
push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_NOTE,
ER_SP_DOES_NOT_EXIST, ER(ER_SP_DOES_NOT_EXIST),
"FUNCTION (UDF)", lex->spname->m_name.str);
res= FALSE;
my_ok(thd);
break;
}
my_error(ER_SP_DOES_NOT_EXIST, MYF(0),
"FUNCTION (UDF)", lex->spname->m_name.str);
goto error;
}
/* Fall thought to test for a stored function */
}
#endif
int sp_result;
int type= (lex->sql_command == SQLCOM_DROP_PROCEDURE ?
TYPE_ENUM_PROCEDURE : TYPE_ENUM_FUNCTION);
@ -4178,34 +4219,6 @@ create_sp_error:
}
#endif
}
else
{
#ifdef HAVE_DLOPEN
if (lex->sql_command == SQLCOM_DROP_FUNCTION)
{
udf_func *udf = find_udf(lex->spname->m_name.str,
lex->spname->m_name.length);
if (udf)
{
if (check_access(thd, DELETE_ACL, "mysql", NULL, NULL, 1, 0))
goto error;
if (!(res = mysql_drop_function(thd, &lex->spname->m_name)))
{
my_ok(thd);
break;
}
}
}
#endif
if (lex->spname->m_db.str)
sp_result= SP_KEY_NOT_FOUND;
else
{
my_message(ER_NO_DB_ERROR, ER(ER_NO_DB_ERROR), MYF(0));
goto error;
}
}
res= sp_result;
switch (sp_result) {
case SP_OK:
@ -4217,7 +4230,7 @@ create_sp_error:
res= write_bin_log(thd, TRUE, thd->query(), thd->query_length());
push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_NOTE,
ER_SP_DOES_NOT_EXIST, ER(ER_SP_DOES_NOT_EXIST),
SP_COM_STRING(lex), lex->spname->m_name.str);
SP_COM_STRING(lex), lex->spname->m_qname.str);
if (!res)
my_ok(thd);
break;
@ -5171,7 +5184,6 @@ bool check_global_access(THD *thd, ulong want_access)
Check stack size; Send error if there isn't enough stack to continue
****************************************************************************/
#ifndef EMBEDDED_LIBRARY
#if STACK_DIRECTION < 0
#define used_stack(A,B) (long) (A - B)
@ -5209,7 +5221,7 @@ bool check_stack_overrun(THD *thd, long margin,
#endif
return 0;
}
#endif /* EMBEDDED_LIBRARY */
#define MY_YACC_INIT 1000 // Start with big alloc
#define MY_YACC_MAX 32000 // Because of 'short'

View File

@ -2516,9 +2516,7 @@ static ha_rows get_quick_record_count(THD *thd, SQL_SELECT *select,
{
int error;
DBUG_ENTER("get_quick_record_count");
#ifndef EMBEDDED_LIBRARY // Avoid compiler warning
uchar buff[STACK_BUFF_ALLOC];
#endif
if (check_stack_overrun(thd, STACK_MIN_SIZE, buff))
DBUG_RETURN(0); // Fatal error flag is set
if (select)

View File

@ -968,7 +968,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
%token FOREIGN /* SQL-2003-R */
%token FOR_SYM /* SQL-2003-R */
%token FOUND_SYM /* SQL-2003-R */
%token FRAC_SECOND_SYM
%token FROM
%token FULL /* SQL-2003-R */
%token FULLTEXT_SYM
@ -1494,8 +1493,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
%type <date_time_type> date_time_type;
%type <interval> interval
%type <interval_time_st> interval_time_st
%type <interval_time_st> interval_time_stamp
%type <db_type> storage_engines known_storage_engines
@ -9535,7 +9532,7 @@ using_list:
;
interval:
interval_time_st {}
interval_time_stamp {}
| DAY_HOUR_SYM { $$=INTERVAL_DAY_HOUR; }
| DAY_MICROSECOND_SYM { $$=INTERVAL_DAY_MICROSECOND; }
| DAY_MINUTE_SYM { $$=INTERVAL_DAY_MINUTE; }
@ -9550,27 +9547,6 @@ interval:
;
interval_time_stamp:
interval_time_st {}
| FRAC_SECOND_SYM
{
$$=INTERVAL_MICROSECOND;
/*
FRAC_SECOND was mistakenly implemented with
a wrong resolution. According to the ODBC
standard it should be nanoseconds, not
microseconds. Changing it to nanoseconds
in MySQL would mean making TIMESTAMPDIFF
and TIMESTAMPADD to return DECIMAL, since
the return value would be too big for BIGINT
Hence we just deprecate the incorrect
implementation without changing its
resolution.
*/
WARN_DEPRECATED(yythd, 6, 2, "FRAC_SECOND", "MICROSECOND");
}
;
interval_time_st:
DAY_SYM { $$=INTERVAL_DAY; }
| WEEK_SYM { $$=INTERVAL_WEEK; }
| HOUR_SYM { $$=INTERVAL_HOUR; }
@ -12307,7 +12283,6 @@ keyword_sp:
| FILE_SYM {}
| FIRST_SYM {}
| FIXED_SYM {}
| FRAC_SECOND_SYM {}
| GEOMETRY_SYM {}
| GEOMETRYCOLLECTION {}
| GET_FORMAT {}

View File

@ -2205,30 +2205,6 @@ static Sys_var_bit Sys_log_binlog(
DEFAULT(TRUE), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(check_has_super),
ON_UPDATE(fix_sql_log_bin));
static bool deprecated_log_update(sys_var *self, THD *thd, set_var *var)
{
/*
The update log is not supported anymore since 5.0.
See sql/mysqld.cc/, comments in function init_server_components() for an
explaination of the different warnings we send below
*/
if (opt_sql_bin_update)
push_warning(thd, MYSQL_ERROR::WARN_LEVEL_NOTE,
ER_UPDATE_LOG_DEPRECATED_TRANSLATED,
ER(ER_UPDATE_LOG_DEPRECATED_TRANSLATED));
else
push_warning(thd, MYSQL_ERROR::WARN_LEVEL_NOTE,
ER_UPDATE_LOG_DEPRECATED_IGNORED,
ER(ER_UPDATE_LOG_DEPRECATED_IGNORED));
return check_has_super(self, thd, var);
}
static Sys_var_bit Sys_log_update(
"sql_log_update", "alias for sql_log_bin",
SESSION_VAR(option_bits), NO_CMD_LINE, OPTION_BIN_LOG,
DEFAULT(TRUE), NO_MUTEX_GUARD, NOT_IN_BINLOG,
ON_CHECK(deprecated_log_update), ON_UPDATE(fix_sql_log_bin));
static Sys_var_bit Sys_sql_warnings(
"sql_warnings", "sql_warnings",
SESSION_VAR(option_bits), NO_CMD_LINE, OPTION_WARNINGS,

View File

@ -78,8 +78,8 @@ IF(NOT CMAKE_CROSSCOMPILING)
)
ENDIF()
IF(HAVE_IBGCC_ATOMIC_BUILTINS)
ADD_DEFINITIONS(-DHAVE_IBGCCC_ATOMIC_BUILTINS=1)
IF(HAVE_IB_GCC_ATOMIC_BUILTINS)
ADD_DEFINITIONS(-DHAVE_IB_GCC_ATOMIC_BUILTINS=1)
ENDIF()
# either define HAVE_IB_ATOMIC_PTHREAD_T_GCC or not