mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 02:05:57 +01:00
Merge branch '10.1' into 10.2
This commit is contained in:
commit
e0a1c745ec
186 changed files with 3332 additions and 1603 deletions
|
@ -1065,8 +1065,7 @@ static void fix_history(String *final_command);
|
|||
|
||||
static COMMANDS *find_command(char *name);
|
||||
static COMMANDS *find_command(char cmd_name);
|
||||
static bool add_line(String &buffer, char *line, ulong line_length,
|
||||
char *in_string, bool *ml_comment, bool truncated);
|
||||
static bool add_line(String &, char *, ulong, char *, bool *, bool);
|
||||
static void remove_cntrl(String &buffer);
|
||||
static void print_table_data(MYSQL_RES *result);
|
||||
static void print_table_data_html(MYSQL_RES *result);
|
||||
|
@ -1078,7 +1077,7 @@ static ulong start_timer(void);
|
|||
static void end_timer(ulong start_time,char *buff);
|
||||
static void mysql_end_timer(ulong start_time,char *buff);
|
||||
static void nice_time(double sec,char *buff,bool part_second);
|
||||
extern "C" sig_handler mysql_end(int sig);
|
||||
extern "C" sig_handler mysql_end(int sig) __attribute__ ((noreturn));
|
||||
extern "C" sig_handler handle_sigint(int sig);
|
||||
#if defined(HAVE_TERMIOS_H) && defined(GWINSZ_IN_SYS_IOCTL)
|
||||
static sig_handler window_resize(int sig);
|
||||
|
|
|
@ -165,9 +165,14 @@ SETA(CPACK_RPM_server_PACKAGE_REQUIRES
|
|||
"MariaDB-client")
|
||||
|
||||
IF(WITH_WSREP)
|
||||
SETA(CPACK_RPM_server_PACKAGE_REQUIRES
|
||||
"galera" "rsync" "lsof" "grep" "gawk" "iproute"
|
||||
"coreutils" "findutils" "tar" "which")
|
||||
SETA(CPACK_RPM_server_PACKAGE_REQUIRES
|
||||
"galera" "rsync" "lsof" "grep" "gawk" "iproute"
|
||||
"coreutils" "findutils" "tar")
|
||||
IF (RPM MATCHES "sles11")
|
||||
SETA(CPACK_RPM_server_PACKAGE_REQUIRES "util-linux")
|
||||
ELSE()
|
||||
SETA(CPACK_RPM_server_PACKAGE_REQUIRES "which")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
SET(CPACK_RPM_server_PRE_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-prein.sh)
|
||||
|
|
|
@ -20,6 +20,11 @@ IF(have_C__Wvla)
|
|||
SET(MY_WARNING_FLAGS "${MY_WARNING_FLAGS} -Wvla")
|
||||
ENDIF()
|
||||
|
||||
MY_CHECK_C_COMPILER_FLAG("-Wno-format-truncation")
|
||||
IF(HAVE_C__Wno_format_truncation)
|
||||
SET(MY_WARNING_FLAGS "${MY_WARNING_FLAGS} -Wno-format-truncation")
|
||||
ENDIF()
|
||||
|
||||
# Common warning flags for GCC and Clang
|
||||
SET(MY_C_WARNING_FLAGS
|
||||
"${MY_WARNING_FLAGS} -Wwrite-strings -Wdeclaration-after-statement")
|
||||
|
|
|
@ -1,11 +1,23 @@
|
|||
INCLUDE (CheckCSourceRuns)
|
||||
|
||||
SET(WITH_PCRE "auto" CACHE STRING
|
||||
"Which pcre to use (possible values are 'bundled', 'system', or 'auto')")
|
||||
|
||||
MACRO (CHECK_PCRE)
|
||||
IF(WITH_PCRE STREQUAL "system" OR WITH_PCRE STREQUAL "auto")
|
||||
CHECK_LIBRARY_EXISTS(pcre pcre_stack_guard "" HAVE_PCRE)
|
||||
CHECK_LIBRARY_EXISTS(pcre pcre_stack_guard "" HAVE_PCRE_STACK_GUARD)
|
||||
IF(NOT CMAKE_CROSSCOMPILING)
|
||||
SET(CMAKE_REQUIRED_LIBRARIES "pcre")
|
||||
CHECK_C_SOURCE_RUNS("
|
||||
#include <pcre.h>
|
||||
int main() {
|
||||
return -pcre_exec(NULL, NULL, NULL, -999, -999, 0, NULL, 0) < 256;
|
||||
}" PCRE_STACK_SIZE_OK)
|
||||
SET(CMAKE_REQUIRED_LIBRARIES)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF(NOT HAVE_PCRE OR WITH_PCRE STREQUAL "bundled")
|
||||
IF(NOT HAVE_PCRE_STACK_GUARD OR NOT PCRE_STACK_SIZE_OK OR
|
||||
WITH_PCRE STREQUAL "bundled")
|
||||
IF (WITH_PCRE STREQUAL "system")
|
||||
MESSAGE(FATAL_ERROR "system pcre is not found or unusable")
|
||||
ENDIF()
|
||||
|
|
|
@ -4512,7 +4512,7 @@ xb_process_datadir(
|
|||
handle_datadir_entry_func_t func) /*!<in: callback */
|
||||
{
|
||||
ulint ret;
|
||||
char dbpath[FN_REFLEN];
|
||||
char dbpath[OS_FILE_MAX_PATH];
|
||||
os_file_dir_t dir;
|
||||
os_file_dir_t dbdir;
|
||||
os_file_stat_t dbinfo;
|
||||
|
@ -4578,8 +4578,8 @@ next_file_item_1:
|
|||
goto next_datadir_item;
|
||||
}
|
||||
|
||||
sprintf(dbpath, "%s/%s", path,
|
||||
dbinfo.name);
|
||||
snprintf(dbpath, sizeof(dbpath), "%s/%s", path, dbinfo.name);
|
||||
|
||||
os_normalize_path(dbpath);
|
||||
|
||||
dbdir = os_file_opendir(dbpath, FALSE);
|
||||
|
@ -5531,4 +5531,3 @@ static int get_exepath(char *buf, size_t size, const char *argv0)
|
|||
|
||||
return my_realpath(buf, argv0, 0);
|
||||
}
|
||||
|
||||
|
|
|
@ -98,18 +98,23 @@ static struct my_option my_long_options[] =
|
|||
{0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
|
||||
};
|
||||
|
||||
void cleanup_and_exit(int exit_code)
|
||||
static void cleanup_and_exit(int exit_code) __attribute__ ((noreturn));
|
||||
static void cleanup_and_exit(int exit_code)
|
||||
{
|
||||
my_end(0);
|
||||
exit(exit_code);
|
||||
}
|
||||
|
||||
static void usage(my_bool version)
|
||||
static void version()
|
||||
{
|
||||
printf("%s Ver 1.6 for %s at %s\n",my_progname,SYSTEM_TYPE,
|
||||
MACHINE_TYPE);
|
||||
if (version)
|
||||
return;
|
||||
printf("%s Ver 1.6 for %s at %s\n",my_progname,SYSTEM_TYPE, MACHINE_TYPE);
|
||||
}
|
||||
|
||||
|
||||
static void usage() __attribute__ ((noreturn));
|
||||
static void usage()
|
||||
{
|
||||
version();
|
||||
puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,\nand you are welcome to modify and redistribute it under the GPL license\n");
|
||||
puts("Prints all arguments that is give to some program using the default files");
|
||||
printf("Usage: %s [OPTIONS] [groups]\n", my_progname);
|
||||
|
@ -133,12 +138,13 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
|||
cleanup_and_exit(0);
|
||||
case 'I':
|
||||
case '?':
|
||||
usage(0);
|
||||
usage();
|
||||
case 'v':
|
||||
verbose++;
|
||||
break;
|
||||
case 'V':
|
||||
usage(1);
|
||||
version();
|
||||
/* fall through */
|
||||
case '#':
|
||||
DBUG_PUSH(argument ? argument : default_dbug_option);
|
||||
break;
|
||||
|
@ -186,7 +192,7 @@ int main(int argc, char **argv)
|
|||
nargs+= array_elements(mysqld_groups);
|
||||
|
||||
if (nargs < 2)
|
||||
usage(0);
|
||||
usage();
|
||||
|
||||
load_default_groups=(char**) my_malloc(nargs*sizeof(char*), MYF(MY_WME));
|
||||
if (!load_default_groups)
|
||||
|
|
|
@ -174,7 +174,7 @@ register char **argv[];
|
|||
break;
|
||||
case 'V':
|
||||
version=1;
|
||||
/* fall through */
|
||||
/* fall through */
|
||||
case 'I':
|
||||
case '?':
|
||||
help=1; /* Help text written */
|
||||
|
|
|
@ -12,6 +12,14 @@ before calling SSL_new();
|
|||
|
||||
*** end Note ***
|
||||
|
||||
yaSSL Release notes, version 2.4.4 (8/8/2017)
|
||||
This release of yaSSL fixes an interop issue. A fix for detecting cipher
|
||||
suites with non leading zeros is included as yaSSL only supports cipher
|
||||
suites with leading zeros. Thanks for the report from Security Innovation
|
||||
and Oracle.
|
||||
|
||||
Users interoping with other SSL stacks should update.
|
||||
|
||||
yaSSL Release notes, version 2.4.2 (9/22/2016)
|
||||
This release of yaSSL fixes a medium security vulnerability. A fix for
|
||||
potential AES side channel leaks is included that a local user monitoring
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
/*
|
||||
Copyright (c) 2005, 2014, Oracle and/or its affiliates.
|
||||
Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
Use is subject to license terms.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -34,7 +35,7 @@
|
|||
#include "rsa.h"
|
||||
|
||||
|
||||
#define YASSL_VERSION "2.4.2"
|
||||
#define YASSL_VERSION "2.4.4"
|
||||
|
||||
|
||||
#if defined(__cplusplus)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright (c) 2005, 2014, Oracle and/or its affiliates
|
||||
Copyright (c) 2005, 2017, Oracle and/or its affiliates.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -1578,6 +1578,10 @@ void ServerHello::Process(input_buffer& input, SSL& ssl)
|
|||
ssl.SetError(badVersion_error);
|
||||
return;
|
||||
}
|
||||
if (cipher_suite_[0] != 0x00) {
|
||||
ssl.SetError(unknown_cipher);
|
||||
return;
|
||||
}
|
||||
ssl.set_pending(cipher_suite_[1]);
|
||||
ssl.set_random(random_, server_end);
|
||||
if (id_len_)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright (c) 2005, 2014, Oracle and/or its affiliates
|
||||
Copyright (c) 2005, 2017, Oracle and/or its affiliates.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -1399,12 +1399,17 @@ void SSL::matchSuite(const opaque* peer, uint length)
|
|||
// start with best, if a match we are good, Ciphers are at odd index
|
||||
// since all SSL and TLS ciphers have 0x00 first byte
|
||||
for (uint i = 1; i < secure_.get_parms().suites_size_; i += 2)
|
||||
for (uint j = 1; j < length; j+= 2)
|
||||
if (secure_.use_parms().suites_[i] == peer[j]) {
|
||||
for (uint j = 0; (j + 1) < length; j+= 2) {
|
||||
if (peer[j] != 0x00) {
|
||||
continue; // only 0x00 first byte supported
|
||||
}
|
||||
|
||||
if (secure_.use_parms().suites_[i] == peer[j + 1]) {
|
||||
secure_.use_parms().suite_[0] = 0x00;
|
||||
secure_.use_parms().suite_[1] = peer[j];
|
||||
secure_.use_parms().suite_[1] = peer[j + 1];
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
SetError(match_error);
|
||||
}
|
||||
|
@ -2702,4 +2707,3 @@ extern "C" void yaSSL_CleanUp()
|
|||
yaSSL::sessionsInstance = 0;
|
||||
yaSSL::errorsInstance = 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,74 +1,93 @@
|
|||
This directory contains a test suite for the MySQL daemon. To run
|
||||
the currently existing test cases, simply execute ./mysql-test-run in
|
||||
this directory. It will fire up the newly built mysqld and test it.
|
||||
This directory contains test suites for the MariaDB server. To run
|
||||
currently existing test cases, execute ./mysql-test-run in this directory.
|
||||
|
||||
Note that you do not have to have to do "make install", and you could
|
||||
actually have a co-existing MySQL installation. The tests will not
|
||||
conflict with it. To run the test suite in a source directory, you
|
||||
must do make first.
|
||||
Some tests are known to fail on some platforms or be otherwise unreliable.
|
||||
The file "unstable-tests" contains the list of such tests along with
|
||||
a comment for every test.
|
||||
To exclude them from the test run, execute
|
||||
# ./mysql-test-run --skip-test-list=unstable-tests
|
||||
|
||||
All tests must pass. If one or more of them fail on your system, please
|
||||
read the following manual section for instructions on how to report the
|
||||
problem:
|
||||
In general you do not have to have to do "make install", and you can have
|
||||
a co-existing MariaDB installation, the tests will not conflict with it.
|
||||
To run the tests in a source directory, you must do "make" first.
|
||||
|
||||
In Red Hat distributions, you should run the script as user "mysql".
|
||||
The user is created with nologin shell, so the best bet is something like
|
||||
# su -
|
||||
# cd /usr/share/mysql-test
|
||||
# su -s /bin/bash mysql -c "./mysql-test-run --skip-test-list=unstable-tests"
|
||||
|
||||
This will use the installed MariaDB executables, but will run a private
|
||||
copy of the server process (using data files within /usr/share/mysql-test),
|
||||
so you need not start the mysqld service beforehand.
|
||||
|
||||
You can omit --skip-test-list option if you want to check whether
|
||||
the listed failures occur for you.
|
||||
|
||||
To clean up afterwards, remove the created "var" subdirectory, e.g.
|
||||
# su -s /bin/bash - mysql -c "rm -rf /usr/share/mysql-test/var"
|
||||
|
||||
If one or more tests fail on your system on reasons other than listed
|
||||
in lists of unstable tests, please read the following manual section
|
||||
for instructions on how to report the problem:
|
||||
|
||||
https://mariadb.com/kb/en/reporting-bugs
|
||||
|
||||
If you want to use an already running MySQL server for specific tests,
|
||||
use the --extern option to mysql-test-run. Please note that in this mode,
|
||||
the test suite expects you to provide the names of the tests to run.
|
||||
you are expected to provide names of the tests to run.
|
||||
|
||||
For example, here is the command to run the "alias" and "analyze" tests
|
||||
with an external server:
|
||||
|
||||
mysql-test-run --extern socket=/tmp/mysql.sock alias analyze
|
||||
# mysql-test-run --extern socket=/tmp/mysql.sock alias analyze
|
||||
|
||||
To match your setup, you might also need to provide --socket, --user, and
|
||||
other relevant options.
|
||||
To match your setup, you might need to provide other relevant options.
|
||||
|
||||
With no test cases named on the command line, mysql-test-run falls back
|
||||
to the normal "non-extern" behavior. The reason for this is that some
|
||||
tests cannot run with an external server.
|
||||
With no test names on the command line, mysql-test-run will attempt
|
||||
to execute the default set of tests, which will certainly fail, because
|
||||
many tests cannot run with an external server (they need to control the
|
||||
options with which the server is started, restart the server during
|
||||
execution, etc.)
|
||||
|
||||
You can create your own test cases. To create a test case, create a new
|
||||
file in the t subdirectory using a text editor. The file should have a .test
|
||||
extension. For example:
|
||||
|
||||
xemacs t/test_case_name.test
|
||||
# xemacs t/test_case_name.test
|
||||
|
||||
In the file, put a set of SQL statements that create some tables,
|
||||
load test data, and run some queries to manipulate it.
|
||||
In the file, put a set of SQL statements that create some tables,
|
||||
load test data, and run some queries to manipulate it.
|
||||
|
||||
We would appreciate it if you name your test tables t1, t2, t3 ... (to not
|
||||
conflict too much with existing tables).
|
||||
Your test should begin by dropping the tables you are going to create and
|
||||
end by dropping them again. This ensures that you can run the test over
|
||||
and over again.
|
||||
|
||||
Your test should begin by dropping the tables you are going to create and
|
||||
end by dropping them again. This ensures that you can run the test over
|
||||
and over again.
|
||||
|
||||
If you are using mysqltest commands (like result file names) in your
|
||||
test case, you should create the result file as follows:
|
||||
If you are using mysqltest commands in your test case, you should create
|
||||
the result file as follows:
|
||||
|
||||
mysql-test-run --record test_case_name
|
||||
# mysql-test-run --record test_case_name
|
||||
|
||||
or
|
||||
or
|
||||
|
||||
mysqltest --record < t/test_case_name.test
|
||||
# mysqltest --record < t/test_case_name.test
|
||||
|
||||
If you only have a simple test cases consisting of SQL statements and
|
||||
comments, you can create the test case in one of the following ways:
|
||||
If you only have a simple test case consisting of SQL statements and
|
||||
comments, you can create the result file in one of the following ways:
|
||||
|
||||
mysql-test-run --record test_case_name
|
||||
# mysql-test-run --record test_case_name
|
||||
|
||||
mysql test < t/test_case_name.test > r/test_case_name.result
|
||||
# mysql test < t/test_case_name.test > r/test_case_name.result
|
||||
|
||||
mysqltest --record --database test --result-file=r/test_case_name.result < t/test_case_name.test
|
||||
# mysqltest --record --database test --result-file=r/test_case_name.result < t/test_case_name.test
|
||||
|
||||
When this is done, take a look at r/test_case_name.result
|
||||
- If the result is incorrect, you have found a bug. In this case, you should
|
||||
edit the test result to the correct results so that we can verify
|
||||
that the bug is corrected in future releases.
|
||||
When this is done, take a look at r/test_case_name.result .
|
||||
If the result is incorrect, you have found a bug. In this case, you should
|
||||
edit the test result to the correct results so that we can verify that
|
||||
the bug is corrected in future releases.
|
||||
|
||||
If you want to submit your test case you can send it
|
||||
to maria-developers@lists.launchpad.com or attach it to a bug report on
|
||||
to maria-developers@lists.launchpad.net or attach it to a bug report on
|
||||
http://mariadb.org/jira/.
|
||||
|
||||
If the test case is really big or if it contains 'not public' data,
|
||||
|
|
|
@ -1359,6 +1359,58 @@ rename table t2 to t1;
|
|||
execute stmt1;
|
||||
deallocate prepare stmt1;
|
||||
drop table t2;
|
||||
#
|
||||
# MDEV-8960 Can't refer the same column twice in one ALTER TABLE
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) DEFAULT CHARSET=utf8;
|
||||
ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL,
|
||||
ALTER COLUMN `consultant_id` DROP DEFAULT;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`consultant_id` int(11) NOT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) DEFAULT CHARSET=utf8;
|
||||
ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL,
|
||||
ALTER COLUMN `consultant_id` SET DEFAULT 2;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`consultant_id` int(11) NOT NULL DEFAULT 2
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) DEFAULT CHARSET=utf8;
|
||||
ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL DEFAULT 2,
|
||||
ALTER COLUMN `consultant_id` DROP DEFAULT;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`consultant_id` int(11) NOT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) DEFAULT CHARSET=utf8;
|
||||
ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL DEFAULT 2,
|
||||
ALTER COLUMN `consultant_id` DROP DEFAULT,
|
||||
MODIFY COLUMN `consultant_id` BIGINT;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`consultant_id` bigint(20) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
id INT(11) NOT NULL,
|
||||
x_param INT(11) DEFAULT NULL,
|
||||
|
@ -2125,59 +2177,7 @@ t1 CREATE TABLE `t1` (
|
|||
) ENGINE=InnoDB DEFAULT CHARSET=utf8
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-8960 Can't refer the same column twice in one ALTER TABLE
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) DEFAULT CHARSET=utf8;
|
||||
ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL,
|
||||
ALTER COLUMN `consultant_id` DROP DEFAULT;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`consultant_id` int(11) NOT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) DEFAULT CHARSET=utf8;
|
||||
ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL,
|
||||
ALTER COLUMN `consultant_id` SET DEFAULT 2;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`consultant_id` int(11) NOT NULL DEFAULT 2
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) DEFAULT CHARSET=utf8;
|
||||
ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL DEFAULT 2,
|
||||
ALTER COLUMN `consultant_id` DROP DEFAULT;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`consultant_id` int(11) NOT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) DEFAULT CHARSET=utf8;
|
||||
ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL DEFAULT 2,
|
||||
ALTER COLUMN `consultant_id` DROP DEFAULT,
|
||||
MODIFY COLUMN `consultant_id` BIGINT;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`consultant_id` bigint(20) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Start of 10.1 tests
|
||||
# End of 10.0 tests
|
||||
#
|
||||
#
|
||||
# MDEV-7374 : Losing connection to MySQL while running ALTER TABLE
|
||||
|
@ -2201,6 +2201,9 @@ t1 CREATE TABLE `t1` (
|
|||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 10.1 tests
|
||||
#
|
||||
#
|
||||
# MDEV-10421 duplicate CHECK CONSTRAINTs
|
||||
#
|
||||
CREATE TABLE t1 (a INT, b INT) engine=myisam;
|
||||
|
@ -2272,3 +2275,6 @@ t1 CREATE TABLE `t1` (
|
|||
`c` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
#
|
||||
# End of 10.2 tests
|
||||
#
|
||||
|
|
|
@ -228,6 +228,22 @@ a d
|
|||
3 11120436154190595086
|
||||
drop table t1, t2;
|
||||
End of 5.0 tests
|
||||
#
|
||||
# Bug#19875294 ASSERTION `SRC' FAILED IN MY_STRNXFRM_UNICODE
|
||||
# (SIG 6 -STRINGS/CTYPE-UTF8.C:5151)
|
||||
#
|
||||
set @@sql_mode='';
|
||||
CREATE TABLE t1(c1 SET('','')CHARACTER SET ucs2);
|
||||
Warnings:
|
||||
Note 1291 Column 'c1' has duplicated value '' in SET
|
||||
INSERT INTO t1 VALUES(990101.102);
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c1' at row 1
|
||||
SELECT COALESCE(c1)FROM t1 ORDER BY 1;
|
||||
COALESCE(c1)
|
||||
|
||||
DROP TABLE t1;
|
||||
set @@sql_mode=default;
|
||||
CREATE TABLE t1(a YEAR);
|
||||
SELECT 1 FROM t1 WHERE a=1 AND CASE 1 WHEN a THEN 1 ELSE 1 END;
|
||||
1
|
||||
|
|
|
@ -5078,6 +5078,24 @@ E05B
|
|||
DROP TABLE t1;
|
||||
# Start of ctype_E05C.inc
|
||||
#
|
||||
# MDEV-9886 Illegal mix of collations with a view comparing a field to a binary constant
|
||||
#
|
||||
SET NAMES latin1;
|
||||
CREATE TABLE t1 (a TEXT CHARACTER SET gbk);
|
||||
INSERT INTO t1 VALUES (0xEE5D);
|
||||
SELECT a<>0xEE5D AS a FROM t1;
|
||||
a
|
||||
0
|
||||
CREATE VIEW v1 AS SELECT a<>0xEE5D AS a FROM t1;
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View character_set_client collation_connection
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` <> 0xee5d AS `a` from `t1` latin1 latin1_swedish_ci
|
||||
SELECT * FROM v1;
|
||||
a
|
||||
0
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 10.0 tests
|
||||
#
|
||||
#
|
||||
|
|
|
@ -8005,6 +8005,24 @@ SELECT _latin1 0x7E, _latin1 X'7E', _latin1 B'01111110';
|
|||
_latin1 0x7E _latin1 X'7E' _latin1 B'01111110'
|
||||
~ ~ ~
|
||||
#
|
||||
# MDEV-9886 Illegal mix of collations with a view comparing a field to a binary constant
|
||||
#
|
||||
SET NAMES latin1;
|
||||
CREATE TABLE t1 (a TEXT CHARACTER SET latin1);
|
||||
INSERT INTO t1 VALUES (0xC0);
|
||||
SELECT a<>0xEE5D AS a FROM t1;
|
||||
a
|
||||
1
|
||||
CREATE VIEW v1 AS SELECT a<>0xC0 AS a FROM t1;
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View character_set_client collation_connection
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` <> 0xc0 AS `a` from `t1` latin1 latin1_swedish_ci
|
||||
SELECT * FROM v1;
|
||||
a
|
||||
0
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 10.0 tests
|
||||
#
|
||||
#
|
||||
|
|
|
@ -4564,6 +4564,38 @@ NO_ENGINE_SUBSTITUTION
|
|||
SET sql_mode=DEFAULT;
|
||||
SET NAMES utf8;
|
||||
#
|
||||
# MDEV-13972 crash in Item_func_sec_to_time::get_date
|
||||
#
|
||||
SELECT SEC_TO_TIME(CONVERT(900*24*60*60 USING ucs2));
|
||||
SEC_TO_TIME(CONVERT(900*24*60*60 USING ucs2))
|
||||
838:59:59.999999
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect time value: '77760000'
|
||||
#
|
||||
# MDEV-13530 VARBINARY doesn't convert to to BLOB for sizes 65533, 65534 and 65535
|
||||
#
|
||||
set sql_mode="";
|
||||
CREATE TABLE t1 (c1 VARCHAR(32766) CHARACTER SET ucs2);
|
||||
DESCRIBE t1;
|
||||
Field Type Null Key Default Extra
|
||||
c1 varchar(32766) YES NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 VARCHAR(32767) CHARACTER SET ucs2);
|
||||
Warnings:
|
||||
Note 1246 Converting column 'c1' from VARCHAR to TEXT
|
||||
DESCRIBE t1;
|
||||
Field Type Null Key Default Extra
|
||||
c1 text YES NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 VARCHAR(32768) CHARACTER SET ucs2);
|
||||
Warnings:
|
||||
Note 1246 Converting column 'c1' from VARCHAR to TEXT
|
||||
DESCRIBE t1;
|
||||
Field Type Null Key Default Extra
|
||||
c1 mediumtext YES NULL
|
||||
DROP TABLE t1;
|
||||
set sql_mode=default;
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
#
|
||||
|
|
|
@ -1680,6 +1680,23 @@ NO_ENGINE_SUBSTITUTION
|
|||
SET sql_mode=DEFAULT;
|
||||
SET NAMES utf8;
|
||||
#
|
||||
# MDEV-13530 VARBINARY doesn't convert to to BLOB for sizes 65533, 65534 and 65535
|
||||
#
|
||||
set sql_mode='';
|
||||
CREATE TABLE t1 (c1 VARCHAR(16383) CHARACTER SET utf32);
|
||||
DESCRIBE t1;
|
||||
Field Type Null Key Default Extra
|
||||
c1 varchar(16383) YES NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 VARCHAR(16384) CHARACTER SET utf32);
|
||||
Warnings:
|
||||
Note 1246 Converting column 'c1' from VARCHAR to TEXT
|
||||
DESCRIBE t1;
|
||||
Field Type Null Key Default Extra
|
||||
c1 mediumtext YES NULL
|
||||
DROP TABLE t1;
|
||||
set sql_mode=default;
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
#
|
||||
|
|
|
@ -6278,6 +6278,30 @@ Warnings:
|
|||
SET sql_mode=DEFAULT;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-13530 VARBINARY doesn't convert to to BLOB for sizes 65533, 65534 and 65535
|
||||
#
|
||||
SET sql_mode='';
|
||||
CREATE TABLE t1 (c1 VARCHAR(21844) CHARACTER SET utf8);
|
||||
DESCRIBE t1;
|
||||
Field Type Null Key Default Extra
|
||||
c1 varchar(21844) YES NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 VARCHAR(21845) CHARACTER SET utf8);
|
||||
Warnings:
|
||||
Note 1246 Converting column 'c1' from VARCHAR to TEXT
|
||||
DESCRIBE t1;
|
||||
Field Type Null Key Default Extra
|
||||
c1 text YES NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 VARCHAR(21846) CHARACTER SET utf8);
|
||||
Warnings:
|
||||
Note 1246 Converting column 'c1' from VARCHAR to TEXT
|
||||
DESCRIBE t1;
|
||||
Field Type Null Key Default Extra
|
||||
c1 mediumtext YES NULL
|
||||
DROP TABLE t1;
|
||||
SET sql_mode=default;
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
#
|
||||
|
|
|
@ -27,7 +27,7 @@ create table t1 (a int(256));
|
|||
ERROR 42000: Display width out of range for 'a' (max = 255)
|
||||
set sql_mode='traditional';
|
||||
create table t1 (a varchar(66000));
|
||||
ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead
|
||||
ERROR 42000: Column length too big for column 'a' (max = 65532); use BLOB or TEXT instead
|
||||
set sql_mode=default;
|
||||
CREATE TABLE t1 (a INT);
|
||||
SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0)));
|
||||
|
|
|
@ -813,9 +813,17 @@ PREPARE s FROM "SELECT 1 FROM t1 WHERE 1 < ALL (SELECT @:= (1 IN (SELECT 1 FROM
|
|||
EXECUTE s;
|
||||
1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 5.3 tests
|
||||
#
|
||||
# Start of 10.0 tests
|
||||
create table t1 (a int);
|
||||
insert t1 values (1),(2),(3);
|
||||
select * from t1 where 1 in (a, name_const('a', null));
|
||||
a
|
||||
1
|
||||
drop table t1;
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
#
|
||||
# MDEV-10020 InnoDB NOT IN Query Crash When One Item Is NULL
|
||||
|
@ -831,7 +839,7 @@ SELECT * FROM t1 WHERE b NOT IN (NULL, '', 'A');
|
|||
a b
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Start of 10.1 tests
|
||||
# End of 10.0 tests
|
||||
#
|
||||
#
|
||||
# MDEV-8755 Equal field propagation is not performed any longer for the IN list when multiple comparison types
|
||||
|
|
|
@ -885,32 +885,32 @@ SELECT 1 FROM dual WHERE ('Alpha,Bravo,Charlie,Delta,Echo,Foxtrot,StrataCentral,
|
|||
1
|
||||
Warnings:
|
||||
Warning 1139 Got error 'pcre_exec: recursion limit of NUM exceeded' from regexp
|
||||
SELECT CONCAT(REPEAT('100,',133),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$';
|
||||
CONCAT(REPEAT('100,',133),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$'
|
||||
SELECT CONCAT(REPEAT('100,',60),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$';
|
||||
CONCAT(REPEAT('100,',60),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$'
|
||||
1
|
||||
SELECT CONCAT(REPEAT('100,',200),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$';
|
||||
CONCAT(REPEAT('100,',200),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$'
|
||||
0
|
||||
Warnings:
|
||||
Warning 1139 Got error 'pcre_exec: recursion limit of NUM exceeded' from regexp
|
||||
SELECT REGEXP_INSTR(CONCAT(REPEAT('100,',133),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$');
|
||||
REGEXP_INSTR(CONCAT(REPEAT('100,',133),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')
|
||||
SELECT REGEXP_INSTR(CONCAT(REPEAT('100,',60),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$');
|
||||
REGEXP_INSTR(CONCAT(REPEAT('100,',60),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')
|
||||
1
|
||||
SELECT REGEXP_INSTR(CONCAT(REPEAT('100,',200),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$');
|
||||
REGEXP_INSTR(CONCAT(REPEAT('100,',200),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')
|
||||
0
|
||||
Warnings:
|
||||
Warning 1139 Got error 'pcre_exec: recursion limit of NUM exceeded' from regexp
|
||||
SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',133),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'));
|
||||
LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',133),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'))
|
||||
535
|
||||
SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',60),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'));
|
||||
LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',60),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'))
|
||||
243
|
||||
SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',200),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'));
|
||||
LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',200),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'))
|
||||
0
|
||||
Warnings:
|
||||
Warning 1139 Got error 'pcre_exec: recursion limit of NUM exceeded' from regexp
|
||||
SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',133),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', ''));
|
||||
LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',133),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', ''))
|
||||
SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',60),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', ''));
|
||||
LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',60),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', ''))
|
||||
0
|
||||
SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',200),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', ''));
|
||||
LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',200),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', ''))
|
||||
|
|
|
@ -2772,7 +2772,33 @@ SELECT 1 MOD ADDTIME( '13:58:57', '00:00:01' ) + 2;
|
|||
1 MOD ADDTIME( '13:58:57', '00:00:01' ) + 2
|
||||
3
|
||||
#
|
||||
# Start of 10.0 tests
|
||||
# MDEV-11819 NO_ZERO_IN_DATE: Incorrect generated column value
|
||||
#
|
||||
SET sql_mode='NO_ZERO_IN_DATE';
|
||||
CREATE TABLE t1 (a TIME(6));
|
||||
INSERT INTO t1 SELECT timediff(timestamp'2008-12-31 23:59:59.000001',timestamp'2008-12-30 01:01:01.000002');
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
46:58:57.999999
|
||||
DROP TABLE t1;
|
||||
SET sql_mode=DEFAULT;
|
||||
#
|
||||
# MDEV-13972 crash in Item_func_sec_to_time::get_date
|
||||
#
|
||||
DO TO_DAYS(SEC_TO_TIME(TIME(CEILING(UUID()))));
|
||||
DO TO_DAYS(SEC_TO_TIME(MAKEDATE('',RAND(~('')))));
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: ''
|
||||
Warning 1292 Truncated incorrect INTEGER value: ''
|
||||
Warning 1292 Truncated incorrect INTEGER value: ''
|
||||
Warning 1292 Truncated incorrect time value: '20000101'
|
||||
SELECT SEC_TO_TIME(MAKEDATE(0,RAND(~0)));
|
||||
SEC_TO_TIME(MAKEDATE(0,RAND(~0)))
|
||||
838:59:59
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect time value: '20000101'
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
#
|
||||
# MDEV-8205 timediff returns null when comparing decimal time to time string value
|
||||
|
|
|
@ -1717,8 +1717,16 @@ t1 CREATE TABLE `t1` (
|
|||
`v` mediumtext CHARACTER SET utf8 DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
set statement sql_mode='' for
|
||||
create table t1 (v varchar(65535));
|
||||
ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
|
||||
Warnings:
|
||||
Note 1246 Converting column 'v' from VARCHAR to TEXT
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`v` text DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
set storage_engine=MyISAM;
|
||||
set @save_concurrent_insert=@@concurrent_insert;
|
||||
set global concurrent_insert=1;
|
||||
|
|
|
@ -312,14 +312,18 @@ select * from t1 where a = 'bbbb';
|
|||
a
|
||||
bbbb
|
||||
drop table t1;
|
||||
set sql_mode='';
|
||||
create table t1 (a varchar(3070)) partition by key (a);
|
||||
ERROR HY000: The total length of the partitioning fields is too large
|
||||
create table t1 (a varchar(65532) not null) partition by key (a);
|
||||
ERROR HY000: The total length of the partitioning fields is too large
|
||||
create table t1 (a varchar(65533)) partition by key (a);
|
||||
ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
|
||||
ERROR HY000: A BLOB field is not allowed in partition function
|
||||
create table t1 (a varchar(65534) not null) partition by key (a);
|
||||
ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
|
||||
ERROR HY000: A BLOB field is not allowed in partition function
|
||||
create table t1 (a varchar(65535)) partition by key (a);
|
||||
ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
|
||||
ERROR HY000: A BLOB field is not allowed in partition function
|
||||
set sql_mode=default;
|
||||
create table t1 (a bit(27), primary key (a)) engine=myisam
|
||||
partition by hash (a)
|
||||
(partition p0, partition p1, partition p2);
|
||||
|
|
|
@ -4202,6 +4202,149 @@ Warnings:
|
|||
Note 1003 select `test`.`t1`.`id` AS `id`,`test`.`t1`.`c` AS `c` from `test`.`t1` where 0
|
||||
deallocate prepare stmt2;
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-9208: Function->Function->View = Mysqld segfault
|
||||
# (Server crashes in Dependency_marker::visit_field on 2nd
|
||||
# execution with merged subquery)
|
||||
#
|
||||
CREATE TABLE t1 (i1 INT);
|
||||
insert into t1 values(1),(2);
|
||||
CREATE TABLE t2 (i2 INT);
|
||||
insert into t2 values(1),(2);
|
||||
prepare stmt from "
|
||||
select 1 from (
|
||||
select
|
||||
if (i1<0, 0, 0) as f1,
|
||||
(select f1) as f2
|
||||
from t1, t2
|
||||
) sq
|
||||
";
|
||||
execute stmt;
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
execute stmt;
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
drop table t1,t2;
|
||||
#
|
||||
# MDEV-9619: Assertion `null_ref_table' failed in virtual
|
||||
# table_map Item_direct_view_ref::used_tables() const on 2nd
|
||||
# execution of PS
|
||||
#
|
||||
CREATE TABLE t1 (f1 VARCHAR(10)) ENGINE=MyISAM;
|
||||
CREATE ALGORITHM=MERGE VIEW v1 AS SELECT * FROM t1;
|
||||
INSERT INTO t1 VALUES ('a'),('b');
|
||||
CREATE TABLE t2 (f2 VARCHAR(10)) ENGINE=MyISAM;
|
||||
INSERT INTO t2 VALUES ('c'),('d');
|
||||
PREPARE stmt FROM "SELECT * FROM v1 WHERE f1 = SOME ( SELECT f2 FROM t2 )";
|
||||
EXECUTE stmt;
|
||||
f1
|
||||
EXECUTE stmt;
|
||||
f1
|
||||
insert into t1 values ('c');
|
||||
EXECUTE stmt;
|
||||
f1
|
||||
c
|
||||
EXECUTE stmt;
|
||||
f1
|
||||
c
|
||||
deallocate prepare stmt;
|
||||
drop view v1;
|
||||
drop table t1,t2;
|
||||
CREATE TABLE t1 (f1 VARCHAR(10)) ENGINE=MyISAM;
|
||||
CREATE ALGORITHM=MERGE VIEW v1 AS SELECT * FROM t1;
|
||||
INSERT INTO t1 VALUES ('a'),('b');
|
||||
CREATE TABLE t2 (f2 VARCHAR(10)) ENGINE=MyISAM;
|
||||
INSERT INTO t2 VALUES ('c'),('d');
|
||||
PREPARE stmt FROM "SELECT * FROM v1 WHERE (f1,f1) = SOME ( SELECT f2,f2 FROM t2 )";
|
||||
EXECUTE stmt;
|
||||
f1
|
||||
EXECUTE stmt;
|
||||
f1
|
||||
insert into t1 values ('c');
|
||||
EXECUTE stmt;
|
||||
f1
|
||||
c
|
||||
EXECUTE stmt;
|
||||
f1
|
||||
c
|
||||
deallocate prepare stmt;
|
||||
drop view v1;
|
||||
drop table t1,t2;
|
||||
CREATE TABLE t1 (column1 INT) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES (3),(9);
|
||||
CREATE TABLE t2 (column2 INT) ENGINE=MyISAM;
|
||||
INSERT INTO t2 VALUES (1),(4);
|
||||
CREATE TABLE t3 (column3 INT) ENGINE=MyISAM;
|
||||
INSERT INTO t3 VALUES (6),(8);
|
||||
CREATE TABLE t4 (column4 INT) ENGINE=MyISAM;
|
||||
INSERT INTO t4 VALUES (2),(5);
|
||||
PREPARE stmt FROM "
|
||||
SELECT (
|
||||
SELECT MAX( table1.column1 ) AS field1
|
||||
FROM t1 AS table1
|
||||
WHERE (111,table3.column3) IN ( SELECT 111,table2.column2 AS field2 FROM t2 AS table2 )
|
||||
) AS sq
|
||||
FROM t3 AS table3, t4 AS table4 GROUP BY sq
|
||||
";
|
||||
EXECUTE stmt;
|
||||
sq
|
||||
NULL
|
||||
EXECUTE stmt;
|
||||
sq
|
||||
NULL
|
||||
deallocate prepare stmt;
|
||||
drop table t1,t2,t3,t4;
|
||||
create table t1 (a int, b int, c int);
|
||||
create table t2 (x int, y int, z int);
|
||||
create table t3 as select * from t1;
|
||||
insert into t1 values (1,2,3),(4,5,6),(100,200,300),(400,500,600);
|
||||
insert into t2 values (1,2,3),(7,8,9),(100,200,300),(400,500,600);
|
||||
insert into t3 values (1,2,3),(11,12,13),(100,0,0),(400,500,600);
|
||||
set @optimizer_switch_save=@@optimizer_switch;
|
||||
set @join_cache_level_save=@@join_cache_level;
|
||||
set optimizer_switch='materialization=off';
|
||||
set join_cache_level=0;
|
||||
select * from t1 where (select a,b from t3 where t3.c=t1.c) in (select x,y from t2 where t1.c= t2.z);
|
||||
a b c
|
||||
1 2 3
|
||||
400 500 600
|
||||
prepare stmt from "select * from t1 where (select a,b from t3 where t3.c=t1.c) in (select x,y from t2 where t1.c= t2.z)";
|
||||
EXECUTE stmt;
|
||||
a b c
|
||||
1 2 3
|
||||
400 500 600
|
||||
EXECUTE stmt;
|
||||
a b c
|
||||
1 2 3
|
||||
400 500 600
|
||||
create view v1 as select * from t1;
|
||||
create view v2 as select * from t2;
|
||||
create view v3 as select * from t3;
|
||||
select * from v1 where (select a,b from v3 where v3.c=v1.c) in (select x,y from v2 where v1.c= v2.z);
|
||||
a b c
|
||||
1 2 3
|
||||
400 500 600
|
||||
prepare stmt from "select * from v1 where (select a,b from v3 where v3.c=v1.c) in (select x,y from v2 where v1.c= v2.z)";
|
||||
EXECUTE stmt;
|
||||
a b c
|
||||
1 2 3
|
||||
400 500 600
|
||||
EXECUTE stmt;
|
||||
a b c
|
||||
1 2 3
|
||||
400 500 600
|
||||
set optimizer_switch=@optimizer_switch_save;
|
||||
set join_cache_level=@join_cache_level_save;
|
||||
deallocate prepare stmt;
|
||||
drop view v1,v2,v3;
|
||||
drop table t1,t2,t3;
|
||||
# End of 5.5 tests
|
||||
#
|
||||
# Start of 10.2 tests
|
||||
|
|
|
@ -1807,4 +1807,85 @@ id state capital
|
|||
7 Pennsylvania Harrisburg
|
||||
8 Virginia Richmond
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# mdev-11574: do not build index merge of two indexes when
|
||||
# one index is an infix of the other index
|
||||
#
|
||||
set names utf8;
|
||||
CREATE DATABASE world;
|
||||
use world;
|
||||
CREATE TABLE Country (
|
||||
Code char(3) NOT NULL default '',
|
||||
Name char(52) NOT NULL default '',
|
||||
SurfaceArea float(10,2) NOT NULL default '0.00',
|
||||
Population int(11) NOT NULL default '0',
|
||||
Capital int(11) default NULL,
|
||||
PRIMARY KEY (Code),
|
||||
UNIQUE INDEX (Name)
|
||||
);
|
||||
CREATE TABLE City (
|
||||
ID int(11) NOT NULL auto_increment,
|
||||
Name char(35) NOT NULL default '',
|
||||
Country char(3) NOT NULL default '',
|
||||
Population int(11) NOT NULL default '0',
|
||||
PRIMARY KEY (ID),
|
||||
INDEX (Population),
|
||||
INDEX (Country)
|
||||
);
|
||||
CREATE TABLE CountryLanguage (
|
||||
Country char(3) NOT NULL default '',
|
||||
Language char(30) NOT NULL default '',
|
||||
Percentage float(3,1) NOT NULL default '0.0',
|
||||
PRIMARY KEY (Country, Language),
|
||||
INDEX (Percentage)
|
||||
);
|
||||
DROP INDEX Country ON City;
|
||||
CREATE INDEX CountryName ON City(Country,Name);
|
||||
CREATE INDEX Name ON City(Name);
|
||||
select * from City
|
||||
where
|
||||
Country='FIN' AND Name IN ('Lahti','Imatra') OR
|
||||
Country='RUS' AND Name IN ('St Petersburg', 'Moscow') OR
|
||||
Country='SWE' AND Name IN ('Stockholm', 'Uppsala') OR
|
||||
Country='DEU' AND Name IN ('Berlin', 'Bonn') OR
|
||||
Country='BEL' AND Name IN ('Antwerpen', 'Gent') OR
|
||||
Country='PRT' AND Name IN ('Braga', 'Porto') OR
|
||||
Country='FRA' AND Name IN ('Paris', 'Marcel') OR
|
||||
Country='POL' AND Name IN ('Warszawa', 'Wroclaw') OR
|
||||
Country='NOR' AND Name IN ('Oslo', 'Bergen') OR
|
||||
Country='ITA' AND Name IN ('Napoli', 'Venezia');
|
||||
ID Name Country Population
|
||||
175 Antwerpen BEL 446525
|
||||
176 Gent BEL 224180
|
||||
3068 Berlin DEU 3386667
|
||||
3087 Bonn DEU 301048
|
||||
3242 Lahti FIN 96921
|
||||
2974 Paris FRA 2125246
|
||||
1466 Napoli ITA 1002619
|
||||
1474 Venezia ITA 277305
|
||||
2808 Bergen NOR 230948
|
||||
2807 Oslo NOR 508726
|
||||
2928 Warszawa POL 1615369
|
||||
2931 Wroclaw POL 636765
|
||||
2918 Braga PRT 90535
|
||||
2915 Porto PRT 273060
|
||||
3580 Moscow RUS 8389200
|
||||
3581 St Petersburg RUS 4694000
|
||||
3048 Stockholm SWE 750348
|
||||
3051 Uppsala SWE 189569
|
||||
explain select * from City
|
||||
where
|
||||
Country='FIN' AND Name IN ('Lahti','Imatra') OR
|
||||
Country='RUS' AND Name IN ('St Petersburg', 'Moscow') OR
|
||||
Country='SWE' AND Name IN ('Stockholm', 'Uppsala') OR
|
||||
Country='DEU' AND Name IN ('Berlin', 'Bonn') OR
|
||||
Country='BEL' AND Name IN ('Antwerpen', 'Gent') OR
|
||||
Country='PRT' AND Name IN ('Braga', 'Porto') OR
|
||||
Country='FRA' AND Name IN ('Paris', 'Marcel') OR
|
||||
Country='POL' AND Name IN ('Warszawa', 'Wroclaw') OR
|
||||
Country='NOR' AND Name IN ('Oslo', 'Bergen') OR
|
||||
Country='ITA' AND Name IN ('Napoli', 'Venezia');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range CountryName,Name CountryName 38 NULL 22 Using index condition; Using where
|
||||
DROP DATABASE world;
|
||||
set session optimizer_switch='index_merge_sort_intersection=default';
|
||||
|
|
|
@ -1808,5 +1808,86 @@ id state capital
|
|||
7 Pennsylvania Harrisburg
|
||||
8 Virginia Richmond
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# mdev-11574: do not build index merge of two indexes when
|
||||
# one index is an infix of the other index
|
||||
#
|
||||
set names utf8;
|
||||
CREATE DATABASE world;
|
||||
use world;
|
||||
CREATE TABLE Country (
|
||||
Code char(3) NOT NULL default '',
|
||||
Name char(52) NOT NULL default '',
|
||||
SurfaceArea float(10,2) NOT NULL default '0.00',
|
||||
Population int(11) NOT NULL default '0',
|
||||
Capital int(11) default NULL,
|
||||
PRIMARY KEY (Code),
|
||||
UNIQUE INDEX (Name)
|
||||
);
|
||||
CREATE TABLE City (
|
||||
ID int(11) NOT NULL auto_increment,
|
||||
Name char(35) NOT NULL default '',
|
||||
Country char(3) NOT NULL default '',
|
||||
Population int(11) NOT NULL default '0',
|
||||
PRIMARY KEY (ID),
|
||||
INDEX (Population),
|
||||
INDEX (Country)
|
||||
);
|
||||
CREATE TABLE CountryLanguage (
|
||||
Country char(3) NOT NULL default '',
|
||||
Language char(30) NOT NULL default '',
|
||||
Percentage float(3,1) NOT NULL default '0.0',
|
||||
PRIMARY KEY (Country, Language),
|
||||
INDEX (Percentage)
|
||||
);
|
||||
DROP INDEX Country ON City;
|
||||
CREATE INDEX CountryName ON City(Country,Name);
|
||||
CREATE INDEX Name ON City(Name);
|
||||
select * from City
|
||||
where
|
||||
Country='FIN' AND Name IN ('Lahti','Imatra') OR
|
||||
Country='RUS' AND Name IN ('St Petersburg', 'Moscow') OR
|
||||
Country='SWE' AND Name IN ('Stockholm', 'Uppsala') OR
|
||||
Country='DEU' AND Name IN ('Berlin', 'Bonn') OR
|
||||
Country='BEL' AND Name IN ('Antwerpen', 'Gent') OR
|
||||
Country='PRT' AND Name IN ('Braga', 'Porto') OR
|
||||
Country='FRA' AND Name IN ('Paris', 'Marcel') OR
|
||||
Country='POL' AND Name IN ('Warszawa', 'Wroclaw') OR
|
||||
Country='NOR' AND Name IN ('Oslo', 'Bergen') OR
|
||||
Country='ITA' AND Name IN ('Napoli', 'Venezia');
|
||||
ID Name Country Population
|
||||
175 Antwerpen BEL 446525
|
||||
176 Gent BEL 224180
|
||||
3068 Berlin DEU 3386667
|
||||
3087 Bonn DEU 301048
|
||||
3242 Lahti FIN 96921
|
||||
2974 Paris FRA 2125246
|
||||
1466 Napoli ITA 1002619
|
||||
1474 Venezia ITA 277305
|
||||
2808 Bergen NOR 230948
|
||||
2807 Oslo NOR 508726
|
||||
2928 Warszawa POL 1615369
|
||||
2931 Wroclaw POL 636765
|
||||
2918 Braga PRT 90535
|
||||
2915 Porto PRT 273060
|
||||
3580 Moscow RUS 8389200
|
||||
3581 St Petersburg RUS 4694000
|
||||
3048 Stockholm SWE 750348
|
||||
3051 Uppsala SWE 189569
|
||||
explain select * from City
|
||||
where
|
||||
Country='FIN' AND Name IN ('Lahti','Imatra') OR
|
||||
Country='RUS' AND Name IN ('St Petersburg', 'Moscow') OR
|
||||
Country='SWE' AND Name IN ('Stockholm', 'Uppsala') OR
|
||||
Country='DEU' AND Name IN ('Berlin', 'Bonn') OR
|
||||
Country='BEL' AND Name IN ('Antwerpen', 'Gent') OR
|
||||
Country='PRT' AND Name IN ('Braga', 'Porto') OR
|
||||
Country='FRA' AND Name IN ('Paris', 'Marcel') OR
|
||||
Country='POL' AND Name IN ('Warszawa', 'Wroclaw') OR
|
||||
Country='NOR' AND Name IN ('Oslo', 'Bergen') OR
|
||||
Country='ITA' AND Name IN ('Napoli', 'Venezia');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range CountryName,Name CountryName 38 NULL 20 Using index condition; Using where
|
||||
DROP DATABASE world;
|
||||
set session optimizer_switch='index_merge_sort_intersection=default';
|
||||
SET SESSION STORAGE_ENGINE=DEFAULT;
|
||||
|
|
|
@ -51,6 +51,9 @@ delete t1 from t1,t3 where t1.a=t3.a;
|
|||
drop table t1;
|
||||
insert into t1 values(1);
|
||||
ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement
|
||||
drop temporary table if exists t1;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 'test.t1'
|
||||
connection default;
|
||||
set global read_only=0;
|
||||
lock table t1 write;
|
||||
|
|
|
@ -972,7 +972,7 @@ def information_schema COLUMNS COLUMNS TABLE_CATALOG TABLE_CATALOG 253 1536 3 N
|
|||
def information_schema COLUMNS COLUMNS TABLE_SCHEMA TABLE_SCHEMA 253 192 4 N 1 0 33
|
||||
def information_schema COLUMNS COLUMNS TABLE_NAME TABLE_NAME 253 192 2 N 1 0 33
|
||||
def information_schema COLUMNS COLUMNS COLUMN_NAME COLUMN_NAME 253 192 1 N 1 0 33
|
||||
def information_schema COLUMNS COLUMNS COLUMN_DEFAULT COLUMN_DEFAULT 252 589815 0 Y 16 0 33
|
||||
def information_schema COLUMNS COLUMNS COLUMN_DEFAULT COLUMN_DEFAULT 252 589788 0 Y 16 0 33
|
||||
def information_schema COLUMNS COLUMNS IS_NULLABLE IS_NULLABLE 253 9 2 N 1 0 33
|
||||
def information_schema COLUMNS COLUMNS DATA_TYPE DATA_TYPE 253 192 3 N 1 0 33
|
||||
def information_schema COLUMNS COLUMNS CHARACTER_SET_NAME CHARACTER_SET_NAME 253 96 0 Y 0 0 33
|
||||
|
@ -997,7 +997,7 @@ def information_schema COLUMNS COLUMNS COLUMN_NAME Field 253 192 1 N 1 0 33
|
|||
def information_schema COLUMNS COLUMNS COLUMN_TYPE Type 252 589815 7 N 17 0 33
|
||||
def information_schema COLUMNS COLUMNS IS_NULLABLE Null 253 9 2 N 1 0 33
|
||||
def information_schema COLUMNS COLUMNS COLUMN_KEY Key 253 9 3 N 1 0 33
|
||||
def information_schema COLUMNS COLUMNS COLUMN_DEFAULT Default 252 589815 0 Y 16 0 33
|
||||
def information_schema COLUMNS COLUMNS COLUMN_DEFAULT Default 252 589788 0 Y 16 0 33
|
||||
def information_schema COLUMNS COLUMNS EXTRA Extra 253 90 0 N 1 0 33
|
||||
Field Type Null Key Default Extra
|
||||
c int(11) NO PRI NULL
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
create function f() returns int return 1;
|
||||
show function status;
|
||||
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
|
||||
T f T T T T T T T T T
|
||||
set sql_mode = 'PAD_CHAR_TO_FULL_LENGTH';
|
||||
show function status;
|
||||
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
|
||||
T f T T T T T T T T T
|
||||
drop function f;
|
||||
select @@sql_mode;
|
||||
@@sql_mode
|
||||
PAD_CHAR_TO_FULL_LENGTH
|
||||
create function f() returns int return 1;
|
||||
select ROUTINE_NAME from information_schema.ROUTINES where ROUTINE_NAME='f';
|
||||
ROUTINE_NAME
|
||||
f
|
||||
set sql_mode = 'PAD_CHAR_TO_FULL_LENGTH';
|
||||
select ROUTINE_NAME from information_schema.ROUTINES where ROUTINE_NAME='f';
|
||||
ROUTINE_NAME
|
||||
f
|
||||
drop function f;
|
||||
select @@sql_mode;
|
||||
@@sql_mode
|
||||
PAD_CHAR_TO_FULL_LENGTH
|
|
@ -1240,9 +1240,9 @@ Warning 1364 Field 'i' doesn't have a default value
|
|||
DROP TABLE t1;
|
||||
set @@sql_mode='traditional';
|
||||
create table t1(a varchar(65537));
|
||||
ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead
|
||||
ERROR 42000: Column length too big for column 'a' (max = 65532); use BLOB or TEXT instead
|
||||
create table t1(a varbinary(65537));
|
||||
ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead
|
||||
ERROR 42000: Column length too big for column 'a' (max = 65532); use BLOB or TEXT instead
|
||||
set @@sql_mode='traditional';
|
||||
create table t1(a int, b date not null);
|
||||
alter table t1 modify a bigint unsigned not null;
|
||||
|
|
|
@ -502,3 +502,20 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 PRIMARY t1 index idx idx 5 NULL 5 Using where; Using index
|
||||
2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-13135: subquery with ON expression subject to
|
||||
# semi-join optimizations
|
||||
#
|
||||
CREATE TABLE t1 (a INT);
|
||||
CREATE ALGORITHM=MERGE VIEW v1 AS SELECT a AS v_a FROM t1;
|
||||
INSERT INTO t1 VALUES (1),(3);
|
||||
CREATE TABLE t2 (b INT, KEY(b));
|
||||
INSERT INTO t2 VALUES (3),(4);
|
||||
SELECT * FROM t1 WHERE a NOT IN (
|
||||
SELECT b FROM t2 INNER JOIN v1 ON (b IN ( SELECT a FROM t1 ))
|
||||
WHERE v_a = b
|
||||
);
|
||||
a
|
||||
1
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1,t2;
|
||||
|
|
|
@ -513,7 +513,80 @@ Warning 1292 Truncated incorrect DOUBLE value: 's '
|
|||
Warning 1292 Truncated incorrect DOUBLE value: ' '
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Start of 10.0 tests
|
||||
# MDEV-13530 VARBINARY doesn't convert to to BLOB for sizes 65533, 65534 and 65535
|
||||
#
|
||||
set sql_mode='';
|
||||
CREATE TABLE t1 (c1 VARBINARY(65532));
|
||||
DESCRIBE t1;
|
||||
Field Type Null Key Default Extra
|
||||
c1 varbinary(65532) YES NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 VARBINARY(65533));
|
||||
Warnings:
|
||||
Note 1246 Converting column 'c1' from VARBINARY to BLOB
|
||||
DESCRIBE t1;
|
||||
Field Type Null Key Default Extra
|
||||
c1 blob YES NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 VARBINARY(65534));
|
||||
Warnings:
|
||||
Note 1246 Converting column 'c1' from VARBINARY to BLOB
|
||||
DESCRIBE t1;
|
||||
Field Type Null Key Default Extra
|
||||
c1 blob YES NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 VARBINARY(65535));
|
||||
Warnings:
|
||||
Note 1246 Converting column 'c1' from VARBINARY to BLOB
|
||||
DESCRIBE t1;
|
||||
Field Type Null Key Default Extra
|
||||
c1 blob YES NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 VARBINARY(65536));
|
||||
Warnings:
|
||||
Note 1246 Converting column 'c1' from VARBINARY to BLOB
|
||||
DESCRIBE t1;
|
||||
Field Type Null Key Default Extra
|
||||
c1 mediumblob YES NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 VARCHAR(65532));
|
||||
DESCRIBE t1;
|
||||
Field Type Null Key Default Extra
|
||||
c1 varchar(65532) YES NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 VARCHAR(65533));
|
||||
Warnings:
|
||||
Note 1246 Converting column 'c1' from VARCHAR to TEXT
|
||||
DESCRIBE t1;
|
||||
Field Type Null Key Default Extra
|
||||
c1 text YES NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 VARCHAR(65534));
|
||||
Warnings:
|
||||
Note 1246 Converting column 'c1' from VARCHAR to TEXT
|
||||
DESCRIBE t1;
|
||||
Field Type Null Key Default Extra
|
||||
c1 text YES NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 VARCHAR(65535));
|
||||
Warnings:
|
||||
Note 1246 Converting column 'c1' from VARCHAR to TEXT
|
||||
DESCRIBE t1;
|
||||
Field Type Null Key Default Extra
|
||||
c1 text YES NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 VARCHAR(65536));
|
||||
Warnings:
|
||||
Note 1246 Converting column 'c1' from VARCHAR to TEXT
|
||||
DESCRIBE t1;
|
||||
Field Type Null Key Default Extra
|
||||
c1 mediumtext YES NULL
|
||||
DROP TABLE t1;
|
||||
set sql_mode=default;
|
||||
CREATE TABLE t1 (c1 VARCHAR(65536));
|
||||
ERROR 42000: Column length too big for column 'c1' (max = 65532); use BLOB or TEXT instead
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
#
|
||||
# MDEV-6950 Bad results with joins comparing DATE and INT/ENUM/VARCHAR columns
|
||||
|
|
|
@ -14,6 +14,9 @@ wsrep-causal-reads=ON
|
|||
wsrep-sync-wait=15
|
||||
|
||||
[mysqld.1]
|
||||
#galera_port=@OPT.port
|
||||
#ist_port=@OPT.port
|
||||
#sst_port=@OPT.port
|
||||
wsrep-cluster-address='gcomm://'
|
||||
wsrep_provider_options='base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S'
|
||||
|
||||
|
|
|
@ -10,5 +10,4 @@
|
|||
#
|
||||
##############################################################################
|
||||
|
||||
innodb-wl5980-alter : MDEV-9469 / MDEV-13668 extra crash in 10.2
|
||||
create-index-debug : MDEV-13680 InnoDB may crash when btr_page_alloc() fails
|
||||
|
|
|
@ -185,3 +185,44 @@ ticket CREATE TABLE `ticket` (
|
|||
KEY `org_id` (`org_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
DROP TABLE ticket;
|
||||
CREATE TABLE t (
|
||||
id bigint(20) unsigned NOT NULL auto_increment,
|
||||
d date NOT NULL,
|
||||
a bigint(20) unsigned NOT NULL,
|
||||
b smallint(5) unsigned DEFAULT NULL,
|
||||
PRIMARY KEY (id,d)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs STATS_SAMPLE_PAGES=2
|
||||
PARTITION BY RANGE COLUMNS(d)
|
||||
(
|
||||
PARTITION p20170914 VALUES LESS THAN ('2017-09-15') ENGINE = InnoDB,
|
||||
PARTITION p99991231 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB);
|
||||
insert into t(d,a,b) values ('2017-09-15',rand()*10000,rand()*10);
|
||||
insert into t(d,a,b) values ('2017-09-15',rand()*10000,rand()*10);
|
||||
replace into t(d,a,b) select '2017-09-15',rand()*10000,rand()*10 from t t1, t t2, t t3, t t4;
|
||||
select count(*) from t where d ='2017-09-15';
|
||||
count(*)
|
||||
18
|
||||
ALTER TABLE t CHANGE b c smallint(5) unsigned , ADD KEY idx_d_a (d, a);
|
||||
SHOW CREATE TABLE t;
|
||||
Table Create Table
|
||||
t CREATE TABLE `t` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`d` date NOT NULL,
|
||||
`a` bigint(20) unsigned NOT NULL,
|
||||
`c` smallint(5) unsigned DEFAULT NULL,
|
||||
PRIMARY KEY (`id`,`d`),
|
||||
KEY `idx_d_a` (`d`,`a`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs STATS_SAMPLE_PAGES=2
|
||||
PARTITION BY RANGE COLUMNS(`d`)
|
||||
(PARTITION `p20170914` VALUES LESS THAN ('2017-09-15') ENGINE = InnoDB,
|
||||
PARTITION `p99991231` VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB)
|
||||
analyze table t;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t analyze status OK
|
||||
select count(*) from t where d ='2017-09-15';
|
||||
count(*)
|
||||
18
|
||||
select count(*) from t force index(primary) where d ='2017-09-15';
|
||||
count(*)
|
||||
18
|
||||
DROP TABLE t;
|
||||
|
|
|
@ -540,9 +540,6 @@ ERROR 42000: Key column 'c2' doesn't exist in table
|
|||
ALTER TABLE t1n ADD INDEX(c2), CHANGE c2 c4 INT, ALGORITHM=COPY;
|
||||
ERROR 42000: Key column 'c2' doesn't exist in table
|
||||
ALTER TABLE t1n ADD INDEX(c4), CHANGE c2 c4 INT, ALGORITHM=INPLACE;
|
||||
ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: InnoDB presently supports one FULLTEXT index creation at a time. Try ALGORITHM=COPY
|
||||
ALTER TABLE t1n CHANGE c2 c4 INT, LOCK=NONE;
|
||||
ALTER TABLE t1n ADD INDEX(c4), LOCK=NONE;
|
||||
SHOW CREATE TABLE t1n;
|
||||
Table Create Table
|
||||
t1n CREATE TABLE `t1n` (
|
||||
|
@ -559,9 +556,6 @@ ALTER TABLE t1n DROP INDEX c4;
|
|||
ALTER TABLE t1n CHANGE c4 c1 INT, ADD INDEX(c1), ALGORITHM=INPLACE;
|
||||
ERROR 42S21: Duplicate column name 'c1'
|
||||
ALTER TABLE t1n CHANGE c4 c11 INT, ADD INDEX(c11), ALGORITHM=INPLACE;
|
||||
ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: InnoDB presently supports one FULLTEXT index creation at a time. Try ALGORITHM=COPY
|
||||
ALTER TABLE t1n CHANGE c4 c11 INT, LOCK=NONE;
|
||||
ALTER TABLE t1n ADD INDEX(c11), LOCK=NONE;
|
||||
SHOW CREATE TABLE t1n;
|
||||
Table Create Table
|
||||
t1n CREATE TABLE `t1n` (
|
||||
|
@ -649,9 +643,16 @@ SELECT i.NAME,i.POS,i.MTYPE,i.PRTYPE,i.LEN
|
|||
FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS i
|
||||
INNER JOIN sys_tables st ON i.TABLE_ID=st.TABLE_ID;
|
||||
NAME POS MTYPE PRTYPE LEN
|
||||
FTS_DOC_ID 0 6 1800 8
|
||||
c2 1 6 1027 4
|
||||
ct 2 5 524540 10
|
||||
cu 3 5 524540 10
|
||||
SELECT si.NAME,i.POS,i.NAME FROM INFORMATION_SCHEMA.INNODB_SYS_FIELDS i
|
||||
INNER JOIN sys_indexes si ON i.INDEX_ID=si.INDEX_ID;
|
||||
NAME POS NAME
|
||||
PRIMARY 0 FTS_DOC_ID
|
||||
FTS_DOC_ID_INDEX 0 FTS_DOC_ID
|
||||
ct 0 ct
|
||||
SELECT i.* FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS i
|
||||
INNER JOIN sys_foreign sf ON i.ID = sf.ID;
|
||||
ID FOR_COL_NAME REF_COL_NAME POS
|
||||
|
|
|
@ -40,6 +40,9 @@ crew_role_assigned CREATE TABLE `crew_role_assigned` (
|
|||
CONSTRAINT `fk_crewRoleAssigned_crewId` FOREIGN KEY (`crew_id`) REFERENCES `crew` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT `fk_crewRoleAssigned_pilotId` FOREIGN KEY (`crew_id`) REFERENCES `pilot` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='This is a comment about tables'
|
||||
SET GLOBAL innodb_buffer_pool_load_now = ON;
|
||||
SET GLOBAL innodb_buffer_pool_dump_now = ON;
|
||||
SET GLOBAL innodb_buffer_pool_load_abort = ON;
|
||||
ALTER TABLE `repro`.`crew_role_assigned` COMMENT = "This is a new comment about tables";
|
||||
SHOW CREATE TABLE `repro`.`crew_role_assigned`;
|
||||
Table Create Table
|
||||
|
|
|
@ -48,8 +48,8 @@ SHOW CREATE TABLE t1;
|
|||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL,
|
||||
`c2` int(11) DEFAULT '1',
|
||||
`ct` text,
|
||||
`c2` int(11) DEFAULT 1,
|
||||
`ct` text DEFAULT NULL,
|
||||
PRIMARY KEY (`c1`),
|
||||
KEY `c2` (`c2`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQL_TMP_DIR/alt_dir/'
|
||||
|
@ -59,7 +59,7 @@ Table Create Table
|
|||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL,
|
||||
`c2` int(11),
|
||||
`ct` text,
|
||||
`ct` text DEFAULT NULL,
|
||||
PRIMARY KEY (`c1`),
|
||||
KEY `c2` (`c2`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQL_TMP_DIR/alt_dir/'
|
||||
|
@ -267,7 +267,7 @@ Table Create Table
|
|||
t3 CREATE TABLE `t3` (
|
||||
`c1` int(11) NOT NULL,
|
||||
`c3` int(11) DEFAULT NULL,
|
||||
`ct` text,
|
||||
`ct` text DEFAULT NULL,
|
||||
PRIMARY KEY (`c1`),
|
||||
KEY `c2` (`c3`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQL_TMP_DIR/alt_dir/'
|
||||
|
@ -309,7 +309,7 @@ Table Create Table
|
|||
t3 CREATE TABLE `t3` (
|
||||
`c1` int(11) NOT NULL,
|
||||
`1234567890123456789012345678901234567890123456789012345678901234` int(11) DEFAULT NULL,
|
||||
`ct` text,
|
||||
`ct` text DEFAULT NULL,
|
||||
PRIMARY KEY (`c1`),
|
||||
KEY `c2` (`1234567890123456789012345678901234567890123456789012345678901234`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQL_TMP_DIR/alt_dir/'
|
||||
|
@ -360,9 +360,9 @@ t3.isl
|
|||
t1c.ibd
|
||||
t3.ibd
|
||||
ALTER TABLE t3 CHANGE c3 𐌀𐌁𐌂𐌃𐌄𐌅𐌆𐌇𐌈𐌉𐌊𐌋𐌌𐌍𐌎𐌏𐌐𐌑𐌒𐌓𐌔𐌕𐌖𐌗𐌘𐌙𐌚𐌛𐌜 INT;
|
||||
ERROR HY000: Invalid utf8 character string: '\xF0\x90\x8C\x80\xF0\x90\x8C\x81\xF0\x90\x8C\x82\xF0\x90\x8C\x83'
|
||||
ERROR HY000: Invalid utf8mb4 character string: '\xF0\x90\x8C\x80\xF0\x90\x8C\x81\xF0\x90\x8C\x82\xF0\x90\x8C\x83'
|
||||
ALTER TABLE t3 CHANGE c3 😲 INT;
|
||||
ERROR HY000: Invalid utf8 character string: '\xF0\x9F\x98\xB2'
|
||||
ERROR HY000: Invalid utf8mb4 character string: '\xF0\x9F\x98\xB2'
|
||||
ALTER TABLE t3 RENAME TO t2;
|
||||
### files in MYSQL_DATA_DIR/test
|
||||
sys_foreign.frm
|
||||
|
@ -390,7 +390,7 @@ Table Create Table
|
|||
t2 CREATE TABLE `t2` (
|
||||
`c1` int(11) NOT NULL,
|
||||
`c3` int(11) DEFAULT NULL,
|
||||
`ct` text,
|
||||
`ct` text DEFAULT NULL,
|
||||
PRIMARY KEY (`c1`),
|
||||
KEY `c2` (`c3`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQL_TMP_DIR/alt_dir/'
|
||||
|
@ -436,17 +436,17 @@ test/t1c3 c3 c2 0
|
|||
ALTER TABLE t1 DROP INDEX c2;
|
||||
ERROR HY000: Cannot drop index 'c2': needed in a foreign key constraint
|
||||
ALTER TABLE t1 DROP INDEX c4;
|
||||
ERROR 42000: Can't DROP 'c4'; check that column/key exists
|
||||
ERROR 42000: Can't DROP INDEX `c4`; check that it exists
|
||||
ALTER TABLE t1c DROP FOREIGN KEY c2;
|
||||
ERROR 42000: Can't DROP 'c2'; check that column/key exists
|
||||
ERROR 42000: Can't DROP FOREIGN KEY `c2`; check that it exists
|
||||
ALTER TABLE t1c DROP FOREIGN KEY t1c2, DROP FOREIGN KEY c2;
|
||||
ERROR 42000: Can't DROP 'c2'; check that column/key exists
|
||||
ERROR 42000: Can't DROP FOREIGN KEY `c2`; check that it exists
|
||||
ALTER TABLE t1c DROP FOREIGN KEY t1c2, DROP FOREIGN KEY c2, DROP INDEX c2;
|
||||
ERROR 42000: Can't DROP 'c2'; check that column/key exists
|
||||
ERROR 42000: Can't DROP FOREIGN KEY `c2`; check that it exists
|
||||
ALTER TABLE t1c DROP INDEX c2;
|
||||
ERROR HY000: Cannot drop index 'c2': needed in a foreign key constraint
|
||||
ALTER TABLE t1c DROP FOREIGN KEY ẗ1C2;
|
||||
ERROR 42000: Can't DROP 'ẗ1C2'; check that column/key exists
|
||||
ERROR 42000: Can't DROP FOREIGN KEY `ẗ1C2`; check that it exists
|
||||
SHOW CREATE TABLE t1c;
|
||||
Table Create Table
|
||||
t1c CREATE TABLE `t1c` (
|
||||
|
@ -680,24 +680,24 @@ CREATE TABLE t1o LIKE t1;
|
|||
ALTER TABLE t1 ADD FULLTEXT INDEX (ct),
|
||||
CHANGE c1 pk INT, ALTER c2 SET DEFAULT 42, RENAME TO tt,
|
||||
ALGORITHM=INPLACE, LOCK=NONE;
|
||||
ERROR 0A000: LOCK=NONE is not supported. Reason: Fulltext index creation requires a lock. Try LOCK=SHARED.
|
||||
ERROR 0A000: LOCK=NONE is not supported. Reason: Fulltext index creation requires a lock. Try LOCK=SHARED
|
||||
ALTER TABLE t1 ADD FULLTEXT INDEX (ct),
|
||||
CHANGE c1 pk INT, ALTER c2 SET DEFAULT 42, RENAME TO tt,
|
||||
ALGORITHM=INPLACE, LOCK=SHARED;
|
||||
Warnings:
|
||||
Warning 124 InnoDB rebuilding table to add column FTS_DOC_ID
|
||||
### files in MYSQL_DATA_DIR/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
FTS_AUX_INDEX_1.isl
|
||||
FTS_AUX_INDEX_2.isl
|
||||
FTS_AUX_INDEX_3.isl
|
||||
FTS_AUX_INDEX_4.isl
|
||||
FTS_AUX_INDEX_5.isl
|
||||
FTS_AUX_INDEX_6.isl
|
||||
FTS_AUX_BEING_DELETED.isl
|
||||
FTS_AUX_BEING_DELETED_CACHE.isl
|
||||
FTS_AUX_CONFIG.isl
|
||||
FTS_AUX_DELETED.isl
|
||||
FTS_AUX_DELETED_CACHE.isl
|
||||
sys_foreign.frm
|
||||
sys_foreign.ibd
|
||||
sys_indexes.frm
|
||||
|
@ -713,6 +713,17 @@ t1p.isl
|
|||
tt.frm
|
||||
tt.isl
|
||||
### files in MYSQL_TMP_DIR/alt_dir/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
t1c.ibd
|
||||
t1p.ibd
|
||||
tt.ibd
|
||||
|
@ -730,8 +741,8 @@ SHOW CREATE TABLE tt;
|
|||
Table Create Table
|
||||
tt CREATE TABLE `tt` (
|
||||
`pk` int(11) NOT NULL,
|
||||
`c2` int(11) DEFAULT '42',
|
||||
`ct` text,
|
||||
`c2` int(11) DEFAULT 42,
|
||||
`ct` text DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`),
|
||||
FULLTEXT KEY `ct` (`ct`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQL_TMP_DIR/alt_dir/'
|
||||
|
@ -755,23 +766,23 @@ ERROR 42000: Incorrect column name 'FTS_Doc_ID'
|
|||
ALTER TABLE t1o ADD FULLTEXT INDEX(ct),
|
||||
CHANGE c1 FTS_DOC_ID BIGINT UNSIGNED NOT NULL,
|
||||
ALGORITHM=INPLACE;
|
||||
ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY.
|
||||
ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
|
||||
CREATE TABLE t1n LIKE t1o;
|
||||
ALTER TABLE t1n ADD FULLTEXT INDEX(ct);
|
||||
Warnings:
|
||||
Warning 124 InnoDB rebuilding table to add column FTS_DOC_ID
|
||||
### files in MYSQL_DATA_DIR/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
FTS_AUX_INDEX_1.isl
|
||||
FTS_AUX_INDEX_2.isl
|
||||
FTS_AUX_INDEX_3.isl
|
||||
FTS_AUX_INDEX_4.isl
|
||||
FTS_AUX_INDEX_5.isl
|
||||
FTS_AUX_INDEX_6.isl
|
||||
FTS_AUX_BEING_DELETED.isl
|
||||
FTS_AUX_BEING_DELETED_CACHE.isl
|
||||
FTS_AUX_CONFIG.isl
|
||||
FTS_AUX_DELETED.isl
|
||||
FTS_AUX_DELETED_CACHE.isl
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
|
@ -800,6 +811,17 @@ t1p.isl
|
|||
tt.frm
|
||||
tt.isl
|
||||
### files in MYSQL_TMP_DIR/alt_dir/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
t1c.ibd
|
||||
t1p.ibd
|
||||
tt.ibd
|
||||
|
@ -811,17 +833,17 @@ ALTER TABLE t1n CHANGE FTS_DOC_ID c11 INT, ALGORITHM=INPLACE;
|
|||
ERROR 42S22: Unknown column 'FTS_DOC_ID' in 't1n'
|
||||
ALTER TABLE t1n CHANGE c1 FTS_DOC_ïD INT, ALGORITHM=INPLACE;
|
||||
### files in MYSQL_DATA_DIR/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
FTS_AUX_INDEX_1.isl
|
||||
FTS_AUX_INDEX_2.isl
|
||||
FTS_AUX_INDEX_3.isl
|
||||
FTS_AUX_INDEX_4.isl
|
||||
FTS_AUX_INDEX_5.isl
|
||||
FTS_AUX_INDEX_6.isl
|
||||
FTS_AUX_BEING_DELETED.isl
|
||||
FTS_AUX_BEING_DELETED_CACHE.isl
|
||||
FTS_AUX_CONFIG.isl
|
||||
FTS_AUX_DELETED.isl
|
||||
FTS_AUX_DELETED_CACHE.isl
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
|
@ -850,22 +872,33 @@ t1p.isl
|
|||
tt.frm
|
||||
tt.isl
|
||||
### files in MYSQL_TMP_DIR/alt_dir/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
t1c.ibd
|
||||
t1p.ibd
|
||||
tt.ibd
|
||||
ALTER TABLE t1n CHANGE FTS_DOC_ÏD c1 INT, ALGORITHM=INPLACE;
|
||||
### files in MYSQL_DATA_DIR/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
FTS_AUX_INDEX_1.isl
|
||||
FTS_AUX_INDEX_2.isl
|
||||
FTS_AUX_INDEX_3.isl
|
||||
FTS_AUX_INDEX_4.isl
|
||||
FTS_AUX_INDEX_5.isl
|
||||
FTS_AUX_INDEX_6.isl
|
||||
FTS_AUX_BEING_DELETED.isl
|
||||
FTS_AUX_BEING_DELETED_CACHE.isl
|
||||
FTS_AUX_CONFIG.isl
|
||||
FTS_AUX_DELETED.isl
|
||||
FTS_AUX_DELETED_CACHE.isl
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
|
@ -894,23 +927,34 @@ t1p.isl
|
|||
tt.frm
|
||||
tt.isl
|
||||
### files in MYSQL_TMP_DIR/alt_dir/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
t1c.ibd
|
||||
t1p.ibd
|
||||
tt.ibd
|
||||
ALTER TABLE t1n CHANGE c1 c2 INT, CHANGE c2 ct INT, CHANGE ct c1 TEXT,
|
||||
ALGORITHM=INPLACE;
|
||||
### files in MYSQL_DATA_DIR/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
FTS_AUX_INDEX_1.isl
|
||||
FTS_AUX_INDEX_2.isl
|
||||
FTS_AUX_INDEX_3.isl
|
||||
FTS_AUX_INDEX_4.isl
|
||||
FTS_AUX_INDEX_5.isl
|
||||
FTS_AUX_INDEX_6.isl
|
||||
FTS_AUX_BEING_DELETED.isl
|
||||
FTS_AUX_BEING_DELETED_CACHE.isl
|
||||
FTS_AUX_CONFIG.isl
|
||||
FTS_AUX_DELETED.isl
|
||||
FTS_AUX_DELETED_CACHE.isl
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
|
@ -939,6 +983,17 @@ t1p.isl
|
|||
tt.frm
|
||||
tt.isl
|
||||
### files in MYSQL_TMP_DIR/alt_dir/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
t1c.ibd
|
||||
t1p.ibd
|
||||
tt.ibd
|
||||
|
@ -947,24 +1002,24 @@ Table Create Table
|
|||
t1n CREATE TABLE `t1n` (
|
||||
`c2` int(11) NOT NULL,
|
||||
`ct` int(11) DEFAULT NULL,
|
||||
`c1` text,
|
||||
`c1` text DEFAULT NULL,
|
||||
PRIMARY KEY (`c2`),
|
||||
FULLTEXT KEY `ct` (`c1`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
ALTER TABLE t1n CHANGE c2 c1 INT, CHANGE ct c2 INT, CHANGE c1 ct TEXT,
|
||||
ALGORITHM=COPY;
|
||||
### files in MYSQL_DATA_DIR/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
FTS_AUX_INDEX_1.isl
|
||||
FTS_AUX_INDEX_2.isl
|
||||
FTS_AUX_INDEX_3.isl
|
||||
FTS_AUX_INDEX_4.isl
|
||||
FTS_AUX_INDEX_5.isl
|
||||
FTS_AUX_INDEX_6.isl
|
||||
FTS_AUX_BEING_DELETED.isl
|
||||
FTS_AUX_BEING_DELETED_CACHE.isl
|
||||
FTS_AUX_CONFIG.isl
|
||||
FTS_AUX_DELETED.isl
|
||||
FTS_AUX_DELETED_CACHE.isl
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
|
@ -993,6 +1048,17 @@ t1p.isl
|
|||
tt.frm
|
||||
tt.isl
|
||||
### files in MYSQL_TMP_DIR/alt_dir/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
t1c.ibd
|
||||
t1p.ibd
|
||||
tt.ibd
|
||||
|
@ -1001,7 +1067,7 @@ Table Create Table
|
|||
t1n CREATE TABLE `t1n` (
|
||||
`c1` int(11) NOT NULL,
|
||||
`c2` int(11) DEFAULT NULL,
|
||||
`ct` text,
|
||||
`ct` text DEFAULT NULL,
|
||||
PRIMARY KEY (`c1`),
|
||||
FULLTEXT KEY `ct` (`ct`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
|
@ -1010,21 +1076,18 @@ ERROR 42000: Key column 'c2' doesn't exist in table
|
|||
ALTER TABLE t1n ADD INDEX(c2), CHANGE c2 c4 INT, ALGORITHM=COPY;
|
||||
ERROR 42000: Key column 'c2' doesn't exist in table
|
||||
ALTER TABLE t1n ADD INDEX(c4), CHANGE c2 c4 INT, ALGORITHM=INPLACE;
|
||||
ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: InnoDB presently supports one FULLTEXT index creation at a time. Try ALGORITHM=COPY.
|
||||
ALTER TABLE t1n CHANGE c2 c4 INT, LOCK=NONE;
|
||||
ALTER TABLE t1n ADD INDEX(c4), LOCK=NONE;
|
||||
### files in MYSQL_DATA_DIR/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
FTS_AUX_INDEX_1.isl
|
||||
FTS_AUX_INDEX_2.isl
|
||||
FTS_AUX_INDEX_3.isl
|
||||
FTS_AUX_INDEX_4.isl
|
||||
FTS_AUX_INDEX_5.isl
|
||||
FTS_AUX_INDEX_6.isl
|
||||
FTS_AUX_BEING_DELETED.isl
|
||||
FTS_AUX_BEING_DELETED_CACHE.isl
|
||||
FTS_AUX_CONFIG.isl
|
||||
FTS_AUX_DELETED.isl
|
||||
FTS_AUX_DELETED_CACHE.isl
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
|
@ -1053,6 +1116,17 @@ t1p.isl
|
|||
tt.frm
|
||||
tt.isl
|
||||
### files in MYSQL_TMP_DIR/alt_dir/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
t1c.ibd
|
||||
t1p.ibd
|
||||
tt.ibd
|
||||
|
@ -1061,24 +1135,24 @@ Table Create Table
|
|||
t1n CREATE TABLE `t1n` (
|
||||
`c1` int(11) NOT NULL,
|
||||
`c4` int(11) DEFAULT NULL,
|
||||
`ct` text,
|
||||
`ct` text DEFAULT NULL,
|
||||
PRIMARY KEY (`c1`),
|
||||
KEY `c4` (`c4`),
|
||||
FULLTEXT KEY `ct` (`ct`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
ALTER TABLE t1n DROP INDEX c4;
|
||||
### files in MYSQL_DATA_DIR/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
FTS_AUX_INDEX_1.isl
|
||||
FTS_AUX_INDEX_2.isl
|
||||
FTS_AUX_INDEX_3.isl
|
||||
FTS_AUX_INDEX_4.isl
|
||||
FTS_AUX_INDEX_5.isl
|
||||
FTS_AUX_INDEX_6.isl
|
||||
FTS_AUX_BEING_DELETED.isl
|
||||
FTS_AUX_BEING_DELETED_CACHE.isl
|
||||
FTS_AUX_CONFIG.isl
|
||||
FTS_AUX_DELETED.isl
|
||||
FTS_AUX_DELETED_CACHE.isl
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
|
@ -1107,27 +1181,35 @@ t1p.isl
|
|||
tt.frm
|
||||
tt.isl
|
||||
### files in MYSQL_TMP_DIR/alt_dir/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
t1c.ibd
|
||||
t1p.ibd
|
||||
tt.ibd
|
||||
ALTER TABLE t1n CHANGE c4 c1 INT, ADD INDEX(c1), ALGORITHM=INPLACE;
|
||||
ERROR 42S21: Duplicate column name 'c1'
|
||||
ALTER TABLE t1n CHANGE c4 c11 INT, ADD INDEX(c11), ALGORITHM=INPLACE;
|
||||
ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: InnoDB presently supports one FULLTEXT index creation at a time. Try ALGORITHM=COPY.
|
||||
ALTER TABLE t1n CHANGE c4 c11 INT, LOCK=NONE;
|
||||
ALTER TABLE t1n ADD INDEX(c11), LOCK=NONE;
|
||||
### files in MYSQL_DATA_DIR/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
FTS_AUX_INDEX_1.isl
|
||||
FTS_AUX_INDEX_2.isl
|
||||
FTS_AUX_INDEX_3.isl
|
||||
FTS_AUX_INDEX_4.isl
|
||||
FTS_AUX_INDEX_5.isl
|
||||
FTS_AUX_INDEX_6.isl
|
||||
FTS_AUX_BEING_DELETED.isl
|
||||
FTS_AUX_BEING_DELETED_CACHE.isl
|
||||
FTS_AUX_CONFIG.isl
|
||||
FTS_AUX_DELETED.isl
|
||||
FTS_AUX_DELETED_CACHE.isl
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
|
@ -1156,6 +1238,17 @@ t1p.isl
|
|||
tt.frm
|
||||
tt.isl
|
||||
### files in MYSQL_TMP_DIR/alt_dir/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
t1c.ibd
|
||||
t1p.ibd
|
||||
tt.ibd
|
||||
|
@ -1164,7 +1257,7 @@ Table Create Table
|
|||
t1n CREATE TABLE `t1n` (
|
||||
`c1` int(11) NOT NULL,
|
||||
`c11` int(11) DEFAULT NULL,
|
||||
`ct` text,
|
||||
`ct` text DEFAULT NULL,
|
||||
PRIMARY KEY (`c1`),
|
||||
KEY `c11` (`c11`),
|
||||
FULLTEXT KEY `ct` (`ct`)
|
||||
|
@ -1172,17 +1265,17 @@ t1n CREATE TABLE `t1n` (
|
|||
DROP TABLE t1n;
|
||||
ALTER TABLE t1o MODIFY c1 BIGINT UNSIGNED NOT NULL;
|
||||
### files in MYSQL_DATA_DIR/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
FTS_AUX_INDEX_1.isl
|
||||
FTS_AUX_INDEX_2.isl
|
||||
FTS_AUX_INDEX_3.isl
|
||||
FTS_AUX_INDEX_4.isl
|
||||
FTS_AUX_INDEX_5.isl
|
||||
FTS_AUX_INDEX_6.isl
|
||||
FTS_AUX_BEING_DELETED.isl
|
||||
FTS_AUX_BEING_DELETED_CACHE.isl
|
||||
FTS_AUX_CONFIG.isl
|
||||
FTS_AUX_DELETED.isl
|
||||
FTS_AUX_DELETED_CACHE.isl
|
||||
sys_foreign.frm
|
||||
sys_foreign.ibd
|
||||
sys_indexes.frm
|
||||
|
@ -1198,29 +1291,35 @@ t1p.isl
|
|||
tt.frm
|
||||
tt.isl
|
||||
### files in MYSQL_TMP_DIR/alt_dir/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
t1c.ibd
|
||||
t1p.ibd
|
||||
tt.ibd
|
||||
call mtr.add_suppression("Error: no matching column for .FTS_DOC_ID. in index .ct.--temporary-- of table .test...t1o");
|
||||
ALTER TABLE t1o ADD FULLTEXT INDEX(ct),
|
||||
CHANGE c1 FTS_DOC_ID BIGINT UNSIGNED NOT NULL,
|
||||
ALGORITHM=INPLACE;
|
||||
ERROR HY000: Incorrect key file for table 't1o'; try to repair it
|
||||
# The following would crash 10.2. Re-enable this and test after merge!
|
||||
ALTER TABLE t1o CHANGE c1 FTS_DOC_ID BIGINT UNSIGNED NOT NULL, LOCK=NONE;
|
||||
ALTER TABLE t1o ADD FULLTEXT INDEX(ct), ALGORITHM=INPLACE;
|
||||
### files in MYSQL_DATA_DIR/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
FTS_AUX_INDEX_1.isl
|
||||
FTS_AUX_INDEX_2.isl
|
||||
FTS_AUX_INDEX_3.isl
|
||||
FTS_AUX_INDEX_4.isl
|
||||
FTS_AUX_INDEX_5.isl
|
||||
FTS_AUX_INDEX_6.isl
|
||||
FTS_AUX_BEING_DELETED.isl
|
||||
FTS_AUX_BEING_DELETED_CACHE.isl
|
||||
FTS_AUX_CONFIG.isl
|
||||
FTS_AUX_DELETED.isl
|
||||
FTS_AUX_DELETED_CACHE.isl
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
|
@ -1247,9 +1346,23 @@ t1p.isl
|
|||
tt.frm
|
||||
tt.isl
|
||||
### files in MYSQL_TMP_DIR/alt_dir/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
t1c.ibd
|
||||
t1p.ibd
|
||||
tt.ibd
|
||||
ALTER TABLE t1o CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL,
|
||||
LOCK=NONE;
|
||||
ERROR 0A000: LOCK=NONE is not supported. Reason: Cannot drop or rename FTS_DOC_ID. Try LOCK=SHARED
|
||||
SELECT sc.pos FROM information_schema.innodb_sys_columns sc
|
||||
INNER JOIN information_schema.innodb_sys_tables st
|
||||
ON sc.TABLE_ID=st.TABLE_ID
|
||||
|
@ -1261,24 +1374,24 @@ Table Create Table
|
|||
t1o CREATE TABLE `t1o` (
|
||||
`FTS_DOC_ID` bigint(20) unsigned NOT NULL,
|
||||
`c2` int(11) DEFAULT NULL,
|
||||
`ct` text,
|
||||
`ct` text DEFAULT NULL,
|
||||
PRIMARY KEY (`FTS_DOC_ID`),
|
||||
FULLTEXT KEY `ct` (`ct`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
ALTER TABLE t1o CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL,
|
||||
DROP INDEX ct, LOCK=NONE;
|
||||
### files in MYSQL_DATA_DIR/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
FTS_AUX_INDEX_1.isl
|
||||
FTS_AUX_INDEX_2.isl
|
||||
FTS_AUX_INDEX_3.isl
|
||||
FTS_AUX_INDEX_4.isl
|
||||
FTS_AUX_INDEX_5.isl
|
||||
FTS_AUX_INDEX_6.isl
|
||||
FTS_AUX_BEING_DELETED.isl
|
||||
FTS_AUX_BEING_DELETED_CACHE.isl
|
||||
FTS_AUX_CONFIG.isl
|
||||
FTS_AUX_DELETED.isl
|
||||
FTS_AUX_DELETED_CACHE.isl
|
||||
sys_foreign.frm
|
||||
sys_foreign.ibd
|
||||
sys_indexes.frm
|
||||
|
@ -1294,6 +1407,17 @@ t1p.isl
|
|||
tt.frm
|
||||
tt.isl
|
||||
### files in MYSQL_TMP_DIR/alt_dir/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
t1c.ibd
|
||||
t1p.ibd
|
||||
tt.ibd
|
||||
|
@ -1302,7 +1426,7 @@ Table Create Table
|
|||
t1o CREATE TABLE `t1o` (
|
||||
`foo_id` bigint(20) unsigned NOT NULL,
|
||||
`c2` int(11) DEFAULT NULL,
|
||||
`ct` text,
|
||||
`ct` text DEFAULT NULL,
|
||||
PRIMARY KEY (`foo_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1c, t1p, sys_tables, sys_indexes, sys_foreign;
|
||||
|
@ -1328,17 +1452,17 @@ INNER JOIN sys_foreign sf ON i.ID = sf.ID;
|
|||
ID FOR_COL_NAME REF_COL_NAME POS
|
||||
ALTER TABLE t1o ADD UNIQUE INDEX FTS_DOC_ID_INDEX(foo_id);
|
||||
### files in MYSQL_DATA_DIR/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
FTS_AUX_INDEX_1.isl
|
||||
FTS_AUX_INDEX_2.isl
|
||||
FTS_AUX_INDEX_3.isl
|
||||
FTS_AUX_INDEX_4.isl
|
||||
FTS_AUX_INDEX_5.isl
|
||||
FTS_AUX_INDEX_6.isl
|
||||
FTS_AUX_BEING_DELETED.isl
|
||||
FTS_AUX_BEING_DELETED_CACHE.isl
|
||||
FTS_AUX_CONFIG.isl
|
||||
FTS_AUX_DELETED.isl
|
||||
FTS_AUX_DELETED_CACHE.isl
|
||||
sys_foreign.frm
|
||||
sys_foreign.ibd
|
||||
sys_indexes.frm
|
||||
|
@ -1350,24 +1474,32 @@ t1o.ibd
|
|||
tt.frm
|
||||
tt.isl
|
||||
### files in MYSQL_TMP_DIR/alt_dir/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
tt.ibd
|
||||
ALTER TABLE t1o CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL,
|
||||
ADD FULLTEXT INDEX(ct);
|
||||
ERROR HY000: Incorrect key file for table 't1o'; try to repair it
|
||||
ALTER TABLE t1o CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL, LOCK=NONE;
|
||||
ALTER TABLE t1o ADD FULLTEXT INDEX(ct), ALGORITHM=INPLACE;
|
||||
### files in MYSQL_DATA_DIR/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
FTS_AUX_INDEX_1.isl
|
||||
FTS_AUX_INDEX_2.isl
|
||||
FTS_AUX_INDEX_3.isl
|
||||
FTS_AUX_INDEX_4.isl
|
||||
FTS_AUX_INDEX_5.isl
|
||||
FTS_AUX_INDEX_6.isl
|
||||
FTS_AUX_BEING_DELETED.isl
|
||||
FTS_AUX_BEING_DELETED_CACHE.isl
|
||||
FTS_AUX_CONFIG.isl
|
||||
FTS_AUX_DELETED.isl
|
||||
FTS_AUX_DELETED_CACHE.isl
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
|
@ -1390,6 +1522,17 @@ t1o.ibd
|
|||
tt.frm
|
||||
tt.isl
|
||||
### files in MYSQL_TMP_DIR/alt_dir/test
|
||||
FTS_AUX_INDEX_1.ibd
|
||||
FTS_AUX_INDEX_2.ibd
|
||||
FTS_AUX_INDEX_3.ibd
|
||||
FTS_AUX_INDEX_4.ibd
|
||||
FTS_AUX_INDEX_5.ibd
|
||||
FTS_AUX_INDEX_6.ibd
|
||||
FTS_AUX_BEING_DELETED.ibd
|
||||
FTS_AUX_BEING_DELETED_CACHE.ibd
|
||||
FTS_AUX_CONFIG.ibd
|
||||
FTS_AUX_DELETED.ibd
|
||||
FTS_AUX_DELETED_CACHE.ibd
|
||||
tt.ibd
|
||||
ALTER TABLE t1o CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL;
|
||||
ERROR HY000: Index 'FTS_DOC_ID_INDEX' is of wrong type for an InnoDB FULLTEXT index
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
SET @save_tdc= @@GLOBAL.table_definition_cache;
|
||||
SET @save_toc= @@GLOBAL.table_open_cache;
|
||||
SET GLOBAL table_definition_cache= 400;
|
||||
SET GLOBAL table_open_cache= 1024;
|
||||
CREATE TABLE to_be_evicted(a INT PRIMARY KEY, b INT NOT NULL) ENGINE=InnoDB;
|
||||
INSERT INTO to_be_evicted VALUES(1,2),(2,1);
|
||||
connect ddl,localhost,root,,;
|
||||
SET DEBUG_SYNC = 'row_log_apply_before SIGNAL scanned WAIT_FOR got_duplicate';
|
||||
ALTER TABLE to_be_evicted ADD UNIQUE INDEX(b);
|
||||
connection default;
|
||||
SET DEBUG_SYNC = 'now WAIT_FOR scanned';
|
||||
BEGIN;
|
||||
INSERT INTO to_be_evicted VALUES(3, 2);
|
||||
SET DEBUG_SYNC = 'now SIGNAL got_duplicate';
|
||||
connection ddl;
|
||||
ERROR 23000: Duplicate entry '2' for key 'b'
|
||||
disconnect ddl;
|
||||
connection default;
|
||||
COMMIT;
|
||||
SET DEBUG_SYNC = RESET;
|
||||
FLUSH TABLES;
|
|
@ -1,4 +1,5 @@
|
|||
--source include/innodb_page_size.inc
|
||||
--source include/have_partition.inc
|
||||
|
||||
#
|
||||
# MMDEV-8386: MariaDB creates very big tmp file and hangs on xtradb
|
||||
|
@ -171,3 +172,35 @@ ALTER TABLE ticket
|
|||
SHOW CREATE TABLE ticket;
|
||||
|
||||
DROP TABLE ticket;
|
||||
|
||||
#
|
||||
# MDEV-13838: Wrong result after altering a partitioned table
|
||||
#
|
||||
|
||||
CREATE TABLE t (
|
||||
id bigint(20) unsigned NOT NULL auto_increment,
|
||||
d date NOT NULL,
|
||||
a bigint(20) unsigned NOT NULL,
|
||||
b smallint(5) unsigned DEFAULT NULL,
|
||||
PRIMARY KEY (id,d)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs STATS_SAMPLE_PAGES=2
|
||||
PARTITION BY RANGE COLUMNS(d)
|
||||
(
|
||||
PARTITION p20170914 VALUES LESS THAN ('2017-09-15') ENGINE = InnoDB,
|
||||
PARTITION p99991231 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB);
|
||||
|
||||
insert into t(d,a,b) values ('2017-09-15',rand()*10000,rand()*10);
|
||||
insert into t(d,a,b) values ('2017-09-15',rand()*10000,rand()*10);
|
||||
|
||||
replace into t(d,a,b) select '2017-09-15',rand()*10000,rand()*10 from t t1, t t2, t t3, t t4;
|
||||
|
||||
select count(*) from t where d ='2017-09-15';
|
||||
|
||||
ALTER TABLE t CHANGE b c smallint(5) unsigned , ADD KEY idx_d_a (d, a);
|
||||
SHOW CREATE TABLE t;
|
||||
analyze table t;
|
||||
|
||||
select count(*) from t where d ='2017-09-15';
|
||||
select count(*) from t force index(primary) where d ='2017-09-15';
|
||||
|
||||
DROP TABLE t;
|
||||
|
|
|
@ -298,21 +298,12 @@ SHOW CREATE TABLE t1n;
|
|||
ALTER TABLE t1n ADD INDEX(c2), CHANGE c2 c4 INT, ALGORITHM=INPLACE;
|
||||
--error ER_KEY_COLUMN_DOES_NOT_EXITS
|
||||
ALTER TABLE t1n ADD INDEX(c2), CHANGE c2 c4 INT, ALGORITHM=COPY;
|
||||
# FIXME: MDEV-13668 InnoDB unnecessarily rebuilds table
|
||||
# when renaming a column and adding index
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
|
||||
ALTER TABLE t1n ADD INDEX(c4), CHANGE c2 c4 INT, ALGORITHM=INPLACE;
|
||||
ALTER TABLE t1n CHANGE c2 c4 INT, LOCK=NONE;
|
||||
ALTER TABLE t1n ADD INDEX(c4), LOCK=NONE;
|
||||
SHOW CREATE TABLE t1n;
|
||||
ALTER TABLE t1n DROP INDEX c4;
|
||||
--error ER_DUP_FIELDNAME
|
||||
ALTER TABLE t1n CHANGE c4 c1 INT, ADD INDEX(c1), ALGORITHM=INPLACE;
|
||||
# FIXME: MDEV-13668
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
|
||||
ALTER TABLE t1n CHANGE c4 c11 INT, ADD INDEX(c11), ALGORITHM=INPLACE;
|
||||
ALTER TABLE t1n CHANGE c4 c11 INT, LOCK=NONE;
|
||||
ALTER TABLE t1n ADD INDEX(c11), LOCK=NONE;
|
||||
|
||||
SHOW CREATE TABLE t1n;
|
||||
DROP TABLE t1n;
|
||||
|
@ -488,6 +479,9 @@ eval DROP DATABASE $source_db;
|
|||
eval DROP DATABASE $dest_db;
|
||||
USE test;
|
||||
|
||||
#
|
||||
# End of 10.1 tests
|
||||
#
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-14038 ALTER TABLE does not exit on error with InnoDB + bad default function
|
||||
|
@ -517,3 +511,7 @@ ALTER TABLE t1 ADD b TIME NOT NULL DEFAULT if(unix_timestamp()>1,TIMESTAMP'2001-
|
|||
--disable_info
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# End of 10.2 tests
|
||||
#
|
||||
|
|
|
@ -40,6 +40,11 @@ CONSTRAINT `fk_crewRoleAssigned_pilotId` FOREIGN KEY (`crew_id`) REFERENCES `rep
|
|||
ALTER TABLE `repro`.`crew_role_assigned` COMMENT = 'innodb_read_only';
|
||||
SHOW CREATE TABLE `repro`.`crew_role_assigned`;
|
||||
|
||||
# These should be ignored in innodb_read_only mode.
|
||||
SET GLOBAL innodb_buffer_pool_load_now = ON;
|
||||
SET GLOBAL innodb_buffer_pool_dump_now = ON;
|
||||
SET GLOBAL innodb_buffer_pool_load_abort = ON;
|
||||
|
||||
-- let $restart_parameters=
|
||||
-- source include/restart_mysqld.inc
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
--disable_query_log
|
||||
# These values can change during the test
|
||||
LET $innodb_file_per_table_orig=`select @@innodb_file_per_table`;
|
||||
LET $regexp=/FTS_([0-9a-f_]+)([A-Z0-9_]+)\.ibd/FTS_AUX_\2.ibd/;
|
||||
LET $regexp=/FTS_[0-9a-f_]+([A-Z0-9_]+)\.([islbd]{3})/FTS_AUX_\1.\2/;
|
||||
|
||||
# Set up some variables
|
||||
LET $MYSQL_DATA_DIR = `select @@datadir`;
|
||||
|
@ -447,12 +447,7 @@ ALTER TABLE t1n ADD INDEX(c2), CHANGE c2 c4 INT, ALGORITHM=INPLACE;
|
|||
--error ER_KEY_COLUMN_DOES_NOT_EXITS
|
||||
ALTER TABLE t1n ADD INDEX(c2), CHANGE c2 c4 INT, ALGORITHM=COPY;
|
||||
|
||||
# FIXME: MDEV-13668 InnoDB unnecessarily rebuilds table
|
||||
# when renaming a column and adding index
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
|
||||
ALTER TABLE t1n ADD INDEX(c4), CHANGE c2 c4 INT, ALGORITHM=INPLACE;
|
||||
ALTER TABLE t1n CHANGE c2 c4 INT, LOCK=NONE;
|
||||
ALTER TABLE t1n ADD INDEX(c4), LOCK=NONE;
|
||||
|
||||
--echo ### files in MYSQL_DATA_DIR/test
|
||||
--replace_regex $regexp
|
||||
|
@ -474,11 +469,7 @@ ALTER TABLE t1n DROP INDEX c4;
|
|||
|
||||
--error ER_DUP_FIELDNAME
|
||||
ALTER TABLE t1n CHANGE c4 c1 INT, ADD INDEX(c1), ALGORITHM=INPLACE;
|
||||
# FIXME: MDEV-13668
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
|
||||
ALTER TABLE t1n CHANGE c4 c11 INT, ADD INDEX(c11), ALGORITHM=INPLACE;
|
||||
ALTER TABLE t1n CHANGE c4 c11 INT, LOCK=NONE;
|
||||
ALTER TABLE t1n ADD INDEX(c11), LOCK=NONE;
|
||||
|
||||
--echo ### files in MYSQL_DATA_DIR/test
|
||||
--replace_regex $regexp
|
||||
|
@ -500,18 +491,10 @@ ALTER TABLE t1o MODIFY c1 BIGINT UNSIGNED NOT NULL;
|
|||
--replace_regex $regexp
|
||||
--list_files $MYSQL_TMP_DIR/alt_dir/test
|
||||
|
||||
# FIXME: MDEV-9469 'Incorrect key file' on ALTER TABLE
|
||||
call mtr.add_suppression("Error: no matching column for .FTS_DOC_ID. in index .ct.--temporary-- of table .test...t1o");
|
||||
--error ER_NOT_KEYFILE
|
||||
ALTER TABLE t1o ADD FULLTEXT INDEX(ct),
|
||||
CHANGE c1 FTS_DOC_ID BIGINT UNSIGNED NOT NULL,
|
||||
ALGORITHM=INPLACE;
|
||||
|
||||
--echo # The following would crash 10.2. Re-enable this and test after merge!
|
||||
ALTER TABLE t1o CHANGE c1 FTS_DOC_ID BIGINT UNSIGNED NOT NULL, LOCK=NONE;
|
||||
ALTER TABLE t1o ADD FULLTEXT INDEX(ct), ALGORITHM=INPLACE;
|
||||
# end of MDEV-9469 FIXME
|
||||
|
||||
--echo ### files in MYSQL_DATA_DIR/test
|
||||
--replace_regex $regexp
|
||||
--list_files $MYSQL_DATA_DIR/test
|
||||
|
@ -520,11 +503,9 @@ ALTER TABLE t1o ADD FULLTEXT INDEX(ct), ALGORITHM=INPLACE;
|
|||
--list_files $MYSQL_TMP_DIR/alt_dir/test
|
||||
|
||||
# This would create a hidden FTS_DOC_ID column, which cannot be done online.
|
||||
# FIXME: MDEV-9469 (enable this)
|
||||
#--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
|
||||
#ALTER TABLE t1o CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL,
|
||||
#LOCK=NONE;
|
||||
#end of MDEV-9469 FIXME
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
|
||||
ALTER TABLE t1o CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL,
|
||||
LOCK=NONE;
|
||||
|
||||
# This should not show duplicates.
|
||||
SELECT sc.pos FROM information_schema.innodb_sys_columns sc
|
||||
|
@ -535,7 +516,6 @@ WHERE st.NAME='test/t1o' AND sc.NAME='FTS_DOC_ID';
|
|||
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
|
||||
SHOW CREATE TABLE t1o;
|
||||
|
||||
# FIXME: MDEV-13668
|
||||
ALTER TABLE t1o CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL,
|
||||
DROP INDEX ct, LOCK=NONE;
|
||||
|
||||
|
@ -573,15 +553,9 @@ ALTER TABLE t1o ADD UNIQUE INDEX FTS_DOC_ID_INDEX(foo_id);
|
|||
--replace_regex $regexp
|
||||
--list_files $MYSQL_TMP_DIR/alt_dir/test
|
||||
|
||||
# FIXME: MDEV-9469 'Incorrect key file' on ALTER TABLE
|
||||
--error ER_NOT_KEYFILE
|
||||
ALTER TABLE t1o CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL,
|
||||
ADD FULLTEXT INDEX(ct);
|
||||
|
||||
ALTER TABLE t1o CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL, LOCK=NONE;
|
||||
ALTER TABLE t1o ADD FULLTEXT INDEX(ct), ALGORITHM=INPLACE;
|
||||
#end of MDEV-9469 FIXME
|
||||
|
||||
--echo ### files in MYSQL_DATA_DIR/test
|
||||
--replace_regex $regexp
|
||||
--list_files $MYSQL_DATA_DIR/test
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
--innodb-open-files=13
|
66
mysql-test/suite/innodb/t/table_definition_cache_debug.test
Normal file
66
mysql-test/suite/innodb/t/table_definition_cache_debug.test
Normal file
|
@ -0,0 +1,66 @@
|
|||
--source include/have_innodb.inc
|
||||
--source include/have_debug.inc
|
||||
--source include/have_debug_sync.inc
|
||||
|
||||
SET @save_tdc= @@GLOBAL.table_definition_cache;
|
||||
SET @save_toc= @@GLOBAL.table_open_cache;
|
||||
|
||||
# InnoDB plugin essentially ignores table_definition_cache size
|
||||
# and hard-wires it to 400, which also is the minimum allowed value.
|
||||
SET GLOBAL table_definition_cache= 400;
|
||||
SET GLOBAL table_open_cache= 1024;
|
||||
|
||||
CREATE TABLE to_be_evicted(a INT PRIMARY KEY, b INT NOT NULL) ENGINE=InnoDB;
|
||||
INSERT INTO to_be_evicted VALUES(1,2),(2,1);
|
||||
|
||||
connect(ddl,localhost,root,,);
|
||||
SET DEBUG_SYNC = 'row_log_apply_before SIGNAL scanned WAIT_FOR got_duplicate';
|
||||
--send
|
||||
ALTER TABLE to_be_evicted ADD UNIQUE INDEX(b);
|
||||
|
||||
connection default;
|
||||
SET DEBUG_SYNC = 'now WAIT_FOR scanned';
|
||||
|
||||
# During the ADD UNIQUE INDEX, start a transaction that inserts a duplicate
|
||||
# and then hogs the table lock, so that the unique index cannot be dropped.
|
||||
BEGIN;
|
||||
INSERT INTO to_be_evicted VALUES(3, 2);
|
||||
SET DEBUG_SYNC = 'now SIGNAL got_duplicate';
|
||||
|
||||
connection ddl;
|
||||
--error ER_DUP_ENTRY
|
||||
reap;
|
||||
|
||||
disconnect ddl;
|
||||
connection default;
|
||||
# Release the table lock.
|
||||
COMMIT;
|
||||
SET DEBUG_SYNC = RESET;
|
||||
|
||||
# Allow cache eviction.
|
||||
FLUSH TABLES;
|
||||
--disable_query_log
|
||||
|
||||
# Pollute the cache with many tables, so that our table will be evicted.
|
||||
let $N=1000;
|
||||
let $loop=$N;
|
||||
while ($loop)
|
||||
{
|
||||
eval CREATE TABLE t_$loop(id INT)ENGINE=InnoDB;
|
||||
dec $loop;
|
||||
}
|
||||
|
||||
# Hopefully let InnoDB evict the tables.
|
||||
sleep 10;
|
||||
|
||||
let $loop=$N;
|
||||
while ($loop)
|
||||
{
|
||||
eval DROP TABLE t_$loop;
|
||||
dec $loop;
|
||||
}
|
||||
|
||||
SET GLOBAL table_definition_cache= @save_tdc;
|
||||
SET GLOBAL table_open_cache= @save_toc;
|
||||
|
||||
DROP TABLE to_be_evicted;
|
11
mysql-test/suite/innodb_fts/r/concurrent_insert.result
Normal file
11
mysql-test/suite/innodb_fts/r/concurrent_insert.result
Normal file
|
@ -0,0 +1,11 @@
|
|||
CREATE TABLE t1(a VARCHAR(5),FULLTEXT KEY(a)) ENGINE=InnoDB;
|
||||
SET DEBUG_SYNC = 'get_next_FTS_DOC_ID SIGNAL prepared WAIT_FOR race';
|
||||
REPLACE INTO t1(a) values('aaa');
|
||||
connect dml, localhost, root, ,;
|
||||
SET DEBUG_SYNC = 'now WAIT_FOR prepared';
|
||||
REPLACE INTO t1(a) VALUES('aaa');
|
||||
SET DEBUG_SYNC = 'now SIGNAL race';
|
||||
disconnect dml;
|
||||
connection default;
|
||||
SET DEBUG_SYNC = 'RESET';
|
||||
DROP TABLE t1;
|
|
@ -1,4 +1,3 @@
|
|||
drop table if exists t1,t2,t3;
|
||||
CREATE TABLE t1 (a VARCHAR(200), b TEXT, FULLTEXT (a,b)) ENGINE = InnoDB;
|
||||
INSERT INTO t1 VALUES('MySQL has now support', 'for full-text search'),
|
||||
('Full-text indexes', 'are called collections'),
|
||||
|
@ -637,3 +636,58 @@ EXECUTE stmt;
|
|||
DEALLOCATE PREPARE stmt;
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests
|
||||
CREATE TABLE z(a INTEGER) engine=innodb;
|
||||
CREATE TABLE q(b TEXT CHARSET latin1, fulltext(b)) engine=innodb;
|
||||
EXPLAIN SELECT 1 FROM q WHERE (SELECT MATCH(b) AGAINST ('*') FROM z);
|
||||
ERROR 42000: syntax error, unexpected $end, expecting FTS_TERM or FTS_NUMB or '*'
|
||||
SELECT 1 FROM q WHERE (SELECT MATCH(b) AGAINST ('*') FROM z);
|
||||
ERROR 42000: syntax error, unexpected $end, expecting FTS_TERM or FTS_NUMB or '*'
|
||||
EXPLAIN SELECT MATCH(b) AGAINST ('*') FROM z;
|
||||
ERROR 42S22: Unknown column 'b' in 'field list'
|
||||
SELECT MATCH(b) AGAINST ('*') FROM z;
|
||||
ERROR 42S22: Unknown column 'b' in 'field list'
|
||||
EXPLAIN SELECT MATCH(a) AGAINST ('*') FROM z;
|
||||
ERROR HY000: Can't find FULLTEXT index matching the column list
|
||||
SELECT MATCH(a) AGAINST ('*') FROM z;
|
||||
ERROR HY000: Can't find FULLTEXT index matching the column list
|
||||
EXPLAIN SELECT MATCH(b) AGAINST ('*') FROM q;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE q ALL NULL NULL NULL NULL 1
|
||||
SELECT MATCH(b) AGAINST ('*') FROM q;
|
||||
ERROR 42000: syntax error, unexpected $end, expecting FTS_TERM or FTS_NUMB or '*'
|
||||
DROP TABLE z, q;
|
||||
create table t (
|
||||
FTS_DOC_ID BIGINT UNSIGNED PRIMARY KEY, t TEXT, FULLTEXT KEY (t)
|
||||
) ENGINE=InnoDB;
|
||||
INSERT INTO t values (1, 'foo bar'), (2, 'foo bar'), (3, 'foo');
|
||||
SELECT * FROM t WHERE MATCH(t) AGAINST ('foo bar' IN BOOLEAN MODE)
|
||||
LIMIT 0;
|
||||
FTS_DOC_ID t
|
||||
SELECT * FROM t WHERE MATCH(t) AGAINST ('foo bar' IN BOOLEAN MODE)
|
||||
LIMIT 1;
|
||||
FTS_DOC_ID t
|
||||
1 foo bar
|
||||
SELECT * FROM t WHERE MATCH(t) AGAINST ('foo bar' IN BOOLEAN MODE)
|
||||
LIMIT 2;
|
||||
FTS_DOC_ID t
|
||||
1 foo bar
|
||||
2 foo bar
|
||||
SELECT * FROM t WHERE MATCH(t) AGAINST ('foo bar' IN BOOLEAN MODE)
|
||||
LIMIT 3;
|
||||
FTS_DOC_ID t
|
||||
1 foo bar
|
||||
2 foo bar
|
||||
3 foo
|
||||
SELECT * FROM t WHERE MATCH(t) AGAINST ('foo bar' IN BOOLEAN MODE)
|
||||
LIMIT 4;
|
||||
FTS_DOC_ID t
|
||||
1 foo bar
|
||||
2 foo bar
|
||||
3 foo
|
||||
SELECT * FROM t WHERE MATCH(t) AGAINST ('foo bar' IN BOOLEAN MODE)
|
||||
LIMIT 5;
|
||||
FTS_DOC_ID t
|
||||
1 foo bar
|
||||
2 foo bar
|
||||
3 foo
|
||||
DROP TABLE t;
|
||||
|
|
20
mysql-test/suite/innodb_fts/t/concurrent_insert.test
Normal file
20
mysql-test/suite/innodb_fts/t/concurrent_insert.test
Normal file
|
@ -0,0 +1,20 @@
|
|||
--source include/have_innodb.inc
|
||||
--source include/have_debug.inc
|
||||
--source include/have_debug_sync.inc
|
||||
|
||||
CREATE TABLE t1(a VARCHAR(5),FULLTEXT KEY(a)) ENGINE=InnoDB;
|
||||
SET DEBUG_SYNC = 'get_next_FTS_DOC_ID SIGNAL prepared WAIT_FOR race';
|
||||
--send
|
||||
REPLACE INTO t1(a) values('aaa');
|
||||
|
||||
connect(dml, localhost, root, ,);
|
||||
SET DEBUG_SYNC = 'now WAIT_FOR prepared';
|
||||
REPLACE INTO t1(a) VALUES('aaa');
|
||||
SET DEBUG_SYNC = 'now SIGNAL race';
|
||||
disconnect dml;
|
||||
|
||||
connection default;
|
||||
reap;
|
||||
SET DEBUG_SYNC = 'RESET';
|
||||
|
||||
DROP TABLE t1;
|
|
@ -4,10 +4,6 @@
|
|||
|
||||
--source include/have_innodb.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2,t3;
|
||||
--enable_warnings
|
||||
|
||||
CREATE TABLE t1 (a VARCHAR(200), b TEXT, FULLTEXT (a,b)) ENGINE = InnoDB;
|
||||
INSERT INTO t1 VALUES('MySQL has now support', 'for full-text search'),
|
||||
('Full-text indexes', 'are called collections'),
|
||||
|
@ -679,3 +675,45 @@ DEALLOCATE PREPARE stmt;
|
|||
DROP TABLE t1;
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
||||
# This is an adapted and extended version of an Oracle test for
|
||||
# Bug#21140111: Explain ... match against: Assertion failed: ret ...
|
||||
# No bug was repeatable for MariaDB.
|
||||
|
||||
CREATE TABLE z(a INTEGER) engine=innodb;
|
||||
CREATE TABLE q(b TEXT CHARSET latin1, fulltext(b)) engine=innodb;
|
||||
|
||||
--error ER_PARSE_ERROR
|
||||
EXPLAIN SELECT 1 FROM q WHERE (SELECT MATCH(b) AGAINST ('*') FROM z);
|
||||
--error ER_PARSE_ERROR
|
||||
SELECT 1 FROM q WHERE (SELECT MATCH(b) AGAINST ('*') FROM z);
|
||||
--error ER_BAD_FIELD_ERROR
|
||||
EXPLAIN SELECT MATCH(b) AGAINST ('*') FROM z;
|
||||
--error ER_BAD_FIELD_ERROR
|
||||
SELECT MATCH(b) AGAINST ('*') FROM z;
|
||||
--error ER_FT_MATCHING_KEY_NOT_FOUND
|
||||
EXPLAIN SELECT MATCH(a) AGAINST ('*') FROM z;
|
||||
--error ER_FT_MATCHING_KEY_NOT_FOUND
|
||||
SELECT MATCH(a) AGAINST ('*') FROM z;
|
||||
EXPLAIN SELECT MATCH(b) AGAINST ('*') FROM q;
|
||||
--error ER_PARSE_ERROR
|
||||
SELECT MATCH(b) AGAINST ('*') FROM q;
|
||||
|
||||
DROP TABLE z, q;
|
||||
|
||||
create table t (
|
||||
FTS_DOC_ID BIGINT UNSIGNED PRIMARY KEY, t TEXT, FULLTEXT KEY (t)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
INSERT INTO t values (1, 'foo bar'), (2, 'foo bar'), (3, 'foo');
|
||||
let $limit=0;
|
||||
let $N=6;
|
||||
while ($N)
|
||||
{
|
||||
eval SELECT * FROM t WHERE MATCH(t) AGAINST ('foo bar' IN BOOLEAN MODE)
|
||||
LIMIT $limit;
|
||||
inc $limit;
|
||||
dec $N;
|
||||
}
|
||||
|
||||
DROP TABLE t;
|
||||
|
|
|
@ -211,18 +211,18 @@ test/t7_restart#p#p1#sp#s2 test/t7_restart#p#p1#sp#s2 97 8 Dynamic 0 Single
|
|||
test/t7_restart#p#p1#sp#s3 test/t7_restart#p#p1#sp#s3 97 8 Dynamic 0 Single
|
||||
=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
|
||||
Space_Name Space_Type Page_Size Zip_Size Formats_Permitted Path
|
||||
test/t1_restart Single DEFAULT 0 Compact or Redundant MYSQLD_DATADIR/test/t1_restart.ibd
|
||||
test/t2_restart Single DEFAULT 0 Compact or Redundant MYSQLD_DATADIR/test/t2_restart.ibd
|
||||
test/t1_restart Single DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t1_restart.ibd
|
||||
test/t2_restart Single DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t2_restart.ibd
|
||||
test/t3_restart Single DEFAULT 2048 Compressed MYSQLD_DATADIR/test/t3_restart.ibd
|
||||
test/t4_restart Single DEFAULT 0 Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
|
||||
test/t5_restart Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
|
||||
test/t6_restart#p#p0 Single DEFAULT 2048 Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
|
||||
test/t6_restart#p#p1 Single DEFAULT 2048 Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
|
||||
test/t6_restart#p#p2 Single DEFAULT 2048 Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
|
||||
test/t7_restart#p#p0#sp#s0 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
|
||||
test/t7_restart#p#p0#sp#s1 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
|
||||
test/t7_restart#p#p1#sp#s2 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
|
||||
test/t7_restart#p#p1#sp#s3 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
|
||||
test/t4_restart Single DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
|
||||
test/t5_restart Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
|
||||
test/t6_restart#p#p0 Single DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
|
||||
test/t6_restart#p#p1 Single DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
|
||||
test/t6_restart#p#p2 Single DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
|
||||
test/t7_restart#p#p0#sp#s0 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
|
||||
test/t7_restart#p#p0#sp#s1 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
|
||||
test/t7_restart#p#p1#sp#s2 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
|
||||
test/t7_restart#p#p1#sp#s3 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
|
||||
#
|
||||
# Shutdown the server and list the tablespace OS files
|
||||
#
|
||||
|
@ -394,18 +394,18 @@ test/t7_restart#p#p1#sp#s2 test/t7_restart#p#p1#sp#s2 97 8 Dynamic 0 Single
|
|||
test/t7_restart#p#p1#sp#s3 test/t7_restart#p#p1#sp#s3 97 8 Dynamic 0 Single
|
||||
=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
|
||||
Space_Name Space_Type Page_Size Zip_Size Formats_Permitted Path
|
||||
test/t1_restart Single DEFAULT 0 Compact or Redundant MYSQLD_DATADIR/test/t1_restart.ibd
|
||||
test/t2_restart Single DEFAULT 0 Compact or Redundant MYSQLD_DATADIR/test/t2_restart.ibd
|
||||
test/t1_restart Single DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t1_restart.ibd
|
||||
test/t2_restart Single DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t2_restart.ibd
|
||||
test/t3_restart Single DEFAULT 2048 Compressed MYSQLD_DATADIR/test/t3_restart.ibd
|
||||
test/t4_restart Single DEFAULT 0 Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
|
||||
test/t5_restart Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
|
||||
test/t6_restart#p#p0 Single DEFAULT 2048 Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
|
||||
test/t6_restart#p#p1 Single DEFAULT 2048 Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
|
||||
test/t6_restart#p#p2 Single DEFAULT 2048 Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
|
||||
test/t7_restart#p#p0#sp#s0 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
|
||||
test/t7_restart#p#p0#sp#s1 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
|
||||
test/t7_restart#p#p1#sp#s2 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
|
||||
test/t7_restart#p#p1#sp#s3 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
|
||||
test/t4_restart Single DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
|
||||
test/t5_restart Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
|
||||
test/t6_restart#p#p0 Single DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
|
||||
test/t6_restart#p#p1 Single DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
|
||||
test/t6_restart#p#p2 Single DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
|
||||
test/t7_restart#p#p0#sp#s0 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
|
||||
test/t7_restart#p#p0#sp#s1 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
|
||||
test/t7_restart#p#p1#sp#s2 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
|
||||
test/t7_restart#p#p1#sp#s3 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
|
||||
DROP TABLE t1_restart;
|
||||
DROP TABLE t2_restart;
|
||||
DROP TABLE t3_restart;
|
||||
|
@ -417,15 +417,15 @@ ALTER TABLE t6_restart TRUNCATE PARTITION p2;
|
|||
ALTER TABLE t7_restart TRUNCATE PARTITION p1;
|
||||
=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
|
||||
Space_Name Space_Type Page_Size Zip_Size Formats_Permitted Path
|
||||
test/t4_restart Single DEFAULT 0 Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
|
||||
test/t5_restart Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
|
||||
test/t6_restart#p#p0 Single DEFAULT 2048 Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
|
||||
test/t6_restart#p#p1 Single DEFAULT 2048 Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
|
||||
test/t6_restart#p#p2 Single DEFAULT 2048 Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
|
||||
test/t7_restart#p#p0#sp#s0 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
|
||||
test/t7_restart#p#p0#sp#s1 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
|
||||
test/t7_restart#p#p1#sp#s2 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
|
||||
test/t7_restart#p#p1#sp#s3 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
|
||||
test/t4_restart Single DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
|
||||
test/t5_restart Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
|
||||
test/t6_restart#p#p0 Single DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
|
||||
test/t6_restart#p#p1 Single DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
|
||||
test/t6_restart#p#p2 Single DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
|
||||
test/t7_restart#p#p0#sp#s0 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
|
||||
test/t7_restart#p#p0#sp#s1 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
|
||||
test/t7_restart#p#p1#sp#s2 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
|
||||
test/t7_restart#p#p1#sp#s3 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
|
||||
INSERT INTO t5_restart VALUES (1000000000, 'MySQL', 'InnoDB', '2011-11-11', 'Read this after reboot');
|
||||
INSERT INTO t5_restart (SELECT 0, c2, c3, c4, c5 FROM t5_restart);
|
||||
INSERT INTO t5_restart (SELECT 0, c2, c3, c4, c5 FROM t5_restart);
|
||||
|
@ -520,15 +520,15 @@ Variable_name Value
|
|||
innodb_file_per_table ON
|
||||
=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
|
||||
Space_Name Space_Type Page_Size Zip_Size Formats_Permitted Path
|
||||
test/t4_restart Single DEFAULT 0 Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
|
||||
test/t5_restart Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
|
||||
test/t6_restart#p#p0 Single DEFAULT 2048 Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
|
||||
test/t6_restart#p#p1 Single DEFAULT 2048 Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
|
||||
test/t6_restart#p#p2 Single DEFAULT 2048 Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
|
||||
test/t7_restart#p#p0#sp#s0 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
|
||||
test/t7_restart#p#p0#sp#s1 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
|
||||
test/t7_restart#p#p1#sp#s2 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
|
||||
test/t7_restart#p#p1#sp#s3 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
|
||||
test/t4_restart Single DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
|
||||
test/t5_restart Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
|
||||
test/t6_restart#p#p0 Single DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
|
||||
test/t6_restart#p#p1 Single DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
|
||||
test/t6_restart#p#p2 Single DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
|
||||
test/t7_restart#p#p0#sp#s0 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
|
||||
test/t7_restart#p#p0#sp#s1 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
|
||||
test/t7_restart#p#p1#sp#s2 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
|
||||
test/t7_restart#p#p1#sp#s3 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
|
||||
SELECT count(*) FROM t5_restart;
|
||||
count(*)
|
||||
8
|
||||
|
@ -620,15 +620,15 @@ RENAME TABLE t6_restart TO t66_restart;
|
|||
RENAME TABLE t7_restart TO t77_restart;
|
||||
=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
|
||||
Space_Name Space_Type Page_Size Zip_Size Formats_Permitted Path
|
||||
test/t4_restart Single DEFAULT 0 Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
|
||||
test/t55_restart Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t55_restart.ibd
|
||||
test/t66_restart#p#p0 Single DEFAULT 2048 Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p0.ibd
|
||||
test/t66_restart#p#p1 Single DEFAULT 2048 Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p1.ibd
|
||||
test/t66_restart#p#p2 Single DEFAULT 2048 Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p2.ibd
|
||||
test/t77_restart#p#p0#sp#s0 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s0.ibd
|
||||
test/t77_restart#p#p0#sp#s1 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s1.ibd
|
||||
test/t77_restart#p#p1#sp#s2 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s2.ibd
|
||||
test/t77_restart#p#p1#sp#s3 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s3.ibd
|
||||
test/t4_restart Single DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
|
||||
test/t55_restart Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t55_restart.ibd
|
||||
test/t66_restart#p#p0 Single DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p0.ibd
|
||||
test/t66_restart#p#p1 Single DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p1.ibd
|
||||
test/t66_restart#p#p2 Single DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p2.ibd
|
||||
test/t77_restart#p#p0#sp#s0 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s0.ibd
|
||||
test/t77_restart#p#p0#sp#s1 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s1.ibd
|
||||
test/t77_restart#p#p1#sp#s2 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s2.ibd
|
||||
test/t77_restart#p#p1#sp#s3 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s3.ibd
|
||||
INSERT INTO t55_restart (SELECT 0, c2, c3, c4, c5 FROM t55_restart);
|
||||
SELECT count(*) FROM t55_restart;
|
||||
count(*)
|
||||
|
@ -716,15 +716,15 @@ Variable_name Value
|
|||
innodb_file_per_table ON
|
||||
=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
|
||||
Space_Name Space_Type Page_Size Zip_Size Formats_Permitted Path
|
||||
test/t4_restart Single DEFAULT 0 Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
|
||||
test/t55_restart Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t55_restart.ibd
|
||||
test/t66_restart#p#p0 Single DEFAULT 2048 Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p0.ibd
|
||||
test/t66_restart#p#p1 Single DEFAULT 2048 Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p1.ibd
|
||||
test/t66_restart#p#p2 Single DEFAULT 2048 Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p2.ibd
|
||||
test/t77_restart#p#p0#sp#s0 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s0.ibd
|
||||
test/t77_restart#p#p0#sp#s1 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s1.ibd
|
||||
test/t77_restart#p#p1#sp#s2 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s2.ibd
|
||||
test/t77_restart#p#p1#sp#s3 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s3.ibd
|
||||
test/t4_restart Single DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
|
||||
test/t55_restart Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t55_restart.ibd
|
||||
test/t66_restart#p#p0 Single DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p0.ibd
|
||||
test/t66_restart#p#p1 Single DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p1.ibd
|
||||
test/t66_restart#p#p2 Single DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p2.ibd
|
||||
test/t77_restart#p#p0#sp#s0 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s0.ibd
|
||||
test/t77_restart#p#p0#sp#s1 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s1.ibd
|
||||
test/t77_restart#p#p1#sp#s2 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s2.ibd
|
||||
test/t77_restart#p#p1#sp#s3 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s3.ibd
|
||||
INSERT INTO t55_restart (SELECT 0, c2, c3, c4, c5 FROM t55_restart);
|
||||
SELECT count(*) FROM t55_restart;
|
||||
count(*)
|
||||
|
@ -847,15 +847,15 @@ t77_restart#p#p1#sp#s3.ibd
|
|||
#
|
||||
=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
|
||||
Space_Name Space_Type Page_Size Zip_Size Formats_Permitted Path
|
||||
test/t4_restart Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/new_dir/test/t4_restart.ibd
|
||||
test/t55_restart Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/new_dir/test/t55_restart.ibd
|
||||
test/t66_restart#p#p0 Single DEFAULT 2048 Compressed MYSQL_TMP_DIR/new_dir/test/t66_restart#p#p0.ibd
|
||||
test/t66_restart#p#p1 Single DEFAULT 2048 Compressed MYSQL_TMP_DIR/new_dir/test/t66_restart#p#p1.ibd
|
||||
test/t66_restart#p#p2 Single DEFAULT 2048 Compressed MYSQL_TMP_DIR/new_dir/test/t66_restart#p#p2.ibd
|
||||
test/t77_restart#p#p0#sp#s0 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p0#sp#s0.ibd
|
||||
test/t77_restart#p#p0#sp#s1 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p0#sp#s1.ibd
|
||||
test/t77_restart#p#p1#sp#s2 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p1#sp#s2.ibd
|
||||
test/t77_restart#p#p1#sp#s3 Single DEFAULT 0 Dynamic MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p1#sp#s3.ibd
|
||||
test/t4_restart Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t4_restart.ibd
|
||||
test/t55_restart Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t55_restart.ibd
|
||||
test/t66_restart#p#p0 Single DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/new_dir/test/t66_restart#p#p0.ibd
|
||||
test/t66_restart#p#p1 Single DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/new_dir/test/t66_restart#p#p1.ibd
|
||||
test/t66_restart#p#p2 Single DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/new_dir/test/t66_restart#p#p2.ibd
|
||||
test/t77_restart#p#p0#sp#s0 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p0#sp#s0.ibd
|
||||
test/t77_restart#p#p0#sp#s1 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p0#sp#s1.ibd
|
||||
test/t77_restart#p#p1#sp#s2 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p1#sp#s2.ibd
|
||||
test/t77_restart#p#p1#sp#s3 Single DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p1#sp#s3.ibd
|
||||
INSERT INTO t4_restart (SELECT 0, c2, c3, c4, c5 FROM t4_restart);
|
||||
SELECT count(*) FROM t4_restart;
|
||||
count(*)
|
||||
|
@ -982,15 +982,15 @@ t77_restart.par
|
|||
#
|
||||
=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
|
||||
Space_Name Space_Type Page_Size Zip_Size Formats_Permitted Path
|
||||
test/t4_restart Single DEFAULT 0 Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
|
||||
test/t55_restart Single DEFAULT 0 Dynamic MYSQLD_DATADIR/test/t55_restart.ibd
|
||||
test/t66_restart#p#p0 Single DEFAULT 2048 Compressed MYSQLD_DATADIR/test/t66_restart#p#p0.ibd
|
||||
test/t66_restart#p#p1 Single DEFAULT 2048 Compressed MYSQLD_DATADIR/test/t66_restart#p#p1.ibd
|
||||
test/t66_restart#p#p2 Single DEFAULT 2048 Compressed MYSQLD_DATADIR/test/t66_restart#p#p2.ibd
|
||||
test/t77_restart#p#p0#sp#s0 Single DEFAULT 0 Dynamic MYSQLD_DATADIR/test/t77_restart#p#p0#sp#s0.ibd
|
||||
test/t77_restart#p#p0#sp#s1 Single DEFAULT 0 Dynamic MYSQLD_DATADIR/test/t77_restart#p#p0#sp#s1.ibd
|
||||
test/t77_restart#p#p1#sp#s2 Single DEFAULT 0 Dynamic MYSQLD_DATADIR/test/t77_restart#p#p1#sp#s2.ibd
|
||||
test/t77_restart#p#p1#sp#s3 Single DEFAULT 0 Dynamic MYSQLD_DATADIR/test/t77_restart#p#p1#sp#s3.ibd
|
||||
test/t4_restart Single DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
|
||||
test/t55_restart Single DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t55_restart.ibd
|
||||
test/t66_restart#p#p0 Single DEFAULT DEFAULT Compressed MYSQLD_DATADIR/test/t66_restart#p#p0.ibd
|
||||
test/t66_restart#p#p1 Single DEFAULT DEFAULT Compressed MYSQLD_DATADIR/test/t66_restart#p#p1.ibd
|
||||
test/t66_restart#p#p2 Single DEFAULT DEFAULT Compressed MYSQLD_DATADIR/test/t66_restart#p#p2.ibd
|
||||
test/t77_restart#p#p0#sp#s0 Single DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t77_restart#p#p0#sp#s0.ibd
|
||||
test/t77_restart#p#p0#sp#s1 Single DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t77_restart#p#p0#sp#s1.ibd
|
||||
test/t77_restart#p#p1#sp#s2 Single DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t77_restart#p#p1#sp#s2.ibd
|
||||
test/t77_restart#p#p1#sp#s3 Single DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t77_restart#p#p1#sp#s3.ibd
|
||||
INSERT INTO t4_restart (SELECT 0, c2, c3, c4, c5 FROM t4_restart);
|
||||
SELECT count(*) FROM t4_restart;
|
||||
count(*)
|
||||
|
|
|
@ -1607,8 +1607,16 @@ t1 CREATE TABLE `t1` (
|
|||
`v` mediumtext CHARACTER SET utf8 DEFAULT NULL
|
||||
) ENGINE=Aria DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0
|
||||
drop table t1;
|
||||
set statement sql_mode='' for
|
||||
create table t1 (v varchar(65535));
|
||||
ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
|
||||
Warnings:
|
||||
Note 1246 Converting column 'v' from VARCHAR to TEXT
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`v` text DEFAULT NULL
|
||||
) ENGINE=Aria DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0
|
||||
drop table t1;
|
||||
set @save_concurrent_insert=@@concurrent_insert;
|
||||
set global concurrent_insert=1;
|
||||
create table t1 (a int) ROW_FORMAT=FIXED;
|
||||
|
|
|
@ -931,8 +931,10 @@ show create table t1;
|
|||
drop table t1;
|
||||
|
||||
# ARIA specific varchar tests
|
||||
--error 1118
|
||||
set statement sql_mode='' for
|
||||
create table t1 (v varchar(65535));
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Test concurrent insert
|
||||
|
|
18
mysql-test/suite/parts/r/partition_alter_maria.result
Normal file
18
mysql-test/suite/parts/r/partition_alter_maria.result
Normal file
|
@ -0,0 +1,18 @@
|
|||
create table t1 (
|
||||
pk bigint not null auto_increment,
|
||||
dt datetime default null,
|
||||
unique (pk, dt)
|
||||
) engine=aria row_format=dynamic
|
||||
partition by range columns(dt) (
|
||||
partition `p20171231` values less than ('2017-12-31'),
|
||||
partition `p20181231` values less than ('2018-12-31')
|
||||
);
|
||||
insert into t1 values (1,'2017-09-28 15:12:00');
|
||||
select * from t1;
|
||||
pk dt
|
||||
1 2017-09-28 15:12:00
|
||||
alter table t1 drop partition p20181231;
|
||||
select * from t1;
|
||||
pk dt
|
||||
1 2017-09-28 15:12:00
|
||||
drop table t1;
|
18
mysql-test/suite/parts/t/partition_alter_maria.test
Normal file
18
mysql-test/suite/parts/t/partition_alter_maria.test
Normal file
|
@ -0,0 +1,18 @@
|
|||
#
|
||||
# MDEV-13937 Aria engine: Internal Error 160 after partition handling
|
||||
#
|
||||
source include/have_partition.inc;
|
||||
create table t1 (
|
||||
pk bigint not null auto_increment,
|
||||
dt datetime default null,
|
||||
unique (pk, dt)
|
||||
) engine=aria row_format=dynamic
|
||||
partition by range columns(dt) (
|
||||
partition `p20171231` values less than ('2017-12-31'),
|
||||
partition `p20181231` values less than ('2018-12-31')
|
||||
);
|
||||
insert into t1 values (1,'2017-09-28 15:12:00');
|
||||
select * from t1;
|
||||
alter table t1 drop partition p20181231;
|
||||
select * from t1;
|
||||
drop table t1;
|
|
@ -630,3 +630,122 @@ show grants for utest;
|
|||
Grants for utest
|
||||
GRANT SELECT ON *.* TO 'utest'
|
||||
drop role utest;
|
||||
#
|
||||
# MDEV-13676: Field "create Procedure" is NULL, even if the the user
|
||||
# has role which is the definer. (SHOW CREATE PROCEDURE)
|
||||
#
|
||||
create database rtest;
|
||||
create role r1;
|
||||
create role r2;
|
||||
create role r3;
|
||||
grant all privileges on rtest.* to r1;
|
||||
create user user1;
|
||||
grant r1 to user1;
|
||||
grant r1 to r2;
|
||||
grant r2 to user1;
|
||||
grant r3 to user1;
|
||||
connect user1, localhost,user1,,,,,;
|
||||
set role r2;
|
||||
use rtest;
|
||||
CREATE DEFINER=current_role() PROCEDURE user1_proc() SQL SECURITY INVOKER
|
||||
BEGIN
|
||||
SELECT NOW(), VERSION();
|
||||
END;//
|
||||
set role r2;
|
||||
show create procedure user1_proc;
|
||||
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
|
||||
user1_proc STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`r2` PROCEDURE `user1_proc`()
|
||||
SQL SECURITY INVOKER
|
||||
BEGIN
|
||||
SELECT NOW(), VERSION();
|
||||
END latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
#
|
||||
# Currently one can not use as definer any role except CURRENT_ROLE
|
||||
#
|
||||
CREATE DEFINER='r1' PROCEDURE user1_proc2() SQL SECURITY INVOKER
|
||||
BEGIN
|
||||
SELECT NOW(), VERSION();
|
||||
END;//
|
||||
ERROR 42000: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
|
||||
set role r1;
|
||||
CREATE DEFINER='r1' PROCEDURE user1_proc2() SQL SECURITY INVOKER
|
||||
BEGIN
|
||||
SELECT NOW(), VERSION();
|
||||
END;//
|
||||
show create procedure user1_proc2;
|
||||
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
|
||||
user1_proc2 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`r1` PROCEDURE `user1_proc2`()
|
||||
SQL SECURITY INVOKER
|
||||
BEGIN
|
||||
SELECT NOW(), VERSION();
|
||||
END latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
#
|
||||
# Test to see if the user can still see the procedure code if the
|
||||
# role that owns it is granted to him indirectly.
|
||||
#
|
||||
set role r2;
|
||||
show create procedure user1_proc2;
|
||||
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
|
||||
user1_proc2 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`r1` PROCEDURE `user1_proc2`()
|
||||
SQL SECURITY INVOKER
|
||||
BEGIN
|
||||
SELECT NOW(), VERSION();
|
||||
END latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
#
|
||||
# One should not be able to see the procedure code if the role that owns
|
||||
# the procedure is not set by the user or is not in the subgraph of the
|
||||
# currently active role.
|
||||
#
|
||||
set role r3;
|
||||
show create procedure user1_proc2;
|
||||
ERROR 42000: PROCEDURE user1_proc2 does not exist
|
||||
connection default;
|
||||
use rtest;
|
||||
#
|
||||
# Try a few edge cases, with usernames identical to role name;
|
||||
#
|
||||
create user user_like_role;
|
||||
create user foo;
|
||||
create role user_like_role;
|
||||
grant select on rtest.* to user_like_role;
|
||||
grant select on rtest.* to foo;
|
||||
grant select on rtest.* to user_like_role@'%';
|
||||
grant user_like_role to foo;
|
||||
#
|
||||
# Here we have a procedure that is owned by user_like_role USER
|
||||
# We don't want user_like_role ROLE to have access to its code.
|
||||
#
|
||||
CREATE DEFINER=`user_like_role`@`%` PROCEDURE sensitive_proc() SQL SECURITY INVOKER
|
||||
BEGIN
|
||||
SELECT NOW(), VERSION();
|
||||
END;//
|
||||
connect user_like_role, localhost, user_like_role,,,,,;
|
||||
use rtest;
|
||||
show create procedure sensitive_proc;
|
||||
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
|
||||
sensitive_proc STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`user_like_role`@`%` PROCEDURE `sensitive_proc`()
|
||||
SQL SECURITY INVOKER
|
||||
BEGIN
|
||||
SELECT NOW(), VERSION();
|
||||
END latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
connect foo, localhost, foo,,,,,;
|
||||
set role user_like_role;
|
||||
use rtest;
|
||||
#
|
||||
# Foo has the set rolename identical to the procedure's definer's username.
|
||||
# Foo should not have access to this procedure.
|
||||
#
|
||||
show create procedure sensitive_proc;
|
||||
ERROR 42000: PROCEDURE sensitive_proc does not exist
|
||||
connection default;
|
||||
drop role r1;
|
||||
drop role r2;
|
||||
drop role r3;
|
||||
drop role user_like_role;
|
||||
drop user user1;
|
||||
drop user foo;
|
||||
drop user user_like_role;
|
||||
drop procedure user1_proc;
|
||||
drop procedure user1_proc2;
|
||||
drop procedure sensitive_proc;
|
||||
drop database rtest;
|
||||
|
|
|
@ -336,3 +336,125 @@ execute stmt1;
|
|||
show grants for utest;
|
||||
drop role utest;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-13676: Field "create Procedure" is NULL, even if the the user
|
||||
--echo # has role which is the definer. (SHOW CREATE PROCEDURE)
|
||||
--echo #
|
||||
|
||||
create database rtest;
|
||||
create role r1;
|
||||
create role r2;
|
||||
create role r3;
|
||||
grant all privileges on rtest.* to r1;
|
||||
|
||||
create user user1;
|
||||
grant r1 to user1;
|
||||
grant r1 to r2;
|
||||
grant r2 to user1;
|
||||
grant r3 to user1;
|
||||
|
||||
connect (user1, localhost,user1,,,,,);
|
||||
set role r2;
|
||||
use rtest;
|
||||
|
||||
DELIMITER //;
|
||||
CREATE DEFINER=current_role() PROCEDURE user1_proc() SQL SECURITY INVOKER
|
||||
BEGIN
|
||||
SELECT NOW(), VERSION();
|
||||
END;//
|
||||
DELIMITER ;//
|
||||
|
||||
set role r2;
|
||||
show create procedure user1_proc;
|
||||
|
||||
--echo #
|
||||
--echo # Currently one can not use as definer any role except CURRENT_ROLE
|
||||
--echo #
|
||||
DELIMITER //;
|
||||
--error ER_SPECIFIC_ACCESS_DENIED_ERROR
|
||||
CREATE DEFINER='r1' PROCEDURE user1_proc2() SQL SECURITY INVOKER
|
||||
BEGIN
|
||||
SELECT NOW(), VERSION();
|
||||
END;//
|
||||
DELIMITER ;//
|
||||
|
||||
set role r1;
|
||||
DELIMITER //;
|
||||
CREATE DEFINER='r1' PROCEDURE user1_proc2() SQL SECURITY INVOKER
|
||||
BEGIN
|
||||
SELECT NOW(), VERSION();
|
||||
END;//
|
||||
DELIMITER ;//
|
||||
|
||||
show create procedure user1_proc2;
|
||||
--echo #
|
||||
--echo # Test to see if the user can still see the procedure code if the
|
||||
--echo # role that owns it is granted to him indirectly.
|
||||
--echo #
|
||||
set role r2;
|
||||
show create procedure user1_proc2;
|
||||
|
||||
--echo #
|
||||
--echo # One should not be able to see the procedure code if the role that owns
|
||||
--echo # the procedure is not set by the user or is not in the subgraph of the
|
||||
--echo # currently active role.
|
||||
--echo #
|
||||
set role r3;
|
||||
--error ER_SP_DOES_NOT_EXIST
|
||||
show create procedure user1_proc2;
|
||||
|
||||
connection default;
|
||||
|
||||
use rtest;
|
||||
|
||||
--echo #
|
||||
--echo # Try a few edge cases, with usernames identical to role name;
|
||||
--echo #
|
||||
|
||||
create user user_like_role;
|
||||
create user foo;
|
||||
create role user_like_role;
|
||||
grant select on rtest.* to user_like_role;
|
||||
grant select on rtest.* to foo;
|
||||
grant select on rtest.* to user_like_role@'%';
|
||||
|
||||
grant user_like_role to foo;
|
||||
|
||||
--echo #
|
||||
--echo # Here we have a procedure that is owned by user_like_role USER
|
||||
--echo # We don't want user_like_role ROLE to have access to its code.
|
||||
--echo #
|
||||
DELIMITER //;
|
||||
CREATE DEFINER=`user_like_role`@`%` PROCEDURE sensitive_proc() SQL SECURITY INVOKER
|
||||
BEGIN
|
||||
SELECT NOW(), VERSION();
|
||||
END;//
|
||||
DELIMITER ;//
|
||||
|
||||
connect (user_like_role, localhost, user_like_role,,,,,);
|
||||
use rtest;
|
||||
show create procedure sensitive_proc;
|
||||
|
||||
connect (foo, localhost, foo,,,,,);
|
||||
set role user_like_role;
|
||||
use rtest;
|
||||
|
||||
--echo #
|
||||
--echo # Foo has the set rolename identical to the procedure's definer's username.
|
||||
--echo # Foo should not have access to this procedure.
|
||||
--echo #
|
||||
--error ER_SP_DOES_NOT_EXIST
|
||||
show create procedure sensitive_proc;
|
||||
|
||||
connection default;
|
||||
drop role r1;
|
||||
drop role r2;
|
||||
drop role r3;
|
||||
drop role user_like_role;
|
||||
drop user user1;
|
||||
drop user foo;
|
||||
drop user user_like_role;
|
||||
drop procedure user1_proc;
|
||||
drop procedure user1_proc2;
|
||||
drop procedure sensitive_proc;
|
||||
drop database rtest;
|
||||
|
|
|
@ -97,3 +97,16 @@ CREATE TABLE t1 (a INT);
|
|||
ALTER TABLE t1 ADD b TIMESTAMP;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-10802 TIMESTAMP NOT NULL field with explicit_defaults_for_timestamp and NO_ZERO_DATE shouldn't throw error
|
||||
--echo #
|
||||
|
||||
SET timestamp=UNIX_TIMESTAMP('2001-01-01 10:20:30');
|
||||
SET sql_mode='ANSI,NO_ZERO_DATE';
|
||||
CREATE TABLE t1 (a TIMESTAMP NOT NULL);
|
||||
INSERT INTO t1 VALUES ();
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
SET sql_mode=DEFAULT;
|
||||
SET timestamp=DEFAULT;
|
||||
|
|
|
@ -173,3 +173,16 @@ t1 CREATE TABLE `t1` (
|
|||
`b` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-10802 TIMESTAMP NOT NULL field with explicit_defaults_for_timestamp and NO_ZERO_DATE shouldn't throw error
|
||||
#
|
||||
SET timestamp=UNIX_TIMESTAMP('2001-01-01 10:20:30');
|
||||
SET sql_mode='ANSI,NO_ZERO_DATE';
|
||||
CREATE TABLE t1 (a TIMESTAMP NOT NULL);
|
||||
INSERT INTO t1 VALUES ();
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
2001-01-01 10:20:30
|
||||
DROP TABLE t1;
|
||||
SET sql_mode=DEFAULT;
|
||||
SET timestamp=DEFAULT;
|
||||
|
|
|
@ -178,3 +178,18 @@ t1 CREATE TABLE `t1` (
|
|||
`b` timestamp NULL DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-10802 TIMESTAMP NOT NULL field with explicit_defaults_for_timestamp and NO_ZERO_DATE shouldn't throw error
|
||||
#
|
||||
SET timestamp=UNIX_TIMESTAMP('2001-01-01 10:20:30');
|
||||
SET sql_mode='ANSI,NO_ZERO_DATE';
|
||||
CREATE TABLE t1 (a TIMESTAMP NOT NULL);
|
||||
INSERT INTO t1 VALUES ();
|
||||
Warnings:
|
||||
Warning 1364 Field 'a' doesn't have a default value
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
0000-00-00 00:00:00
|
||||
DROP TABLE t1;
|
||||
SET sql_mode=DEFAULT;
|
||||
SET timestamp=DEFAULT;
|
||||
|
|
|
@ -336,7 +336,26 @@ tsv timestamp as (adddate(ts, interval 1 day)) virtual
|
|||
drop table t1;
|
||||
set sql_mode=default;
|
||||
#
|
||||
# Start of 10.1 tests
|
||||
# MDEV-11819 NO_ZERO_IN_DATE: Incorrect generated column value
|
||||
#
|
||||
SET sql_mode='NO_ZERO_IN_DATE';
|
||||
CREATE TABLE t1
|
||||
(
|
||||
a datetime DEFAULT NULL,
|
||||
b datetime DEFAULT NULL,
|
||||
c time GENERATED ALWAYS AS (timediff(`a`,`b`)) VIRTUAL
|
||||
);
|
||||
INSERT INTO t1 VALUES ('2008-12-31 23:59:59.000001','2008-12-30 01:01:01.000002',DEFAULT);
|
||||
SELECT * FROM t1;
|
||||
a b c
|
||||
2008-12-31 23:59:59 2008-12-30 01:01:01 46:58:58
|
||||
DROP TABLE t1;
|
||||
SET sql_mode=DEFAULT;
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
#
|
||||
# End of 10.0 tests
|
||||
#
|
||||
#
|
||||
# MDEV-8441 Bad SHOW CREATE TABLE output for a table with a virtual column
|
||||
|
|
|
@ -305,9 +305,28 @@ create table t1 (
|
|||
drop table t1;
|
||||
set sql_mode=default;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-11819 NO_ZERO_IN_DATE: Incorrect generated column value
|
||||
--echo #
|
||||
|
||||
SET sql_mode='NO_ZERO_IN_DATE';
|
||||
CREATE TABLE t1
|
||||
(
|
||||
a datetime DEFAULT NULL,
|
||||
b datetime DEFAULT NULL,
|
||||
c time GENERATED ALWAYS AS (timediff(`a`,`b`)) VIRTUAL
|
||||
);
|
||||
INSERT INTO t1 VALUES ('2008-12-31 23:59:59.000001','2008-12-30 01:01:01.000002',DEFAULT);
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
SET sql_mode=DEFAULT;
|
||||
|
||||
--echo #
|
||||
--echo # Start of 10.1 tests
|
||||
--echo # End of 5.5 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.0 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
|
@ -331,7 +350,6 @@ SELECT COLUMN_GET(@aaa, 'price' AS DECIMAL) aaa;
|
|||
SELECT COLUMN_GET(@aaa, 'price' AS INT) aaa;
|
||||
SELECT COLUMN_GET(@aaa, 'price' AS DOUBLE) aaa;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.1 tests
|
||||
--echo #
|
||||
|
|
|
@ -1254,6 +1254,48 @@ execute stmt1;
|
|||
deallocate prepare stmt1;
|
||||
drop table t2;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-8960 Can't refer the same column twice in one ALTER TABLE
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) DEFAULT CHARSET=utf8;
|
||||
|
||||
ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL,
|
||||
ALTER COLUMN `consultant_id` DROP DEFAULT;
|
||||
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) DEFAULT CHARSET=utf8;
|
||||
|
||||
ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL,
|
||||
ALTER COLUMN `consultant_id` SET DEFAULT 2;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) DEFAULT CHARSET=utf8;
|
||||
|
||||
ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL DEFAULT 2,
|
||||
ALTER COLUMN `consultant_id` DROP DEFAULT;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) DEFAULT CHARSET=utf8;
|
||||
|
||||
ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL DEFAULT 2,
|
||||
ALTER COLUMN `consultant_id` DROP DEFAULT,
|
||||
MODIFY COLUMN `consultant_id` BIGINT;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Test of ALTER TABLE IF [NOT] EXISTS
|
||||
#
|
||||
|
@ -1766,49 +1808,7 @@ SHOW CREATE TABLE t1;
|
|||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-8960 Can't refer the same column twice in one ALTER TABLE
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) DEFAULT CHARSET=utf8;
|
||||
|
||||
ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL,
|
||||
ALTER COLUMN `consultant_id` DROP DEFAULT;
|
||||
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) DEFAULT CHARSET=utf8;
|
||||
|
||||
ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL,
|
||||
ALTER COLUMN `consultant_id` SET DEFAULT 2;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) DEFAULT CHARSET=utf8;
|
||||
|
||||
ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL DEFAULT 2,
|
||||
ALTER COLUMN `consultant_id` DROP DEFAULT;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) DEFAULT CHARSET=utf8;
|
||||
|
||||
ALTER TABLE t1 ADD COLUMN `consultant_id` integer NOT NULL DEFAULT 2,
|
||||
ALTER COLUMN `consultant_id` DROP DEFAULT,
|
||||
MODIFY COLUMN `consultant_id` BIGINT;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Start of 10.1 tests
|
||||
--echo # End of 10.0 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
|
@ -1829,6 +1829,10 @@ ALTER TABLE t1 DROP INDEX i1, ADD INDEX i1(a) COMMENT 'comment2';
|
|||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.1 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-10421 duplicate CHECK CONSTRAINTs
|
||||
--echo #
|
||||
|
@ -1877,3 +1881,7 @@ alter table t1 drop column a;
|
|||
alter table t1 drop column a, drop index a;
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.2 tests
|
||||
--echo #
|
||||
|
|
|
@ -174,6 +174,18 @@ drop table t1, t2;
|
|||
|
||||
--echo End of 5.0 tests
|
||||
|
||||
--echo #
|
||||
--echo # Bug#19875294 ASSERTION `SRC' FAILED IN MY_STRNXFRM_UNICODE
|
||||
--echo # (SIG 6 -STRINGS/CTYPE-UTF8.C:5151)
|
||||
--echo #
|
||||
|
||||
set @@sql_mode='';
|
||||
CREATE TABLE t1(c1 SET('','')CHARACTER SET ucs2);
|
||||
INSERT INTO t1 VALUES(990101.102);
|
||||
SELECT COALESCE(c1)FROM t1 ORDER BY 1;
|
||||
DROP TABLE t1;
|
||||
set @@sql_mode=default;
|
||||
|
||||
#
|
||||
# lp:1001510
|
||||
# Bug #11764313 57135: CRASH IN ITEM_FUNC_CASE::FIND_ITEM WITH CASE WHEN
|
||||
|
|
|
@ -199,6 +199,20 @@ let $ctype_unescape_combinations=selected;
|
|||
SET NAMES gbk;
|
||||
--source include/ctype_E05C.inc
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-9886 Illegal mix of collations with a view comparing a field to a binary constant
|
||||
--echo #
|
||||
|
||||
SET NAMES latin1;
|
||||
CREATE TABLE t1 (a TEXT CHARACTER SET gbk);
|
||||
INSERT INTO t1 VALUES (0xEE5D);
|
||||
SELECT a<>0xEE5D AS a FROM t1;
|
||||
CREATE VIEW v1 AS SELECT a<>0xEE5D AS a FROM t1;
|
||||
SHOW CREATE VIEW v1;
|
||||
SELECT * FROM v1;
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.0 tests
|
||||
|
|
|
@ -247,6 +247,22 @@ DROP TABLE t1;
|
|||
--echo #
|
||||
SELECT _latin1 0x7E, _latin1 X'7E', _latin1 B'01111110';
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-9886 Illegal mix of collations with a view comparing a field to a binary constant
|
||||
--echo #
|
||||
|
||||
SET NAMES latin1;
|
||||
CREATE TABLE t1 (a TEXT CHARACTER SET latin1);
|
||||
INSERT INTO t1 VALUES (0xC0);
|
||||
SELECT a<>0xEE5D AS a FROM t1;
|
||||
CREATE VIEW v1 AS SELECT a<>0xC0 AS a FROM t1;
|
||||
SHOW CREATE VIEW v1;
|
||||
SELECT * FROM v1;
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.0 tests
|
||||
--echo #
|
||||
|
|
|
@ -826,6 +826,31 @@ SELECT @@sql_mode;
|
|||
SET sql_mode=DEFAULT;
|
||||
SET NAMES utf8;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-13972 crash in Item_func_sec_to_time::get_date
|
||||
--echo #
|
||||
|
||||
SELECT SEC_TO_TIME(CONVERT(900*24*60*60 USING ucs2));
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-13530 VARBINARY doesn't convert to to BLOB for sizes 65533, 65534 and 65535
|
||||
--echo #
|
||||
|
||||
set sql_mode="";
|
||||
CREATE TABLE t1 (c1 VARCHAR(32766) CHARACTER SET ucs2);
|
||||
DESCRIBE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(32767) CHARACTER SET ucs2);
|
||||
DESCRIBE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(32768) CHARACTER SET ucs2);
|
||||
DESCRIBE t1;
|
||||
DROP TABLE t1;
|
||||
set sql_mode=default;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # End of 5.5 tests
|
||||
--echo #
|
||||
|
|
|
@ -905,6 +905,21 @@ SELECT @@sql_mode;
|
|||
SET sql_mode=DEFAULT;
|
||||
SET NAMES utf8;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-13530 VARBINARY doesn't convert to to BLOB for sizes 65533, 65534 and 65535
|
||||
--echo #
|
||||
|
||||
set sql_mode='';
|
||||
CREATE TABLE t1 (c1 VARCHAR(16383) CHARACTER SET utf32);
|
||||
DESCRIBE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(16384) CHARACTER SET utf32);
|
||||
DESCRIBE t1;
|
||||
DROP TABLE t1;
|
||||
set sql_mode=default;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # End of 5.5 tests
|
||||
--echo #
|
||||
|
|
|
@ -1722,6 +1722,24 @@ SELECT CHAR(i USING utf8) FROM t1;
|
|||
SET sql_mode=DEFAULT;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-13530 VARBINARY doesn't convert to to BLOB for sizes 65533, 65534 and 65535
|
||||
--echo #
|
||||
|
||||
SET sql_mode='';
|
||||
CREATE TABLE t1 (c1 VARCHAR(21844) CHARACTER SET utf8);
|
||||
DESCRIBE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(21845) CHARACTER SET utf8);
|
||||
DESCRIBE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(21846) CHARACTER SET utf8);
|
||||
DESCRIBE t1;
|
||||
DROP TABLE t1;
|
||||
SET sql_mode=default;
|
||||
|
||||
--echo #
|
||||
--echo # End of 5.5 tests
|
||||
--echo #
|
||||
|
|
|
@ -605,11 +605,20 @@ EXECUTE s;
|
|||
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # End of 5.3 tests
|
||||
--echo #
|
||||
|
||||
#
|
||||
# Bug#26361149 MYSQL SERVER CRASHES AT: COL IN(IFNULL(CONST, COL), NAME_CONST('NAME', NULL))
|
||||
#
|
||||
create table t1 (a int);
|
||||
insert t1 values (1),(2),(3);
|
||||
select * from t1 where 1 in (a, name_const('a', null));
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # Start of 10.0 tests
|
||||
--echo # End of 5.5 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
|
@ -626,7 +635,7 @@ SELECT * FROM t1 WHERE b NOT IN (NULL, '', 'A');
|
|||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Start of 10.1 tests
|
||||
--echo # End of 10.0 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
|
|
|
@ -436,19 +436,19 @@ SELECT 1 FROM dual WHERE ('Alpha,Bravo,Charlie,Delta,Echo,Foxtrot,StrataCentral,
|
|||
#
|
||||
# MDEV-13173 An RLIKE that previously worked on 10.0 now returns "Got error 'pcre_exec: recursion limit of 100 exceeded' from regexp"
|
||||
#
|
||||
SELECT CONCAT(REPEAT('100,',133),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$';
|
||||
SELECT CONCAT(REPEAT('100,',60),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$';
|
||||
--replace_regex /[0-9]+ exceeded/NUM exceeded/
|
||||
SELECT CONCAT(REPEAT('100,',200),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$';
|
||||
|
||||
SELECT REGEXP_INSTR(CONCAT(REPEAT('100,',133),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$');
|
||||
SELECT REGEXP_INSTR(CONCAT(REPEAT('100,',60),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$');
|
||||
--replace_regex /[0-9]+ exceeded/NUM exceeded/
|
||||
SELECT REGEXP_INSTR(CONCAT(REPEAT('100,',200),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$');
|
||||
|
||||
SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',133),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'));
|
||||
SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',60),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'));
|
||||
--replace_regex /[0-9]+ exceeded/NUM exceeded/
|
||||
SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',200),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'));
|
||||
|
||||
SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',133),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', ''));
|
||||
SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',60),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', ''));
|
||||
--replace_regex /[0-9]+ exceeded/NUM exceeded/
|
||||
SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',200),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', ''));
|
||||
|
||||
|
|
|
@ -1678,9 +1678,33 @@ DROP TABLE t1;
|
|||
--echo #
|
||||
SELECT 1 MOD ADDTIME( '13:58:57', '00:00:01' ) + 2;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-11819 NO_ZERO_IN_DATE: Incorrect generated column value
|
||||
--echo #
|
||||
|
||||
SET sql_mode='NO_ZERO_IN_DATE';
|
||||
CREATE TABLE t1 (a TIME(6));
|
||||
INSERT INTO t1 SELECT timediff(timestamp'2008-12-31 23:59:59.000001',timestamp'2008-12-30 01:01:01.000002');
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
SET sql_mode=DEFAULT;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # Start of 10.0 tests
|
||||
--echo # MDEV-13972 crash in Item_func_sec_to_time::get_date
|
||||
--echo #
|
||||
|
||||
# The below query can return warning sporadically
|
||||
--disable_warnings
|
||||
DO TO_DAYS(SEC_TO_TIME(TIME(CEILING(UUID()))));
|
||||
--enable_warnings
|
||||
|
||||
DO TO_DAYS(SEC_TO_TIME(MAKEDATE('',RAND(~('')))));
|
||||
SELECT SEC_TO_TIME(MAKEDATE(0,RAND(~0)));
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # End of 5.5 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
|
|
|
@ -1038,8 +1038,10 @@ show create table t1;
|
|||
drop table t1;
|
||||
|
||||
# MyISAM specific varchar tests
|
||||
--error 1118
|
||||
set statement sql_mode='' for
|
||||
create table t1 (v varchar(65535));
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
eval set storage_engine=$default;
|
||||
|
||||
|
|
|
@ -215,14 +215,18 @@ select * from t1 where a = 'aaaa';
|
|||
select * from t1 where a like 'aaa%';
|
||||
select * from t1 where a = 'bbbb';
|
||||
drop table t1;
|
||||
set sql_mode='';
|
||||
-- error ER_PARTITION_FIELDS_TOO_LONG
|
||||
create table t1 (a varchar(3070)) partition by key (a);
|
||||
-- error ER_TOO_BIG_ROWSIZE
|
||||
-- error ER_PARTITION_FIELDS_TOO_LONG
|
||||
create table t1 (a varchar(65532) not null) partition by key (a);
|
||||
-- error ER_BLOB_FIELD_IN_PART_FUNC_ERROR
|
||||
create table t1 (a varchar(65533)) partition by key (a);
|
||||
-- error ER_TOO_BIG_ROWSIZE
|
||||
-- error ER_BLOB_FIELD_IN_PART_FUNC_ERROR
|
||||
create table t1 (a varchar(65534) not null) partition by key (a);
|
||||
-- error ER_TOO_BIG_ROWSIZE
|
||||
-- error ER_BLOB_FIELD_IN_PART_FUNC_ERROR
|
||||
create table t1 (a varchar(65535)) partition by key (a);
|
||||
set sql_mode=default;
|
||||
|
||||
#
|
||||
# Bug#34358: error in key_restore for bitfields with uneven bits
|
||||
|
|
|
@ -3728,6 +3728,135 @@ deallocate prepare stmt2;
|
|||
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-9208: Function->Function->View = Mysqld segfault
|
||||
--echo # (Server crashes in Dependency_marker::visit_field on 2nd
|
||||
--echo # execution with merged subquery)
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (i1 INT);
|
||||
insert into t1 values(1),(2);
|
||||
|
||||
CREATE TABLE t2 (i2 INT);
|
||||
insert into t2 values(1),(2);
|
||||
|
||||
prepare stmt from "
|
||||
select 1 from (
|
||||
select
|
||||
if (i1<0, 0, 0) as f1,
|
||||
(select f1) as f2
|
||||
from t1, t2
|
||||
) sq
|
||||
";
|
||||
|
||||
execute stmt;
|
||||
execute stmt;
|
||||
|
||||
drop table t1,t2;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-9619: Assertion `null_ref_table' failed in virtual
|
||||
--echo # table_map Item_direct_view_ref::used_tables() const on 2nd
|
||||
--echo # execution of PS
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (f1 VARCHAR(10)) ENGINE=MyISAM;
|
||||
CREATE ALGORITHM=MERGE VIEW v1 AS SELECT * FROM t1;
|
||||
INSERT INTO t1 VALUES ('a'),('b');
|
||||
|
||||
CREATE TABLE t2 (f2 VARCHAR(10)) ENGINE=MyISAM;
|
||||
INSERT INTO t2 VALUES ('c'),('d');
|
||||
|
||||
PREPARE stmt FROM "SELECT * FROM v1 WHERE f1 = SOME ( SELECT f2 FROM t2 )";
|
||||
EXECUTE stmt;
|
||||
EXECUTE stmt;
|
||||
insert into t1 values ('c');
|
||||
EXECUTE stmt;
|
||||
EXECUTE stmt;
|
||||
|
||||
deallocate prepare stmt;
|
||||
drop view v1;
|
||||
drop table t1,t2;
|
||||
|
||||
CREATE TABLE t1 (f1 VARCHAR(10)) ENGINE=MyISAM;
|
||||
CREATE ALGORITHM=MERGE VIEW v1 AS SELECT * FROM t1;
|
||||
INSERT INTO t1 VALUES ('a'),('b');
|
||||
|
||||
CREATE TABLE t2 (f2 VARCHAR(10)) ENGINE=MyISAM;
|
||||
INSERT INTO t2 VALUES ('c'),('d');
|
||||
|
||||
PREPARE stmt FROM "SELECT * FROM v1 WHERE (f1,f1) = SOME ( SELECT f2,f2 FROM t2 )";
|
||||
EXECUTE stmt;
|
||||
EXECUTE stmt;
|
||||
insert into t1 values ('c');
|
||||
EXECUTE stmt;
|
||||
EXECUTE stmt;
|
||||
|
||||
deallocate prepare stmt;
|
||||
drop view v1;
|
||||
drop table t1,t2;
|
||||
|
||||
|
||||
|
||||
CREATE TABLE t1 (column1 INT) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES (3),(9);
|
||||
|
||||
CREATE TABLE t2 (column2 INT) ENGINE=MyISAM;
|
||||
|
||||
INSERT INTO t2 VALUES (1),(4);
|
||||
|
||||
CREATE TABLE t3 (column3 INT) ENGINE=MyISAM;
|
||||
INSERT INTO t3 VALUES (6),(8);
|
||||
|
||||
CREATE TABLE t4 (column4 INT) ENGINE=MyISAM;
|
||||
INSERT INTO t4 VALUES (2),(5);
|
||||
|
||||
PREPARE stmt FROM "
|
||||
SELECT (
|
||||
SELECT MAX( table1.column1 ) AS field1
|
||||
FROM t1 AS table1
|
||||
WHERE (111,table3.column3) IN ( SELECT 111,table2.column2 AS field2 FROM t2 AS table2 )
|
||||
) AS sq
|
||||
FROM t3 AS table3, t4 AS table4 GROUP BY sq
|
||||
";
|
||||
|
||||
EXECUTE stmt;
|
||||
EXECUTE stmt;
|
||||
|
||||
deallocate prepare stmt;
|
||||
drop table t1,t2,t3,t4;
|
||||
|
||||
create table t1 (a int, b int, c int);
|
||||
create table t2 (x int, y int, z int);
|
||||
create table t3 as select * from t1;
|
||||
insert into t1 values (1,2,3),(4,5,6),(100,200,300),(400,500,600);
|
||||
insert into t2 values (1,2,3),(7,8,9),(100,200,300),(400,500,600);
|
||||
insert into t3 values (1,2,3),(11,12,13),(100,0,0),(400,500,600);
|
||||
|
||||
|
||||
set @optimizer_switch_save=@@optimizer_switch;
|
||||
set @join_cache_level_save=@@join_cache_level;
|
||||
set optimizer_switch='materialization=off';
|
||||
set join_cache_level=0;
|
||||
select * from t1 where (select a,b from t3 where t3.c=t1.c) in (select x,y from t2 where t1.c= t2.z);
|
||||
prepare stmt from "select * from t1 where (select a,b from t3 where t3.c=t1.c) in (select x,y from t2 where t1.c= t2.z)";
|
||||
EXECUTE stmt;
|
||||
EXECUTE stmt;
|
||||
|
||||
create view v1 as select * from t1;
|
||||
create view v2 as select * from t2;
|
||||
create view v3 as select * from t3;
|
||||
select * from v1 where (select a,b from v3 where v3.c=v1.c) in (select x,y from v2 where v1.c= v2.z);
|
||||
prepare stmt from "select * from v1 where (select a,b from v3 where v3.c=v1.c) in (select x,y from v2 where v1.c= v2.z)";
|
||||
EXECUTE stmt;
|
||||
EXECUTE stmt;
|
||||
set optimizer_switch=@optimizer_switch_save;
|
||||
set join_cache_level=@join_cache_level_save;
|
||||
|
||||
deallocate prepare stmt;
|
||||
drop view v1,v2,v3;
|
||||
drop table t1,t2,t3;
|
||||
|
||||
--echo # End of 5.5 tests
|
||||
|
||||
--echo #
|
||||
|
|
|
@ -1241,6 +1241,59 @@ WHERE ( state = 'Alabama' OR state >= 'Colorado' ) AND id != 9
|
|||
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # mdev-11574: do not build index merge of two indexes when
|
||||
--echo # one index is an infix of the other index
|
||||
--echo #
|
||||
|
||||
set names utf8;
|
||||
|
||||
CREATE DATABASE world;
|
||||
|
||||
use world;
|
||||
|
||||
--source include/world_schema.inc
|
||||
|
||||
--disable_query_log
|
||||
--disable_result_log
|
||||
--disable_warnings
|
||||
--source include/world.inc
|
||||
--enable_warnings
|
||||
--enable_result_log
|
||||
--enable_query_log
|
||||
|
||||
DROP INDEX Country ON City;
|
||||
CREATE INDEX CountryName ON City(Country,Name);
|
||||
CREATE INDEX Name ON City(Name);
|
||||
|
||||
--disable_query_log
|
||||
--disable_result_log
|
||||
--disable_warnings
|
||||
ANALYZE TABLE City;
|
||||
--enable_warnings
|
||||
--enable_result_log
|
||||
--enable_query_log
|
||||
|
||||
let $q=
|
||||
select * from City
|
||||
where
|
||||
Country='FIN' AND Name IN ('Lahti','Imatra') OR
|
||||
Country='RUS' AND Name IN ('St Petersburg', 'Moscow') OR
|
||||
Country='SWE' AND Name IN ('Stockholm', 'Uppsala') OR
|
||||
Country='DEU' AND Name IN ('Berlin', 'Bonn') OR
|
||||
Country='BEL' AND Name IN ('Antwerpen', 'Gent') OR
|
||||
Country='PRT' AND Name IN ('Braga', 'Porto') OR
|
||||
Country='FRA' AND Name IN ('Paris', 'Marcel') OR
|
||||
Country='POL' AND Name IN ('Warszawa', 'Wroclaw') OR
|
||||
Country='NOR' AND Name IN ('Oslo', 'Bergen') OR
|
||||
Country='ITA' AND Name IN ('Napoli', 'Venezia');
|
||||
|
||||
eval $q;
|
||||
eval explain $q;
|
||||
|
||||
|
||||
DROP DATABASE world;
|
||||
|
||||
#the following command must be the last one in the file
|
||||
set session optimizer_switch='index_merge_sort_intersection=default';
|
||||
|
||||
|
|
|
@ -113,6 +113,11 @@ drop table t1;
|
|||
--error ER_OPTION_PREVENTS_STATEMENT
|
||||
insert into t1 values(1);
|
||||
|
||||
#
|
||||
# MDEV-14056 DROP TEMPORARY TABLE IF EXISTS causes error 1290 with read_only option
|
||||
#
|
||||
drop temporary table if exists t1;
|
||||
|
||||
#
|
||||
# Bug#11733 COMMITs should not happen if read-only is set
|
||||
#
|
||||
|
|
23
mysql-test/t/show_function_with_pad_char_to_full_length.test
Normal file
23
mysql-test/t/show_function_with_pad_char_to_full_length.test
Normal file
|
@ -0,0 +1,23 @@
|
|||
#
|
||||
# Test that show function status succeeds with
|
||||
# sql_mode = 'PAD_CHAR_TO_FULL_LENGTH (MDEV-13149)
|
||||
|
||||
# show function status
|
||||
|
||||
create function f() returns int return 1;
|
||||
--replace_column 1 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 T 11 T
|
||||
show function status;
|
||||
set sql_mode = 'PAD_CHAR_TO_FULL_LENGTH';
|
||||
--replace_column 1 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 T 11 T
|
||||
show function status;
|
||||
drop function f;
|
||||
select @@sql_mode;
|
||||
|
||||
# select ROUTINE_NAME from information_schema.ROUTINES
|
||||
|
||||
create function f() returns int return 1;
|
||||
select ROUTINE_NAME from information_schema.ROUTINES where ROUTINE_NAME='f';
|
||||
set sql_mode = 'PAD_CHAR_TO_FULL_LENGTH';
|
||||
select ROUTINE_NAME from information_schema.ROUTINES where ROUTINE_NAME='f';
|
||||
drop function f;
|
||||
select @@sql_mode;
|
|
@ -522,4 +522,23 @@ select * from t1 where a in (select max(a) from t1 where a < 4) or a > 5;
|
|||
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-13135: subquery with ON expression subject to
|
||||
--echo # semi-join optimizations
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (a INT);
|
||||
CREATE ALGORITHM=MERGE VIEW v1 AS SELECT a AS v_a FROM t1;
|
||||
INSERT INTO t1 VALUES (1),(3);
|
||||
|
||||
CREATE TABLE t2 (b INT, KEY(b));
|
||||
INSERT INTO t2 VALUES (3),(4);
|
||||
|
||||
SELECT * FROM t1 WHERE a NOT IN (
|
||||
SELECT b FROM t2 INNER JOIN v1 ON (b IN ( SELECT a FROM t1 ))
|
||||
WHERE v_a = b
|
||||
);
|
||||
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
|
|
|
@ -219,7 +219,56 @@ SELECT 5 = a FROM t1;
|
|||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Start of 10.0 tests
|
||||
--echo # MDEV-13530 VARBINARY doesn't convert to to BLOB for sizes 65533, 65534 and 65535
|
||||
--echo #
|
||||
|
||||
set sql_mode='';
|
||||
CREATE TABLE t1 (c1 VARBINARY(65532));
|
||||
DESCRIBE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (c1 VARBINARY(65533));
|
||||
DESCRIBE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (c1 VARBINARY(65534));
|
||||
DESCRIBE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (c1 VARBINARY(65535));
|
||||
DESCRIBE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (c1 VARBINARY(65536));
|
||||
DESCRIBE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(65532));
|
||||
DESCRIBE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(65533));
|
||||
DESCRIBE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(65534));
|
||||
DESCRIBE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(65535));
|
||||
DESCRIBE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(65536));
|
||||
DESCRIBE t1;
|
||||
DROP TABLE t1;
|
||||
set sql_mode=default;
|
||||
|
||||
--error ER_TOO_BIG_FIELDLENGTH
|
||||
CREATE TABLE t1 (c1 VARCHAR(65536));
|
||||
|
||||
--echo #
|
||||
--echo # End of 5.5 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
|
|
|
@ -674,9 +674,7 @@ SELECT ExtractValue('<a><b>xxx</c></a>','/a/b');
|
|||
--echo # Bug#58175 xml functions read initialized bytes when conversions happen
|
||||
--echo #
|
||||
SET NAMES latin1;
|
||||
--enable_prepare_warnings
|
||||
SELECT UPDATEXML(CONVERT('' USING swe7), TRUNCATE('',1), 0);
|
||||
--disable_prepare_warnings
|
||||
|
||||
--echo #
|
||||
--echo # Bug#12375190: UPDATEXML CRASHES ON SIMPLE INPUTS
|
||||
|
|
|
@ -47,6 +47,11 @@ void* operator new[](std::size_t sz, const std::nothrow_t&) throw()
|
|||
return (void *) my_malloc (sz ? sz : 1, MYF(0));
|
||||
}
|
||||
|
||||
void operator delete (void *ptr, std::size_t)
|
||||
{
|
||||
my_free(ptr);
|
||||
}
|
||||
|
||||
void operator delete (void *ptr)
|
||||
{
|
||||
my_free(ptr);
|
||||
|
@ -57,6 +62,11 @@ void operator delete[] (void *ptr) throw ()
|
|||
my_free(ptr);
|
||||
}
|
||||
|
||||
void operator delete[] (void *ptr, std::size_t) throw ()
|
||||
{
|
||||
my_free(ptr);
|
||||
}
|
||||
|
||||
void operator delete(void* ptr, const std::nothrow_t&) throw()
|
||||
{
|
||||
my_free(ptr);
|
||||
|
|
|
@ -128,9 +128,9 @@ SET(PCREGREP_BUFSIZE "20480" CACHE STRING
|
|||
SET(PCRE_NEWLINE "LF" CACHE STRING
|
||||
"What to recognize as a newline (one of CR, LF, CRLF, ANY, ANYCRLF).")
|
||||
|
||||
# MARIADB: Changed the default from OFF to ON as pcre_test.bat on Windows
|
||||
# MARIADB: fails complaining about too small stack size on Windows.
|
||||
SET(PCRE_NO_RECURSE ON CACHE BOOL
|
||||
# Windows has much smaller stack (pcre recursion limit of 112, vs
|
||||
# 250-500 on Linuxes)
|
||||
SET(PCRE_NO_RECURSE "${WIN32}" CACHE BOOL
|
||||
"If ON, then don't use stack recursion when matching. See NO_RECURSE in config.h.in for details.")
|
||||
|
||||
SET(PCRE_POSIX_MALLOC_THRESHOLD "10" CACHE STRING
|
||||
|
|
|
@ -509,6 +509,12 @@ Returns: MATCH_MATCH if matched ) these values are >= 0
|
|||
(e.g. stopped by repeated call or recursion limit)
|
||||
*/
|
||||
|
||||
#ifdef __GNUC__
|
||||
static int
|
||||
match(REGISTER PCRE_PUCHAR eptr, REGISTER const pcre_uchar *ecode,
|
||||
PCRE_PUCHAR mstart, int offset_top, match_data *md, eptrblock *eptrb,
|
||||
unsigned int rdepth) __attribute__((noinline,noclone));
|
||||
#endif
|
||||
static int
|
||||
match(REGISTER PCRE_PUCHAR eptr, REGISTER const pcre_uchar *ecode,
|
||||
PCRE_PUCHAR mstart, int offset_top, match_data *md, eptrblock *eptrb,
|
||||
|
|
|
@ -8,6 +8,12 @@ ENDIF()
|
|||
#Remove -fno-implicit-templates from compiler flags(handlersocket would not work with it)
|
||||
STRING(REPLACE "-fno-implicit-templates" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
|
||||
|
||||
include(CheckCXXCompilerFlag)
|
||||
check_cxx_compiler_flag(" -Wdeprecated-declarations" HAVE_CXX_WDEPRECATED_DECLARATIONS)
|
||||
IF (HAVE_CXX_WDEPRECATED_DECLARATIONS)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations")
|
||||
ENDIF()
|
||||
|
||||
INCLUDE_DIRECTORIES(libhsclient)
|
||||
|
||||
# Handlersocket client library. We do not distribute it,
|
||||
|
|
|
@ -185,6 +185,11 @@ ELSE()
|
|||
SET(localstatedir ${MYSQL_DATADIR})
|
||||
ENDIF()
|
||||
|
||||
SET(resolveip_locations "$basedir/${INSTALL_BINDIR} $basedir/bin")
|
||||
SET(mysqld_locations "$basedir/${INSTALL_SBINDIR} $basedir/libexec $basedir/sbin $basedir/bin")
|
||||
SET(errmsg_locations "$basedir/${INSTALL_MYSQLSHAREDIR}/english $basedir/share/english $basedir/share/mysql/english")
|
||||
SET(pkgdata_locations "$basedir/${INSTALL_MYSQLSHAREDIR} $basedir/share $basedir/share/mysql")
|
||||
|
||||
IF(UNIX)
|
||||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql_install_db.sh
|
||||
${CMAKE_CURRENT_BINARY_DIR}/mysql_install_db ESCAPE_QUOTES @ONLY)
|
||||
|
|
|
@ -188,7 +188,7 @@ SET @skip_auth_anonymous=1;" ;;
|
|||
|
||||
# Try to find a specific file within --basedir which can either be a binary
|
||||
# release or installed source directory and return the path.
|
||||
find_in_basedir()
|
||||
find_in_dirs()
|
||||
{
|
||||
case "$1" in
|
||||
--dir)
|
||||
|
@ -200,13 +200,13 @@ find_in_basedir()
|
|||
|
||||
for dir in "$@"
|
||||
do
|
||||
if test -f "$basedir/$dir/$file"
|
||||
if test -f "$dir/$file"
|
||||
then
|
||||
if test -n "$return_dir"
|
||||
then
|
||||
echo "$basedir/$dir"
|
||||
echo "$dir"
|
||||
else
|
||||
echo "$basedir/$dir/$file"
|
||||
echo "$dir/$file"
|
||||
fi
|
||||
break
|
||||
fi
|
||||
|
@ -270,7 +270,7 @@ then
|
|||
print_defaults="$builddir/extra/my_print_defaults"
|
||||
elif test -n "$basedir"
|
||||
then
|
||||
print_defaults=`find_in_basedir my_print_defaults bin extra`
|
||||
print_defaults=`find_in_dirs my_print_defaults $basedir/bin $basedir/extra`
|
||||
if test -z "$print_defaults"
|
||||
then
|
||||
cannot_find_file my_print_defaults $basedir/bin $basedir/extra
|
||||
|
@ -296,44 +296,46 @@ if test -n "$srcdir"
|
|||
then
|
||||
basedir="$builddir"
|
||||
bindir="$basedir/client"
|
||||
extra_bindir="$basedir/extra"
|
||||
resolveip="$basedir/extra/resolveip"
|
||||
mysqld="$basedir/sql/mysqld"
|
||||
langdir="$basedir/sql/share/english"
|
||||
srcpkgdatadir="$srcdir/scripts"
|
||||
buildpkgdatadir="$builddir/scripts"
|
||||
scriptdir="$srcdir/scripts"
|
||||
elif test -n "$basedir"
|
||||
then
|
||||
bindir="$basedir/bin"
|
||||
extra_bindir="$bindir"
|
||||
mysqld=`find_in_basedir mysqld libexec sbin bin`
|
||||
bindir="$basedir/bin" # only used in the help text
|
||||
resolveip=`find_in_dirs resolveip @resolveip_locations@`
|
||||
if test -z "$resolveip"
|
||||
then
|
||||
cannot_find_file resolveip @resolveip_locations@
|
||||
exit 1
|
||||
fi
|
||||
mysqld=`find_in_dirs mysqld @mysqld_locations@`
|
||||
if test -z "$mysqld"
|
||||
then
|
||||
cannot_find_file mysqld $basedir/libexec $basedir/sbin $basedir/bin
|
||||
cannot_find_file mysqld @mysqld_locations@
|
||||
exit 1
|
||||
fi
|
||||
langdir=`find_in_basedir --dir errmsg.sys share/english share/mysql/english`
|
||||
langdir=`find_in_dirs --dir errmsg.sys @errmsg_locations@`
|
||||
if test -z "$langdir"
|
||||
then
|
||||
cannot_find_file errmsg.sys $basedir/share/english $basedir/share/mysql/english
|
||||
cannot_find_file errmsg.sys @errmsg_locations@
|
||||
exit 1
|
||||
fi
|
||||
srcpkgdatadir=`find_in_basedir --dir fill_help_tables.sql share share/mysql`
|
||||
srcpkgdatadir=`find_in_dirs --dir fill_help_tables.sql @pkgdata_locations@`
|
||||
buildpkgdatadir=$srcpkgdatadir
|
||||
if test -z "$srcpkgdatadir"
|
||||
then
|
||||
cannot_find_file fill_help_tables.sql $basedir/share $basedir/share/mysql
|
||||
cannot_find_file fill_help_tables.sql @pkgdata_locations@
|
||||
exit 1
|
||||
fi
|
||||
scriptdir="$basedir/scripts"
|
||||
else
|
||||
basedir="@prefix@"
|
||||
bindir="@bindir@"
|
||||
extra_bindir="$bindir"
|
||||
resolveip="$bindir/resolveip"
|
||||
mysqld="@libexecdir@/mysqld"
|
||||
srcpkgdatadir="@pkgdatadir@"
|
||||
buildpkgdatadir="@pkgdatadir@"
|
||||
scriptdir="@scriptdir@"
|
||||
fi
|
||||
|
||||
# Set up paths to SQL scripts required for bootstrap
|
||||
|
@ -377,14 +379,14 @@ hostname=`@HOSTNAME@`
|
|||
# Check if hostname is valid
|
||||
if test "$cross_bootstrap" -eq 0 -a "$in_rpm" -eq 0 -a "$force" -eq 0
|
||||
then
|
||||
resolved=`"$extra_bindir/resolveip" $hostname 2>&1`
|
||||
resolved=`"$resolveip" $hostname 2>&1`
|
||||
if test $? -ne 0
|
||||
then
|
||||
resolved=`"$extra_bindir/resolveip" localhost 2>&1`
|
||||
resolved=`"$resolveip" localhost 2>&1`
|
||||
if test $? -ne 0
|
||||
then
|
||||
echo "Neither host '$hostname' nor 'localhost' could be looked up with"
|
||||
echo "'$extra_bindir/resolveip'"
|
||||
echo "'$resolveip'"
|
||||
echo "Please configure the 'hostname' command to return a correct"
|
||||
echo "hostname."
|
||||
echo "If you want to solve this at a later stage, restart this script"
|
||||
|
@ -392,7 +394,7 @@ then
|
|||
link_to_help
|
||||
exit 1
|
||||
fi
|
||||
echo "WARNING: The host '$hostname' could not be looked up with resolveip."
|
||||
echo "WARNING: The host '$hostname' could not be looked up with $resolveip."
|
||||
echo "This probably means that your libc libraries are not 100 % compatible"
|
||||
echo "with this binary MariaDB version. The MariaDB daemon, mysqld, should work"
|
||||
echo "normally with the exception that host name resolving will not work."
|
||||
|
@ -480,7 +482,7 @@ else
|
|||
echo "The problem could be conflicting information in an external"
|
||||
echo "my.cnf files. You can ignore these by doing:"
|
||||
echo
|
||||
echo " shell> $scriptdir/scripts/mysql_install_db --defaults-file=~/.my.cnf"
|
||||
echo " shell> $0 --defaults-file=~/.my.cnf"
|
||||
echo
|
||||
echo "You can also try to start the mysqld daemon with:"
|
||||
echo
|
||||
|
|
|
@ -37,7 +37,6 @@ REMOTEIP=""
|
|||
REMOTEHOST=""
|
||||
tca=""
|
||||
tcert=""
|
||||
tpem=""
|
||||
tkey=""
|
||||
sockopt=""
|
||||
progress=""
|
||||
|
@ -358,8 +357,7 @@ get_transfer()
|
|||
if [[ "$WSREP_SST_OPT_ROLE" == "joiner" ]];then
|
||||
wsrep_log_info "Decrypting with CERT: $tcert, KEY: $tkey"
|
||||
tcmd="socat -u openssl-listen:${TSST_PORT},reuseaddr,cert=${tcert},key=${tkey},verify=0${joiner_extra}${sockopt} stdio"
|
||||
tcmd="socat -u openssl-listen:${TSST_PORT},reuseaddr,cert=${tpem},key=${tkey},verify=0${sockopt} stdio"
|
||||
else
|
||||
else
|
||||
wsrep_log_info "Encrypting with CERT: $tcert, KEY: $tkey"
|
||||
tcmd="socat -u stdio openssl-connect:${REMOTEIP}:${TSST_PORT},cert=${tcert},key=${tkey},verify=0${sockopt}"
|
||||
fi
|
||||
|
|
|
@ -1150,7 +1150,7 @@ void mysql_read_default_options(struct st_mysql_options *options,
|
|||
break;
|
||||
case OPT_pipe:
|
||||
options->protocol = MYSQL_PROTOCOL_PIPE;
|
||||
break;
|
||||
break;
|
||||
case OPT_connect_timeout:
|
||||
case OPT_timeout:
|
||||
if (opt_arg)
|
||||
|
|
|
@ -188,8 +188,8 @@ common_1_lev_code:
|
|||
|
||||
expr= tmp_expr - (tmp_expr/60)*60;
|
||||
/* the code after the switch will finish */
|
||||
}
|
||||
break;
|
||||
}
|
||||
case INTERVAL_HOUR_SECOND:
|
||||
{
|
||||
ulonglong tmp_expr= expr;
|
||||
|
@ -205,8 +205,8 @@ common_1_lev_code:
|
|||
|
||||
expr= tmp_expr - (tmp_expr/60)*60;
|
||||
/* the code after the switch will finish */
|
||||
}
|
||||
break;
|
||||
}
|
||||
case INTERVAL_DAY_SECOND:
|
||||
{
|
||||
ulonglong tmp_expr= expr;
|
||||
|
@ -228,8 +228,8 @@ common_1_lev_code:
|
|||
|
||||
expr= tmp_expr - (tmp_expr/60)*60;
|
||||
/* the code after the switch will finish */
|
||||
}
|
||||
break;
|
||||
}
|
||||
case INTERVAL_DAY_MICROSECOND:
|
||||
case INTERVAL_HOUR_MICROSECOND:
|
||||
case INTERVAL_MINUTE_MICROSECOND:
|
||||
|
@ -243,7 +243,8 @@ common_1_lev_code:
|
|||
break;
|
||||
case INTERVAL_WEEK:
|
||||
expr/= 7;
|
||||
/* fall through */
|
||||
close_quote= FALSE;
|
||||
break;
|
||||
default:
|
||||
close_quote= FALSE;
|
||||
break;
|
||||
|
|
14
sql/field.cc
14
sql/field.cc
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
Copyright (c) 2000, 2013, Oracle and/or its affiliates.
|
||||
Copyright (c) 2008, 2013, Monty Program Ab.
|
||||
Copyright (c) 2000, 2017, Oracle and/or its affiliates.
|
||||
Copyright (c) 2008, 2017, MariaDB
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -8913,13 +8913,13 @@ String *Field_set::val_str(String *val_buffer,
|
|||
ulonglong tmp=(ulonglong) Field_enum::val_int();
|
||||
uint bitnr=0;
|
||||
|
||||
/*
|
||||
Some callers expect *val_buffer to contain the result,
|
||||
so we assign to it, rather than doing 'return &empty_set_string.
|
||||
*/
|
||||
*val_buffer= empty_set_string;
|
||||
if (tmp == 0)
|
||||
{
|
||||
/*
|
||||
Some callers expect *val_buffer to contain the result,
|
||||
so we assign to it, rather than doing 'return &empty_set_string.
|
||||
*/
|
||||
*val_buffer= empty_set_string;
|
||||
return val_buffer;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
Copyright (c) 2005, 2013, Oracle and/or its affiliates.
|
||||
Copyright (c) 2009, 2013, Monty Program Ab & SkySQL Ab
|
||||
Copyright (c) 2005, 2017, Oracle and/or its affiliates.
|
||||
Copyright (c) 2009, 2017, MariaDB
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -1933,7 +1933,7 @@ int ha_partition::change_partitions(HA_CREATE_INFO *create_info,
|
|||
cleanup_new_partition(part_count);
|
||||
DBUG_RETURN(error);
|
||||
}
|
||||
|
||||
|
||||
DBUG_PRINT("info", ("Add partition %s", part_name_buff));
|
||||
if ((error= prepare_new_partition(table, create_info,
|
||||
new_file_array[i],
|
||||
|
|
|
@ -404,7 +404,7 @@ static int ha_finish_errors(void)
|
|||
}
|
||||
|
||||
static volatile int32 need_full_discover_for_existence= 0;
|
||||
static volatile int32 engines_with_discover_table_names= 0;
|
||||
static volatile int32 engines_with_discover_file_names= 0;
|
||||
static volatile int32 engines_with_discover= 0;
|
||||
|
||||
static int full_discover_for_existence(handlerton *, const char *, const char *)
|
||||
|
@ -429,8 +429,8 @@ static void update_discovery_counters(handlerton *hton, int val)
|
|||
if (hton->discover_table_existence == full_discover_for_existence)
|
||||
my_atomic_add32(&need_full_discover_for_existence, val);
|
||||
|
||||
if (hton->discover_table_names)
|
||||
my_atomic_add32(&engines_with_discover_table_names, val);
|
||||
if (hton->discover_table_names && hton->tablefile_extensions[0])
|
||||
my_atomic_add32(&engines_with_discover_file_names, val);
|
||||
|
||||
if (hton->discover_table)
|
||||
my_atomic_add32(&engines_with_discover, val);
|
||||
|
@ -5200,6 +5200,7 @@ void Discovered_table_list::remove_duplicates()
|
|||
{
|
||||
LEX_STRING **src= tables->front();
|
||||
LEX_STRING **dst= src;
|
||||
sort();
|
||||
while (++dst <= tables->back())
|
||||
{
|
||||
LEX_STRING *s= *src, *d= *dst;
|
||||
|
@ -5267,10 +5268,12 @@ int ha_discover_table_names(THD *thd, LEX_STRING *db, MY_DIR *dirp,
|
|||
int error;
|
||||
DBUG_ENTER("ha_discover_table_names");
|
||||
|
||||
if (engines_with_discover_table_names == 0 && !reusable)
|
||||
if (engines_with_discover_file_names == 0 && !reusable)
|
||||
{
|
||||
error= ext_table_discovery_simple(dirp, result);
|
||||
result->sort();
|
||||
st_discover_names_args args= {db, NULL, result, 0};
|
||||
error= ext_table_discovery_simple(dirp, result) ||
|
||||
plugin_foreach(thd, discover_names,
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN, &args);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -5283,8 +5286,6 @@ int ha_discover_table_names(THD *thd, LEX_STRING *db, MY_DIR *dirp,
|
|||
error= extension_based_table_discovery(dirp, reg_ext, result) ||
|
||||
plugin_foreach(thd, discover_names,
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN, &args);
|
||||
result->sort();
|
||||
|
||||
if (args.possible_duplicates > 0)
|
||||
result->remove_duplicates();
|
||||
}
|
||||
|
|
16
sql/item.cc
16
sql/item.cc
|
@ -2248,6 +2248,9 @@ bool Item_func_or_sum::agg_item_set_converter(const DTCollation &coll,
|
|||
Item **args, uint nargs,
|
||||
uint flags, int item_sep)
|
||||
{
|
||||
THD *thd= current_thd;
|
||||
if (thd->lex->is_ps_or_view_context_analysis())
|
||||
return false;
|
||||
Item **arg, *safe_args[2]= {NULL, NULL};
|
||||
|
||||
/*
|
||||
|
@ -2263,7 +2266,6 @@ bool Item_func_or_sum::agg_item_set_converter(const DTCollation &coll,
|
|||
safe_args[1]= args[item_sep];
|
||||
}
|
||||
|
||||
THD *thd= current_thd;
|
||||
bool res= FALSE;
|
||||
uint i;
|
||||
|
||||
|
@ -6188,7 +6190,7 @@ Field *Item::tmp_table_field_from_field_type(TABLE *table,
|
|||
Field_string(max_length, maybe_null, name, collation.collation);
|
||||
break;
|
||||
}
|
||||
/* Fall through */
|
||||
/* fall through */
|
||||
case MYSQL_TYPE_ENUM:
|
||||
case MYSQL_TYPE_SET:
|
||||
case MYSQL_TYPE_VAR_STRING:
|
||||
|
@ -7000,6 +7002,7 @@ bool Item::cache_const_expr_analyzer(uchar **arg)
|
|||
*/
|
||||
if (const_item() &&
|
||||
!(basic_const_item() || item->basic_const_item() ||
|
||||
item->type() == Item::NULL_ITEM || /* Item_name_const hack */
|
||||
item->type() == Item::FIELD_ITEM ||
|
||||
item->type() == SUBSELECT_ITEM ||
|
||||
item->type() == CACHE_ITEM ||
|
||||
|
@ -7355,7 +7358,11 @@ public:
|
|||
// Find which select the field is in. This is achieved by walking up
|
||||
// the select tree and looking for the table of interest.
|
||||
st_select_lex *sel;
|
||||
for (sel= current_select; sel; sel= sel->outer_select())
|
||||
for (sel= current_select;
|
||||
sel ;
|
||||
sel= (sel->context.outer_context ?
|
||||
sel->context.outer_context->select_lex:
|
||||
NULL))
|
||||
{
|
||||
List_iterator<TABLE_LIST> li(sel->leaf_tables);
|
||||
TABLE_LIST *tbl;
|
||||
|
@ -8529,7 +8536,6 @@ bool Item_direct_view_ref::send(Protocol *protocol, String *buffer)
|
|||
|
||||
bool Item_direct_view_ref::fix_fields(THD *thd, Item **reference)
|
||||
{
|
||||
DBUG_ASSERT(1);
|
||||
/* view fild reference must be defined */
|
||||
DBUG_ASSERT(*ref);
|
||||
/* (*ref)->check_cols() will be made in Item_direct_ref::fix_fields */
|
||||
|
@ -10597,7 +10603,7 @@ void Item_direct_view_ref::update_used_tables()
|
|||
|
||||
table_map Item_direct_view_ref::used_tables() const
|
||||
{
|
||||
DBUG_ASSERT(null_ref_table);
|
||||
DBUG_ASSERT(fixed);
|
||||
|
||||
if (get_depended_from())
|
||||
return OUTER_REF_TABLE_BIT;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#ifndef SQL_ITEM_INCLUDED
|
||||
#define SQL_ITEM_INCLUDED
|
||||
|
||||
/* Copyright (c) 2000, 2015, Oracle and/or its affiliates.
|
||||
Copyright (c) 2009, 2017, MariaDB Corporation.
|
||||
/* Copyright (c) 2000, 2017, Oracle and/or its affiliates.
|
||||
Copyright (c) 2009, 2017, MariaDB
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
#include "sql_class.h" // THD, set_var.h: THD
|
||||
#include "set_var.h"
|
||||
|
||||
|
||||
void Item_row::illegal_method_call(const char *method)
|
||||
{
|
||||
DBUG_ENTER("Item_row::illegal_method_call");
|
||||
|
|
|
@ -47,13 +47,10 @@ public:
|
|||
Item_row(THD *thd, List<Item> &list):
|
||||
Item(thd), Item_args(thd, list), not_null_tables_cache(0), with_null(0)
|
||||
{ }
|
||||
Item_row(THD *thd, Item_row *item):
|
||||
Item(thd),
|
||||
Item_args(item),
|
||||
Used_tables_and_const_cache(item),
|
||||
not_null_tables_cache(0),
|
||||
with_null(0)
|
||||
{}
|
||||
Item_row(THD *thd, Item_row *row):
|
||||
Item(thd), Item_args(thd, static_cast<Item_args*>(row)), Used_tables_and_const_cache(),
|
||||
not_null_tables_cache(0), with_null(0)
|
||||
{ }
|
||||
|
||||
enum Type type() const { return ROW_ITEM; };
|
||||
void illegal_method_call(const char *);
|
||||
|
|
|
@ -1448,6 +1448,10 @@ Item_in_subselect::Item_in_subselect(THD *thd, Item * left_exp,
|
|||
DBUG_ENTER("Item_in_subselect::Item_in_subselect");
|
||||
DBUG_PRINT("info", ("in_strategy: %u", (uint)in_strategy));
|
||||
left_expr_orig= left_expr= left_exp;
|
||||
/* prepare to possible disassembling the item in convert_subq_to_sj() */
|
||||
if (left_exp->type() == Item::ROW_ITEM)
|
||||
left_expr_orig= new (thd->mem_root)
|
||||
Item_row(thd, static_cast<Item_row*>(left_exp));
|
||||
func= &eq_creator;
|
||||
init(select_lex, new (thd->mem_root) select_exists_subselect(thd, this));
|
||||
max_columns= UINT_MAX;
|
||||
|
@ -1471,6 +1475,10 @@ Item_allany_subselect::Item_allany_subselect(THD *thd, Item * left_exp,
|
|||
{
|
||||
DBUG_ENTER("Item_allany_subselect::Item_allany_subselect");
|
||||
left_expr_orig= left_expr= left_exp;
|
||||
/* prepare to possible disassembling the item in convert_subq_to_sj() */
|
||||
if (left_exp->type() == Item::ROW_ITEM)
|
||||
left_expr_orig= new (thd->mem_root)
|
||||
Item_row(thd, static_cast<Item_row*>(left_exp));
|
||||
func= func_creator(all_arg);
|
||||
init(select_lex, new (thd->mem_root) select_exists_subselect(thd, this));
|
||||
max_columns= 1;
|
||||
|
|
|
@ -1852,9 +1852,18 @@ overflow:
|
|||
|
||||
ltime->hour= TIME_MAX_HOUR+1;
|
||||
check_time_range(ltime, decimals, &unused);
|
||||
make_truncated_value_warning(current_thd, Sql_condition::WARN_LEVEL_WARN,
|
||||
err->ptr(), err->length(),
|
||||
MYSQL_TIMESTAMP_TIME, NullS);
|
||||
if (!err)
|
||||
{
|
||||
ErrConvInteger err2(sec, unsigned_flag);
|
||||
make_truncated_value_warning(current_thd, Sql_condition::WARN_LEVEL_WARN,
|
||||
&err2, MYSQL_TIMESTAMP_TIME, NullS);
|
||||
}
|
||||
else
|
||||
{
|
||||
ErrConvString err2(err);
|
||||
make_truncated_value_warning(current_thd, Sql_condition::WARN_LEVEL_WARN,
|
||||
&err2, MYSQL_TIMESTAMP_TIME, NullS);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue