mirror of
https://github.com/MariaDB/server.git
synced 2025-01-26 08:44:33 +01:00
Merge remote-tracking branch 'origin/bb-10.2-ext' into 10.3
TODO: enable MDEV-13049 optimization for 10.3
This commit is contained in:
commit
835cbbcc7b
644 changed files with 35267 additions and 4099 deletions
client
cmake
extra
libmariadbmysql-test
README
include
empty_string_literal.incinnodb_gis_row_format_basic.incinnodb_gis_undo.inckill_and_restart_mysqld.incwait_innodb_all_purged.inc
lib/My
r
alter_table.resultcache_temporal_4265.resultcase.resultcte_nonrecursive.resultcte_recursive.resultctype_gbk.resultctype_latin1.resultctype_ucs.resultctype_utf32.resultctype_utf8.resultdelete_returning.resultempty_string_literal.resulterrors.resultfunc_in.resultfunc_json.resultfunc_regexp_pcre.resultfunc_time.resultgis-precise.resultgis2.resultinformation_schema.resultmdev13607.resultmyisam.resultmysqld--help.resultpartition_datatype.resultps.resultrange_vs_index_merge.resultrange_vs_index_merge_innodb.resultread_only.resultshow_check.resultshow_function_with_pad_char_to_full_length.resultsp-anchor-row-type-cursor.resultsp-anchor-row-type-table.resultsp-anchor-type.resultsp-row.resultsql_mode.resultstrict.resultsubselect_mat_cost_bugs.resultsystem_mysql_db.resultsystem_mysql_db_fix40123.resultsystem_mysql_db_fix50030.resultsystem_mysql_db_fix50117.resulttype_float.resulttype_varchar.result
suite
compat/oracle
r
empty_string_literal.resultfunc_substr.resultsp-anchor-row-type-table.resultsp-code.resultsp-cursor-rowtype.resultsp-param.resultsp-row.resultsp.result
t
funcs_1/r
galera_3nodes
innodb
|
@ -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);
|
||||
|
@ -1076,7 +1075,7 @@ static void print_table_data_vertically(MYSQL_RES *result);
|
|||
static void print_warnings(void);
|
||||
static void end_timer(ulonglong 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")
|
||||
|
|
|
@ -7,10 +7,8 @@ ENDIF()
|
|||
SET(CONC_WITH_SIGNCODE ${SIGNCODE})
|
||||
SET(SIGN_OPTIONS ${SIGNTOOL_PARAMETERS})
|
||||
|
||||
IF(TARGET zlib)
|
||||
GET_PROPERTY(ZLIB_LIBRARY_LOCATION TARGET zlib PROPERTY LOCATION)
|
||||
ELSE()
|
||||
SET(ZLIB_LIBRARY_LOCATION ${ZLIB_LIBRARY})
|
||||
IF(NOT TARGET zlib)
|
||||
SET(CONC_WITH_EXTERNAL_ZLIB ON)
|
||||
ENDIF()
|
||||
|
||||
IF(SSL_DEFINES MATCHES "YASSL")
|
||||
|
|
|
@ -69,13 +69,9 @@ ENDMACRO()
|
|||
# Get mysql version and other interesting variables
|
||||
GET_MYSQL_VERSION()
|
||||
|
||||
SET(MYSQL_TCP_PORT_DEFAULT "3306")
|
||||
|
||||
SET(MYSQL_TCP_PORT_DEFAULT 0)
|
||||
IF(NOT MYSQL_TCP_PORT)
|
||||
SET(MYSQL_TCP_PORT ${MYSQL_TCP_PORT_DEFAULT})
|
||||
SET(MYSQL_TCP_PORT_DEFAULT "0")
|
||||
ELSEIF(MYSQL_TCP_PORT EQUAL MYSQL_TCP_PORT_DEFAULT)
|
||||
SET(MYSQL_TCP_PORT_DEFAULT "0")
|
||||
SET(MYSQL_TCP_PORT 3306)
|
||||
ENDIF()
|
||||
|
||||
IF(NOT COMPILATION_COMMENT)
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -1707,7 +1707,8 @@ copy_back()
|
|||
if it exists. */
|
||||
|
||||
ds_data = ds_create(dst_dir, DS_TYPE_LOCAL);
|
||||
if (!file_exists("ib_logfile0")) {
|
||||
MY_STAT stat_arg;
|
||||
if (!my_stat("ib_logfile0", &stat_arg, MYF(0)) || !stat_arg.st_size) {
|
||||
/* After completed --prepare, redo log files are redundant.
|
||||
We must delete any redo logs at the destination, so that
|
||||
the database will not jump to a different log sequence number
|
||||
|
@ -1895,6 +1896,13 @@ decrypt_decompress_file(const char *filepath, uint thread_n)
|
|||
if (system(cmd.str().c_str()) != 0) {
|
||||
return(false);
|
||||
}
|
||||
|
||||
if (opt_remove_original) {
|
||||
msg_ts("[%02u] removing %s\n", thread_n, filepath);
|
||||
if (my_delete(filepath, MYF(MY_WME)) != 0) {
|
||||
return(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return(true);
|
||||
|
|
|
@ -535,7 +535,7 @@ xb_msg_missing_lsn_data(
|
|||
lsn_t missing_interval_start, /*!<in: interval start */
|
||||
lsn_t missing_interval_end) /*!<in: interval end */
|
||||
{
|
||||
msg("xtrabackup: warning: changed page data missing for LSNs between "
|
||||
msg("mariabackup: warning: changed page data missing for LSNs between "
|
||||
LSN_PF " and " LSN_PF "\n", missing_interval_start,
|
||||
missing_interval_end);
|
||||
}
|
||||
|
@ -612,7 +612,7 @@ xb_page_bitmap_init(void)
|
|||
|
||||
if (UNIV_UNLIKELY(bmp_start_lsn > bmp_end_lsn)) {
|
||||
|
||||
msg("xtrabackup: incremental backup LSN " LSN_PF
|
||||
msg("mariabackup: incremental backup LSN " LSN_PF
|
||||
" is larger than than the last checkpoint LSN " LSN_PF
|
||||
"\n", bmp_start_lsn, bmp_end_lsn);
|
||||
return NULL;
|
||||
|
@ -697,7 +697,7 @@ xb_page_bitmap_init(void)
|
|||
¤t_page_end_lsn,
|
||||
bmp_start_lsn))) {
|
||||
|
||||
msg("xtrabackup: Warning: changed page bitmap file "
|
||||
msg("mariabackup: Warning: changed page bitmap file "
|
||||
"\'%s\' corrupted\n", bitmap_file.name);
|
||||
rbt_free(result);
|
||||
free(bitmap_files.files);
|
||||
|
@ -802,7 +802,7 @@ xb_page_bitmap_init(void)
|
|||
|
||||
if (UNIV_UNLIKELY(!last_page_ok)) {
|
||||
|
||||
msg("xtrabackup: warning: changed page bitmap file "
|
||||
msg("mariabackup: warning: changed page bitmap file "
|
||||
"\'%s\' corrupted.\n", bitmap_file.name);
|
||||
rbt_free(result);
|
||||
free(bitmap_files.files);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/******************************************************
|
||||
XtraBackup: hot backup tool for InnoDB
|
||||
MariaBackup: hot backup tool for InnoDB
|
||||
(c) 2009-2013 Percona LLC and/or its affiliates.
|
||||
Originally Created 3/3/2009 Yasufumi Kinoshita
|
||||
Written by Alexey Kopytov, Aleksandr Kuzminsky, Stewart Smith, Vadim Tkachenko,
|
||||
|
@ -169,7 +169,7 @@ xb_fil_cur_open(
|
|||
/* The following call prints an error message */
|
||||
os_file_get_last_error(TRUE);
|
||||
|
||||
msg("[%02u] xtrabackup: error: cannot open "
|
||||
msg("[%02u] mariabackup: error: cannot open "
|
||||
"tablespace %s\n",
|
||||
thread_n, cursor->abs_path);
|
||||
|
||||
|
@ -196,7 +196,7 @@ xb_fil_cur_open(
|
|||
cursor->file = node->handle;
|
||||
|
||||
if (stat(cursor->abs_path, &cursor->statinfo)) {
|
||||
msg("[%02u] xtrabackup: error: cannot stat %s\n",
|
||||
msg("[%02u] mariabackup: error: cannot stat %s\n",
|
||||
thread_n, cursor->abs_path);
|
||||
|
||||
xb_fil_cur_close(cursor);
|
||||
|
@ -222,7 +222,7 @@ xb_fil_cur_open(
|
|||
if (!fsp_flags_is_valid(flags, cursor->space_id)) {
|
||||
ulint cflags = fsp_flags_convert_from_101(flags);
|
||||
if (cflags == ULINT_UNDEFINED) {
|
||||
msg("[%02u] xtrabackup: Error: Invalid "
|
||||
msg("[%02u] mariabackup: Error: Invalid "
|
||||
"tablespace flags: %x.\n", thread_n, uint(flags));
|
||||
return(XB_FIL_CUR_SKIP);
|
||||
}
|
||||
|
@ -294,9 +294,9 @@ xb_fil_cur_read(
|
|||
&& offset + to_read == cursor->statinfo.st_size) {
|
||||
|
||||
if (to_read < (ib_int64_t) page_size) {
|
||||
msg("[%02u] xtrabackup: Warning: junk at the end of "
|
||||
msg("[%02u] mariabackup: Warning: junk at the end of "
|
||||
"%s:\n", cursor->thread_n, cursor->abs_path);
|
||||
msg("[%02u] xtrabackup: Warning: offset = %llu, "
|
||||
msg("[%02u] mariabackup: Warning: offset = %llu, "
|
||||
"to_read = %llu\n",
|
||||
cursor->thread_n,
|
||||
(unsigned long long) offset,
|
||||
|
@ -354,7 +354,7 @@ read_retry:
|
|||
space)) {
|
||||
retry_count--;
|
||||
if (retry_count == 0) {
|
||||
msg("[%02u] xtrabackup: "
|
||||
msg("[%02u] mariabackup: "
|
||||
"Error: failed to read page after "
|
||||
"10 retries. File %s seems to be "
|
||||
"corrupted.\n", cursor->thread_n,
|
||||
|
@ -364,7 +364,7 @@ read_retry:
|
|||
}
|
||||
|
||||
if (retry_count == 9) {
|
||||
msg("[%02u] xtrabackup: "
|
||||
msg("[%02u] mariabackup: "
|
||||
"Database page corruption detected at page "
|
||||
ULINTPF ", retrying...\n",
|
||||
cursor->thread_n, page_no);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/******************************************************
|
||||
XtraBackup: hot backup tool for InnoDB
|
||||
MariaBackup: hot backup tool for InnoDB
|
||||
(c) 2009-2013 Percona LLC and/or its affiliates.
|
||||
Originally Created 3/3/2009 Yasufumi Kinoshita
|
||||
Written by Alexey Kopytov, Aleksandr Kuzminsky, Stewart Smith, Vadim Tkachenko,
|
||||
|
@ -80,14 +80,14 @@ wf_incremental_init(xb_write_filt_ctxt_t *ctxt, char *dst_name,
|
|||
cp->delta_buf_base = static_cast<byte *>(malloc(buf_size));
|
||||
memset(cp->delta_buf_base, 0, buf_size);
|
||||
cp->delta_buf = static_cast<byte *>
|
||||
(ut_align(cp->delta_buf_base, UNIV_PAGE_SIZE_MAX));
|
||||
(ut_align(cp->delta_buf_base, cursor->page_size.physical()));
|
||||
|
||||
/* write delta meta info */
|
||||
snprintf(meta_name, sizeof(meta_name), "%s%s", dst_name,
|
||||
XB_DELTA_INFO_SUFFIX);
|
||||
const xb_delta_info_t info(cursor->page_size, cursor->space_id);
|
||||
if (!xb_write_delta_metadata(meta_name, &info)) {
|
||||
msg("[%02u] xtrabackup: Error: "
|
||||
msg("[%02u] mariabackup: Error: "
|
||||
"failed to write meta info for %s\n",
|
||||
cursor->thread_n, cursor->rel_path);
|
||||
return(FALSE);
|
||||
|
|
|
@ -194,7 +194,7 @@ xb_write_galera_info(bool incremental_prepare)
|
|||
fp = fopen(XB_GALERA_INFO_FILENAME, "w");
|
||||
if (fp == NULL) {
|
||||
|
||||
msg("xtrabackup: error: "
|
||||
msg("mariabackup: error: "
|
||||
"could not create " XB_GALERA_INFO_FILENAME
|
||||
", errno = %d\n",
|
||||
errno);
|
||||
|
@ -203,12 +203,12 @@ xb_write_galera_info(bool incremental_prepare)
|
|||
|
||||
seqno = wsrep_xid_seqno(&xid);
|
||||
|
||||
msg("xtrabackup: Recovered WSREP position: %s:%lld\n",
|
||||
msg("mariabackup: Recovered WSREP position: %s:%lld\n",
|
||||
uuid_str, (long long) seqno);
|
||||
|
||||
if (fprintf(fp, "%s:%lld", uuid_str, (long long) seqno) < 0) {
|
||||
|
||||
msg("xtrabackup: error: "
|
||||
msg("mariabackup: error: "
|
||||
"could not write to " XB_GALERA_INFO_FILENAME
|
||||
", errno = %d\n",
|
||||
errno);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/******************************************************
|
||||
XtraBackup: hot backup tool for InnoDB
|
||||
MariaBackup: hot backup tool for InnoDB
|
||||
(c) 2009-2017 Percona LLC and/or its affiliates
|
||||
Originally Created 3/3/2009 Yasufumi Kinoshita
|
||||
Written by Alexey Kopytov, Aleksandr Kuzminsky, Stewart Smith, Vadim Tkachenko,
|
||||
|
@ -296,6 +296,7 @@ my_bool opt_force_non_empty_dirs = FALSE;
|
|||
my_bool opt_noversioncheck = FALSE;
|
||||
my_bool opt_no_backup_locks = FALSE;
|
||||
my_bool opt_decompress = FALSE;
|
||||
my_bool opt_remove_original;
|
||||
|
||||
my_bool opt_lock_ddl_per_table = FALSE;
|
||||
|
||||
|
@ -527,6 +528,7 @@ enum options_xtrabackup
|
|||
OPT_DECOMPRESS,
|
||||
OPT_INCREMENTAL_HISTORY_NAME,
|
||||
OPT_INCREMENTAL_HISTORY_UUID,
|
||||
OPT_REMOVE_ORIGINAL,
|
||||
OPT_LOCK_WAIT_QUERY_TYPE,
|
||||
OPT_KILL_LONG_QUERY_TYPE,
|
||||
OPT_HISTORY,
|
||||
|
@ -809,6 +811,11 @@ struct my_option xb_client_options[] =
|
|||
(uchar*) &opt_incremental_history_uuid, 0, GET_STR,
|
||||
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
|
||||
{"remove-original", OPT_REMOVE_ORIGINAL, "Remove .qp files after decompression.",
|
||||
(uchar *) &opt_remove_original,
|
||||
(uchar *) &opt_remove_original,
|
||||
0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
|
||||
{"ftwrl-wait-query-type", OPT_LOCK_WAIT_QUERY_TYPE,
|
||||
"This option specifies which types of queries are allowed to complete "
|
||||
"before innobackupex will issue the global lock. Default is all.",
|
||||
|
@ -1120,13 +1127,13 @@ debug_sync_point(const char *name)
|
|||
xtrabackup_target_dir);
|
||||
fp = fopen(pid_path, "w");
|
||||
if (fp == NULL) {
|
||||
msg("xtrabackup: Error: cannot open %s\n", pid_path);
|
||||
msg("mariabackup: Error: cannot open %s\n", pid_path);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
fprintf(fp, "%u\n", (uint) pid);
|
||||
fclose(fp);
|
||||
|
||||
msg("xtrabackup: DEBUG: Suspending at debug sync point '%s'. "
|
||||
msg("mariabackup: DEBUG: Suspending at debug sync point '%s'. "
|
||||
"Resume with 'kill -SIGCONT %u'.\n", name, (uint) pid);
|
||||
|
||||
debug_sync_resumed= 0;
|
||||
|
@ -1136,7 +1143,7 @@ debug_sync_point(const char *name)
|
|||
}
|
||||
|
||||
/* On resume */
|
||||
msg("xtrabackup: DEBUG: removing the pid file.\n");
|
||||
msg("mariabackup: DEBUG: removing the pid file.\n");
|
||||
my_delete(pid_path, MYF(MY_WME));
|
||||
#endif
|
||||
}
|
||||
|
@ -1470,12 +1477,12 @@ innodb_init_param(void)
|
|||
/* Check that values don't overflow on 32-bit systems. */
|
||||
if (sizeof(ulint) == 4) {
|
||||
if (xtrabackup_use_memory > UINT_MAX32) {
|
||||
msg("xtrabackup: use-memory can't be over 4GB"
|
||||
msg("mariabackup: use-memory can't be over 4GB"
|
||||
" on 32-bit systems\n");
|
||||
}
|
||||
|
||||
if (innobase_buffer_pool_size > UINT_MAX32) {
|
||||
msg("xtrabackup: innobase_buffer_pool_size can't be "
|
||||
msg("mariabackup: innobase_buffer_pool_size can't be "
|
||||
"over 4GB on 32-bit systems\n");
|
||||
|
||||
goto error;
|
||||
|
@ -1489,9 +1496,9 @@ innodb_init_param(void)
|
|||
read from MySQL .cnf file */
|
||||
|
||||
if (xtrabackup_backup) {
|
||||
msg("xtrabackup: using the following InnoDB configuration:\n");
|
||||
msg("mariabackup: using the following InnoDB configuration:\n");
|
||||
} else {
|
||||
msg("xtrabackup: using the following InnoDB configuration "
|
||||
msg("mariabackup: using the following InnoDB configuration "
|
||||
"for recovery:\n");
|
||||
}
|
||||
|
||||
|
@ -1501,7 +1508,7 @@ innodb_init_param(void)
|
|||
|
||||
srv_data_home = (xtrabackup_backup && innobase_data_home_dir
|
||||
? innobase_data_home_dir : default_path);
|
||||
msg("xtrabackup: innodb_data_home_dir = %s\n", srv_data_home);
|
||||
msg("mariabackup: innodb_data_home_dir = %s\n", srv_data_home);
|
||||
|
||||
/* Set default InnoDB data file size to 10 MB and let it be
|
||||
auto-extending. Thus users can use InnoDB in >= 4.0 without having
|
||||
|
@ -1510,7 +1517,7 @@ innodb_init_param(void)
|
|||
if (!innobase_data_file_path) {
|
||||
innobase_data_file_path = (char*) "ibdata1:10M:autoextend";
|
||||
}
|
||||
msg("xtrabackup: innodb_data_file_path = %s\n",
|
||||
msg("mariabackup: innodb_data_file_path = %s\n",
|
||||
innobase_data_file_path);
|
||||
|
||||
/* This is the first time univ_page_size is used.
|
||||
|
@ -1537,7 +1544,7 @@ innodb_init_param(void)
|
|||
if (xtrabackup_prepare && xtrabackup_incremental_dir) {
|
||||
srv_log_group_home_dir = xtrabackup_incremental_dir;
|
||||
}
|
||||
msg("xtrabackup: innodb_log_group_home_dir = %s\n",
|
||||
msg("mariabackup: innodb_log_group_home_dir = %s\n",
|
||||
srv_log_group_home_dir);
|
||||
|
||||
os_normalize_path(srv_log_group_home_dir);
|
||||
|
@ -1635,7 +1642,7 @@ innodb_init_param(void)
|
|||
return(FALSE);
|
||||
|
||||
error:
|
||||
msg("xtrabackup: innodb_init_param(): Error occured.\n");
|
||||
msg("mariabackup: innodb_init_param(): Error occured.\n");
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
|
@ -1643,7 +1650,7 @@ static bool innodb_init()
|
|||
{
|
||||
dberr_t err = innobase_start_or_create_for_mysql();
|
||||
if (err != DB_SUCCESS) {
|
||||
msg("xtrabackup: innodb_init() returned %d (%s).\n",
|
||||
msg("mariabackup: innodb_init() returned %d (%s).\n",
|
||||
err, ut_strerr(err));
|
||||
innodb_shutdown();
|
||||
return(TRUE);
|
||||
|
@ -1667,7 +1674,7 @@ xtrabackup_read_metadata(char *filename)
|
|||
|
||||
fp = fopen(filename,"r");
|
||||
if(!fp) {
|
||||
msg("xtrabackup: Error: cannot open %s\n", filename);
|
||||
msg("mariabackup: Error: cannot open %s\n", filename);
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
|
@ -1746,7 +1753,7 @@ xtrabackup_stream_metadata(ds_ctxt_t *ds_ctxt)
|
|||
|
||||
stream = ds_open(ds_ctxt, XTRABACKUP_METADATA_FILENAME, &mystat);
|
||||
if (stream == NULL) {
|
||||
msg("xtrabackup: Error: cannot open output stream "
|
||||
msg("mariabackup: Error: cannot open output stream "
|
||||
"for %s\n", XTRABACKUP_METADATA_FILENAME);
|
||||
return(FALSE);
|
||||
}
|
||||
|
@ -1779,7 +1786,7 @@ xtrabackup_write_metadata(const char *filepath)
|
|||
|
||||
fp = fopen(filepath, "w");
|
||||
if(!fp) {
|
||||
msg("xtrabackup: Error: cannot open %s\n", filepath);
|
||||
msg("mariabackup: Error: cannot open %s\n", filepath);
|
||||
return(FALSE);
|
||||
}
|
||||
if (fwrite(buf, len, 1, fp) < 1) {
|
||||
|
@ -1828,7 +1835,7 @@ xb_read_delta_metadata(const char *filepath, xb_delta_info_t *info)
|
|||
fclose(fp);
|
||||
|
||||
if (page_size == ULINT_UNDEFINED) {
|
||||
msg("xtrabackup: page_size is required in %s\n", filepath);
|
||||
msg("mariabackup: page_size is required in %s\n", filepath);
|
||||
r = FALSE;
|
||||
} else {
|
||||
info->page_size = page_size_t(zip_size ? zip_size : page_size,
|
||||
|
@ -1836,7 +1843,7 @@ xb_read_delta_metadata(const char *filepath, xb_delta_info_t *info)
|
|||
}
|
||||
|
||||
if (info->space_id == ULINT_UNDEFINED) {
|
||||
msg("xtrabackup: Warning: This backup was taken with XtraBackup 2.0.1 "
|
||||
msg("mariabackup: Warning: This backup was taken with XtraBackup 2.0.1 "
|
||||
"or earlier, some DDL operations between full and incremental "
|
||||
"backups may be handled incorrectly\n");
|
||||
}
|
||||
|
@ -1871,7 +1878,7 @@ xb_write_delta_metadata(const char *filename, const xb_delta_info_t *info)
|
|||
|
||||
f = ds_open(ds_meta, filename, &mystat);
|
||||
if (f == NULL) {
|
||||
msg("xtrabackup: Error: cannot open output stream for %s\n",
|
||||
msg("mariabackup: Error: cannot open output stream for %s\n",
|
||||
filename);
|
||||
return(FALSE);
|
||||
}
|
||||
|
@ -2237,14 +2244,14 @@ xtrabackup_copy_datafile(fil_node_t* node, uint thread_n)
|
|||
|
||||
if (write_filter->init != NULL &&
|
||||
!write_filter->init(&write_filt_ctxt, dst_name, &cursor)) {
|
||||
msg("[%02u] xtrabackup: error: "
|
||||
msg("[%02u] mariabackup: error: "
|
||||
"failed to initialize page write filter.\n", thread_n);
|
||||
goto error;
|
||||
}
|
||||
|
||||
dstfile = ds_open(ds_data, dst_name, &cursor.statinfo);
|
||||
if (dstfile == NULL) {
|
||||
msg("[%02u] xtrabackup: error: "
|
||||
msg("[%02u] mariabackup: error: "
|
||||
"cannot open the destination stream for %s\n",
|
||||
thread_n, dst_name);
|
||||
goto error;
|
||||
|
@ -2294,7 +2301,7 @@ error:
|
|||
if (write_filter && write_filter->deinit) {
|
||||
write_filter->deinit(&write_filt_ctxt);;
|
||||
}
|
||||
msg("[%02u] xtrabackup: Error: "
|
||||
msg("[%02u] mariabackup: Error: "
|
||||
"xtrabackup_copy_datafile() failed.\n", thread_n);
|
||||
return(TRUE); /*ERROR*/
|
||||
|
||||
|
@ -2306,10 +2313,10 @@ skip:
|
|||
if (write_filter && write_filter->deinit) {
|
||||
write_filter->deinit(&write_filt_ctxt);
|
||||
}
|
||||
msg("[%02u] xtrabackup: Warning: We assume the "
|
||||
msg("[%02u] mariabackup: Warning: We assume the "
|
||||
"table was dropped during xtrabackup execution "
|
||||
"and ignore the file.\n", thread_n);
|
||||
msg("[%02u] xtrabackup: Warning: skipping tablespace %s.\n",
|
||||
msg("[%02u] mariabackup: Warning: skipping tablespace %s.\n",
|
||||
thread_n, node_name);
|
||||
return(FALSE);
|
||||
}
|
||||
|
@ -2380,7 +2387,7 @@ xtrabackup_copy_log(copy_logfile copy, lsn_t start_lsn, lsn_t end_lsn)
|
|||
}
|
||||
|
||||
if (ds_write(dst_log_file, log_sys->buf, write_size)) {
|
||||
msg("xtrabackup: Error: "
|
||||
msg("mariabackup: Error: "
|
||||
"write to logfile failed\n");
|
||||
return(0);
|
||||
}
|
||||
|
@ -2424,7 +2431,7 @@ xtrabackup_copy_logfile(copy_logfile copy)
|
|||
if (!start_lsn) {
|
||||
ds_close(dst_log_file);
|
||||
dst_log_file = NULL;
|
||||
msg("xtrabackup: Error: xtrabackup_copy_logfile()"
|
||||
msg("mariabackup: Error: xtrabackup_copy_logfile()"
|
||||
" failed.\n");
|
||||
return(true);
|
||||
}
|
||||
|
@ -2458,7 +2465,7 @@ static os_thread_ret_t log_copying_thread(void*)
|
|||
|
||||
log_copying_running = false;
|
||||
my_thread_end();
|
||||
os_thread_exit(NULL);
|
||||
os_thread_exit();
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
@ -2481,7 +2488,7 @@ static os_thread_ret_t io_watching_thread(void*)
|
|||
|
||||
io_watching_thread_running = false;
|
||||
|
||||
os_thread_exit(NULL);
|
||||
os_thread_exit();
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
@ -2510,7 +2517,7 @@ data_copy_thread_func(
|
|||
|
||||
/* copy the datafile */
|
||||
if(xtrabackup_copy_datafile(node, num)) {
|
||||
msg("[%02u] xtrabackup: Error: "
|
||||
msg("[%02u] mariabackup: Error: "
|
||||
"failed to copy datafile.\n", num);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
@ -2521,7 +2528,7 @@ data_copy_thread_func(
|
|||
pthread_mutex_unlock(&ctxt->count_mutex);
|
||||
|
||||
my_thread_end();
|
||||
os_thread_exit(NULL);
|
||||
os_thread_exit();
|
||||
OS_THREAD_DUMMY_RETURN;
|
||||
}
|
||||
|
||||
|
@ -2886,7 +2893,7 @@ xb_load_tablespaces()
|
|||
|
||||
/* create_new_db must not be true. */
|
||||
if (err != DB_SUCCESS || create_new_db) {
|
||||
msg("xtrabackup: could not find data files at the "
|
||||
msg("mariabackup: could not find data files at the "
|
||||
"specified datadir\n");
|
||||
return(DB_ERROR);
|
||||
}
|
||||
|
@ -2895,18 +2902,18 @@ xb_load_tablespaces()
|
|||
&flush_lsn);
|
||||
|
||||
if (err != DB_SUCCESS) {
|
||||
msg("xtrabackup: Could not open or create data files.\n"
|
||||
"xtrabackup: If you tried to add new data files, and it "
|
||||
msg("mariabackup: Could not open or create data files.\n"
|
||||
"mariabackup: If you tried to add new data files, and it "
|
||||
"failed here,\n"
|
||||
"xtrabackup: you should now edit innodb_data_file_path in "
|
||||
"mariabackup: you should now edit innodb_data_file_path in "
|
||||
"my.cnf back\n"
|
||||
"xtrabackup: to what it was, and remove the new ibdata "
|
||||
"mariabackup: to what it was, and remove the new ibdata "
|
||||
"files InnoDB created\n"
|
||||
"xtrabackup: in this failed attempt. InnoDB only wrote "
|
||||
"mariabackup: in this failed attempt. InnoDB only wrote "
|
||||
"those files full of\n"
|
||||
"xtrabackup: zeros, but did not yet use them in any way. "
|
||||
"mariabackup: zeros, but did not yet use them in any way. "
|
||||
"But be careful: do not\n"
|
||||
"xtrabackup: remove old data files which contain your "
|
||||
"mariabackup: remove old data files which contain your "
|
||||
"precious data!\n");
|
||||
return(err);
|
||||
}
|
||||
|
@ -2923,7 +2930,7 @@ xb_load_tablespaces()
|
|||
srv_undo_tablespaces_init(), because fil_is_user_tablespace_id() *
|
||||
relies on srv_undo_tablespaces_open to be properly initialized */
|
||||
|
||||
msg("xtrabackup: Generating a list of tablespaces\n");
|
||||
msg("mariabackup: Generating a list of tablespaces\n");
|
||||
|
||||
err = enumerate_ibd_files(xb_load_single_table_tablespace);
|
||||
if (err != DB_SUCCESS) {
|
||||
|
@ -3026,12 +3033,12 @@ xb_validate_name(
|
|||
/* perform only basic validation. validate length and
|
||||
path symbols */
|
||||
if (len > NAME_LEN) {
|
||||
msg("xtrabackup: name `%s` is too long.\n", name);
|
||||
msg("mariabackup: name `%s` is too long.\n", name);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
p = strpbrk(name, "/\\~");
|
||||
if (p && p - name < NAME_LEN) {
|
||||
msg("xtrabackup: name `%s` is not valid.\n", name);
|
||||
msg("mariabackup: name `%s` is not valid.\n", name);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
|
@ -3110,7 +3117,7 @@ xb_register_table(
|
|||
const char* name) /*!< in: name of table */
|
||||
{
|
||||
if (strchr(name, '.') == NULL) {
|
||||
msg("xtrabackup: `%s` is not fully qualified name.\n", name);
|
||||
msg("mariabackup: `%s` is not fully qualified name.\n", name);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
|
@ -3132,7 +3139,7 @@ xb_add_regex_to_list(
|
|||
|
||||
if (ret != 0) {
|
||||
regerror(ret, &compiled_regex, errbuf, sizeof(errbuf));
|
||||
msg("xtrabackup: error: %s regcomp(%s): %s\n",
|
||||
msg("mariabackup: error: %s regcomp(%s): %s\n",
|
||||
error_context, regex, errbuf);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
@ -3201,7 +3208,7 @@ xb_load_list_file(
|
|||
/* read and store the filenames */
|
||||
fp = fopen(filename, "r");
|
||||
if (!fp) {
|
||||
msg("xtrabackup: cannot open %s\n",
|
||||
msg("mariabackup: cannot open %s\n",
|
||||
filename);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
@ -3210,7 +3217,7 @@ xb_load_list_file(
|
|||
if (p) {
|
||||
*p = '\0';
|
||||
} else {
|
||||
msg("xtrabackup: `%s...` name is too long", name_buf);
|
||||
msg("mariabackup: `%s...` name is too long", name_buf);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
|
@ -3432,7 +3439,7 @@ static void stop_backup_threads()
|
|||
|
||||
if (log_copying_stop) {
|
||||
os_event_set(log_copying_stop);
|
||||
msg("xtrabackup: Stopping log copying thread.\n");
|
||||
msg("mariabackup: Stopping log copying thread.\n");
|
||||
while (log_copying_running) {
|
||||
msg(".");
|
||||
os_thread_sleep(200000); /*0.2 sec*/
|
||||
|
@ -3466,12 +3473,12 @@ xtrabackup_backup_low()
|
|||
&& log_sys->log.format != 0) {
|
||||
metadata_to_lsn = mach_read_from_8(
|
||||
log_sys->checkpoint_buf + LOG_CHECKPOINT_LSN);
|
||||
msg("xtrabackup: The latest check point"
|
||||
msg("mariabackup: The latest check point"
|
||||
" (for incremental): '" LSN_PF "'\n",
|
||||
metadata_to_lsn);
|
||||
} else {
|
||||
metadata_to_lsn = 0;
|
||||
msg("xtrabackup: Error: recv_find_max_checkpoint() failed.\n");
|
||||
msg("mariabackup: Error: recv_find_max_checkpoint() failed.\n");
|
||||
}
|
||||
log_mutex_exit();
|
||||
}
|
||||
|
@ -3499,7 +3506,7 @@ xtrabackup_backup_low()
|
|||
metadata_last_lsn = log_copy_scanned_lsn;
|
||||
|
||||
if (!xtrabackup_stream_metadata(ds_meta)) {
|
||||
msg("xtrabackup: Error: failed to stream metadata.\n");
|
||||
msg("mariabackup: Error: failed to stream metadata.\n");
|
||||
return false;
|
||||
}
|
||||
if (xtrabackup_extra_lsndir) {
|
||||
|
@ -3508,7 +3515,7 @@ xtrabackup_backup_low()
|
|||
sprintf(filename, "%s/%s", xtrabackup_extra_lsndir,
|
||||
XTRABACKUP_METADATA_FILENAME);
|
||||
if (!xtrabackup_write_metadata(filename)) {
|
||||
msg("xtrabackup: Error: failed to write metadata "
|
||||
msg("mariabackup: Error: failed to write metadata "
|
||||
"to '%s'.\n", filename);
|
||||
return false;
|
||||
}
|
||||
|
@ -3531,19 +3538,19 @@ xtrabackup_backup_func()
|
|||
data_thread_ctxt_t *data_threads;
|
||||
|
||||
#ifdef USE_POSIX_FADVISE
|
||||
msg("xtrabackup: uses posix_fadvise().\n");
|
||||
msg("mariabackup: uses posix_fadvise().\n");
|
||||
#endif
|
||||
|
||||
/* cd to datadir */
|
||||
|
||||
if (my_setwd(mysql_real_data_home,MYF(MY_WME)))
|
||||
{
|
||||
msg("xtrabackup: cannot my_setwd %s\n", mysql_real_data_home);
|
||||
msg("mariabackup: cannot my_setwd %s\n", mysql_real_data_home);
|
||||
return(false);
|
||||
}
|
||||
msg("xtrabackup: cd to %s\n", mysql_real_data_home);
|
||||
msg("mariabackup: cd to %s\n", mysql_real_data_home);
|
||||
|
||||
msg("xtrabackup: open files limit requested %u, set to %u\n",
|
||||
msg("mariabackup: open files limit requested %u, set to %u\n",
|
||||
(uint) xb_open_files_limit,
|
||||
xb_set_max_open_files(xb_open_files_limit));
|
||||
|
||||
|
@ -3557,7 +3564,7 @@ xtrabackup_backup_func()
|
|||
srv_operation = SRV_OPERATION_BACKUP;
|
||||
|
||||
if (xb_close_files)
|
||||
msg("xtrabackup: warning: close-files specified. Use it "
|
||||
msg("mariabackup: warning: close-files specified. Use it "
|
||||
"at your own risk. If there are DDL operations like table DROP TABLE "
|
||||
"or RENAME TABLE during the backup, inconsistent backup will be "
|
||||
"produced.\n");
|
||||
|
@ -3587,30 +3594,24 @@ fail:
|
|||
|
||||
} else if (0 == ut_strcmp(srv_file_flush_method_str, "O_DIRECT")) {
|
||||
srv_file_flush_method = SRV_O_DIRECT;
|
||||
msg("xtrabackup: using O_DIRECT\n");
|
||||
msg("mariabackup: using O_DIRECT\n");
|
||||
} else if (0 == ut_strcmp(srv_file_flush_method_str, "littlesync")) {
|
||||
srv_file_flush_method = SRV_LITTLESYNC;
|
||||
} else if (0 == ut_strcmp(srv_file_flush_method_str, "nosync")) {
|
||||
srv_file_flush_method = SRV_NOSYNC;
|
||||
} else if (0 == ut_strcmp(srv_file_flush_method_str, "ALL_O_DIRECT")) {
|
||||
srv_file_flush_method = SRV_ALL_O_DIRECT_FSYNC;
|
||||
msg("xtrabackup: using ALL_O_DIRECT\n");
|
||||
msg("mariabackup: using ALL_O_DIRECT\n");
|
||||
} else if (0 == ut_strcmp(srv_file_flush_method_str,
|
||||
"O_DIRECT_NO_FSYNC")) {
|
||||
srv_file_flush_method = SRV_O_DIRECT_NO_FSYNC;
|
||||
msg("xtrabackup: using O_DIRECT_NO_FSYNC\n");
|
||||
msg("mariabackup: using O_DIRECT_NO_FSYNC\n");
|
||||
} else {
|
||||
msg("xtrabackup: Unrecognized value %s for "
|
||||
msg("mariabackup: Unrecognized value %s for "
|
||||
"innodb_flush_method\n", srv_file_flush_method_str);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/* We can only use synchronous unbuffered IO on Windows for now */
|
||||
if (srv_file_flush_method_str != NULL) {
|
||||
msg("xtrabackupp: Warning: "
|
||||
"ignoring innodb_flush_method = %s on Windows.\n", srv_file_flush_method_str);
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
srv_file_flush_method = SRV_ALL_O_DIRECT_FSYNC;
|
||||
srv_use_native_aio = TRUE;
|
||||
|
@ -3685,12 +3686,12 @@ fail:
|
|||
}
|
||||
if ((log_opened && log_created)) {
|
||||
msg(
|
||||
"xtrabackup: Error: all log files must be created at the same time.\n"
|
||||
"xtrabackup: All log files must be created also in database creation.\n"
|
||||
"xtrabackup: If you want bigger or smaller log files, shut down the\n"
|
||||
"xtrabackup: database and make sure there were no errors in shutdown.\n"
|
||||
"xtrabackup: Then delete the existing log files. Edit the .cnf file\n"
|
||||
"xtrabackup: and start the database again.\n");
|
||||
"mariabackup: Error: all log files must be created at the same time.\n"
|
||||
"mariabackup: All log files must be created also in database creation.\n"
|
||||
"mariabackup: If you want bigger or smaller log files, shut down the\n"
|
||||
"mariabackup: database and make sure there were no errors in shutdown.\n"
|
||||
"mariabackup: Then delete the existing log files. Edit the .cnf file\n"
|
||||
"mariabackup: and start the database again.\n");
|
||||
|
||||
goto fail;
|
||||
}
|
||||
|
@ -3698,7 +3699,7 @@ fail:
|
|||
|
||||
/* log_file_created must not be TRUE, if online */
|
||||
if (log_file_created) {
|
||||
msg("xtrabackup: Something wrong with source files...\n");
|
||||
msg("mariabackup: Something wrong with source files...\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
@ -3708,7 +3709,7 @@ fail:
|
|||
if (xtrabackup_extra_lsndir
|
||||
&&!my_stat(xtrabackup_extra_lsndir,&stat_info,MYF(0))
|
||||
&& (my_mkdir(xtrabackup_extra_lsndir,0777,MYF(0)) < 0)) {
|
||||
msg("xtrabackup: Error: cannot mkdir %d: %s\n",
|
||||
msg("mariabackup: Error: cannot mkdir %d: %s\n",
|
||||
my_errno, xtrabackup_extra_lsndir);
|
||||
goto fail;
|
||||
}
|
||||
|
@ -3716,7 +3717,7 @@ fail:
|
|||
/* create target dir if not exist */
|
||||
if (!xtrabackup_stream_str && !my_stat(xtrabackup_target_dir,&stat_info,MYF(0))
|
||||
&& (my_mkdir(xtrabackup_target_dir,0777,MYF(0)) < 0)){
|
||||
msg("xtrabackup: Error: cannot mkdir %d: %s\n",
|
||||
msg("mariabackup: Error: cannot mkdir %d: %s\n",
|
||||
my_errno, xtrabackup_target_dir);
|
||||
goto fail;
|
||||
}
|
||||
|
@ -3744,7 +3745,7 @@ log_fail:
|
|||
|
||||
if (log_sys->log.format == 0) {
|
||||
old_format:
|
||||
msg("xtrabackup: Error: cannot process redo log"
|
||||
msg("mariabackup: Error: cannot process redo log"
|
||||
" before MariaDB 10.2.2\n");
|
||||
log_mutex_exit();
|
||||
goto log_fail;
|
||||
|
@ -3790,7 +3791,7 @@ reread_log_header:
|
|||
memset(&stat_info, 0, sizeof(MY_STAT));
|
||||
dst_log_file = ds_open(ds_redo, "ib_logfile0", &stat_info);
|
||||
if (dst_log_file == NULL) {
|
||||
msg("xtrabackup: error: failed to open the target stream for "
|
||||
msg("mariabackup: error: failed to open the target stream for "
|
||||
"'ib_logfile0'.\n");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -3808,7 +3809,7 @@ reread_log_header:
|
|||
/* Write the log header. */
|
||||
if (ds_write(dst_log_file, log_hdr, sizeof log_hdr)) {
|
||||
log_write_fail:
|
||||
msg("xtrabackup: error: write to logfile failed\n");
|
||||
msg("mariabackup: error: write to logfile failed\n");
|
||||
goto fail;
|
||||
}
|
||||
/* Adjust the checkpoint page. */
|
||||
|
@ -3854,7 +3855,7 @@ reread_log_header:
|
|||
/* Populate fil_system with tablespaces to copy */
|
||||
err = xb_load_tablespaces();
|
||||
if (err != DB_SUCCESS) {
|
||||
msg("xtrabackup: error: xb_load_tablespaces() failed with"
|
||||
msg("mariabackup: error: xb_load_tablespaces() failed with"
|
||||
"error code %u\n", err);
|
||||
goto fail;
|
||||
}
|
||||
|
@ -3870,25 +3871,25 @@ reread_log_header:
|
|||
changed_page_bitmap = xb_page_bitmap_init();
|
||||
}
|
||||
if (!changed_page_bitmap) {
|
||||
msg("xtrabackup: using the full scan for incremental "
|
||||
msg("mariabackup: using the full scan for incremental "
|
||||
"backup\n");
|
||||
} else if (incremental_lsn != checkpoint_lsn_start) {
|
||||
/* Do not print that bitmaps are used when dummy bitmap
|
||||
is build for an empty LSN range. */
|
||||
msg("xtrabackup: using the changed page bitmap\n");
|
||||
msg("mariabackup: using the changed page bitmap\n");
|
||||
}
|
||||
}
|
||||
|
||||
ut_a(xtrabackup_parallel > 0);
|
||||
|
||||
if (xtrabackup_parallel > 1) {
|
||||
msg("xtrabackup: Starting %u threads for parallel data "
|
||||
msg("mariabackup: Starting %u threads for parallel data "
|
||||
"files transfer\n", xtrabackup_parallel);
|
||||
}
|
||||
|
||||
it = datafiles_iter_new(fil_system);
|
||||
if (it == NULL) {
|
||||
msg("xtrabackup: Error: datafiles_iter_new() failed.\n");
|
||||
msg("mariabackup: Error: datafiles_iter_new() failed.\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
@ -3949,7 +3950,7 @@ reread_log_header:
|
|||
|
||||
xtrabackup_destroy_datasinks();
|
||||
|
||||
msg("xtrabackup: Redo log (from LSN " LSN_PF " to " LSN_PF
|
||||
msg("mariabackup: Redo log (from LSN " LSN_PF " to " LSN_PF
|
||||
") was copied.\n", checkpoint_lsn_start, log_copy_scanned_lsn);
|
||||
xb_filters_free();
|
||||
|
||||
|
@ -3957,7 +3958,7 @@ reread_log_header:
|
|||
|
||||
/* Make sure that the latest checkpoint was included */
|
||||
if (metadata_to_lsn > log_copy_scanned_lsn) {
|
||||
msg("xtrabackup: error: failed to copy enough redo log ("
|
||||
msg("mariabackup: error: failed to copy enough redo log ("
|
||||
"LSN=" LSN_PF "; checkpoint LSN=" LSN_PF ").\n",
|
||||
log_copy_scanned_lsn, metadata_to_lsn);
|
||||
goto fail;
|
||||
|
@ -4015,15 +4016,14 @@ xb_space_create_file(
|
|||
*file = os_file_create_simple_no_error_handling(
|
||||
0, path, OS_FILE_CREATE, OS_FILE_READ_WRITE, false, &ret);
|
||||
if (!ret) {
|
||||
msg("xtrabackup: cannot create file %s\n", path);
|
||||
msg("mariabackup: cannot create file %s\n", path);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = os_file_set_size(path, *file,
|
||||
FIL_IBD_FILE_INITIAL_SIZE * UNIV_PAGE_SIZE,
|
||||
false);
|
||||
FIL_IBD_FILE_INITIAL_SIZE * UNIV_PAGE_SIZE);
|
||||
if (!ret) {
|
||||
msg("xtrabackup: cannot set size for file %s\n", path);
|
||||
msg("mariabackup: cannot set size for file %s\n", path);
|
||||
os_file_close(*file);
|
||||
os_file_delete(0, path);
|
||||
return ret;
|
||||
|
@ -4067,7 +4067,7 @@ xb_space_create_file(
|
|||
free(buf);
|
||||
|
||||
if (!ret) {
|
||||
msg("xtrabackup: could not write the first page to %s\n",
|
||||
msg("mariabackup: could not write the first page to %s\n",
|
||||
path);
|
||||
os_file_close(*file);
|
||||
os_file_delete(0, path);
|
||||
|
@ -4128,7 +4128,7 @@ xb_delta_open_matching_space(
|
|||
|
||||
/* Create the database directory if it doesn't exist yet */
|
||||
if (!os_file_create_directory(dest_dir, FALSE)) {
|
||||
msg("xtrabackup: error: cannot create dir %s\n", dest_dir);
|
||||
msg("mariabackup: error: cannot create dir %s\n", dest_dir);
|
||||
return file;
|
||||
}
|
||||
|
||||
|
@ -4142,7 +4142,7 @@ found:
|
|||
OS_FILE_OPEN, OS_FILE_READ_WRITE, false, success);
|
||||
|
||||
if (!*success) {
|
||||
msg("xtrabackup: Cannot open file %s\n", real_name);
|
||||
msg("mariabackup: Cannot open file %s\n", real_name);
|
||||
}
|
||||
exit:
|
||||
log_mutex_exit();
|
||||
|
@ -4175,7 +4175,7 @@ exit:
|
|||
snprintf(tmpname, FN_REFLEN, "%s/xtrabackup_tmp_#" ULINTPF,
|
||||
dbname, fil_space->id);
|
||||
|
||||
msg("xtrabackup: Renaming %s to %s.ibd\n",
|
||||
msg("mariabackup: Renaming %s to %s.ibd\n",
|
||||
fil_space->name, tmpname);
|
||||
|
||||
if (!fil_rename_tablespace(
|
||||
|
@ -4183,7 +4183,7 @@ exit:
|
|||
fil_space->chain.start->name,
|
||||
tmpname, NULL))
|
||||
{
|
||||
msg("xtrabackup: Cannot rename %s to %s\n",
|
||||
msg("mariabackup: Cannot rename %s to %s\n",
|
||||
fil_space->name, tmpname);
|
||||
goto exit;
|
||||
}
|
||||
|
@ -4192,7 +4192,7 @@ exit:
|
|||
|
||||
if (info.space_id == ULINT_UNDEFINED)
|
||||
{
|
||||
msg("xtrabackup: Error: Cannot handle DDL operation on tablespace "
|
||||
msg("mariabackup: Error: Cannot handle DDL operation on tablespace "
|
||||
"%s\n", dest_space_name);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
@ -4204,7 +4204,7 @@ exit:
|
|||
|
||||
strncpy(tmpname, dest_space_name, FN_REFLEN);
|
||||
|
||||
msg("xtrabackup: Renaming %s to %s\n",
|
||||
msg("mariabackup: Renaming %s to %s\n",
|
||||
fil_space->name, dest_space_name);
|
||||
|
||||
if (!fil_rename_tablespace(fil_space->id,
|
||||
|
@ -4212,7 +4212,7 @@ exit:
|
|||
tmpname,
|
||||
NULL))
|
||||
{
|
||||
msg("xtrabackup: Cannot rename %s to %s\n",
|
||||
msg("mariabackup: Cannot rename %s to %s\n",
|
||||
fil_space->name, dest_space_name);
|
||||
goto exit;
|
||||
}
|
||||
|
@ -4240,7 +4240,7 @@ exit:
|
|||
*success = xb_space_create_file(real_name, info.space_id,
|
||||
flags, &file);
|
||||
} else {
|
||||
msg("xtrabackup: Cannot create tablespace %s\n",
|
||||
msg("mariabackup: Cannot create tablespace %s\n",
|
||||
dest_space_name);
|
||||
}
|
||||
|
||||
|
@ -4311,11 +4311,11 @@ xtrabackup_apply_delta(
|
|||
|
||||
page_size = info.page_size.physical();
|
||||
page_size_shift = get_bit_shift(page_size);
|
||||
msg("xtrabackup: page size for %s is %lu bytes\n",
|
||||
msg("mariabackup: page size for %s is %lu bytes\n",
|
||||
src_path, page_size);
|
||||
if (page_size_shift < 10 ||
|
||||
page_size_shift > UNIV_PAGE_SIZE_SHIFT_MAX) {
|
||||
msg("xtrabackup: error: invalid value of page_size "
|
||||
msg("mariabackup: error: invalid value of page_size "
|
||||
"(%lu bytes) read from %s\n", page_size, meta_path);
|
||||
goto error;
|
||||
}
|
||||
|
@ -4325,7 +4325,7 @@ xtrabackup_apply_delta(
|
|||
OS_FILE_OPEN, OS_FILE_READ_WRITE, false, &success);
|
||||
if (!success) {
|
||||
os_file_get_last_error(TRUE);
|
||||
msg("xtrabackup: error: cannot open %s\n", src_path);
|
||||
msg("mariabackup: error: cannot open %s\n", src_path);
|
||||
goto error;
|
||||
}
|
||||
|
||||
|
@ -4337,7 +4337,7 @@ xtrabackup_apply_delta(
|
|||
dbname, space_name, info,
|
||||
dst_path, sizeof(dst_path), &success);
|
||||
if (!success) {
|
||||
msg("xtrabackup: error: cannot open %s\n", dst_path);
|
||||
msg("mariabackup: error: cannot open %s\n", dst_path);
|
||||
goto error;
|
||||
}
|
||||
|
||||
|
@ -4375,7 +4375,7 @@ xtrabackup_apply_delta(
|
|||
last_buffer = TRUE;
|
||||
break;
|
||||
default:
|
||||
msg("xtrabackup: error: %s seems not "
|
||||
msg("mariabackup: error: %s seems not "
|
||||
".delta file.\n", src_path);
|
||||
goto error;
|
||||
}
|
||||
|
@ -4412,13 +4412,20 @@ xtrabackup_apply_delta(
|
|||
if (offset_on_page == 0xFFFFFFFFUL)
|
||||
break;
|
||||
|
||||
uchar *buf = incremental_buffer + page_in_buffer * page_size;
|
||||
const os_offset_t off = os_offset_t(offset_on_page)*page_size;
|
||||
|
||||
if (off == 0) {
|
||||
/* Read tablespace size from page 0,
|
||||
and extend the file to specified size.*/
|
||||
os_offset_t n_pages = mach_read_from_4(buf + FSP_HEADER_OFFSET + FSP_SIZE);
|
||||
success = os_file_set_size(dst_path, dst_file, n_pages*page_size);
|
||||
if (!success)
|
||||
goto error;
|
||||
}
|
||||
|
||||
success = os_file_write(IORequestWrite,
|
||||
dst_path, dst_file,
|
||||
incremental_buffer +
|
||||
page_in_buffer * page_size,
|
||||
(offset_on_page <<
|
||||
page_size_shift),
|
||||
page_size);
|
||||
dst_path, dst_file, buf, off, page_size);
|
||||
if (!success) {
|
||||
goto error;
|
||||
}
|
||||
|
@ -4428,8 +4435,10 @@ xtrabackup_apply_delta(
|
|||
}
|
||||
|
||||
free(incremental_buffer_base);
|
||||
if (src_file != OS_FILE_CLOSED)
|
||||
if (src_file != OS_FILE_CLOSED) {
|
||||
os_file_close(src_file);
|
||||
os_file_delete(0,src_path);
|
||||
}
|
||||
if (dst_file != OS_FILE_CLOSED)
|
||||
os_file_close(dst_file);
|
||||
return TRUE;
|
||||
|
@ -4440,7 +4449,7 @@ error:
|
|||
os_file_close(src_file);
|
||||
if (dst_file != OS_FILE_CLOSED)
|
||||
os_file_close(dst_file);
|
||||
msg("xtrabackup: Error: xtrabackup_apply_delta(): "
|
||||
msg("mariabackup: Error: xtrabackup_apply_delta(): "
|
||||
"failed to apply %s to %s.\n", src_path, dst_path);
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -4502,7 +4511,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;
|
||||
|
@ -4547,7 +4556,7 @@ next_file_item_1:
|
|||
|
||||
os_file_closedir(dbdir);
|
||||
} else {
|
||||
msg("xtrabackup: Cannot open dir %s\n",
|
||||
msg("mariabackup: Cannot open dir %s\n",
|
||||
path);
|
||||
}
|
||||
|
||||
|
@ -4555,7 +4564,7 @@ next_file_item_1:
|
|||
dir = os_file_opendir(path, FALSE);
|
||||
|
||||
if (dir == NULL) {
|
||||
msg("xtrabackup: Cannot open dir %s\n",
|
||||
msg("mariabackup: Cannot open dir %s\n",
|
||||
path);
|
||||
}
|
||||
|
||||
|
@ -4568,8 +4577,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);
|
||||
|
@ -4651,7 +4660,7 @@ store_binlog_info(const char* filename, const char* name, ulonglong pos)
|
|||
FILE *fp = fopen(filename, "w");
|
||||
|
||||
if (!fp) {
|
||||
msg("xtrabackup: failed to open '%s'\n", filename);
|
||||
msg("mariabackup: failed to open '%s'\n", filename);
|
||||
return(false);
|
||||
}
|
||||
|
||||
|
@ -4672,11 +4681,11 @@ xtrabackup_prepare_func(char** argv)
|
|||
|
||||
if (my_setwd(xtrabackup_real_target_dir,MYF(MY_WME)))
|
||||
{
|
||||
msg("xtrabackup: cannot my_setwd %s\n",
|
||||
msg("mariabackup: cannot my_setwd %s\n",
|
||||
xtrabackup_real_target_dir);
|
||||
return(false);
|
||||
}
|
||||
msg("xtrabackup: cd to %s\n", xtrabackup_real_target_dir);
|
||||
msg("mariabackup: cd to %s\n", xtrabackup_real_target_dir);
|
||||
|
||||
int argc; for (argc = 0; argv[argc]; argc++) {}
|
||||
encryption_plugin_prepare_init(argc, argv);
|
||||
|
@ -4694,31 +4703,31 @@ xtrabackup_prepare_func(char** argv)
|
|||
XTRABACKUP_METADATA_FILENAME);
|
||||
|
||||
if (!xtrabackup_read_metadata(metadata_path)) {
|
||||
msg("xtrabackup: Error: failed to read metadata from '%s'\n",
|
||||
msg("mariabackup: Error: failed to read metadata from '%s'\n",
|
||||
metadata_path);
|
||||
return(false);
|
||||
}
|
||||
|
||||
if (!strcmp(metadata_type, "full-backuped")) {
|
||||
if (xtrabackup_incremental) {
|
||||
msg("xtrabackup: error: applying incremental backup "
|
||||
msg("mariabackup: error: applying incremental backup "
|
||||
"needs a prepared target.\n");
|
||||
return(false);
|
||||
}
|
||||
msg("xtrabackup: This target seems to be not prepared yet.\n");
|
||||
msg("mariabackup: This target seems to be not prepared yet.\n");
|
||||
} else if (!strcmp(metadata_type, "log-applied")) {
|
||||
msg("xtrabackup: This target seems to be already prepared.\n");
|
||||
msg("mariabackup: This target seems to be already prepared.\n");
|
||||
} else {
|
||||
msg("xtrabackup: This target does not have correct metadata.\n");
|
||||
msg("mariabackup: This target does not have correct metadata.\n");
|
||||
return(false);
|
||||
}
|
||||
|
||||
bool ok = !xtrabackup_incremental
|
||||
|| metadata_to_lsn == incremental_lsn;
|
||||
if (!ok) {
|
||||
msg("xtrabackup: error: This incremental backup seems "
|
||||
msg("mariabackup: error: This incremental backup seems "
|
||||
"not to be proper for the target.\n"
|
||||
"xtrabackup: Check 'to_lsn' of the target and "
|
||||
"mariabackup: Check 'to_lsn' of the target and "
|
||||
"'from_lsn' of the incremental.\n");
|
||||
return(false);
|
||||
}
|
||||
|
@ -4753,7 +4762,7 @@ xtrabackup_prepare_func(char** argv)
|
|||
#endif
|
||||
dberr_t err = xb_data_files_init();
|
||||
if (err != DB_SUCCESS) {
|
||||
msg("xtrabackup: error: xb_data_files_init() failed "
|
||||
msg("mariabackup: error: xb_data_files_init() failed "
|
||||
"with error %s\n", ut_strerr(err));
|
||||
goto error_cleanup;
|
||||
}
|
||||
|
@ -4783,7 +4792,8 @@ xtrabackup_prepare_func(char** argv)
|
|||
if (!ok) goto error_cleanup;
|
||||
}
|
||||
|
||||
srv_operation = SRV_OPERATION_RESTORE;
|
||||
srv_operation = xtrabackup_export
|
||||
? SRV_OPERATION_RESTORE_EXPORT : SRV_OPERATION_RESTORE;
|
||||
|
||||
if (innodb_init_param()) {
|
||||
goto error_cleanup;
|
||||
|
@ -4795,8 +4805,8 @@ xtrabackup_prepare_func(char** argv)
|
|||
srv_n_write_io_threads = 4;
|
||||
}
|
||||
|
||||
msg("xtrabackup: Starting InnoDB instance for recovery.\n"
|
||||
"xtrabackup: Using %lld bytes for buffer pool "
|
||||
msg("mariabackup: Starting InnoDB instance for recovery.\n"
|
||||
"mariabackup: Using %lld bytes for buffer pool "
|
||||
"(set by --use-memory parameter)\n", xtrabackup_use_memory);
|
||||
|
||||
srv_max_buf_pool_modified_pct = (double)max_buf_pool_modified_pct;
|
||||
|
@ -4809,7 +4819,6 @@ xtrabackup_prepare_func(char** argv)
|
|||
goto error_cleanup;
|
||||
}
|
||||
|
||||
|
||||
if (ok) {
|
||||
mtr_t mtr;
|
||||
mtr.start();
|
||||
|
@ -4847,7 +4856,7 @@ xtrabackup_prepare_func(char** argv)
|
|||
/* Check whether the log is applied enough or not. */
|
||||
if ((srv_start_lsn || fil_space_get(SRV_LOG_SPACE_FIRST_ID))
|
||||
&& srv_start_lsn < target_lsn) {
|
||||
msg("xtrabackup: error: "
|
||||
msg("mariabackup: error: "
|
||||
"The log was only applied up to LSN " LSN_PF
|
||||
", instead of " LSN_PF "\n",
|
||||
srv_start_lsn, target_lsn);
|
||||
|
@ -4876,13 +4885,13 @@ xtrabackup_prepare_func(char** argv)
|
|||
sprintf(filename, "%s/%s", xtrabackup_target_dir, XTRABACKUP_METADATA_FILENAME);
|
||||
if (!xtrabackup_write_metadata(filename)) {
|
||||
|
||||
msg("xtrabackup: Error: failed to write metadata "
|
||||
msg("mariabackup: Error: failed to write metadata "
|
||||
"to '%s'\n", filename);
|
||||
ok = false;
|
||||
} else if (xtrabackup_extra_lsndir) {
|
||||
sprintf(filename, "%s/%s", xtrabackup_extra_lsndir, XTRABACKUP_METADATA_FILENAME);
|
||||
if (!xtrabackup_write_metadata(filename)) {
|
||||
msg("xtrabackup: Error: failed to write "
|
||||
msg("mariabackup: Error: failed to write "
|
||||
"metadata to '%s'\n", filename);
|
||||
ok = false;
|
||||
}
|
||||
|
@ -5145,7 +5154,7 @@ handle_options(int argc, char **argv, char ***argv_client, char ***argv_server)
|
|||
if (optend - argv[i] == 15 &&
|
||||
!strncmp(argv[i], "--defaults-file", optend - argv[i])) {
|
||||
|
||||
msg("xtrabackup: Error: --defaults-file "
|
||||
msg("mariabackup: Error: --defaults-file "
|
||||
"must be specified first on the command "
|
||||
"line\n");
|
||||
exit(EXIT_FAILURE);
|
||||
|
@ -5154,7 +5163,7 @@ handle_options(int argc, char **argv, char ***argv_client, char ***argv_server)
|
|||
!strncmp(argv[i], "--defaults-extra-file",
|
||||
optend - argv[i])) {
|
||||
|
||||
msg("xtrabackup: Error: --defaults-extra-file "
|
||||
msg("mariabackup: Error: --defaults-extra-file "
|
||||
"must be specified first on the command "
|
||||
"line\n");
|
||||
exit(EXIT_FAILURE);
|
||||
|
@ -5205,7 +5214,7 @@ handle_options(int argc, char **argv, char ***argv_client, char ***argv_server)
|
|||
}
|
||||
|
||||
if (!server_option) {
|
||||
msg("xtrabackup: Error:"
|
||||
msg("mariabackup: Error:"
|
||||
" unknown argument: '%s'\n", opt);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
@ -5324,7 +5333,7 @@ static int main_low(char** argv)
|
|||
&& !strcmp(mysql_data_home, "./")) {
|
||||
if (!xtrabackup_print_param)
|
||||
usage();
|
||||
msg("\nxtrabackup: Error: Please set parameter 'datadir'\n");
|
||||
msg("\nmariabackup: Error: Please set parameter 'datadir'\n");
|
||||
return(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
|
@ -5394,7 +5403,7 @@ static int main_low(char** argv)
|
|||
error = 1;
|
||||
|
||||
if (error) {
|
||||
msg("xtrabackup: value '%s' may be wrong format for "
|
||||
msg("mariabackup: value '%s' may be wrong format for "
|
||||
"incremental option.\n", xtrabackup_incremental);
|
||||
return(EXIT_FAILURE);
|
||||
}
|
||||
|
@ -5404,7 +5413,7 @@ static int main_low(char** argv)
|
|||
sprintf(filename, "%s/%s", xtrabackup_incremental_basedir, XTRABACKUP_METADATA_FILENAME);
|
||||
|
||||
if (!xtrabackup_read_metadata(filename)) {
|
||||
msg("xtrabackup: error: failed to read metadata from "
|
||||
msg("mariabackup: error: failed to read metadata from "
|
||||
"%s\n", filename);
|
||||
return(EXIT_FAILURE);
|
||||
}
|
||||
|
@ -5417,7 +5426,7 @@ static int main_low(char** argv)
|
|||
sprintf(filename, "%s/%s", xtrabackup_incremental_dir, XTRABACKUP_METADATA_FILENAME);
|
||||
|
||||
if (!xtrabackup_read_metadata(filename)) {
|
||||
msg("xtrabackup: error: failed to read metadata from "
|
||||
msg("mariabackup: error: failed to read metadata from "
|
||||
"%s\n", filename);
|
||||
return(EXIT_FAILURE);
|
||||
}
|
||||
|
@ -5452,7 +5461,7 @@ static int main_low(char** argv)
|
|||
}
|
||||
|
||||
if (xtrabackup_export && innobase_file_per_table == FALSE) {
|
||||
msg("xtrabackup: auto-enabling --innodb-file-per-table due to "
|
||||
msg("mariabackup: auto-enabling --innodb-file-per-table due to "
|
||||
"the --export option\n");
|
||||
innobase_file_per_table = TRUE;
|
||||
}
|
||||
|
@ -5520,4 +5529,3 @@ static int get_exepath(char *buf, size_t size, const char *argv0)
|
|||
|
||||
return my_realpath(buf, argv0, 0);
|
||||
}
|
||||
|
||||
|
|
|
@ -109,6 +109,7 @@ extern my_bool opt_force_non_empty_dirs;
|
|||
extern my_bool opt_noversioncheck;
|
||||
extern my_bool opt_no_backup_locks;
|
||||
extern my_bool opt_decompress;
|
||||
extern my_bool opt_remove_original;
|
||||
|
||||
extern char *opt_incremental_history_name;
|
||||
extern char *opt_incremental_history_uuid;
|
||||
|
|
|
@ -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 +1 @@
|
|||
Subproject commit 931450c3f8793f2653f6292847cbc005b30ed3b6
|
||||
Subproject commit 7e53ab369815590ff92913b581d43eb7786f2fe2
|
|
@ -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,
|
||||
|
|
113
mysql-test/include/empty_string_literal.inc
Normal file
113
mysql-test/include/empty_string_literal.inc
Normal file
|
@ -0,0 +1,113 @@
|
|||
SET SESSION character_set_connection=latin2;
|
||||
SET SESSION character_set_client=cp1250;
|
||||
|
||||
--echo #
|
||||
--echo # Test litteral
|
||||
--echo #
|
||||
SET sql_mode=@mode;
|
||||
select @@sql_mode;
|
||||
SELECT '',CHARSET(''), null, CHARSET(null), CAST(null as char(10)), CHARSET(CAST(null as char(10))), 'x', CHARSET('x');
|
||||
SELECT CHARSET(NULLIF('','')),NULLIF('','');
|
||||
SET sql_mode=default;
|
||||
SELECT '',CHARSET(''), null, CHARSET(null), CAST(null as char(10)), CHARSET(CAST(null as char(10))), 'x', CHARSET('x');
|
||||
SELECT CHARSET(NULLIF('','')),NULLIF('','');
|
||||
|
||||
--echo #
|
||||
--echo # Test NCHAR litteral
|
||||
--echo #
|
||||
SET sql_mode=@mode;
|
||||
SELECT N'',CHARSET(N''), N'x', CHARSET(N'x');
|
||||
SELECT CHARSET(NULLIF(N'',N'')),NULLIF(N'',N'');
|
||||
SET sql_mode=default;
|
||||
SELECT N'',CHARSET(N''), N'x', CHARSET(N'x');
|
||||
SELECT CHARSET(NULLIF(N'',N'')),NULLIF(N'',N'');
|
||||
|
||||
--echo #
|
||||
--echo # Test CHARSET prefix litteral
|
||||
--echo #
|
||||
SET sql_mode=@mode;
|
||||
SELECT _cp1250 '',CHARSET(_cp1250 ''), _cp1250 'x', CHARSET(_cp1250 'x');
|
||||
SELECT CHARSET(NULLIF(_cp1250 '',_cp1250 '')),NULLIF(_cp1250 '',_cp1250 '');
|
||||
SET sql_mode=default;
|
||||
SELECT _cp1250 '',CHARSET(_cp1250 ''), _cp1250 'x', CHARSET(_cp1250 'x');
|
||||
SELECT CHARSET(NULLIF(_cp1250 '',_cp1250 '')),NULLIF(_cp1250 '',_cp1250 '');
|
||||
|
||||
|
||||
SET sql_mode=@mode;
|
||||
|
||||
--echo #
|
||||
--echo # Test litteral concat
|
||||
--echo #
|
||||
SELECT 'a' 'b';
|
||||
SELECT 'a' '';
|
||||
SELECT '' 'b';
|
||||
SELECT '' '';
|
||||
SELECT '' 'b' 'c';
|
||||
SELECT '' '' 'c';
|
||||
SELECT 'a' '' 'c';
|
||||
SELECT 'a' '' '';
|
||||
SELECT '' '' '';
|
||||
|
||||
SELECT '' '' '',CHARSET('' '' '');
|
||||
SELECT _latin1'' '' '',CHARSET(_latin1'' '' '');
|
||||
SELECT N'' '' '',CHARSET(N'' '' '');
|
||||
|
||||
--echo #
|
||||
--echo # UNION - implicit group by
|
||||
--echo #
|
||||
SELECT 1, null
|
||||
UNION
|
||||
SELECT 1 , ''
|
||||
ORDER BY 1;
|
||||
|
||||
SELECT 1, null
|
||||
UNION
|
||||
SELECT 1 , N''
|
||||
ORDER BY 1;
|
||||
|
||||
SELECT 1, null
|
||||
UNION
|
||||
SELECT 1 , _cp1250 ''
|
||||
ORDER BY 1;
|
||||
|
||||
SELECT NULLIF(_cp1250 '',_cp1250 '')
|
||||
UNION
|
||||
SELECT NULLIF(N'',N'');
|
||||
|
||||
--error ER_CANT_AGGREGATE_2COLLATIONS
|
||||
SELECT 1 , _latin2 ''
|
||||
UNION
|
||||
SELECT 1 , _cp1250 '';
|
||||
|
||||
SELECT 1, null
|
||||
UNION
|
||||
SELECT 1 , ''
|
||||
UNION
|
||||
SELECT 1 , N'';
|
||||
|
||||
CREATE TABLE t1 (c1 INT,c2 VARCHAR(10));
|
||||
INSERT INTO t1 VALUES (1,'one');
|
||||
INSERT INTO t1 VALUES (1,'');
|
||||
INSERT INTO t1 VALUES (1,null);
|
||||
|
||||
--echo #
|
||||
--echo # Test in a view
|
||||
--echo #
|
||||
CREATE VIEW v1
|
||||
AS SELECT c1, c2
|
||||
FROM t1
|
||||
UNION
|
||||
SELECT c1 , ''
|
||||
FROM t1
|
||||
ORDER BY 1,2;
|
||||
SELECT * FROM v1;
|
||||
|
||||
SHOW CREATE VIEW v1;
|
||||
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
|
||||
EXPLAIN EXTENDED SELECT '';
|
||||
EXPLAIN EXTENDED SELECT _latin1'';
|
||||
EXPLAIN EXTENDED SELECT N'';
|
||||
EXPLAIN EXTENDED SELECT '' '';
|
420
mysql-test/include/innodb_gis_row_format_basic.inc
Normal file
420
mysql-test/include/innodb_gis_row_format_basic.inc
Normal file
|
@ -0,0 +1,420 @@
|
|||
--source include/have_innodb.inc
|
||||
--source include/not_embedded.inc
|
||||
|
||||
eval SET GLOBAL innodb_file_per_table=$file_per_table;
|
||||
eval SET GLOBAL innodb_file_format=$file_format;
|
||||
|
||||
#
|
||||
# This test is the same as innodb_gis_rollback
|
||||
#
|
||||
|
||||
eval CREATE TABLE t1 (
|
||||
id bigint(12) unsigned NOT NULL auto_increment,
|
||||
c2 varchar(15) collate utf8_bin DEFAULT NULL,
|
||||
c1 varchar(15) collate utf8_bin DEFAULT NULL,
|
||||
c3 varchar(10) collate utf8_bin DEFAULT NULL,
|
||||
spatial_point point NOT NULL,
|
||||
PRIMARY KEY(id),
|
||||
SPATIAL KEY (spatial_point)
|
||||
) ROW_FORMAT=$row_format ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||
|
||||
INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES
|
||||
('y', 's', 'j', ST_GeomFromText('POINT(167 74)')),
|
||||
('r', 'n', 'd', ST_GeomFromText('POINT(215 118)')),
|
||||
('g', 'n', 'e', ST_GeomFromText('POINT(203 98)')),
|
||||
('h', 'd', 'd', ST_GeomFromText('POINT(54 193)')),
|
||||
('r', 'x', 'y', ST_GeomFromText('POINT(47 69)')),
|
||||
('t', 'q', 'r', ST_GeomFromText('POINT(109 42)')),
|
||||
('a', 'z', 'd', ST_GeomFromText('POINT(0 154)')),
|
||||
('x', 'v', 'o', ST_GeomFromText('POINT(174 131)')),
|
||||
('b', 'r', 'a', ST_GeomFromText('POINT(114 253)')),
|
||||
('x', 'z', 'i', ST_GeomFromText('POINT(163 21)')),
|
||||
('w', 'p', 'i', ST_GeomFromText('POINT(42 102)')),
|
||||
('g', 'j', 'j', ST_GeomFromText('POINT(170 133)')),
|
||||
('m', 'g', 'n', ST_GeomFromText('POINT(28 22)')),
|
||||
('b', 'z', 'h', ST_GeomFromText('POINT(174 28)')),
|
||||
('q', 'k', 'f', ST_GeomFromText('POINT(233 73)')),
|
||||
('w', 'w', 'a', ST_GeomFromText('POINT(124 200)')),
|
||||
('t', 'j', 'w', ST_GeomFromText('POINT(252 101)')),
|
||||
('d', 'r', 'd', ST_GeomFromText('POINT(98 18)')),
|
||||
('w', 'o', 'y', ST_GeomFromText('POINT(165 31)')),
|
||||
('y', 'h', 't', ST_GeomFromText('POINT(14 220)')),
|
||||
('d', 'p', 'u', ST_GeomFromText('POINT(223 196)')),
|
||||
('g', 'y', 'g', ST_GeomFromText('POINT(207 96)')),
|
||||
('x', 'm', 'n', ST_GeomFromText('POINT(214 3)')),
|
||||
('g', 'v', 'e', ST_GeomFromText('POINT(140 205)')),
|
||||
('g', 'm', 'm', ST_GeomFromText('POINT(10 236)')),
|
||||
('i', 'r', 'j', ST_GeomFromText('POINT(137 228)')),
|
||||
('w', 's', 'p', ST_GeomFromText('POINT(115 6)')),
|
||||
('o', 'n', 'k', ST_GeomFromText('POINT(158 129)')),
|
||||
('j', 'h', 'l', ST_GeomFromText('POINT(129 72)')),
|
||||
('f', 'x', 'l', ST_GeomFromText('POINT(139 207)')),
|
||||
('u', 'd', 'n', ST_GeomFromText('POINT(125 109)')),
|
||||
('b', 'a', 'z', ST_GeomFromText('POINT(30 32)')),
|
||||
('m', 'h', 'o', ST_GeomFromText('POINT(251 251)')),
|
||||
('f', 'r', 'd', ST_GeomFromText('POINT(243 211)')),
|
||||
('b', 'd', 'r', ST_GeomFromText('POINT(232 80)')),
|
||||
('g', 'k', 'v', ST_GeomFromText('POINT(15 100)')),
|
||||
('i', 'f', 'c', ST_GeomFromText('POINT(109 66)')),
|
||||
('r', 't', 'j', ST_GeomFromText('POINT(178 6)')),
|
||||
('y', 'n', 'f', ST_GeomFromText('POINT(233 211)')),
|
||||
('f', 'y', 'm', ST_GeomFromText('POINT(99 16)')),
|
||||
('z', 'q', 'l', ST_GeomFromText('POINT(39 49)')),
|
||||
('j', 'c', 'r', ST_GeomFromText('POINT(75 187)')),
|
||||
('c', 'y', 'y', ST_GeomFromText('POINT(246 253)')),
|
||||
('w', 'u', 'd', ST_GeomFromText('POINT(56 190)')),
|
||||
('n', 'q', 'm', ST_GeomFromText('POINT(73 149)')),
|
||||
('d', 'y', 'a', ST_GeomFromText('POINT(134 6)')),
|
||||
('z', 's', 'w', ST_GeomFromText('POINT(216 225)')),
|
||||
('d', 'u', 'k', ST_GeomFromText('POINT(132 70)')),
|
||||
('f', 'v', 't', ST_GeomFromText('POINT(187 141)')),
|
||||
('r', 'r', 'a', ST_GeomFromText('POINT(152 39)')),
|
||||
('y', 'p', 'o', ST_GeomFromText('POINT(45 27)')),
|
||||
('p', 'n', 'm', ST_GeomFromText('POINT(228 148)')),
|
||||
('e', 'g', 'e', ST_GeomFromText('POINT(88 81)')),
|
||||
('m', 'a', 'h', ST_GeomFromText('POINT(35 29)')),
|
||||
('m', 'h', 'f', ST_GeomFromText('POINT(30 71)')),
|
||||
('h', 'k', 'i', ST_GeomFromText('POINT(244 78)')),
|
||||
('z', 'v', 'd', ST_GeomFromText('POINT(241 38)')),
|
||||
('q', 'l', 'j', ST_GeomFromText('POINT(13 71)')),
|
||||
('s', 'p', 'g', ST_GeomFromText('POINT(108 38)')),
|
||||
('q', 's', 'j', ST_GeomFromText('POINT(92 101)')),
|
||||
('l', 'h', 'g', ST_GeomFromText('POINT(120 78)')),
|
||||
('w', 't', 'b', ST_GeomFromText('POINT(193 109)')),
|
||||
('b', 's', 's', ST_GeomFromText('POINT(223 211)')),
|
||||
('w', 'w', 'y', ST_GeomFromText('POINT(122 42)')),
|
||||
('q', 'c', 'c', ST_GeomFromText('POINT(104 102)')),
|
||||
('w', 'g', 'n', ST_GeomFromText('POINT(213 120)')),
|
||||
('p', 'q', 'a', ST_GeomFromText('POINT(247 148)')),
|
||||
('c', 'z', 'e', ST_GeomFromText('POINT(18 106)')),
|
||||
('z', 'u', 'n', ST_GeomFromText('POINT(70 133)')),
|
||||
('j', 'n', 'x', ST_GeomFromText('POINT(232 13)')),
|
||||
('e', 'h', 'f', ST_GeomFromText('POINT(22 135)')),
|
||||
('w', 'l', 'f', ST_GeomFromText('POINT(9 180)')),
|
||||
('a', 'v', 'q', ST_GeomFromText('POINT(163 228)')),
|
||||
('i', 'z', 'o', ST_GeomFromText('POINT(180 100)')),
|
||||
('e', 'c', 'l', ST_GeomFromText('POINT(182 231)')),
|
||||
('c', 'k', 'o', ST_GeomFromText('POINT(19 60)')),
|
||||
('q', 'f', 'p', ST_GeomFromText('POINT(79 95)')),
|
||||
('m', 'd', 'r', ST_GeomFromText('POINT(3 127)')),
|
||||
('m', 'e', 't', ST_GeomFromText('POINT(136 154)')),
|
||||
('w', 'w', 'w', ST_GeomFromText('POINT(102 15)')),
|
||||
('l', 'n', 'q', ST_GeomFromText('POINT(71 196)')),
|
||||
('p', 'k', 'c', ST_GeomFromText('POINT(47 139)')),
|
||||
('j', 'o', 'r', ST_GeomFromText('POINT(177 128)')),
|
||||
('j', 'q', 'a', ST_GeomFromText('POINT(170 6)')),
|
||||
('b', 'a', 'o', ST_GeomFromText('POINT(63 211)')),
|
||||
('g', 's', 'o', ST_GeomFromText('POINT(144 251)')),
|
||||
('w', 'u', 'w', ST_GeomFromText('POINT(221 214)')),
|
||||
('g', 'a', 'm', ST_GeomFromText('POINT(14 102)')),
|
||||
('u', 'q', 'z', ST_GeomFromText('POINT(86 200)')),
|
||||
('k', 'a', 'm', ST_GeomFromText('POINT(144 222)')),
|
||||
('j', 'u', 'r', ST_GeomFromText('POINT(216 142)')),
|
||||
('q', 'k', 'v', ST_GeomFromText('POINT(121 236)')),
|
||||
('p', 'o', 'r', ST_GeomFromText('POINT(108 102)')),
|
||||
('b', 'd', 'x', ST_GeomFromText('POINT(127 198)')),
|
||||
('k', 's', 'a', ST_GeomFromText('POINT(2 150)')),
|
||||
('f', 'm', 'f', ST_GeomFromText('POINT(160 191)')),
|
||||
('q', 'y', 'x', ST_GeomFromText('POINT(98 111)')),
|
||||
('o', 'f', 'm', ST_GeomFromText('POINT(232 218)')),
|
||||
('c', 'w', 'j', ST_GeomFromText('POINT(156 165)')),
|
||||
('s', 'q', 'v', ST_GeomFromText('POINT(98 161)'));
|
||||
INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES
|
||||
('f', 'y', 'p', ST_GeomFromText('POINT(109 235)')),
|
||||
('b', 'e', 'v', ST_GeomFromText('POINT(20 48)')),
|
||||
('i', 'u', 'f', ST_GeomFromText('POINT(15 55)')),
|
||||
('o', 'r', 'z', ST_GeomFromText('POINT(105 64)')),
|
||||
('a', 'p', 'a', ST_GeomFromText('POINT(142 236)')),
|
||||
('g', 'i', 'k', ST_GeomFromText('POINT(10 49)')),
|
||||
('x', 'z', 'x', ST_GeomFromText('POINT(192 200)')),
|
||||
('c', 'v', 'r', ST_GeomFromText('POINT(94 168)')),
|
||||
('y', 'z', 'e', ST_GeomFromText('POINT(141 51)')),
|
||||
('h', 'm', 'd', ST_GeomFromText('POINT(35 251)')),
|
||||
('v', 'm', 'q', ST_GeomFromText('POINT(44 90)')),
|
||||
('j', 'l', 'z', ST_GeomFromText('POINT(67 237)')),
|
||||
('i', 'v', 'a', ST_GeomFromText('POINT(75 14)')),
|
||||
('b', 'q', 't', ST_GeomFromText('POINT(153 33)')),
|
||||
('e', 'm', 'a', ST_GeomFromText('POINT(247 49)')),
|
||||
('l', 'y', 'g', ST_GeomFromText('POINT(56 203)')),
|
||||
('v', 'o', 'r', ST_GeomFromText('POINT(90 54)')),
|
||||
('r', 'n', 'd', ST_GeomFromText('POINT(135 83)')),
|
||||
('j', 't', 'u', ST_GeomFromText('POINT(174 239)')),
|
||||
('u', 'n', 'g', ST_GeomFromText('POINT(104 191)')),
|
||||
('p', 'q', 'y', ST_GeomFromText('POINT(63 171)')),
|
||||
('o', 'q', 'p', ST_GeomFromText('POINT(192 103)')),
|
||||
('f', 'x', 'e', ST_GeomFromText('POINT(244 30)')),
|
||||
('n', 'x', 'c', ST_GeomFromText('POINT(92 103)')),
|
||||
('r', 'q', 'z', ST_GeomFromText('POINT(166 20)')),
|
||||
('s', 'a', 'j', ST_GeomFromText('POINT(137 205)')),
|
||||
('z', 't', 't', ST_GeomFromText('POINT(99 134)')),
|
||||
('o', 'm', 'j', ST_GeomFromText('POINT(217 3)')),
|
||||
('n', 'h', 'j', ST_GeomFromText('POINT(211 17)')),
|
||||
('v', 'v', 'a', ST_GeomFromText('POINT(41 137)')),
|
||||
('q', 'o', 'j', ST_GeomFromText('POINT(5 92)')),
|
||||
('z', 'y', 'e', ST_GeomFromText('POINT(175 212)')),
|
||||
('j', 'z', 'h', ST_GeomFromText('POINT(224 194)')),
|
||||
('a', 'g', 'm', ST_GeomFromText('POINT(31 119)')),
|
||||
('p', 'c', 'f', ST_GeomFromText('POINT(17 221)')),
|
||||
('t', 'h', 'k', ST_GeomFromText('POINT(26 203)')),
|
||||
('u', 'w', 'p', ST_GeomFromText('POINT(47 185)')),
|
||||
('z', 'a', 'c', ST_GeomFromText('POINT(61 133)')),
|
||||
('u', 'k', 'a', ST_GeomFromText('POINT(210 115)')),
|
||||
('k', 'f', 'h', ST_GeomFromText('POINT(125 113)')),
|
||||
('t', 'v', 'y', ST_GeomFromText('POINT(12 239)')),
|
||||
('u', 'v', 'd', ST_GeomFromText('POINT(90 24)')),
|
||||
('m', 'y', 'w', ST_GeomFromText('POINT(25 243)')),
|
||||
('d', 'n', 'g', ST_GeomFromText('POINT(122 92)')),
|
||||
('z', 'm', 'f', ST_GeomFromText('POINT(235 110)')),
|
||||
('q', 'd', 'f', ST_GeomFromText('POINT(233 217)')),
|
||||
('a', 'v', 'u', ST_GeomFromText('POINT(69 59)')),
|
||||
('x', 'k', 'p', ST_GeomFromText('POINT(240 14)')),
|
||||
('i', 'v', 'r', ST_GeomFromText('POINT(154 42)')),
|
||||
('w', 'h', 'l', ST_GeomFromText('POINT(178 156)')),
|
||||
('d', 'h', 'n', ST_GeomFromText('POINT(65 157)')),
|
||||
('c', 'k', 'z', ST_GeomFromText('POINT(62 33)')),
|
||||
('e', 'l', 'w', ST_GeomFromText('POINT(162 1)')),
|
||||
('r', 'f', 'i', ST_GeomFromText('POINT(127 71)')),
|
||||
('q', 'm', 'c', ST_GeomFromText('POINT(63 118)')),
|
||||
('c', 'h', 'u', ST_GeomFromText('POINT(205 203)')),
|
||||
('d', 't', 'p', ST_GeomFromText('POINT(234 87)')),
|
||||
('s', 'g', 'h', ST_GeomFromText('POINT(149 34)')),
|
||||
('o', 'b', 'q', ST_GeomFromText('POINT(159 179)')),
|
||||
('k', 'u', 'f', ST_GeomFromText('POINT(202 254)')),
|
||||
('u', 'f', 'g', ST_GeomFromText('POINT(70 15)')),
|
||||
('x', 's', 'b', ST_GeomFromText('POINT(25 181)')),
|
||||
('s', 'c', 'g', ST_GeomFromText('POINT(252 17)')),
|
||||
('a', 'c', 'f', ST_GeomFromText('POINT(89 67)')),
|
||||
('r', 'e', 'q', ST_GeomFromText('POINT(55 54)')),
|
||||
('f', 'i', 'k', ST_GeomFromText('POINT(178 230)')),
|
||||
('p', 'e', 'l', ST_GeomFromText('POINT(198 28)')),
|
||||
('w', 'o', 'd', ST_GeomFromText('POINT(204 189)')),
|
||||
('c', 'a', 'g', ST_GeomFromText('POINT(230 178)')),
|
||||
('r', 'o', 'e', ST_GeomFromText('POINT(61 116)')),
|
||||
('w', 'a', 'a', ST_GeomFromText('POINT(178 237)')),
|
||||
('v', 'd', 'e', ST_GeomFromText('POINT(70 85)')),
|
||||
('k', 'c', 'e', ST_GeomFromText('POINT(147 118)')),
|
||||
('d', 'q', 't', ST_GeomFromText('POINT(218 77)')),
|
||||
('k', 'g', 'f', ST_GeomFromText('POINT(192 113)')),
|
||||
('w', 'n', 'e', ST_GeomFromText('POINT(92 124)')),
|
||||
('r', 'm', 'q', ST_GeomFromText('POINT(130 65)')),
|
||||
('o', 'r', 'r', ST_GeomFromText('POINT(174 233)')),
|
||||
('k', 'n', 't', ST_GeomFromText('POINT(175 147)')),
|
||||
('q', 'm', 'r', ST_GeomFromText('POINT(18 208)')),
|
||||
('l', 'd', 'i', ST_GeomFromText('POINT(13 104)')),
|
||||
('w', 'o', 'y', ST_GeomFromText('POINT(207 39)')),
|
||||
('p', 'u', 'o', ST_GeomFromText('POINT(114 31)')),
|
||||
('y', 'a', 'p', ST_GeomFromText('POINT(106 59)')),
|
||||
('a', 'x', 'z', ST_GeomFromText('POINT(17 57)')),
|
||||
('v', 'h', 'x', ST_GeomFromText('POINT(170 13)')),
|
||||
('t', 's', 'u', ST_GeomFromText('POINT(84 18)')),
|
||||
('z', 'z', 'f', ST_GeomFromText('POINT(250 197)')),
|
||||
('l', 'z', 't', ST_GeomFromText('POINT(59 80)')),
|
||||
('j', 'g', 's', ST_GeomFromText('POINT(54 26)')),
|
||||
('g', 'v', 'm', ST_GeomFromText('POINT(89 98)')),
|
||||
('q', 'v', 'b', ST_GeomFromText('POINT(39 240)')),
|
||||
('x', 'k', 'v', ST_GeomFromText('POINT(246 207)')),
|
||||
('k', 'u', 'i', ST_GeomFromText('POINT(105 111)')),
|
||||
('w', 'z', 's', ST_GeomFromText('POINT(235 8)')),
|
||||
('d', 'd', 'd', ST_GeomFromText('POINT(105 4)')),
|
||||
('c', 'z', 'q', ST_GeomFromText('POINT(13 140)')),
|
||||
('m', 'k', 'i', ST_GeomFromText('POINT(208 120)')),
|
||||
('g', 'a', 'g', ST_GeomFromText('POINT(9 182)')),
|
||||
('z', 'j', 'r', ST_GeomFromText('POINT(149 153)')),
|
||||
('h', 'f', 'g', ST_GeomFromText('POINT(81 236)')),
|
||||
('m', 'e', 'q', ST_GeomFromText('POINT(209 215)')),
|
||||
('c', 'h', 'y', ST_GeomFromText('POINT(235 70)')),
|
||||
('i', 'e', 'g', ST_GeomFromText('POINT(138 26)')),
|
||||
('m', 't', 'u', ST_GeomFromText('POINT(119 237)')),
|
||||
('o', 'w', 's', ST_GeomFromText('POINT(193 166)')),
|
||||
('f', 'm', 'q', ST_GeomFromText('POINT(85 96)')),
|
||||
('x', 'l', 'x', ST_GeomFromText('POINT(58 115)')),
|
||||
('x', 'q', 'u', ST_GeomFromText('POINT(108 210)')),
|
||||
('b', 'h', 'i', ST_GeomFromText('POINT(250 139)')),
|
||||
('y', 'd', 'x', ST_GeomFromText('POINT(199 135)')),
|
||||
('w', 'h', 'p', ST_GeomFromText('POINT(247 233)')),
|
||||
('p', 'z', 't', ST_GeomFromText('POINT(148 249)')),
|
||||
('q', 'a', 'u', ST_GeomFromText('POINT(174 78)')),
|
||||
('v', 't', 'm', ST_GeomFromText('POINT(70 228)')),
|
||||
('t', 'n', 'f', ST_GeomFromText('POINT(123 2)')),
|
||||
('x', 't', 'b', ST_GeomFromText('POINT(35 50)')),
|
||||
('r', 'j', 'f', ST_GeomFromText('POINT(200 51)')),
|
||||
('s', 'q', 'o', ST_GeomFromText('POINT(23 184)')),
|
||||
('u', 'v', 'z', ST_GeomFromText('POINT(7 113)')),
|
||||
('v', 'u', 'l', ST_GeomFromText('POINT(145 190)')),
|
||||
('o', 'k', 'i', ST_GeomFromText('POINT(161 122)')),
|
||||
('l', 'y', 'e', ST_GeomFromText('POINT(17 232)')),
|
||||
('t', 'b', 'e', ST_GeomFromText('POINT(120 50)')),
|
||||
('e', 's', 'u', ST_GeomFromText('POINT(254 1)')),
|
||||
('d', 'd', 'u', ST_GeomFromText('POINT(167 140)')),
|
||||
('o', 'b', 'x', ST_GeomFromText('POINT(186 237)')),
|
||||
('m', 's', 's', ST_GeomFromText('POINT(172 149)')),
|
||||
('t', 'y', 'a', ST_GeomFromText('POINT(149 85)')),
|
||||
('x', 't', 'r', ST_GeomFromText('POINT(10 165)')),
|
||||
('g', 'c', 'e', ST_GeomFromText('POINT(95 165)')),
|
||||
('e', 'e', 'z', ST_GeomFromText('POINT(98 65)')),
|
||||
('f', 'v', 'i', ST_GeomFromText('POINT(149 144)')),
|
||||
('o', 'p', 'm', ST_GeomFromText('POINT(233 67)')),
|
||||
('t', 'u', 'b', ST_GeomFromText('POINT(109 215)')),
|
||||
('o', 'o', 'b', ST_GeomFromText('POINT(130 48)')),
|
||||
('e', 'm', 'h', ST_GeomFromText('POINT(88 189)')),
|
||||
('e', 'v', 'y', ST_GeomFromText('POINT(55 29)')),
|
||||
('e', 't', 'm', ST_GeomFromText('POINT(129 55)')),
|
||||
('p', 'p', 'i', ST_GeomFromText('POINT(126 222)')),
|
||||
('c', 'i', 'c', ST_GeomFromText('POINT(19 158)')),
|
||||
('c', 'b', 's', ST_GeomFromText('POINT(13 19)')),
|
||||
('u', 'y', 'a', ST_GeomFromText('POINT(114 5)')),
|
||||
('a', 'o', 'f', ST_GeomFromText('POINT(227 232)')),
|
||||
('t', 'c', 'z', ST_GeomFromText('POINT(63 62)')),
|
||||
('d', 'o', 'k', ST_GeomFromText('POINT(48 228)')),
|
||||
('x', 'c', 'e', ST_GeomFromText('POINT(204 2)')),
|
||||
('e', 'e', 'g', ST_GeomFromText('POINT(125 43)')),
|
||||
('o', 'r', 'f', ST_GeomFromText('POINT(171 140)'));
|
||||
INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES
|
||||
('b', 'c', 'e', ST_GeomFromText('POINT(41 137)')),
|
||||
('p', 'y', 'k', ST_GeomFromText('POINT(50 22)')),
|
||||
('s', 'c', 'h', ST_GeomFromText('POINT(208 173)')),
|
||||
('x', 'u', 'l', ST_GeomFromText('POINT(199 175)')),
|
||||
('s', 'r', 'h', ST_GeomFromText('POINT(85 192)')),
|
||||
('j', 'k', 'u', ST_GeomFromText('POINT(18 25)')),
|
||||
('p', 'w', 'h', ST_GeomFromText('POINT(152 197)')),
|
||||
('e', 'd', 'c', ST_GeomFromText('POINT(229 3)')),
|
||||
('o', 'x', 'k', ST_GeomFromText('POINT(187 155)')),
|
||||
('o', 'b', 'k', ST_GeomFromText('POINT(208 150)')),
|
||||
('d', 'a', 'j', ST_GeomFromText('POINT(70 87)')),
|
||||
('f', 'e', 'k', ST_GeomFromText('POINT(156 96)')),
|
||||
('u', 'y', 'p', ST_GeomFromText('POINT(239 193)')),
|
||||
('n', 'v', 'p', ST_GeomFromText('POINT(223 98)')),
|
||||
('z', 'j', 'r', ST_GeomFromText('POINT(87 89)')),
|
||||
('h', 'x', 'x', ST_GeomFromText('POINT(92 0)')),
|
||||
('r', 'v', 'r', ST_GeomFromText('POINT(159 139)')),
|
||||
('v', 'g', 'g', ST_GeomFromText('POINT(16 229)')),
|
||||
('z', 'k', 'u', ST_GeomFromText('POINT(99 52)')),
|
||||
('p', 'p', 'o', ST_GeomFromText('POINT(105 125)')),
|
||||
('w', 'h', 'y', ST_GeomFromText('POINT(105 154)')),
|
||||
('v', 'y', 'z', ST_GeomFromText('POINT(134 238)')),
|
||||
('x', 'o', 'o', ST_GeomFromText('POINT(178 88)')),
|
||||
('z', 'w', 'd', ST_GeomFromText('POINT(123 60)')),
|
||||
('q', 'f', 'u', ST_GeomFromText('POINT(64 90)')),
|
||||
('s', 'n', 't', ST_GeomFromText('POINT(50 138)')),
|
||||
('v', 'p', 't', ST_GeomFromText('POINT(114 91)')),
|
||||
('a', 'o', 'n', ST_GeomFromText('POINT(78 43)')),
|
||||
('k', 'u', 'd', ST_GeomFromText('POINT(185 161)')),
|
||||
('w', 'd', 'n', ST_GeomFromText('POINT(25 92)')),
|
||||
('k', 'w', 'a', ST_GeomFromText('POINT(59 238)')),
|
||||
('t', 'c', 'f', ST_GeomFromText('POINT(65 87)')),
|
||||
('g', 's', 'p', ST_GeomFromText('POINT(238 126)')),
|
||||
('d', 'n', 'y', ST_GeomFromText('POINT(107 173)')),
|
||||
('l', 'a', 'w', ST_GeomFromText('POINT(125 152)')),
|
||||
('m', 'd', 'j', ST_GeomFromText('POINT(146 53)')),
|
||||
('q', 'm', 'c', ST_GeomFromText('POINT(217 187)')),
|
||||
('i', 'r', 'r', ST_GeomFromText('POINT(6 113)')),
|
||||
('e', 'j', 'b', ST_GeomFromText('POINT(37 83)')),
|
||||
('w', 'w', 'h', ST_GeomFromText('POINT(83 199)')),
|
||||
('k', 'b', 's', ST_GeomFromText('POINT(170 64)')),
|
||||
('s', 'b', 'c', ST_GeomFromText('POINT(163 130)')),
|
||||
('c', 'h', 'a', ST_GeomFromText('POINT(141 3)')),
|
||||
('k', 'j', 'u', ST_GeomFromText('POINT(143 76)')),
|
||||
('r', 'h', 'o', ST_GeomFromText('POINT(243 92)')),
|
||||
('i', 'd', 'b', ST_GeomFromText('POINT(205 13)')),
|
||||
('r', 'y', 'q', ST_GeomFromText('POINT(138 8)')),
|
||||
('m', 'o', 'i', ST_GeomFromText('POINT(36 45)')),
|
||||
('v', 'g', 'm', ST_GeomFromText('POINT(0 40)')),
|
||||
('f', 'e', 'i', ST_GeomFromText('POINT(76 6)')),
|
||||
('c', 'q', 'q', ST_GeomFromText('POINT(115 248)')),
|
||||
('x', 'c', 'i', ST_GeomFromText('POINT(29 74)')),
|
||||
('l', 's', 't', ST_GeomFromText('POINT(83 18)')),
|
||||
('t', 't', 'a', ST_GeomFromText('POINT(26 168)')),
|
||||
('u', 'n', 'x', ST_GeomFromText('POINT(200 110)')),
|
||||
('j', 'b', 'd', ST_GeomFromText('POINT(216 136)')),
|
||||
('s', 'p', 'w', ST_GeomFromText('POINT(38 156)')),
|
||||
('f', 'b', 'v', ST_GeomFromText('POINT(29 186)')),
|
||||
('v', 'e', 'r', ST_GeomFromText('POINT(149 40)')),
|
||||
('v', 't', 'm', ST_GeomFromText('POINT(184 24)')),
|
||||
('y', 'g', 'a', ST_GeomFromText('POINT(219 105)')),
|
||||
('s', 'f', 'i', ST_GeomFromText('POINT(114 130)')),
|
||||
('e', 'q', 'h', ST_GeomFromText('POINT(203 135)')),
|
||||
('h', 'g', 'b', ST_GeomFromText('POINT(9 208)')),
|
||||
('o', 'l', 'r', ST_GeomFromText('POINT(245 79)')),
|
||||
('s', 's', 'v', ST_GeomFromText('POINT(238 198)')),
|
||||
('w', 'w', 'z', ST_GeomFromText('POINT(209 232)')),
|
||||
('v', 'd', 'n', ST_GeomFromText('POINT(30 193)')),
|
||||
('q', 'w', 'k', ST_GeomFromText('POINT(133 18)')),
|
||||
('o', 'h', 'o', ST_GeomFromText('POINT(42 140)')),
|
||||
('f', 'f', 'h', ST_GeomFromText('POINT(145 1)')),
|
||||
('u', 's', 'r', ST_GeomFromText('POINT(70 62)')),
|
||||
('x', 'n', 'q', ST_GeomFromText('POINT(33 86)')),
|
||||
('u', 'p', 'v', ST_GeomFromText('POINT(232 220)')),
|
||||
('z', 'e', 'a', ST_GeomFromText('POINT(130 69)')),
|
||||
('r', 'u', 'z', ST_GeomFromText('POINT(243 241)')),
|
||||
('b', 'n', 't', ST_GeomFromText('POINT(120 12)')),
|
||||
('u', 'f', 's', ST_GeomFromText('POINT(190 212)')),
|
||||
('a', 'd', 'q', ST_GeomFromText('POINT(235 191)')),
|
||||
('f', 'q', 'm', ST_GeomFromText('POINT(176 2)')),
|
||||
('n', 'c', 's', ST_GeomFromText('POINT(218 163)')),
|
||||
('e', 'm', 'h', ST_GeomFromText('POINT(163 108)')),
|
||||
('c', 'f', 'l', ST_GeomFromText('POINT(220 115)')),
|
||||
('c', 'v', 'q', ST_GeomFromText('POINT(66 45)')),
|
||||
('w', 'v', 'x', ST_GeomFromText('POINT(251 220)')),
|
||||
('f', 'w', 'z', ST_GeomFromText('POINT(146 149)')),
|
||||
('h', 'n', 'h', ST_GeomFromText('POINT(148 128)')),
|
||||
('y', 'k', 'v', ST_GeomFromText('POINT(28 110)')),
|
||||
('c', 'x', 'q', ST_GeomFromText('POINT(13 13)')),
|
||||
('e', 'd', 's', ST_GeomFromText('POINT(91 190)')),
|
||||
('c', 'w', 'c', ST_GeomFromText('POINT(10 231)')),
|
||||
('u', 'j', 'n', ST_GeomFromText('POINT(250 21)')),
|
||||
('w', 'n', 'x', ST_GeomFromText('POINT(141 69)')),
|
||||
('f', 'p', 'y', ST_GeomFromText('POINT(228 246)')),
|
||||
('d', 'q', 'f', ST_GeomFromText('POINT(194 22)')),
|
||||
('d', 'z', 'l', ST_GeomFromText('POINT(233 181)')),
|
||||
('c', 'a', 'q', ST_GeomFromText('POINT(183 96)')),
|
||||
('m', 'i', 'd', ST_GeomFromText('POINT(117 226)')),
|
||||
('z', 'y', 'y', ST_GeomFromText('POINT(62 81)')),
|
||||
('g', 'v', 'm', ST_GeomFromText('POINT(66 158)'));
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
# following INSERTion will result in a node split
|
||||
INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES
|
||||
('f', 'x', 'p', ST_GeomFromText('POINT(92 181)'));
|
||||
|
||||
# Test rollback, this will result above split being rolled back, btr_compress
|
||||
# gets called
|
||||
ROLLBACK;
|
||||
|
||||
INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES
|
||||
('f', 'x', 'p', ST_GeomFromText('POINT(92 181)'));
|
||||
|
||||
# create overlap on the bounding box in parent
|
||||
INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES ('n', 'x', 'p', ST_GeomFromText('POINT(0 1280)'));
|
||||
|
||||
INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES ('n', 'x', 'p', ST_GeomFromText('POINT(45 1280)'));
|
||||
|
||||
# Add a row in the cross section of the 2 bounding box
|
||||
INSERT INTO t1 VALUES (1280, 'n', 'x', 'p', ST_GeomFromText('POINT(44 253)'));
|
||||
|
||||
# Delete this new poINT
|
||||
DELETE FROM t1 WHERE id = 1280;
|
||||
|
||||
INSERT INTO t1 VALUES (1280, 'n', 'x', 'p', ST_GeomFromText('POINT(44 253)'));
|
||||
|
||||
START TRANSACTION;
|
||||
DELETE FROM t1 WHERE id = 1280;
|
||||
ROLLBACK;
|
||||
|
||||
# Test MBR increase
|
||||
START TRANSACTION;
|
||||
INSERT INTO t1 (c2, c1, c3, spatial_point) VALUES
|
||||
('m', 'u', 'p', ST_GeomFromText('POINT(1192 1181)'));
|
||||
ROLLBACK;
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
UPDATE t1 SET spatial_point = ST_GeomFromText('POINT(123 456)') WHERE id < 2000;
|
||||
SET @g1 = ST_GeomFromText('Polygon((123 456, 123 678, 456 678,456 456,123 456))');
|
||||
DELETE FROM t1 WHERE MBRContains(@g1, t1.spatial_point);
|
||||
SELECT COUNT(*) FROM t1;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
SET GLOBAL innodb_file_per_table=default;
|
||||
SET GLOBAL innodb_file_format=default;
|
||||
|
83
mysql-test/include/innodb_gis_undo.inc
Normal file
83
mysql-test/include/innodb_gis_undo.inc
Normal file
File diff suppressed because one or more lines are too long
15
mysql-test/include/kill_and_restart_mysqld.inc
Normal file
15
mysql-test/include/kill_and_restart_mysqld.inc
Normal file
|
@ -0,0 +1,15 @@
|
|||
if (!$restart_parameters)
|
||||
{
|
||||
let $restart_parameters = restart;
|
||||
}
|
||||
|
||||
--let $_server_id= `SELECT @@server_id`
|
||||
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.$_server_id.expect
|
||||
|
||||
--echo # Kill and $restart_parameters
|
||||
--exec echo "$restart_parameters" > $_expect_file_name
|
||||
--shutdown_server 0
|
||||
--source include/wait_until_disconnected.inc
|
||||
--enable_reconnect
|
||||
--source include/wait_until_connected_again.inc
|
||||
--disable_reconnect
|
60
mysql-test/include/wait_innodb_all_purged.inc
Normal file
60
mysql-test/include/wait_innodb_all_purged.inc
Normal file
|
@ -0,0 +1,60 @@
|
|||
# include/wait_innodb_all_purged.inc
|
||||
#
|
||||
# SUMMARY
|
||||
#
|
||||
# Waits until purged all undo records of innodb, or operation times out.
|
||||
#
|
||||
# USAGE
|
||||
#
|
||||
# --source include/wait_innodb_all_purged.inc
|
||||
#
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_debug.inc
|
||||
|
||||
--disable_query_log
|
||||
|
||||
let $wait_counter_init= 300;
|
||||
if ($wait_timeout)
|
||||
{
|
||||
let $wait_counter_init= `SELECT $wait_timeout * 10`;
|
||||
}
|
||||
# Reset $wait_timeout so that its value won't be used on subsequent
|
||||
# calls, and default will be used instead.
|
||||
let $wait_timeout= 0;
|
||||
|
||||
let $wait_counter= $wait_counter_init;
|
||||
|
||||
# Keep track of how many times the wait condition is tested
|
||||
let $wait_condition_reps= 0;
|
||||
let $prev_trx_age= 0;
|
||||
while ($wait_counter)
|
||||
{
|
||||
--disable_warnings
|
||||
let $trx_age = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS
|
||||
WHERE VARIABLE_NAME = 'INNODB_PURGE_TRX_ID_AGE';`;
|
||||
--enable_warnings
|
||||
|
||||
if ($trx_age != $prev_trx_age)
|
||||
{
|
||||
let $wait_counter= $wait_counter_init;
|
||||
let $prev_trx_age= $trx_age;
|
||||
}
|
||||
|
||||
let $success= `SELECT $trx_age < 1`;
|
||||
inc $wait_condition_reps;
|
||||
if ($success)
|
||||
{
|
||||
let $wait_counter= 0;
|
||||
}
|
||||
if (!$success)
|
||||
{
|
||||
real_sleep 0.1;
|
||||
dec $wait_counter;
|
||||
}
|
||||
}
|
||||
if (!$success)
|
||||
{
|
||||
echo Timeout in wait_innodb_all_purged.inc for INNODB_PURGE_TRX_ID_AGE = $trx_age;
|
||||
}
|
||||
|
||||
--enable_query_log
|
|
@ -336,9 +336,14 @@ sub start_kill {
|
|||
|
||||
sub dump_core {
|
||||
my ($self)= @_;
|
||||
return if IS_WINDOWS;
|
||||
my $pid= $self->{SAFE_PID};
|
||||
die "Can't get core from not started process" unless defined $pid;
|
||||
|
||||
if (IS_WINDOWS) {
|
||||
system("$safe_kill $pid dump");
|
||||
return 1;
|
||||
}
|
||||
|
||||
_verbose("Sending ABRT to $self");
|
||||
kill ("ABRT", $pid);
|
||||
return 1;
|
||||
|
|
|
@ -25,6 +25,7 @@ SET(INSTALL_ARGS
|
|||
IF (WIN32)
|
||||
MYSQL_ADD_EXECUTABLE(my_safe_process safe_process_win.cc ${INSTALL_ARGS})
|
||||
MYSQL_ADD_EXECUTABLE(my_safe_kill safe_kill_win.cc ${INSTALL_ARGS})
|
||||
TARGET_LINK_LIBRARIES(my_safe_kill dbghelp psapi)
|
||||
ELSE()
|
||||
MYSQL_ADD_EXECUTABLE(my_safe_process safe_process.cc ${INSTALL_ARGS})
|
||||
ENDIF()
|
||||
|
|
|
@ -25,6 +25,137 @@
|
|||
#include <stdio.h>
|
||||
#include <signal.h>
|
||||
#include <stdlib.h>
|
||||
#include <psapi.h>
|
||||
#include <dbghelp.h>
|
||||
#include <tlhelp32.h>
|
||||
#include <vector>
|
||||
|
||||
|
||||
static std::vector<DWORD> find_children(DWORD pid)
|
||||
{
|
||||
HANDLE h= NULL;
|
||||
PROCESSENTRY32 pe={ 0 };
|
||||
std::vector<DWORD> children;
|
||||
|
||||
pe.dwSize = sizeof(PROCESSENTRY32);
|
||||
h = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
|
||||
if(h == INVALID_HANDLE_VALUE)
|
||||
return children;
|
||||
|
||||
for (BOOL ret = Process32First(h, &pe); ret; ret = Process32Next(h, &pe))
|
||||
{
|
||||
if (pe.th32ParentProcessID == pid)
|
||||
children.push_back(pe.th32ProcessID);
|
||||
}
|
||||
CloseHandle(h);
|
||||
return children;
|
||||
}
|
||||
|
||||
void dump_single_process(DWORD pid)
|
||||
{
|
||||
HANDLE file = 0;
|
||||
HANDLE process= 0;
|
||||
DWORD size= MAX_PATH;
|
||||
char path[MAX_PATH];
|
||||
char working_dir[MAX_PATH];
|
||||
char tmpname[MAX_PATH];
|
||||
|
||||
process= OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, pid);
|
||||
if (!process)
|
||||
{
|
||||
fprintf(stderr, "safe_kill : cannot open process pid=%u to create dump, last error %u\n",
|
||||
pid, GetLastError());
|
||||
goto exit;
|
||||
}
|
||||
|
||||
if (QueryFullProcessImageName(process, 0, path, &size) == 0)
|
||||
{
|
||||
fprintf(stderr, "safe_kill : cannot read process path for pid %u, last error %u\n",
|
||||
pid, GetLastError());
|
||||
goto exit;
|
||||
}
|
||||
|
||||
char *filename= strrchr(path, '\\');
|
||||
if (filename)
|
||||
{
|
||||
filename++;
|
||||
// We are not interested in dump of some proceses (my_safe_process.exe,cmd.exe)
|
||||
// since they are only used to start up other programs.
|
||||
// We're interested however in their children;
|
||||
const char *exclude_programs[] = {"my_safe_process.exe","cmd.exe", 0};
|
||||
for(size_t i=0; exclude_programs[i]; i++)
|
||||
if (_stricmp(filename, exclude_programs[i]) == 0)
|
||||
goto exit;
|
||||
}
|
||||
else
|
||||
filename= path;
|
||||
|
||||
// Add .dmp extension
|
||||
char *p;
|
||||
if ((p= strrchr(filename, '.')) == 0)
|
||||
p= filename + strlen(filename);
|
||||
|
||||
strncpy(p, ".dmp", path + MAX_PATH - p);
|
||||
|
||||
// Íf file with this name exist, generate unique name with .dmp extension
|
||||
if (GetFileAttributes(filename) != INVALID_FILE_ATTRIBUTES)
|
||||
{
|
||||
if (!GetTempFileName(".", filename, 0, tmpname))
|
||||
{
|
||||
fprintf(stderr, "GetTempFileName failed, last error %u", GetLastError());
|
||||
goto exit;
|
||||
}
|
||||
strncat(tmpname, ".dmp", sizeof(tmpname));
|
||||
filename= tmpname;
|
||||
}
|
||||
|
||||
|
||||
if (!GetCurrentDirectory(MAX_PATH, working_dir))
|
||||
{
|
||||
fprintf(stderr, "GetCurrentDirectory failed, last error %u", GetLastError());
|
||||
goto exit;
|
||||
}
|
||||
|
||||
file= CreateFile(filename, GENERIC_READ | GENERIC_WRITE,
|
||||
0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
|
||||
|
||||
if (file == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
fprintf(stderr, "safe_kill : CreateFile() failed for file %s, working dir %s, last error = %u\n",
|
||||
filename, working_dir, GetLastError());
|
||||
goto exit;
|
||||
}
|
||||
|
||||
if (!MiniDumpWriteDump(process, pid, file, MiniDumpNormal, 0, 0, 0))
|
||||
{
|
||||
fprintf(stderr, "Failed to write minidump to %s, working dir %s, last error %u\n",
|
||||
filename, working_dir, GetLastError());
|
||||
goto exit;
|
||||
}
|
||||
|
||||
fprintf(stderr, "Minidump written to %s, directory %s\n", filename, working_dir);
|
||||
|
||||
exit:
|
||||
if (process != 0 && process != INVALID_HANDLE_VALUE)
|
||||
CloseHandle(process);
|
||||
|
||||
if (file != 0 && file != INVALID_HANDLE_VALUE)
|
||||
CloseHandle(file);
|
||||
}
|
||||
|
||||
|
||||
static int create_dump(DWORD pid, int recursion_depth= 5)
|
||||
{
|
||||
if (recursion_depth < 0)
|
||||
return 0;
|
||||
|
||||
dump_single_process(pid);
|
||||
std::vector<DWORD> children= find_children(pid);
|
||||
for(size_t i=0; i < children.size(); i++)
|
||||
create_dump(children[i], recursion_depth -1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, const char** argv )
|
||||
{
|
||||
|
@ -37,12 +168,16 @@ int main(int argc, const char** argv )
|
|||
signal(SIGBREAK, SIG_IGN);
|
||||
signal(SIGTERM, SIG_IGN);
|
||||
|
||||
if (argc != 2) {
|
||||
fprintf(stderr, "safe_kill <pid>\n");
|
||||
if ((argc != 2 && argc != 3) || (argc == 3 && strcmp(argv[2],"dump"))) {
|
||||
fprintf(stderr, "safe_kill <pid> [dump]\n");
|
||||
exit(2);
|
||||
}
|
||||
pid= atoi(argv[1]);
|
||||
|
||||
if (argc == 3)
|
||||
{
|
||||
return create_dump(pid);
|
||||
}
|
||||
_snprintf(safe_process_name, sizeof(safe_process_name),
|
||||
"safe_process[%d]", pid);
|
||||
|
||||
|
|
|
@ -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
|
||||
#
|
||||
|
|
|
@ -7,7 +7,6 @@ a
|
|||
2002-03-04
|
||||
Warnings:
|
||||
Note 1003 2000-01-01
|
||||
Note 1003 2000-01-06
|
||||
set debug_dbug='';
|
||||
drop table t1;
|
||||
create table t1 (id int not null, ut timestamp(6) not null);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -86,7 +86,7 @@ select * from t2,t where t2.c=t.a;
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 4 Using where
|
||||
1 PRIMARY <derived2> ref key0 key0 5 test.t2.c 2
|
||||
2 SUBQUERY t1 ALL NULL NULL NULL NULL 8 Using where; Using temporary; Using filesort
|
||||
2 DERIVED t1 ALL NULL NULL NULL NULL 8 Using where; Using temporary; Using filesort
|
||||
explain
|
||||
select * from t2, (select a, count(*) from t1 where b >= 'c' group by a) as t
|
||||
where t2.c=t.a;
|
||||
|
@ -176,7 +176,7 @@ select * from t2 where c in (select c from t);
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 4 Using where
|
||||
1 PRIMARY <derived2> ref key0 key0 8 test.t2.c 2 Using where; FirstMatch(t2)
|
||||
2 SUBQUERY t1 ALL NULL NULL NULL NULL 8 Using where; Using temporary; Using filesort
|
||||
2 DERIVED t1 ALL NULL NULL NULL NULL 8 Using where; Using temporary; Using filesort
|
||||
explain
|
||||
select * from t2
|
||||
where c in (select c from (select count(*) as c from t1
|
||||
|
@ -245,8 +245,8 @@ select * from t as r1, t as r2 where r1.a=r2.a;
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 8 Using where
|
||||
1 PRIMARY <derived3> ref key0 key0 5 r1.a 2
|
||||
3 SUBQUERY t1 ALL NULL NULL NULL NULL 8 Using where; Using temporary
|
||||
2 SUBQUERY t1 ALL NULL NULL NULL NULL 8 Using where; Using temporary
|
||||
3 DERIVED t1 ALL NULL NULL NULL NULL 8 Using where; Using temporary
|
||||
2 DERIVED t1 ALL NULL NULL NULL NULL 8 Using where; Using temporary
|
||||
explain
|
||||
select * from (select distinct a from t1 where b >= 'c') as r1,
|
||||
(select distinct a from t1 where b >= 'c') as r2
|
||||
|
@ -370,7 +370,7 @@ select * from t2,t where t2.c=t.a;
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 4 Using where
|
||||
1 PRIMARY <derived2> ref key0 key0 5 test.t2.c 2
|
||||
2 SUBQUERY t1 ALL NULL NULL NULL NULL 8 Using where
|
||||
2 DERIVED t1 ALL NULL NULL NULL NULL 8 Using where
|
||||
3 UNION t2 ALL NULL NULL NULL NULL 4 Using where
|
||||
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL
|
||||
explain
|
||||
|
@ -598,7 +598,7 @@ select * from v2;
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 4 Using where
|
||||
1 PRIMARY <derived3> ref key0 key0 5 test.t2.c 2
|
||||
3 SUBQUERY t1 ALL NULL NULL NULL NULL 8 Using where; Using temporary; Using filesort
|
||||
3 DERIVED t1 ALL NULL NULL NULL NULL 8 Using where; Using temporary; Using filesort
|
||||
# with clause in the specification of a view that whose definition
|
||||
# table alias for a with table
|
||||
create view v3 as
|
||||
|
@ -1055,3 +1055,27 @@ deallocate prepare stmt1;
|
|||
deallocate prepare stmt2;
|
||||
drop view v1,v2;
|
||||
drop table t1,t2;
|
||||
#
|
||||
# MDEV-13796: UNION of two materialized CTEs
|
||||
#
|
||||
CREATE TABLE t1 (id int, k int);
|
||||
CREATE TABLE t2 (id int);
|
||||
INSERT INTO t1 VALUES (3,5), (1,7), (4,3);
|
||||
INSERT INTO t2 VALUES (4), (3), (2);
|
||||
WITH d1 AS (SELECT SUM(k) FROM t1, t2 as t2 WHERE t1.id = t2.id),
|
||||
d2 AS (SELECT SUM(k) FROM t1, t2 as t2 WHERE t1.id = t2.id)
|
||||
SELECT * FROM d1 UNION SELECT * FROM d2;
|
||||
SUM(k)
|
||||
8
|
||||
explain WITH d1 AS (SELECT SUM(k) FROM t1, t2 as t2 WHERE t1.id = t2.id),
|
||||
d2 AS (SELECT SUM(k) FROM t1, t2 as t2 WHERE t1.id = t2.id)
|
||||
SELECT * FROM d1 UNION SELECT * FROM d2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 9
|
||||
2 DERIVED t1 ALL NULL NULL NULL NULL 3
|
||||
2 DERIVED t2 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
|
||||
4 UNION <derived3> ALL NULL NULL NULL NULL 9
|
||||
3 DERIVED t1 ALL NULL NULL NULL NULL 3
|
||||
3 DERIVED t2 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
|
||||
NULL UNION RESULT <union1,4> ALL NULL NULL NULL NULL NULL
|
||||
DROP TABLE t1,t2;
|
||||
|
|
|
@ -86,7 +86,7 @@ select t2.a from t1,t2 where t1.a+1=t2.a
|
|||
select * from t1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 30
|
||||
2 SUBQUERY t2 ALL NULL NULL NULL NULL 5 Using where
|
||||
2 DERIVED t2 ALL NULL NULL NULL NULL 5 Using where
|
||||
3 UNION t1 ALL NULL NULL NULL NULL 5
|
||||
3 UNION t2 ALL NULL NULL NULL NULL 5 Using where; Using join buffer (flat, BNL join)
|
||||
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL
|
||||
|
@ -114,7 +114,7 @@ select t2.a from t1,t2 where t1.a+1=t2.a
|
|||
select * from t1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 5
|
||||
2 SUBQUERY t2 ALL NULL NULL NULL NULL 5 Using where
|
||||
2 DERIVED t2 ALL NULL NULL NULL NULL 5 Using where
|
||||
3 RECURSIVE UNION <derived2> ALL NULL NULL NULL NULL 5
|
||||
3 RECURSIVE UNION t2 ALL NULL NULL NULL NULL 5 Using where; Using join buffer (flat, BNL join)
|
||||
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL
|
||||
|
@ -691,13 +691,13 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
1 PRIMARY <derived3> ref key0 key0 5 c.h_id 2 100.00
|
||||
1 PRIMARY <derived3> ref key0 key0 5 c.w_id 2 100.00
|
||||
3 SUBQUERY folks ALL NULL NULL NULL NULL 12 100.00 Using where
|
||||
3 DERIVED folks ALL NULL NULL NULL NULL 12 100.00 Using where
|
||||
4 RECURSIVE UNION <derived2> ALL NULL NULL NULL NULL 2 100.00
|
||||
4 RECURSIVE UNION p ALL NULL NULL NULL NULL 12 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
5 RECURSIVE UNION <derived2> ALL NULL NULL NULL NULL 2 100.00
|
||||
5 RECURSIVE UNION p ALL NULL NULL NULL NULL 12 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
NULL UNION RESULT <union3,4,5> ALL NULL NULL NULL NULL NULL NULL
|
||||
2 UNCACHEABLE SUBQUERY <derived3> ALL NULL NULL NULL NULL 12 100.00 Using where
|
||||
2 DERIVED <derived3> ALL NULL NULL NULL NULL 12 100.00 Using where
|
||||
Warnings:
|
||||
Note 1003 with recursive ancestor_couple_ids as (/* select#2 */ select `a`.`father` AS `h_id`,`a`.`mother` AS `w_id` from `coupled_ancestors` `a` where `a`.`father` is not null and `a`.`mother` is not null), coupled_ancestors as (/* select#3 */ select `test`.`folks`.`id` AS `id`,`test`.`folks`.`name` AS `name`,`test`.`folks`.`dob` AS `dob`,`test`.`folks`.`father` AS `father`,`test`.`folks`.`mother` AS `mother` from `test`.`folks` where `test`.`folks`.`name` = 'Me' union all /* select#4 */ select `test`.`p`.`id` AS `id`,`test`.`p`.`name` AS `name`,`test`.`p`.`dob` AS `dob`,`test`.`p`.`father` AS `father`,`test`.`p`.`mother` AS `mother` from `test`.`folks` `p` join `ancestor_couple_ids` `fa` where `test`.`p`.`id` = `fa`.`h_id` union all /* select#5 */ select `test`.`p`.`id` AS `id`,`test`.`p`.`name` AS `name`,`test`.`p`.`dob` AS `dob`,`test`.`p`.`father` AS `father`,`test`.`p`.`mother` AS `mother` from `test`.`folks` `p` join `ancestor_couple_ids` `ma` where `test`.`p`.`id` = `ma`.`w_id`)/* select#1 */ select `h`.`name` AS `name`,`h`.`dob` AS `dob`,`w`.`name` AS `name`,`w`.`dob` AS `dob` from `ancestor_couple_ids` `c` join `coupled_ancestors` `h` join `coupled_ancestors` `w` where `h`.`id` = `c`.`h_id` and `w`.`id` = `c`.`w_id`
|
||||
# simple mutual recursion
|
||||
|
@ -877,7 +877,7 @@ where p.id = a.father or p.id = a.mother
|
|||
select * from ancestors;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 12 100.00
|
||||
2 SUBQUERY folks ALL NULL NULL NULL NULL 12 100.00 Using where
|
||||
2 DERIVED folks ALL NULL NULL NULL NULL 12 100.00 Using where
|
||||
3 RECURSIVE UNION p ALL NULL NULL NULL NULL 12 100.00
|
||||
3 RECURSIVE UNION <derived2> ALL NULL NULL NULL NULL 12 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL
|
||||
|
@ -1236,7 +1236,7 @@ where p.id = ma.mother
|
|||
select * from ancestors;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 12
|
||||
2 SUBQUERY folks ALL NULL NULL NULL NULL 12 Using where
|
||||
2 DERIVED folks ALL NULL NULL NULL NULL 12 Using where
|
||||
3 RECURSIVE UNION p ALL PRIMARY NULL NULL NULL 12
|
||||
3 RECURSIVE UNION <derived2> ref key0 key0 5 test.p.id 2
|
||||
4 RECURSIVE UNION p ALL PRIMARY NULL NULL NULL 12
|
||||
|
@ -1300,14 +1300,14 @@ from prev_gen
|
|||
select ancestors.name, ancestors.dob from ancestors;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY <derived4> ALL NULL NULL NULL NULL 24
|
||||
4 SUBQUERY folks ALL NULL NULL NULL NULL 12 Using where
|
||||
4 DERIVED folks ALL NULL NULL NULL NULL 12 Using where
|
||||
6 RECURSIVE UNION <derived3> ALL NULL NULL NULL NULL 12
|
||||
5 RECURSIVE UNION <derived4> ALL NULL NULL NULL NULL 24
|
||||
NULL UNION RESULT <union4,6,5> ALL NULL NULL NULL NULL NULL
|
||||
3 SUBQUERY folks ALL NULL NULL NULL NULL 12 Using where
|
||||
3 DERIVED folks ALL NULL NULL NULL NULL 12 Using where
|
||||
2 RECURSIVE UNION folks ALL PRIMARY NULL NULL NULL 12
|
||||
2 RECURSIVE UNION <derived3> ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
|
||||
NULL UNION RESULT <union3,2> ALL NULL NULL NULL NULL NULL
|
||||
5 RECURSIVE UNION <derived4> ALL NULL NULL NULL NULL 24
|
||||
NULL UNION RESULT <union4,6,5> ALL NULL NULL NULL NULL NULL
|
||||
explain FORMAT=JSON
|
||||
with recursive
|
||||
prev_gen
|
||||
|
@ -1353,7 +1353,6 @@ EXPLAIN
|
|||
{
|
||||
"query_block": {
|
||||
"select_id": 4,
|
||||
"operation": "UNION",
|
||||
"table": {
|
||||
"table_name": "folks",
|
||||
"access_type": "ALL",
|
||||
|
@ -1382,7 +1381,6 @@ EXPLAIN
|
|||
{
|
||||
"query_block": {
|
||||
"select_id": 3,
|
||||
"operation": "UNION",
|
||||
"table": {
|
||||
"table_name": "folks",
|
||||
"access_type": "ALL",
|
||||
|
@ -1489,7 +1487,6 @@ EXPLAIN
|
|||
{
|
||||
"query_block": {
|
||||
"select_id": 3,
|
||||
"operation": "UNION",
|
||||
"table": {
|
||||
"table_name": "v",
|
||||
"access_type": "ALL",
|
||||
|
@ -1757,7 +1754,6 @@ EXPLAIN
|
|||
{
|
||||
"query_block": {
|
||||
"select_id": 2,
|
||||
"operation": "UNION",
|
||||
"table": {
|
||||
"table_name": "t1",
|
||||
"access_type": "ALL",
|
||||
|
@ -1840,7 +1836,7 @@ select t2.a from t1,t2 where t1.a+1=t2.a
|
|||
select * from t1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 5
|
||||
2 SUBQUERY t2 ALL NULL NULL NULL NULL 5 Using where
|
||||
2 DERIVED t2 ALL NULL NULL NULL NULL 5 Using where
|
||||
4 RECURSIVE UNION <derived2> ALL NULL NULL NULL NULL 5
|
||||
4 RECURSIVE UNION t2 ALL NULL NULL NULL NULL 5 Using where; Using join buffer (flat, BNL join)
|
||||
NULL UNION RESULT <union2,4> ALL NULL NULL NULL NULL NULL
|
||||
|
@ -2387,7 +2383,6 @@ ANALYZE
|
|||
{
|
||||
"query_block": {
|
||||
"select_id": 2,
|
||||
"operation": "UNION",
|
||||
"table": {
|
||||
"message": "No tables used"
|
||||
}
|
||||
|
@ -2794,7 +2789,7 @@ SELECT c1 FROM t, cte
|
|||
) SELECT COUNT(*) FROM cte;
|
||||
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
||||
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 4 4.00 100.00 100.00
|
||||
2 SUBQUERY t ALL NULL NULL NULL NULL 4 4.00 100.00 100.00
|
||||
2 DERIVED t ALL NULL NULL NULL NULL 4 4.00 100.00 100.00
|
||||
3 RECURSIVE UNION t ALL NULL NULL NULL NULL 4 4.00 100.00 100.00
|
||||
3 RECURSIVE UNION <derived2> ALL NULL NULL NULL NULL 4 4.00 100.00 100.00 Using join buffer (flat, BNL join)
|
||||
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL 0.00 NULL NULL
|
||||
|
@ -2812,7 +2807,7 @@ SELECT c2 FROM t, cte
|
|||
) SELECT COUNT(*) FROM cte;
|
||||
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
|
||||
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 4 4.00 100.00 100.00
|
||||
2 SUBQUERY t ALL NULL NULL NULL NULL 4 4.00 100.00 100.00
|
||||
2 DERIVED t ALL NULL NULL NULL NULL 4 4.00 100.00 100.00
|
||||
3 RECURSIVE UNION t ALL NULL NULL NULL NULL 4 4.00 100.00 100.00
|
||||
3 RECURSIVE UNION <derived2> ALL NULL NULL NULL NULL 4 4.00 100.00 100.00 Using join buffer (flat, BNL join)
|
||||
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL 0.00 NULL NULL
|
||||
|
|
|
@ -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
|
||||
#
|
||||
#
|
||||
|
|
|
@ -199,3 +199,15 @@ i
|
|||
2
|
||||
DROP PROCEDURE p1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-13776: DELETE ... RETURNING with sql_mode='ONLY_FULL_GROUP_BY'
|
||||
#
|
||||
set @sql_mode_save= @@sql_mode;
|
||||
set sql_mode='ONLY_FULL_GROUP_BY';
|
||||
CREATE TABLE t1 (id INT);
|
||||
INSERT INTO t1 VALUE(1),(2),(3);
|
||||
DELETE FROM t1 WHERE id > 2 RETURNING *;
|
||||
id
|
||||
3
|
||||
set sql_mode=@sql_mode_save;
|
||||
DROP TABLE t1;
|
||||
|
|
181
mysql-test/r/empty_string_literal.result
Normal file
181
mysql-test/r/empty_string_literal.result
Normal file
|
@ -0,0 +1,181 @@
|
|||
USE test;
|
||||
#
|
||||
# MDEV-14013 : sql_mode=EMPTY_STRING_IS_NULL
|
||||
#
|
||||
set @mode='EMPTY_STRING_IS_NULL';
|
||||
SET SESSION character_set_connection=latin2;
|
||||
SET SESSION character_set_client=cp1250;
|
||||
#
|
||||
# Test litteral
|
||||
#
|
||||
SET sql_mode=@mode;
|
||||
select @@sql_mode;
|
||||
@@sql_mode
|
||||
EMPTY_STRING_IS_NULL
|
||||
SELECT '',CHARSET(''), null, CHARSET(null), CAST(null as char(10)), CHARSET(CAST(null as char(10))), 'x', CHARSET('x');
|
||||
NULL CHARSET('') NULL CHARSET(null) CAST(null as char(10)) CHARSET(CAST(null as char(10))) x CHARSET('x')
|
||||
NULL latin2 NULL binary NULL latin2 x latin2
|
||||
SELECT CHARSET(NULLIF('','')),NULLIF('','');
|
||||
CHARSET(NULLIF('','')) NULLIF('','')
|
||||
latin2 NULL
|
||||
SET sql_mode=default;
|
||||
SELECT '',CHARSET(''), null, CHARSET(null), CAST(null as char(10)), CHARSET(CAST(null as char(10))), 'x', CHARSET('x');
|
||||
CHARSET('') NULL CHARSET(null) CAST(null as char(10)) CHARSET(CAST(null as char(10))) x CHARSET('x')
|
||||
latin2 NULL binary NULL latin2 x latin2
|
||||
SELECT CHARSET(NULLIF('','')),NULLIF('','');
|
||||
CHARSET(NULLIF('','')) NULLIF('','')
|
||||
latin2 NULL
|
||||
#
|
||||
# Test NCHAR litteral
|
||||
#
|
||||
SET sql_mode=@mode;
|
||||
SELECT N'',CHARSET(N''), N'x', CHARSET(N'x');
|
||||
NULL CHARSET(N'') x CHARSET(N'x')
|
||||
NULL utf8 x utf8
|
||||
SELECT CHARSET(NULLIF(N'',N'')),NULLIF(N'',N'');
|
||||
CHARSET(NULLIF(N'',N'')) NULLIF(N'',N'')
|
||||
utf8 NULL
|
||||
SET sql_mode=default;
|
||||
SELECT N'',CHARSET(N''), N'x', CHARSET(N'x');
|
||||
CHARSET(N'') x CHARSET(N'x')
|
||||
utf8 x utf8
|
||||
SELECT CHARSET(NULLIF(N'',N'')),NULLIF(N'',N'');
|
||||
CHARSET(NULLIF(N'',N'')) NULLIF(N'',N'')
|
||||
utf8 NULL
|
||||
#
|
||||
# Test CHARSET prefix litteral
|
||||
#
|
||||
SET sql_mode=@mode;
|
||||
SELECT _cp1250 '',CHARSET(_cp1250 ''), _cp1250 'x', CHARSET(_cp1250 'x');
|
||||
NULL CHARSET(_cp1250 '') x CHARSET(_cp1250 'x')
|
||||
NULL cp1250 x cp1250
|
||||
SELECT CHARSET(NULLIF(_cp1250 '',_cp1250 '')),NULLIF(_cp1250 '',_cp1250 '');
|
||||
CHARSET(NULLIF(_cp1250 '',_cp1250 '')) NULLIF(_cp1250 '',_cp1250 '')
|
||||
cp1250 NULL
|
||||
SET sql_mode=default;
|
||||
SELECT _cp1250 '',CHARSET(_cp1250 ''), _cp1250 'x', CHARSET(_cp1250 'x');
|
||||
CHARSET(_cp1250 '') x CHARSET(_cp1250 'x')
|
||||
cp1250 x cp1250
|
||||
SELECT CHARSET(NULLIF(_cp1250 '',_cp1250 '')),NULLIF(_cp1250 '',_cp1250 '');
|
||||
CHARSET(NULLIF(_cp1250 '',_cp1250 '')) NULLIF(_cp1250 '',_cp1250 '')
|
||||
cp1250 NULL
|
||||
SET sql_mode=@mode;
|
||||
#
|
||||
# Test litteral concat
|
||||
#
|
||||
SELECT 'a' 'b';
|
||||
a
|
||||
ab
|
||||
SELECT 'a' '';
|
||||
a
|
||||
a
|
||||
SELECT '' 'b';
|
||||
b
|
||||
b
|
||||
SELECT '' '';
|
||||
NULL
|
||||
NULL
|
||||
SELECT '' 'b' 'c';
|
||||
b
|
||||
bc
|
||||
SELECT '' '' 'c';
|
||||
c
|
||||
c
|
||||
SELECT 'a' '' 'c';
|
||||
a
|
||||
ac
|
||||
SELECT 'a' '' '';
|
||||
a
|
||||
a
|
||||
SELECT '' '' '';
|
||||
NULL
|
||||
NULL
|
||||
SELECT '' '' '',CHARSET('' '' '');
|
||||
NULL CHARSET('' '' '')
|
||||
NULL latin2
|
||||
SELECT _latin1'' '' '',CHARSET(_latin1'' '' '');
|
||||
NULL CHARSET(_latin1'' '' '')
|
||||
NULL latin1
|
||||
SELECT N'' '' '',CHARSET(N'' '' '');
|
||||
NULL CHARSET(N'' '' '')
|
||||
NULL utf8
|
||||
#
|
||||
# UNION - implicit group by
|
||||
#
|
||||
SELECT 1, null
|
||||
UNION
|
||||
SELECT 1 , ''
|
||||
ORDER BY 1;
|
||||
1 NULL
|
||||
1 NULL
|
||||
SELECT 1, null
|
||||
UNION
|
||||
SELECT 1 , N''
|
||||
ORDER BY 1;
|
||||
1 NULL
|
||||
1 NULL
|
||||
SELECT 1, null
|
||||
UNION
|
||||
SELECT 1 , _cp1250 ''
|
||||
ORDER BY 1;
|
||||
1 NULL
|
||||
1 NULL
|
||||
SELECT NULLIF(_cp1250 '',_cp1250 '')
|
||||
UNION
|
||||
SELECT NULLIF(N'',N'');
|
||||
NULLIF(_cp1250 '',_cp1250 '')
|
||||
NULL
|
||||
SELECT 1 , _latin2 ''
|
||||
UNION
|
||||
SELECT 1 , _cp1250 '';
|
||||
ERROR HY000: Illegal mix of collations (latin2_general_ci,IGNORABLE) and (cp1250_general_ci,IGNORABLE) for operation 'UNION'
|
||||
SELECT 1, null
|
||||
UNION
|
||||
SELECT 1 , ''
|
||||
UNION
|
||||
SELECT 1 , N'';
|
||||
1 NULL
|
||||
1 NULL
|
||||
CREATE TABLE t1 (c1 INT,c2 VARCHAR(10));
|
||||
INSERT INTO t1 VALUES (1,'one');
|
||||
INSERT INTO t1 VALUES (1,'');
|
||||
INSERT INTO t1 VALUES (1,null);
|
||||
#
|
||||
# Test in a view
|
||||
#
|
||||
CREATE VIEW v1
|
||||
AS SELECT c1, c2
|
||||
FROM t1
|
||||
UNION
|
||||
SELECT c1 , ''
|
||||
FROM t1
|
||||
ORDER BY 1,2;
|
||||
SELECT * FROM v1;
|
||||
c1 c2
|
||||
1 NULL
|
||||
1 one
|
||||
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`.`c1` AS `c1`,`t1`.`c2` AS `c2` from `t1` union select `t1`.`c1` AS `c1`,NULL AS `NULL` from `t1` order by 1,2 cp1250 latin2_general_ci
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
EXPLAIN EXTENDED SELECT '';
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select NULL AS `NULL`
|
||||
EXPLAIN EXTENDED SELECT _latin1'';
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select NULL AS `NULL`
|
||||
EXPLAIN EXTENDED SELECT N'';
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select NULL AS `NULL`
|
||||
EXPLAIN EXTENDED SELECT '' '';
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select NULL AS `NULL`
|
|
@ -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
|
||||
|
|
|
@ -152,6 +152,9 @@ json_contains('[{"abc":"def", "def":"abc"}]', '["foo","bar"]')
|
|||
select json_contains('[{"abc":"def", "def":"abc"}, "bar"]', '["bar", {}]');
|
||||
json_contains('[{"abc":"def", "def":"abc"}, "bar"]', '["bar", {}]')
|
||||
1
|
||||
select json_contains('[{"a":"b"},{"c":"d"}]','{"c":"d"}');
|
||||
json_contains('[{"a":"b"},{"c":"d"}]','{"c":"d"}')
|
||||
1
|
||||
select json_contains_path('{"key1":1, "key2":[2,3]}', "oNE", "$.key2[1]");
|
||||
json_contains_path('{"key1":1, "key2":[2,3]}', "oNE", "$.key2[1]")
|
||||
1
|
||||
|
@ -402,6 +405,13 @@ abc
|
|||
select json_unquote('abc');
|
||||
json_unquote('abc')
|
||||
abc
|
||||
create table t1 (c VARCHAR(8)) DEFAULT CHARSET=latin1;
|
||||
insert into t1 values ('abc'),('def');
|
||||
select json_object('foo', json_unquote(json_object('bar', c)),'qux', c) as fld from t1;
|
||||
fld
|
||||
{"foo": "{\"bar\": \"abc\"}", "qux": "abc"}
|
||||
{"foo": "{\"bar\": \"def\"}", "qux": "def"}
|
||||
drop table t1;
|
||||
select json_object("a", json_object("b", "abcd"));
|
||||
json_object("a", json_object("b", "abcd"))
|
||||
{"a": {"b": "abcd"}}
|
||||
|
@ -443,6 +453,11 @@ json_length('{"a": 1, "b": {"c": 30}}', '$.b')
|
|||
select json_length('{"a": 1, "b": {"c": 30}}');
|
||||
json_length('{"a": 1, "b": {"c": 30}}')
|
||||
2
|
||||
select json_length('{}{');
|
||||
json_length('{}{')
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 4038 Syntax error in JSON text in argument 1 to function 'json_length' at position 3
|
||||
create table json (j INT);
|
||||
show create table json;
|
||||
Table Create Table
|
||||
|
@ -705,6 +720,11 @@ json_data
|
|||
SELECT JSON_OBJECT("user","Jožko Mrkvičká") as json_data;
|
||||
json_data
|
||||
{"user": "Jožko Mrkvičká"}
|
||||
select json_contains_path('{"foo":"bar"}', 'one', '$[]');
|
||||
json_contains_path('{"foo":"bar"}', 'one', '$[]')
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 4042 Syntax error in JSON path in argument 3 to function 'json_contains_path' at position 3
|
||||
#
|
||||
# Start of 10.3 tests
|
||||
#
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -485,6 +485,25 @@ ST_Touches(ST_PolygonFromText('POLYGON((0 0,0 5,5 5,5 0,0 0))'),ST_PointFromText
|
|||
select ST_Touches(ST_PointFromText('POINT(0 0)'),ST_PointFromText('POINT(0 0)'));
|
||||
ST_Touches(ST_PointFromText('POINT(0 0)'),ST_PointFromText('POINT(0 0)'))
|
||||
0
|
||||
SELECT ST_RELATE(
|
||||
ST_DIFFERENCE(
|
||||
GEOMETRYFROMTEXT('
|
||||
MULTILINESTRING(
|
||||
( 12841 36140, 8005 31007, 26555 31075, 52765 41191,
|
||||
28978 6548, 45720 32057, 53345 3221 ),
|
||||
( 8304 59107, 25233 31592, 40502 25303, 8205 42940 ),
|
||||
( 7829 7305, 58841 56759, 64115 8512, 37562 54145, 2210 14701 ),
|
||||
( 20379 2805, 40807 27770, 28147 14883, 26439 29383, 55663 5086 ),
|
||||
( 35944 64702, 14433 23728, 49317 26241, 790 16941 )
|
||||
)
|
||||
'),
|
||||
GEOMETRYFROMTEXT('POINT(46061 13545)')
|
||||
),
|
||||
GEOMETRYFROMTEXT('POINT(4599 60359)'),
|
||||
'F*FFFF**F'
|
||||
) as relate_res;
|
||||
relate_res
|
||||
0
|
||||
DROP TABLE IF EXISTS p1;
|
||||
CREATE PROCEDURE p1(dist DOUBLE, geom TEXT)
|
||||
BEGIN
|
||||
|
|
|
@ -12,3 +12,27 @@ WHERE ST_Contains(point_data, GeomFromText('Point(38.0248492 23.8512726)'));
|
|||
id
|
||||
2
|
||||
DROP TABLE t1;
|
||||
create table t1 (p point default "qwer");
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
|
||||
create table t1 (p point default 0);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
|
||||
create table t1 (p point not null default st_geometryfromtext('point 0)'));
|
||||
ERROR 42000: Invalid default value for 'p'
|
||||
create table t1 (p point not null default st_geometryfromtext('point(0 0)'));
|
||||
insert into t1 values(default);
|
||||
select st_astext(p) from t1;
|
||||
st_astext(p)
|
||||
POINT(0 0)
|
||||
drop table t1;
|
||||
create table t1 (p point not null default if(unix_timestamp()>10,POINT(1,1),LineString(Point(0,0),Point(1,1))));
|
||||
set timestamp=10;
|
||||
insert into t1 values(default);
|
||||
ERROR 22007: Incorrect POINT value: 'GEOMETRYCOLLECTION' for column 'p' at row 1
|
||||
drop table t1;
|
||||
SET timestamp=default;
|
||||
create table t1 (p point not null default if(unix_timestamp()>10,POINT(1,1),LineString(Point(0,0),Point(1,1))));
|
||||
set timestamp=10;
|
||||
alter table t1 add column i int;
|
||||
ERROR 22007: Incorrect POINT value: 'GEOMETRYCOLLECTION' for column 'p' at row 1
|
||||
drop table t1;
|
||||
SET timestamp=default;
|
||||
|
|
|
@ -659,7 +659,7 @@ proc body longblob
|
|||
proc definer char(141)
|
||||
proc created timestamp
|
||||
proc modified timestamp
|
||||
proc sql_mode set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH')
|
||||
proc sql_mode set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL')
|
||||
proc comment text
|
||||
proc character_set_client char(32)
|
||||
proc collation_connection char(32)
|
||||
|
@ -2140,3 +2140,35 @@ drop database db1;
|
|||
connection default;
|
||||
disconnect con1;
|
||||
set global sql_mode=default;
|
||||
USE test;
|
||||
#
|
||||
# End of 10.0 tests
|
||||
#
|
||||
#
|
||||
# Start of 10.1 tests
|
||||
#
|
||||
#
|
||||
# MDEV-13242 Wrong results for queries with row constructors and information_schema
|
||||
#
|
||||
CREATE TABLE tt1(c1 INT);
|
||||
CREATE TABLE tt2(c2 INT);
|
||||
SELECT count(*) FROM information_schema.columns WHERE table_schema='test' AND (table_name, column_name) IN (('tt1', 'c1'));
|
||||
count(*)
|
||||
1
|
||||
SELECT count(*) FROM information_schema.columns WHERE table_schema='test' AND (table_name, column_name) IN (('tt2', 'c2'));
|
||||
count(*)
|
||||
1
|
||||
SELECT count(*) FROM information_schema.columns WHERE table_schema='test' AND (table_name, column_name) IN (('tt1','c1'),('tt2', 'c2'));
|
||||
count(*)
|
||||
2
|
||||
SELECT count(*) FROM information_schema.columns WHERE table_schema='test' AND (table_name, column_name) IN (SELECT 'tt1','c1' FROM dual UNION SELECT 'tt2', 'c2' FROM dual);
|
||||
count(*)
|
||||
2
|
||||
SELECT count(*) FROM information_schema.columns WHERE table_schema='test' AND (table_name='tt1' AND column_name='c1') OR (table_name='tt2' AND column_name='c2');
|
||||
count(*)
|
||||
2
|
||||
SELECT column_name FROM information_schema.columns WHERE (table_name, column_name) IN (('tt1','c1'),('tt2', 'c2')) ORDER BY column_name;
|
||||
column_name
|
||||
c1
|
||||
c2
|
||||
DROP TABLE tt1, tt2;
|
||||
|
|
469
mysql-test/r/mdev13607.result
Normal file
469
mysql-test/r/mdev13607.result
Normal file
|
@ -0,0 +1,469 @@
|
|||
#
|
||||
# Bug mdev-13607: overflow of current_record_count
|
||||
#
|
||||
CREATE TABLE t1 (id INT) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES
|
||||
(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),
|
||||
(11),(12),(13),(14),(15),(16),(17),(18),(19),(20),
|
||||
(21),(22),(23),(24),(25),(26),(27),(28),(29),(30),
|
||||
(31),(32),(33),(34),(35),(36),(37),(38),(39),(40),
|
||||
(41),(42),(43),(44),(45),(46),(47),(48),(49),(50);
|
||||
CREATE TABLE t2 (id INT) ENGINE=InnoDB;
|
||||
INSERT INTO t2 VALUES (1),(2);
|
||||
CREATE TABLE t3 (id INT) ENGINE=InnoDB;
|
||||
INSERT INTO t3 VALUES (1),(2);
|
||||
ANALYZE TABLE t1, t2, t3;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
test.t2 analyze status OK
|
||||
test.t3 analyze status OK
|
||||
explain SELECT * FROM
|
||||
(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_1
|
||||
INNER JOIN
|
||||
(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_2
|
||||
INNER JOIN
|
||||
(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_3
|
||||
INNER JOIN
|
||||
(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_4
|
||||
INNER JOIN
|
||||
(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_5
|
||||
INNER JOIN
|
||||
(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_6
|
||||
INNER JOIN
|
||||
(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_7
|
||||
INNER JOIN
|
||||
(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_8
|
||||
INNER JOIN
|
||||
(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_9
|
||||
INNER JOIN
|
||||
(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_10
|
||||
INNER JOIN
|
||||
(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_11
|
||||
INNER JOIN
|
||||
(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_12
|
||||
INNER JOIN
|
||||
(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_13
|
||||
INNER JOIN
|
||||
(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_14
|
||||
INNER JOIN
|
||||
(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_15
|
||||
INNER JOIN
|
||||
(SELECT p1.* FROM t1 p1 NATURAL JOIN t2 r1 NATURAL JOIN t3 d1 NATURAL JOIN t1 p2 NATURAL JOIN t2 r2 NATURAL JOIN t3 d2 NATURAL JOIN t1 p3 NATURAL JOIN t2 r3 NATURAL JOIN t3 d3 NATURAL JOIN t1 p4 NATURAL JOIN t2 r4 NATURAL JOIN t3 d4 NATURAL JOIN t1 p5 NATURAL JOIN t2 r5 NATURAL JOIN t3 d5 NATURAL JOIN t1 p6 NATURAL JOIN t2 r6 NATURAL JOIN t3 d6 NATURAL JOIN t1 p7 NATURAL JOIN t2 r7 NATURAL JOIN t3 d7 NATURAL JOIN t1 p8 NATURAL JOIN t2 r8 NATURAL JOIN t3 d8 NATURAL JOIN t1 p9 ) gp_16
|
||||
;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY r1 ALL NULL NULL NULL NULL 2
|
||||
1 PRIMARY d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
1 PRIMARY r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY <derived3> ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY <derived4> ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY <derived5> ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY <derived6> ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY <derived7> ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY <derived8> ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY <derived9> ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY <derived10> ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY <derived11> ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY <derived12> ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY <derived13> ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY <derived14> ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY <derived15> ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY <derived16> ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY <derived17> ALL NULL NULL NULL NULL -1127208515966861312 Using join buffer (incremental, BNL join)
|
||||
17 DERIVED r1 ALL NULL NULL NULL NULL 2
|
||||
17 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
17 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
17 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
17 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
17 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
17 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
17 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
17 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
17 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
17 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
17 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
17 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
17 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
17 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
17 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
17 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
17 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
17 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
17 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
17 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
17 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
17 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
17 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
17 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED r1 ALL NULL NULL NULL NULL 2
|
||||
16 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
16 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
16 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED r1 ALL NULL NULL NULL NULL 2
|
||||
15 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
15 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
15 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED r1 ALL NULL NULL NULL NULL 2
|
||||
14 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
14 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
14 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED r1 ALL NULL NULL NULL NULL 2
|
||||
13 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
13 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
13 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED r1 ALL NULL NULL NULL NULL 2
|
||||
12 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
12 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
12 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED r1 ALL NULL NULL NULL NULL 2
|
||||
11 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
11 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
11 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED r1 ALL NULL NULL NULL NULL 2
|
||||
10 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
10 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
10 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED r1 ALL NULL NULL NULL NULL 2
|
||||
9 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
9 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
9 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED r1 ALL NULL NULL NULL NULL 2
|
||||
8 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
8 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
8 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED r1 ALL NULL NULL NULL NULL 2
|
||||
7 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
7 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
7 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED r1 ALL NULL NULL NULL NULL 2
|
||||
6 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
6 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
6 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED r1 ALL NULL NULL NULL NULL 2
|
||||
5 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
5 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
5 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED r1 ALL NULL NULL NULL NULL 2
|
||||
4 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
4 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
4 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED r1 ALL NULL NULL NULL NULL 2
|
||||
3 DERIVED d1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
3 DERIVED r2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED d2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED r3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED d3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED r4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED d4 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED r5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED d5 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED r6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED d6 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED r7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED d7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED r8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED d8 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED p1 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED p2 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED p3 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED p4 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED p5 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED p6 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED p7 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED p8 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
3 DERIVED p9 ALL NULL NULL NULL NULL 50 Using where; Using join buffer (incremental, BNL join)
|
||||
DROP TABLE t1,t2,t3;
|
|
@ -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;
|
||||
|
|
|
@ -1145,7 +1145,8 @@ The following options may be given as the first argument:
|
|||
NO_ZERO_DATE, ALLOW_INVALID_DATES,
|
||||
ERROR_FOR_DIVISION_BY_ZERO, TRADITIONAL,
|
||||
NO_AUTO_CREATE_USER, HIGH_NOT_PRECEDENCE,
|
||||
NO_ENGINE_SUBSTITUTION, PAD_CHAR_TO_FULL_LENGTH
|
||||
NO_ENGINE_SUBSTITUTION, PAD_CHAR_TO_FULL_LENGTH,
|
||||
EMPTY_STRING_IS_NULL
|
||||
--stack-trace Print a symbolic stack trace on failure
|
||||
(Defaults to on; use --skip-stack-trace to disable.)
|
||||
--standard-compliant-cte
|
||||
|
|
|
@ -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#1 */ 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
|
|
@ -1001,3 +1001,33 @@ t1 CREATE TABLE `t1` (
|
|||
`rec1.a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP PROCEDURE p1;
|
||||
#
|
||||
# MDEV-14139 Anchored data types for variables
|
||||
#
|
||||
BEGIN NOT ATOMIC
|
||||
DECLARE c1 CURSOR FOR SELECT 10 AS a, 'bbb' AS b, TIME'10:20:30' AS c;
|
||||
BEGIN
|
||||
DECLARE row1 ROW TYPE OF c1;
|
||||
DECLARE a_row1 TYPE OF row1;
|
||||
DECLARE aa_row1 TYPE OF a_row1;
|
||||
CREATE TABLE t2 AS SELECT a_row1.a AS a, a_row1.b AS b, a_row1.c AS c;
|
||||
SHOW CREATE TABLE t2;
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t2 AS SELECT aa_row1.a AS a, aa_row1.b AS b, aa_row1.c AS c;
|
||||
SHOW CREATE TABLE t2;
|
||||
DROP TABLE t2;
|
||||
END;
|
||||
END;
|
||||
$$
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` varchar(3) DEFAULT NULL,
|
||||
`c` time DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` varchar(3) DEFAULT NULL,
|
||||
`c` time DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
|
|
|
@ -781,3 +781,30 @@ DROP PROCEDURE p1;
|
|||
DROP FUNCTION f2;
|
||||
DROP FUNCTION f1;
|
||||
DROP DATABASE db1;
|
||||
#
|
||||
# MDEV-14139 Anchored data types for variables
|
||||
#
|
||||
CREATE TABLE t1 (int11 INT, text0 TEXT);
|
||||
BEGIN NOT ATOMIC
|
||||
DECLARE row1 ROW TYPE OF t1;
|
||||
DECLARE a_row1 TYPE OF row1;
|
||||
DECLARE aa_row1 TYPE OF a_row1;
|
||||
CREATE TABLE t2 AS SELECT a_row1.int11 AS int11, a_row1.text0 AS text0;
|
||||
SHOW CREATE TABLE t2;
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t2 AS SELECT aa_row1.int11 AS int11, aa_row1.text0 AS text0;
|
||||
SHOW CREATE TABLE t2;
|
||||
DROP TABLE t2;
|
||||
END;
|
||||
$$
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`int11` int(11) DEFAULT NULL,
|
||||
`text0` text DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`int11` int(11) DEFAULT NULL,
|
||||
`text0` text DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -965,3 +965,109 @@ DROP TABLE t1;
|
|||
#
|
||||
# End of MDEV-12461 TYPE OF and ROW TYPE OF anchored data types
|
||||
#
|
||||
#
|
||||
# MDEV-14139 Anchored data types for variables
|
||||
#
|
||||
BEGIN NOT ATOMIC
|
||||
DECLARE a TYPE OF a;
|
||||
END;
|
||||
$$
|
||||
ERROR 42000: Undeclared variable: a
|
||||
BEGIN NOT ATOMIC
|
||||
DECLARE int11 INT;
|
||||
DECLARE dec103 DECIMAL(10,3);
|
||||
DECLARE flt0 FLOAT;
|
||||
DECLARE dbl0 DOUBLE;
|
||||
DECLARE enum0 ENUM('a','b');
|
||||
DECLARE bit3 BIT(3);
|
||||
DECLARE varchar10 VARCHAR(10);
|
||||
DECLARE text1 TEXT;
|
||||
DECLARE tinytext1 TINYTEXT;
|
||||
DECLARE mediumtext1 MEDIUMTEXT;
|
||||
DECLARE longtext1 LONGTEXT;
|
||||
DECLARE time3 TIME(3);
|
||||
DECLARE datetime4 DATETIME(4);
|
||||
DECLARE timestamp5 TIMESTAMP(5);
|
||||
DECLARE date0 DATE;
|
||||
DECLARE a_int11 TYPE OF int11;
|
||||
DECLARE a_dec103 TYPE OF dec103;
|
||||
DECLARE a_flt0 TYPE OF flt0;
|
||||
DECLARE a_dbl0 TYPE OF dbl0;
|
||||
DECLARE a_bit3 TYPE OF bit3;
|
||||
DECLARE a_enum0 TYPE OF enum0;
|
||||
DECLARE a_varchar10 TYPE OF varchar10;
|
||||
DECLARE a_text1 TYPE OF text1;
|
||||
DECLARE a_tinytext1 TYPE OF tinytext1;
|
||||
DECLARE a_mediumtext1 TYPE OF mediumtext1;
|
||||
DECLARE a_longtext1 TYPE OF longtext1;
|
||||
DECLARE a_time3 TYPE OF time3;
|
||||
DECLARE a_datetime4 TYPE OF datetime4;
|
||||
DECLARE a_timestamp5 TYPE OF timestamp5;
|
||||
DECLARE a_date0 TYPE OF date0;
|
||||
DECLARE aa_int11 TYPE OF a_int11;
|
||||
DECLARE aa_dec103 TYPE OF a_dec103;
|
||||
DECLARE aa_flt0 TYPE OF a_flt0;
|
||||
DECLARE aa_dbl0 TYPE OF a_dbl0;
|
||||
DECLARE aa_bit3 TYPE OF a_bit3;
|
||||
DECLARE aa_enum0 TYPE OF a_enum0;
|
||||
DECLARE aa_varchar10 TYPE OF a_varchar10;
|
||||
DECLARE aa_text1 TYPE OF a_text1;
|
||||
DECLARE aa_tinytext1 TYPE OF a_tinytext1;
|
||||
DECLARE aa_mediumtext1 TYPE OF a_mediumtext1;
|
||||
DECLARE aa_longtext1 TYPE OF a_longtext1;
|
||||
DECLARE aa_time3 TYPE OF a_time3;
|
||||
DECLARE aa_datetime4 TYPE OF a_datetime4;
|
||||
DECLARE aa_timestamp5 TYPE OF a_timestamp5;
|
||||
DECLARE aa_date0 TYPE OF a_date0;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT a_int11,a_dec103,a_flt0,a_dbl0,a_bit3,
|
||||
a_enum0,a_varchar10,
|
||||
a_text1,a_tinytext1,a_mediumtext1,a_longtext1,
|
||||
a_time3,a_datetime4,a_timestamp5,a_date0;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT aa_int11,aa_dec103,aa_flt0,aa_dbl0,aa_bit3,
|
||||
aa_enum0,aa_varchar10,
|
||||
aa_text1,aa_tinytext1,aa_mediumtext1,aa_longtext1,
|
||||
aa_time3,aa_datetime4,aa_timestamp5,aa_date0;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
END;
|
||||
$$
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a_int11` int(11) DEFAULT NULL,
|
||||
`a_dec103` decimal(10,3) DEFAULT NULL,
|
||||
`a_flt0` float DEFAULT NULL,
|
||||
`a_dbl0` double DEFAULT NULL,
|
||||
`a_bit3` bit(3) DEFAULT NULL,
|
||||
`a_enum0` varchar(1) DEFAULT NULL,
|
||||
`a_varchar10` varchar(10) DEFAULT NULL,
|
||||
`a_text1` text DEFAULT NULL,
|
||||
`a_tinytext1` tinytext DEFAULT NULL,
|
||||
`a_mediumtext1` mediumtext DEFAULT NULL,
|
||||
`a_longtext1` longtext DEFAULT NULL,
|
||||
`a_time3` time(3) DEFAULT NULL,
|
||||
`a_datetime4` datetime(4) DEFAULT NULL,
|
||||
`a_timestamp5` timestamp(5) NULL DEFAULT NULL,
|
||||
`a_date0` date DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`aa_int11` int(11) DEFAULT NULL,
|
||||
`aa_dec103` decimal(10,3) DEFAULT NULL,
|
||||
`aa_flt0` float DEFAULT NULL,
|
||||
`aa_dbl0` double DEFAULT NULL,
|
||||
`aa_bit3` bit(3) DEFAULT NULL,
|
||||
`aa_enum0` varchar(1) DEFAULT NULL,
|
||||
`aa_varchar10` varchar(10) DEFAULT NULL,
|
||||
`aa_text1` text DEFAULT NULL,
|
||||
`aa_tinytext1` tinytext DEFAULT NULL,
|
||||
`aa_mediumtext1` mediumtext DEFAULT NULL,
|
||||
`aa_longtext1` longtext DEFAULT NULL,
|
||||
`aa_time3` time(3) DEFAULT NULL,
|
||||
`aa_datetime4` datetime(4) DEFAULT NULL,
|
||||
`aa_timestamp5` timestamp(5) NULL DEFAULT NULL,
|
||||
`aa_date0` date DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
|
|
|
@ -2256,3 +2256,28 @@ END;
|
|||
$$
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
#
|
||||
# MDEV-14139 Anchored data types for variables
|
||||
#
|
||||
BEGIN NOT ATOMIC
|
||||
DECLARE row1 ROW(int11 INT,text1 TEXT);
|
||||
DECLARE a_row1 TYPE OF row1;
|
||||
DECLARE aa_row1 TYPE OF a_row1;
|
||||
CREATE TABLE t1 AS SELECT a_row1.int11 AS int11, a_row1.text1 AS text1;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 AS SELECT aa_row1.int11 AS int11, aa_row1.text1 AS text1;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
END;
|
||||
$$
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`int11` int(11) DEFAULT NULL,
|
||||
`text1` text DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`int11` int(11) DEFAULT NULL,
|
||||
`text1` text DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
|
|
|
@ -475,8 +475,8 @@ set sql_mode=16384+(65536*4);
|
|||
select @@sql_mode;
|
||||
@@sql_mode
|
||||
REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,NO_TABLE_OPTIONS,ANSI
|
||||
set sql_mode=2147483648*2;
|
||||
ERROR 42000: Variable 'sql_mode' can't be set to the value of '4294967296'
|
||||
set sql_mode=2147483648*2*2;
|
||||
ERROR 42000: Variable 'sql_mode' can't be set to the value of '8589934592'
|
||||
select @@sql_mode;
|
||||
@@sql_mode
|
||||
REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,NO_TABLE_OPTIONS,ANSI
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -214,7 +214,7 @@ proc CREATE TABLE `proc` (
|
|||
`definer` char(141) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`created` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||
`modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NOT NULL DEFAULT '',
|
||||
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL') NOT NULL DEFAULT '',
|
||||
`comment` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
|
||||
`character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||
`collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||
|
@ -239,7 +239,7 @@ event CREATE TABLE `event` (
|
|||
`ends` datetime DEFAULT NULL,
|
||||
`status` enum('ENABLED','DISABLED','SLAVESIDE_DISABLED') NOT NULL DEFAULT 'ENABLED',
|
||||
`on_completion` enum('DROP','PRESERVE') NOT NULL DEFAULT 'DROP',
|
||||
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NOT NULL DEFAULT '',
|
||||
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL') NOT NULL DEFAULT '',
|
||||
`comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`originator` int(10) unsigned NOT NULL,
|
||||
`time_zone` char(64) CHARACTER SET latin1 NOT NULL DEFAULT 'SYSTEM',
|
||||
|
|
|
@ -214,7 +214,7 @@ proc CREATE TABLE `proc` (
|
|||
`definer` char(141) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`created` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||
`modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NOT NULL DEFAULT '',
|
||||
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL') NOT NULL DEFAULT '',
|
||||
`comment` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
|
||||
`character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||
`collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||
|
@ -239,7 +239,7 @@ event CREATE TABLE `event` (
|
|||
`ends` datetime DEFAULT NULL,
|
||||
`status` enum('ENABLED','DISABLED','SLAVESIDE_DISABLED') NOT NULL DEFAULT 'ENABLED',
|
||||
`on_completion` enum('DROP','PRESERVE') NOT NULL DEFAULT 'DROP',
|
||||
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NOT NULL DEFAULT '',
|
||||
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL') NOT NULL DEFAULT '',
|
||||
`comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`originator` int(10) unsigned NOT NULL,
|
||||
`time_zone` char(64) CHARACTER SET latin1 NOT NULL DEFAULT 'SYSTEM',
|
||||
|
|
|
@ -214,7 +214,7 @@ proc CREATE TABLE `proc` (
|
|||
`definer` char(141) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`created` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||
`modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NOT NULL DEFAULT '',
|
||||
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL') NOT NULL DEFAULT '',
|
||||
`comment` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
|
||||
`character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||
`collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||
|
@ -239,7 +239,7 @@ event CREATE TABLE `event` (
|
|||
`ends` datetime DEFAULT NULL,
|
||||
`status` enum('ENABLED','DISABLED','SLAVESIDE_DISABLED') NOT NULL DEFAULT 'ENABLED',
|
||||
`on_completion` enum('DROP','PRESERVE') NOT NULL DEFAULT 'DROP',
|
||||
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NOT NULL DEFAULT '',
|
||||
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL') NOT NULL DEFAULT '',
|
||||
`comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`originator` int(10) unsigned NOT NULL,
|
||||
`time_zone` char(64) CHARACTER SET latin1 NOT NULL DEFAULT 'SYSTEM',
|
||||
|
|
|
@ -214,7 +214,7 @@ proc CREATE TABLE `proc` (
|
|||
`definer` char(141) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`created` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||
`modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NOT NULL DEFAULT '',
|
||||
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL') NOT NULL DEFAULT '',
|
||||
`comment` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
|
||||
`character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||
`collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||
|
@ -239,7 +239,7 @@ event CREATE TABLE `event` (
|
|||
`ends` datetime DEFAULT NULL,
|
||||
`status` enum('ENABLED','DISABLED','SLAVESIDE_DISABLED') NOT NULL DEFAULT 'ENABLED',
|
||||
`on_completion` enum('DROP','PRESERVE') NOT NULL DEFAULT 'DROP',
|
||||
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NOT NULL DEFAULT '',
|
||||
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL') NOT NULL DEFAULT '',
|
||||
`comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`originator` int(10) unsigned NOT NULL,
|
||||
`time_zone` char(64) CHARACTER SET latin1 NOT NULL DEFAULT 'SYSTEM',
|
||||
|
|
|
@ -772,5 +772,31 @@ t1 CREATE TABLE `t1` (
|
|||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table if exists t1;
|
||||
#
|
||||
# MDEV-11586 UNION of FLOAT type results in erroneous precision
|
||||
#
|
||||
CREATE TABLE t1 (f FLOAT);
|
||||
INSERT INTO t1 VALUES (1.1);
|
||||
SELECT f FROM t1 UNION SELECT 1;
|
||||
f
|
||||
1.100000023841858
|
||||
1
|
||||
SELECT 1 UNION SELECT f FROM t1;
|
||||
1
|
||||
1
|
||||
1.100000023841858
|
||||
SELECT f FROM t1 UNION SELECT 2147483647;
|
||||
f
|
||||
1.100000023841858
|
||||
2147483647
|
||||
SELECT 2147483647 UNION SELECT f FROM t1;
|
||||
2147483647
|
||||
2147483647
|
||||
1.100000023841858
|
||||
SELECT CASE WHEN 0 THEN (SELECT f FROM t1) ELSE 2147483647 END AS c1,
|
||||
CASE WHEN 1 THEN 2147483647 ELSE (SELECT f FROM t1) END AS c2;
|
||||
c1 c2
|
||||
2147483647 2147483647
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 10.2 tests
|
||||
#
|
||||
|
|
|
@ -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
|
||||
|
|
181
mysql-test/suite/compat/oracle/r/empty_string_literal.result
Normal file
181
mysql-test/suite/compat/oracle/r/empty_string_literal.result
Normal file
|
@ -0,0 +1,181 @@
|
|||
USE test;
|
||||
#
|
||||
# MDEV-14013 : sql_mode=EMPTY_STRING_IS_NULL
|
||||
#
|
||||
set @mode='ORACLE,EMPTY_STRING_IS_NULL';
|
||||
SET SESSION character_set_connection=latin2;
|
||||
SET SESSION character_set_client=cp1250;
|
||||
#
|
||||
# Test litteral
|
||||
#
|
||||
SET sql_mode=@mode;
|
||||
select @@sql_mode;
|
||||
@@sql_mode
|
||||
PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER,EMPTY_STRING_IS_NULL
|
||||
SELECT '',CHARSET(''), null, CHARSET(null), CAST(null as char(10)), CHARSET(CAST(null as char(10))), 'x', CHARSET('x');
|
||||
NULL CHARSET('') NULL CHARSET(null) CAST(null as char(10)) CHARSET(CAST(null as char(10))) x CHARSET('x')
|
||||
NULL latin2 NULL binary NULL latin2 x latin2
|
||||
SELECT CHARSET(NULLIF('','')),NULLIF('','');
|
||||
CHARSET(NULLIF('','')) NULLIF('','')
|
||||
latin2 NULL
|
||||
SET sql_mode=default;
|
||||
SELECT '',CHARSET(''), null, CHARSET(null), CAST(null as char(10)), CHARSET(CAST(null as char(10))), 'x', CHARSET('x');
|
||||
CHARSET('') NULL CHARSET(null) CAST(null as char(10)) CHARSET(CAST(null as char(10))) x CHARSET('x')
|
||||
latin2 NULL binary NULL latin2 x latin2
|
||||
SELECT CHARSET(NULLIF('','')),NULLIF('','');
|
||||
CHARSET(NULLIF('','')) NULLIF('','')
|
||||
latin2 NULL
|
||||
#
|
||||
# Test NCHAR litteral
|
||||
#
|
||||
SET sql_mode=@mode;
|
||||
SELECT N'',CHARSET(N''), N'x', CHARSET(N'x');
|
||||
NULL CHARSET(N'') x CHARSET(N'x')
|
||||
NULL utf8 x utf8
|
||||
SELECT CHARSET(NULLIF(N'',N'')),NULLIF(N'',N'');
|
||||
CHARSET(NULLIF(N'',N'')) NULLIF(N'',N'')
|
||||
utf8 NULL
|
||||
SET sql_mode=default;
|
||||
SELECT N'',CHARSET(N''), N'x', CHARSET(N'x');
|
||||
CHARSET(N'') x CHARSET(N'x')
|
||||
utf8 x utf8
|
||||
SELECT CHARSET(NULLIF(N'',N'')),NULLIF(N'',N'');
|
||||
CHARSET(NULLIF(N'',N'')) NULLIF(N'',N'')
|
||||
utf8 NULL
|
||||
#
|
||||
# Test CHARSET prefix litteral
|
||||
#
|
||||
SET sql_mode=@mode;
|
||||
SELECT _cp1250 '',CHARSET(_cp1250 ''), _cp1250 'x', CHARSET(_cp1250 'x');
|
||||
NULL CHARSET(_cp1250 '') x CHARSET(_cp1250 'x')
|
||||
NULL cp1250 x cp1250
|
||||
SELECT CHARSET(NULLIF(_cp1250 '',_cp1250 '')),NULLIF(_cp1250 '',_cp1250 '');
|
||||
CHARSET(NULLIF(_cp1250 '',_cp1250 '')) NULLIF(_cp1250 '',_cp1250 '')
|
||||
cp1250 NULL
|
||||
SET sql_mode=default;
|
||||
SELECT _cp1250 '',CHARSET(_cp1250 ''), _cp1250 'x', CHARSET(_cp1250 'x');
|
||||
CHARSET(_cp1250 '') x CHARSET(_cp1250 'x')
|
||||
cp1250 x cp1250
|
||||
SELECT CHARSET(NULLIF(_cp1250 '',_cp1250 '')),NULLIF(_cp1250 '',_cp1250 '');
|
||||
CHARSET(NULLIF(_cp1250 '',_cp1250 '')) NULLIF(_cp1250 '',_cp1250 '')
|
||||
cp1250 NULL
|
||||
SET sql_mode=@mode;
|
||||
#
|
||||
# Test litteral concat
|
||||
#
|
||||
SELECT 'a' 'b';
|
||||
a
|
||||
ab
|
||||
SELECT 'a' '';
|
||||
a
|
||||
a
|
||||
SELECT '' 'b';
|
||||
b
|
||||
b
|
||||
SELECT '' '';
|
||||
NULL
|
||||
NULL
|
||||
SELECT '' 'b' 'c';
|
||||
b
|
||||
bc
|
||||
SELECT '' '' 'c';
|
||||
c
|
||||
c
|
||||
SELECT 'a' '' 'c';
|
||||
a
|
||||
ac
|
||||
SELECT 'a' '' '';
|
||||
a
|
||||
a
|
||||
SELECT '' '' '';
|
||||
NULL
|
||||
NULL
|
||||
SELECT '' '' '',CHARSET('' '' '');
|
||||
NULL CHARSET('' '' '')
|
||||
NULL latin2
|
||||
SELECT _latin1'' '' '',CHARSET(_latin1'' '' '');
|
||||
NULL CHARSET(_latin1'' '' '')
|
||||
NULL latin1
|
||||
SELECT N'' '' '',CHARSET(N'' '' '');
|
||||
NULL CHARSET(N'' '' '')
|
||||
NULL utf8
|
||||
#
|
||||
# UNION - implicit group by
|
||||
#
|
||||
SELECT 1, null
|
||||
UNION
|
||||
SELECT 1 , ''
|
||||
ORDER BY 1;
|
||||
1 NULL
|
||||
1 NULL
|
||||
SELECT 1, null
|
||||
UNION
|
||||
SELECT 1 , N''
|
||||
ORDER BY 1;
|
||||
1 NULL
|
||||
1 NULL
|
||||
SELECT 1, null
|
||||
UNION
|
||||
SELECT 1 , _cp1250 ''
|
||||
ORDER BY 1;
|
||||
1 NULL
|
||||
1 NULL
|
||||
SELECT NULLIF(_cp1250 '',_cp1250 '')
|
||||
UNION
|
||||
SELECT NULLIF(N'',N'');
|
||||
NULLIF(_cp1250 '',_cp1250 '')
|
||||
NULL
|
||||
SELECT 1 , _latin2 ''
|
||||
UNION
|
||||
SELECT 1 , _cp1250 '';
|
||||
ERROR HY000: Illegal mix of collations (latin2_general_ci,IGNORABLE) and (cp1250_general_ci,IGNORABLE) for operation 'UNION'
|
||||
SELECT 1, null
|
||||
UNION
|
||||
SELECT 1 , ''
|
||||
UNION
|
||||
SELECT 1 , N'';
|
||||
1 NULL
|
||||
1 NULL
|
||||
CREATE TABLE t1 (c1 INT,c2 VARCHAR(10));
|
||||
INSERT INTO t1 VALUES (1,'one');
|
||||
INSERT INTO t1 VALUES (1,'');
|
||||
INSERT INTO t1 VALUES (1,null);
|
||||
#
|
||||
# Test in a view
|
||||
#
|
||||
CREATE VIEW v1
|
||||
AS SELECT c1, c2
|
||||
FROM t1
|
||||
UNION
|
||||
SELECT c1 , ''
|
||||
FROM t1
|
||||
ORDER BY 1,2;
|
||||
SELECT * FROM v1;
|
||||
c1 c2
|
||||
1 NULL
|
||||
1 one
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View character_set_client collation_connection
|
||||
v1 CREATE VIEW "v1" AS select "t1"."c1" AS "c1","t1"."c2" AS "c2" from "t1" union select "t1"."c1" AS "c1",NULL AS "NULL" from "t1" order by 1,2 cp1250 latin2_general_ci
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
EXPLAIN EXTENDED SELECT '';
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select NULL AS "NULL"
|
||||
EXPLAIN EXTENDED SELECT _latin1'';
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select NULL AS "NULL"
|
||||
EXPLAIN EXTENDED SELECT N'';
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select NULL AS "NULL"
|
||||
EXPLAIN EXTENDED SELECT '' '';
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select NULL AS "NULL"
|
50
mysql-test/suite/compat/oracle/r/func_substr.result
Normal file
50
mysql-test/suite/compat/oracle/r/func_substr.result
Normal file
|
@ -0,0 +1,50 @@
|
|||
SET sql_mode=ORACLE;
|
||||
SELECT SUBSTR('abc',2,1),SUBSTR('abc',1,1), SUBSTR('abc',0,1) FROM dual;
|
||||
SUBSTR('abc',2,1) SUBSTR('abc',1,1) SUBSTR('abc',0,1)
|
||||
b a a
|
||||
SELECT SUBSTR('abc',2),SUBSTR('abc',1), SUBSTR('abc',0) FROM dual;
|
||||
SUBSTR('abc',2) SUBSTR('abc',1) SUBSTR('abc',0)
|
||||
bc abc abc
|
||||
SELECT SUBSTR(null,2,1),SUBSTR(null,1), SUBSTR(null,0) FROM dual;
|
||||
SUBSTR(null,2,1) SUBSTR(null,1) SUBSTR(null,0)
|
||||
NULL NULL NULL
|
||||
SELECT SUBSTR('abc',-2),SUBSTR('abc',-1), SUBSTR('abc',-0) FROM dual;
|
||||
SUBSTR('abc',-2) SUBSTR('abc',-1) SUBSTR('abc',-0)
|
||||
bc c abc
|
||||
SELECT SUBSTR('abc',-2,1),SUBSTR('abc',-1,1), SUBSTR('abc',-0,1) FROM dual;
|
||||
SUBSTR('abc',-2,1) SUBSTR('abc',-1,1) SUBSTR('abc',-0,1)
|
||||
b c a
|
||||
SELECT SUBSTR('abc',null) FROM dual;
|
||||
SUBSTR('abc',null)
|
||||
NULL
|
||||
SELECT SUBSTR('abc',2,null),SUBSTR('abc',1,null), SUBSTR('abc',0,null) FROM dual;
|
||||
SUBSTR('abc',2,null) SUBSTR('abc',1,null) SUBSTR('abc',0,null)
|
||||
NULL NULL NULL
|
||||
SELECT SUBSTR('abc',2,0),SUBSTR('abc',1,0), SUBSTR('abc',0,0) FROM dual;
|
||||
SUBSTR('abc',2,0) SUBSTR('abc',1,0) SUBSTR('abc',0,0)
|
||||
|
||||
create table t1 (c1 varchar(10),start integer, length integer);
|
||||
INSERT INTO t1 VALUES ('abc', 1, 1);
|
||||
INSERT INTO t1 VALUES ('abc', 0, 1);
|
||||
INSERT INTO t1 VALUES (null, 1, 1);
|
||||
INSERT INTO t1 VALUES (null, 0, 1);
|
||||
select substr(c1,start,length) from t1;
|
||||
substr(c1,start,length)
|
||||
a
|
||||
a
|
||||
NULL
|
||||
NULL
|
||||
drop table t1;
|
||||
EXPLAIN EXTENDED SELECT SUBSTR('abc',2,1) ;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select substr_oracle('abc',2,1) AS "SUBSTR('abc',2,1)"
|
||||
CREATE VIEW v1 AS SELECT SUBSTR('abc',2,1) ;
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View character_set_client collation_connection
|
||||
v1 CREATE VIEW "v1" AS select substr_oracle('abc',2,1) AS "SUBSTR('abc',2,1)" latin1 latin1_swedish_ci
|
||||
SELECT * FROM v1;
|
||||
SUBSTR('abc',2,1)
|
||||
b
|
||||
DROP VIEW v1;
|
|
@ -101,3 +101,31 @@ DROP PROCEDURE p1;
|
|||
DROP FUNCTION f2;
|
||||
DROP FUNCTION f1;
|
||||
DROP DATABASE db1;
|
||||
#
|
||||
# MDEV-14139 Anchored data types for variables
|
||||
#
|
||||
CREATE TABLE t1 (int11 INT, text0 TEXT);
|
||||
DECLARE
|
||||
row1 t1%ROWTYPE;
|
||||
a_row1 row1%TYPE;
|
||||
aa_row1 a_row1%TYPE;
|
||||
BEGIN
|
||||
CREATE TABLE t2 AS SELECT a_row1.int11 AS int11, a_row1.text0 AS text0;
|
||||
SHOW CREATE TABLE t2;
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t2 AS SELECT aa_row1.int11 AS int11, aa_row1.text0 AS text0;
|
||||
SHOW CREATE TABLE t2;
|
||||
DROP TABLE t2;
|
||||
END;
|
||||
$$
|
||||
Table Create Table
|
||||
t2 CREATE TABLE "t2" (
|
||||
"int11" int(11) DEFAULT NULL,
|
||||
"text0" text DEFAULT NULL
|
||||
)
|
||||
Table Create Table
|
||||
t2 CREATE TABLE "t2" (
|
||||
"int11" int(11) DEFAULT NULL,
|
||||
"text0" text DEFAULT NULL
|
||||
)
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -1030,8 +1030,8 @@ Pos Instruction
|
|||
0 cpush cur1@0
|
||||
1 cpush cur2@1
|
||||
2 cursor_copy_struct cur1 rec1@0
|
||||
3 set rec1@0 NULL
|
||||
4 cursor_copy_struct cur1 rec2@1
|
||||
3 cursor_copy_struct cur1 rec2@1
|
||||
4 set rec1@0 NULL
|
||||
5 set rec2@1 NULL
|
||||
6 cursor_copy_struct cur2 rec3@2
|
||||
7 set rec3@2 NULL
|
||||
|
|
|
@ -1330,3 +1330,32 @@ rec2.a rec2.b
|
|||
2012 bbbb3
|
||||
DROP PROCEDURE p1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-14139 Anchored data types for variables
|
||||
#
|
||||
DECLARE
|
||||
CURSOR c1 IS SELECT 10 AS a, 'bbb' AS b, TIME'10:20:30' AS c;
|
||||
row1 c1%ROWTYPE;
|
||||
a_row1 row1%TYPE;
|
||||
aa_row1 a_row1%TYPE;
|
||||
BEGIN
|
||||
CREATE TABLE t2 AS SELECT a_row1.a AS a, a_row1.b AS b, a_row1.c AS c;
|
||||
SHOW CREATE TABLE t2;
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t2 AS SELECT aa_row1.a AS a, aa_row1.b AS b, aa_row1.c AS c;
|
||||
SHOW CREATE TABLE t2;
|
||||
DROP TABLE t2;
|
||||
END;
|
||||
$$
|
||||
Table Create Table
|
||||
t2 CREATE TABLE "t2" (
|
||||
"a" int(11) DEFAULT NULL,
|
||||
"b" varchar(3) DEFAULT NULL,
|
||||
"c" time DEFAULT NULL
|
||||
)
|
||||
Table Create Table
|
||||
t2 CREATE TABLE "t2" (
|
||||
"a" int(11) DEFAULT NULL,
|
||||
"b" varchar(3) DEFAULT NULL,
|
||||
"c" time DEFAULT NULL
|
||||
)
|
||||
|
|
|
@ -259,10 +259,12 @@ END;
|
|||
/
|
||||
CALL p2(65535);
|
||||
LENGTH(f1(str,padlen))
|
||||
65535
|
||||
65532
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'pin' at row 1
|
||||
CALL p2(65536);
|
||||
LENGTH(f1(str,padlen))
|
||||
65535
|
||||
65532
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'pin' at row 1
|
||||
DROP PROCEDURE p2;
|
||||
|
@ -288,8 +290,7 @@ CALL p2(21844);
|
|||
length(pout)
|
||||
21844
|
||||
CALL p2(21845);
|
||||
length(pout)
|
||||
21845
|
||||
ERROR 22001: Data too long for column 'pin' at row 1
|
||||
CALL p2(21846);
|
||||
ERROR 22001: Data too long for column 'pin' at row 1
|
||||
DROP PROCEDURE p2;
|
||||
|
@ -311,9 +312,11 @@ p1(pout,str);
|
|||
SELECT length(pout);
|
||||
END;
|
||||
/
|
||||
CALL p2(21845);
|
||||
CALL p2(21844);
|
||||
length(pout)
|
||||
21845
|
||||
21844
|
||||
CALL p2(21845);
|
||||
ERROR 22001: Data too long for column 'pin' at row 1
|
||||
CALL p2(21846);
|
||||
ERROR 22001: Data too long for column 'pin' at row 1
|
||||
DROP PROCEDURE p2;
|
||||
|
@ -332,9 +335,15 @@ BEGIN
|
|||
SELECT LENGTH(f1(str,padlen));
|
||||
END;
|
||||
/
|
||||
CALL p2(65535);
|
||||
CALL p2(65532);
|
||||
LENGTH(f1(str,padlen))
|
||||
65535
|
||||
65532
|
||||
CALL p2(65533);
|
||||
ERROR 22001: Data too long for column 'pin' at row 1
|
||||
CALL p2(65534);
|
||||
ERROR 22001: Data too long for column 'pin' at row 1
|
||||
CALL p2(65535);
|
||||
ERROR 22001: Data too long for column 'pin' at row 1
|
||||
CALL p2(65536);
|
||||
ERROR 22001: Data too long for column 'pin' at row 1
|
||||
DROP PROCEDURE p2;
|
||||
|
@ -353,9 +362,11 @@ BEGIN
|
|||
SELECT LENGTH(f1(str,padlen));
|
||||
END;
|
||||
/
|
||||
CALL p2(21845);
|
||||
CALL p2(21844);
|
||||
LENGTH(f1(str,padlen))
|
||||
21845
|
||||
21844
|
||||
CALL p2(21845);
|
||||
ERROR 22001: Data too long for column 'pin' at row 1
|
||||
CALL p2(21846);
|
||||
ERROR 22001: Data too long for column 'pin' at row 1
|
||||
DROP PROCEDURE p2;
|
||||
|
@ -374,9 +385,11 @@ BEGIN
|
|||
SELECT LENGTH(f1(str,padlen));
|
||||
END;
|
||||
/
|
||||
CALL p2(21845);
|
||||
CALL p2(21844);
|
||||
LENGTH(f1(str,padlen))
|
||||
21845
|
||||
21844
|
||||
CALL p2(21845);
|
||||
ERROR 22001: Data too long for column 'pin' at row 1
|
||||
CALL p2(21846);
|
||||
ERROR 22001: Data too long for column 'pin' at row 1
|
||||
DROP PROCEDURE p2;
|
||||
|
@ -395,9 +408,15 @@ BEGIN
|
|||
SELECT LENGTH(f1(str,padlen));
|
||||
END;
|
||||
/
|
||||
CALL p2(65535);
|
||||
CALL p2(65532);
|
||||
LENGTH(f1(str,padlen))
|
||||
65535
|
||||
65532
|
||||
CALL p2(65533);
|
||||
ERROR 22001: Data too long for column 'pin' at row 1
|
||||
CALL p2(65534);
|
||||
ERROR 22001: Data too long for column 'pin' at row 1
|
||||
CALL p2(65535);
|
||||
ERROR 22001: Data too long for column 'pin' at row 1
|
||||
CALL p2(65536);
|
||||
ERROR 22001: Data too long for column 'pin' at row 1
|
||||
DROP PROCEDURE p2;
|
||||
|
|
|
@ -3081,3 +3081,29 @@ END;
|
|||
$$
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
#
|
||||
# MDEV-14139 Anchored data types for variables
|
||||
#
|
||||
DECLARE
|
||||
row1 ROW(int11 INT,text1 TEXT);
|
||||
a_row1 row1%TYPE;
|
||||
aa_row1 a_row1%TYPE;
|
||||
BEGIN
|
||||
CREATE TABLE t1 AS SELECT a_row1.int11 AS int11, a_row1.text1 AS text1;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 AS SELECT aa_row1.int11 AS int11, aa_row1.text1 AS text1;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
END;
|
||||
$$
|
||||
Table Create Table
|
||||
t1 CREATE TABLE "t1" (
|
||||
"int11" int(11) DEFAULT NULL,
|
||||
"text1" text DEFAULT NULL
|
||||
)
|
||||
Table Create Table
|
||||
t1 CREATE TABLE "t1" (
|
||||
"int11" int(11) DEFAULT NULL,
|
||||
"text1" text DEFAULT NULL
|
||||
)
|
||||
|
|
|
@ -2297,3 +2297,110 @@ SELECT exception FROM v1;
|
|||
exception
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-14139 Anchored data types for variables
|
||||
#
|
||||
BEGIN NOT ATOMIC
|
||||
DECLARE a a%TYPE;
|
||||
END;
|
||||
$$
|
||||
ERROR 42000: Undeclared variable: a
|
||||
DECLARE
|
||||
int11 INT;
|
||||
dec103 DECIMAL(10,3);
|
||||
flt0 FLOAT;
|
||||
dbl0 DOUBLE;
|
||||
enum0 ENUM('a','b');
|
||||
bit3 BIT(3);
|
||||
varchar10 VARCHAR(10);
|
||||
text1 TEXT;
|
||||
tinytext1 TINYTEXT;
|
||||
mediumtext1 MEDIUMTEXT;
|
||||
longtext1 LONGTEXT;
|
||||
time3 TIME(3);
|
||||
datetime4 DATETIME(4);
|
||||
timestamp5 TIMESTAMP(5);
|
||||
date0 DATE;
|
||||
a_int11 int11%TYPE;
|
||||
a_dec103 dec103%TYPE;
|
||||
a_flt0 flt0%TYPE;
|
||||
a_dbl0 dbl0%TYPE;
|
||||
a_bit3 bit3%TYPE;
|
||||
a_enum0 enum0%TYPE;
|
||||
a_varchar10 varchar10%TYPE;
|
||||
a_text1 text1%TYPE;
|
||||
a_tinytext1 tinytext1%TYPE;
|
||||
a_mediumtext1 mediumtext1%TYPE;
|
||||
a_longtext1 longtext1%TYPE;
|
||||
a_time3 time3%TYPE;
|
||||
a_datetime4 datetime4%TYPE;
|
||||
a_timestamp5 timestamp5%TYPE;
|
||||
a_date0 date0%TYPE;
|
||||
aa_int11 a_int11%TYPE;
|
||||
aa_dec103 a_dec103%TYPE;
|
||||
aa_flt0 a_flt0%TYPE;
|
||||
aa_dbl0 a_dbl0%TYPE;
|
||||
aa_bit3 a_bit3%TYPE;
|
||||
aa_enum0 a_enum0%TYPE;
|
||||
aa_varchar10 a_varchar10%TYPE;
|
||||
aa_text1 a_text1%TYPE;
|
||||
aa_tinytext1 a_tinytext1%TYPE;
|
||||
aa_mediumtext1 a_mediumtext1%TYPE;
|
||||
aa_longtext1 a_longtext1%TYPE;
|
||||
aa_time3 a_time3%TYPE;
|
||||
aa_datetime4 a_datetime4%TYPE;
|
||||
aa_timestamp5 a_timestamp5%TYPE;
|
||||
aa_date0 a_date0%TYPE;
|
||||
BEGIN
|
||||
CREATE TABLE t1 AS
|
||||
SELECT a_int11,a_dec103,a_flt0,a_dbl0,a_bit3,
|
||||
a_enum0,a_varchar10,
|
||||
a_text1,a_tinytext1,a_mediumtext1,a_longtext1,
|
||||
a_time3,a_datetime4,a_timestamp5,a_date0;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT aa_int11,aa_dec103,aa_flt0,aa_dbl0,aa_bit3,
|
||||
aa_enum0,aa_varchar10,
|
||||
aa_text1,aa_tinytext1,aa_mediumtext1,aa_longtext1,
|
||||
aa_time3,aa_datetime4,aa_timestamp5,aa_date0;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
END;
|
||||
$$
|
||||
Table Create Table
|
||||
t1 CREATE TABLE "t1" (
|
||||
"a_int11" int(11) DEFAULT NULL,
|
||||
"a_dec103" decimal(10,3) DEFAULT NULL,
|
||||
"a_flt0" float DEFAULT NULL,
|
||||
"a_dbl0" double DEFAULT NULL,
|
||||
"a_bit3" bit(3) DEFAULT NULL,
|
||||
"a_enum0" varchar(1) DEFAULT NULL,
|
||||
"a_varchar10" varchar(10) DEFAULT NULL,
|
||||
"a_text1" text DEFAULT NULL,
|
||||
"a_tinytext1" tinytext DEFAULT NULL,
|
||||
"a_mediumtext1" mediumtext DEFAULT NULL,
|
||||
"a_longtext1" longtext DEFAULT NULL,
|
||||
"a_time3" time(3) DEFAULT NULL,
|
||||
"a_datetime4" datetime(4) DEFAULT NULL,
|
||||
"a_timestamp5" timestamp(5) NULL DEFAULT NULL,
|
||||
"a_date0" datetime DEFAULT NULL
|
||||
)
|
||||
Table Create Table
|
||||
t1 CREATE TABLE "t1" (
|
||||
"aa_int11" int(11) DEFAULT NULL,
|
||||
"aa_dec103" decimal(10,3) DEFAULT NULL,
|
||||
"aa_flt0" float DEFAULT NULL,
|
||||
"aa_dbl0" double DEFAULT NULL,
|
||||
"aa_bit3" bit(3) DEFAULT NULL,
|
||||
"aa_enum0" varchar(1) DEFAULT NULL,
|
||||
"aa_varchar10" varchar(10) DEFAULT NULL,
|
||||
"aa_text1" text DEFAULT NULL,
|
||||
"aa_tinytext1" tinytext DEFAULT NULL,
|
||||
"aa_mediumtext1" mediumtext DEFAULT NULL,
|
||||
"aa_longtext1" longtext DEFAULT NULL,
|
||||
"aa_time3" time(3) DEFAULT NULL,
|
||||
"aa_datetime4" datetime(4) DEFAULT NULL,
|
||||
"aa_timestamp5" timestamp(5) NULL DEFAULT NULL,
|
||||
"aa_date0" datetime DEFAULT NULL
|
||||
)
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
USE test;
|
||||
--echo #
|
||||
--echo # MDEV-14013 : sql_mode=EMPTY_STRING_IS_NULL
|
||||
--echo #
|
||||
|
||||
set @mode='ORACLE,EMPTY_STRING_IS_NULL';
|
||||
|
||||
--source include/empty_string_literal.inc
|
28
mysql-test/suite/compat/oracle/t/func_substr.test
Normal file
28
mysql-test/suite/compat/oracle/t/func_substr.test
Normal file
|
@ -0,0 +1,28 @@
|
|||
#
|
||||
# MDEV-14012 - sql_mode=Oracle: substr(): treat position 0 as position 1
|
||||
#
|
||||
|
||||
SET sql_mode=ORACLE;
|
||||
SELECT SUBSTR('abc',2,1),SUBSTR('abc',1,1), SUBSTR('abc',0,1) FROM dual;
|
||||
SELECT SUBSTR('abc',2),SUBSTR('abc',1), SUBSTR('abc',0) FROM dual;
|
||||
SELECT SUBSTR(null,2,1),SUBSTR(null,1), SUBSTR(null,0) FROM dual;
|
||||
SELECT SUBSTR('abc',-2),SUBSTR('abc',-1), SUBSTR('abc',-0) FROM dual;
|
||||
SELECT SUBSTR('abc',-2,1),SUBSTR('abc',-1,1), SUBSTR('abc',-0,1) FROM dual;
|
||||
SELECT SUBSTR('abc',null) FROM dual;
|
||||
SELECT SUBSTR('abc',2,null),SUBSTR('abc',1,null), SUBSTR('abc',0,null) FROM dual;
|
||||
SELECT SUBSTR('abc',2,0),SUBSTR('abc',1,0), SUBSTR('abc',0,0) FROM dual;
|
||||
|
||||
create table t1 (c1 varchar(10),start integer, length integer);
|
||||
INSERT INTO t1 VALUES ('abc', 1, 1);
|
||||
INSERT INTO t1 VALUES ('abc', 0, 1);
|
||||
INSERT INTO t1 VALUES (null, 1, 1);
|
||||
INSERT INTO t1 VALUES (null, 0, 1);
|
||||
select substr(c1,start,length) from t1;
|
||||
drop table t1;
|
||||
|
||||
EXPLAIN EXTENDED SELECT SUBSTR('abc',2,1) ;
|
||||
|
||||
CREATE VIEW v1 AS SELECT SUBSTR('abc',2,1) ;
|
||||
SHOW CREATE VIEW v1;
|
||||
SELECT * FROM v1;
|
||||
DROP VIEW v1;
|
|
@ -99,3 +99,26 @@ DROP PROCEDURE p1;
|
|||
DROP FUNCTION f2;
|
||||
DROP FUNCTION f1;
|
||||
DROP DATABASE db1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-14139 Anchored data types for variables
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (int11 INT, text0 TEXT);
|
||||
DELIMITER $$;
|
||||
DECLARE
|
||||
row1 t1%ROWTYPE;
|
||||
a_row1 row1%TYPE;
|
||||
aa_row1 a_row1%TYPE;
|
||||
BEGIN
|
||||
CREATE TABLE t2 AS SELECT a_row1.int11 AS int11, a_row1.text0 AS text0;
|
||||
SHOW CREATE TABLE t2;
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t2 AS SELECT aa_row1.int11 AS int11, aa_row1.text0 AS text0;
|
||||
SHOW CREATE TABLE t2;
|
||||
DROP TABLE t2;
|
||||
END;
|
||||
$$
|
||||
DELIMITER ;$$
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -1422,3 +1422,25 @@ DELIMITER ;$$
|
|||
CALL p1();
|
||||
DROP PROCEDURE p1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-14139 Anchored data types for variables
|
||||
--echo #
|
||||
|
||||
DELIMITER $$;
|
||||
DECLARE
|
||||
CURSOR c1 IS SELECT 10 AS a, 'bbb' AS b, TIME'10:20:30' AS c;
|
||||
row1 c1%ROWTYPE;
|
||||
a_row1 row1%TYPE;
|
||||
aa_row1 a_row1%TYPE;
|
||||
BEGIN
|
||||
CREATE TABLE t2 AS SELECT a_row1.a AS a, a_row1.b AS b, a_row1.c AS c;
|
||||
SHOW CREATE TABLE t2;
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t2 AS SELECT aa_row1.a AS a, aa_row1.b AS b, aa_row1.c AS c;
|
||||
SHOW CREATE TABLE t2;
|
||||
DROP TABLE t2;
|
||||
END;
|
||||
$$
|
||||
DELIMITER ;$$
|
||||
|
|
|
@ -199,6 +199,7 @@ END;
|
|||
/
|
||||
DELIMITER ;/
|
||||
CALL p2(21844);
|
||||
--error ER_DATA_TOO_LONG
|
||||
CALL p2(21845);
|
||||
--error ER_DATA_TOO_LONG
|
||||
CALL p2(21846);
|
||||
|
@ -229,6 +230,8 @@ BEGIN
|
|||
END;
|
||||
/
|
||||
DELIMITER ;/
|
||||
CALL p2(21844);
|
||||
--error ER_DATA_TOO_LONG
|
||||
CALL p2(21845);
|
||||
--error ER_DATA_TOO_LONG
|
||||
CALL p2(21846);
|
||||
|
@ -256,6 +259,12 @@ BEGIN
|
|||
END;
|
||||
/
|
||||
DELIMITER ;/
|
||||
CALL p2(65532);
|
||||
--error ER_DATA_TOO_LONG
|
||||
CALL p2(65533);
|
||||
--error ER_DATA_TOO_LONG
|
||||
CALL p2(65534);
|
||||
--error ER_DATA_TOO_LONG
|
||||
CALL p2(65535);
|
||||
--error ER_DATA_TOO_LONG
|
||||
CALL p2(65536);
|
||||
|
@ -283,6 +292,8 @@ BEGIN
|
|||
END;
|
||||
/
|
||||
DELIMITER ;/
|
||||
CALL p2(21844);
|
||||
--error ER_DATA_TOO_LONG
|
||||
CALL p2(21845);
|
||||
--error ER_DATA_TOO_LONG
|
||||
CALL p2(21846);
|
||||
|
@ -310,6 +321,8 @@ BEGIN
|
|||
END;
|
||||
/
|
||||
DELIMITER ;/
|
||||
CALL p2(21844);
|
||||
--error ER_DATA_TOO_LONG
|
||||
CALL p2(21845);
|
||||
--error ER_DATA_TOO_LONG
|
||||
CALL p2(21846);
|
||||
|
@ -337,6 +350,12 @@ BEGIN
|
|||
END;
|
||||
/
|
||||
DELIMITER ;/
|
||||
CALL p2(65532);
|
||||
--error ER_DATA_TOO_LONG
|
||||
CALL p2(65533);
|
||||
--error ER_DATA_TOO_LONG
|
||||
CALL p2(65534);
|
||||
--error ER_DATA_TOO_LONG
|
||||
CALL p2(65535);
|
||||
--error ER_DATA_TOO_LONG
|
||||
CALL p2(65536);
|
||||
|
|
|
@ -2388,3 +2388,24 @@ BEGIN
|
|||
END;
|
||||
$$
|
||||
DELIMITER ;$$
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-14139 Anchored data types for variables
|
||||
--echo #
|
||||
|
||||
DELIMITER $$;
|
||||
DECLARE
|
||||
row1 ROW(int11 INT,text1 TEXT);
|
||||
a_row1 row1%TYPE;
|
||||
aa_row1 a_row1%TYPE;
|
||||
BEGIN
|
||||
CREATE TABLE t1 AS SELECT a_row1.int11 AS int11, a_row1.text1 AS text1;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 AS SELECT aa_row1.int11 AS int11, aa_row1.text1 AS text1;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
END;
|
||||
$$
|
||||
DELIMITER ;$$
|
||||
|
|
|
@ -2146,3 +2146,90 @@ CREATE VIEW v1 AS SELECT c1 exception FROM t1;
|
|||
SELECT exception FROM v1;
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-14139 Anchored data types for variables
|
||||
--echo #
|
||||
|
||||
DELIMITER $$;
|
||||
--error ER_SP_UNDECLARED_VAR
|
||||
BEGIN NOT ATOMIC
|
||||
DECLARE a a%TYPE;
|
||||
END;
|
||||
$$
|
||||
DELIMITER ;$$
|
||||
|
||||
|
||||
DELIMITER $$;
|
||||
DECLARE
|
||||
int11 INT;
|
||||
dec103 DECIMAL(10,3);
|
||||
flt0 FLOAT;
|
||||
dbl0 DOUBLE;
|
||||
enum0 ENUM('a','b');
|
||||
bit3 BIT(3);
|
||||
|
||||
varchar10 VARCHAR(10);
|
||||
text1 TEXT;
|
||||
tinytext1 TINYTEXT;
|
||||
mediumtext1 MEDIUMTEXT;
|
||||
longtext1 LONGTEXT;
|
||||
|
||||
time3 TIME(3);
|
||||
datetime4 DATETIME(4);
|
||||
timestamp5 TIMESTAMP(5);
|
||||
date0 DATE;
|
||||
|
||||
a_int11 int11%TYPE;
|
||||
a_dec103 dec103%TYPE;
|
||||
a_flt0 flt0%TYPE;
|
||||
a_dbl0 dbl0%TYPE;
|
||||
a_bit3 bit3%TYPE;
|
||||
a_enum0 enum0%TYPE;
|
||||
a_varchar10 varchar10%TYPE;
|
||||
a_text1 text1%TYPE;
|
||||
a_tinytext1 tinytext1%TYPE;
|
||||
a_mediumtext1 mediumtext1%TYPE;
|
||||
a_longtext1 longtext1%TYPE;
|
||||
a_time3 time3%TYPE;
|
||||
a_datetime4 datetime4%TYPE;
|
||||
a_timestamp5 timestamp5%TYPE;
|
||||
a_date0 date0%TYPE;
|
||||
|
||||
aa_int11 a_int11%TYPE;
|
||||
aa_dec103 a_dec103%TYPE;
|
||||
aa_flt0 a_flt0%TYPE;
|
||||
aa_dbl0 a_dbl0%TYPE;
|
||||
aa_bit3 a_bit3%TYPE;
|
||||
aa_enum0 a_enum0%TYPE;
|
||||
aa_varchar10 a_varchar10%TYPE;
|
||||
aa_text1 a_text1%TYPE;
|
||||
aa_tinytext1 a_tinytext1%TYPE;
|
||||
aa_mediumtext1 a_mediumtext1%TYPE;
|
||||
aa_longtext1 a_longtext1%TYPE;
|
||||
aa_time3 a_time3%TYPE;
|
||||
aa_datetime4 a_datetime4%TYPE;
|
||||
aa_timestamp5 a_timestamp5%TYPE;
|
||||
aa_date0 a_date0%TYPE;
|
||||
BEGIN
|
||||
CREATE TABLE t1 AS
|
||||
SELECT a_int11,a_dec103,a_flt0,a_dbl0,a_bit3,
|
||||
a_enum0,a_varchar10,
|
||||
a_text1,a_tinytext1,a_mediumtext1,a_longtext1,
|
||||
a_time3,a_datetime4,a_timestamp5,a_date0;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 AS
|
||||
SELECT aa_int11,aa_dec103,aa_flt0,aa_dbl0,aa_bit3,
|
||||
aa_enum0,aa_varchar10,
|
||||
aa_text1,aa_tinytext1,aa_mediumtext1,aa_longtext1,
|
||||
aa_time3,aa_datetime4,aa_timestamp5,aa_date0;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
END;
|
||||
$$
|
||||
DELIMITER ;$$
|
||||
|
|
|
@ -60,7 +60,7 @@ def mysql event modified 9 '0000-00-00 00:00:00' NO timestamp NULL NULL NULL NUL
|
|||
def mysql event name 2 '' NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references NEVER NULL
|
||||
def mysql event on_completion 14 'DROP' NO enum 8 24 NULL NULL NULL utf8 utf8_general_ci enum('DROP','PRESERVE') select,insert,update,references NEVER NULL
|
||||
def mysql event originator 17 NULL NO int NULL NULL 10 0 NULL NULL NULL int(10) unsigned select,insert,update,references NEVER NULL
|
||||
def mysql event sql_mode 15 '' NO set 494 1482 NULL NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') select,insert,update,references NEVER NULL
|
||||
def mysql event sql_mode 15 '' NO set 515 1545 NULL NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL') select,insert,update,references NEVER NULL
|
||||
def mysql event starts 11 NULL YES datetime NULL NULL NULL NULL 0 NULL NULL datetime select,insert,update,references NEVER NULL
|
||||
def mysql event status 13 'ENABLED' NO enum 18 54 NULL NULL NULL utf8 utf8_general_ci enum('ENABLED','DISABLED','SLAVESIDE_DISABLED') select,insert,update,references NEVER NULL
|
||||
def mysql event time_zone 18 'SYSTEM' NO char 64 64 NULL NULL NULL latin1 latin1_swedish_ci char(64) select,insert,update,references NEVER NULL
|
||||
|
@ -151,7 +151,7 @@ def mysql proc returns 10 NULL NO longblob 4294967295 4294967295 NULL NULL NULL
|
|||
def mysql proc security_type 8 'DEFINER' NO enum 7 21 NULL NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER') select,insert,update,references NEVER NULL
|
||||
def mysql proc specific_name 4 '' NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NEVER NULL
|
||||
def mysql proc sql_data_access 6 'CONTAINS_SQL' NO enum 17 51 NULL NULL NULL utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') select,insert,update,references NEVER NULL
|
||||
def mysql proc sql_mode 15 '' NO set 494 1482 NULL NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') select,insert,update,references NEVER NULL
|
||||
def mysql proc sql_mode 15 '' NO set 515 1545 NULL NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL') select,insert,update,references NEVER NULL
|
||||
def mysql proc type 3 NULL NO enum 9 27 NULL NULL NULL utf8 utf8_general_ci enum('FUNCTION','PROCEDURE') PRI select,insert,update,references NEVER NULL
|
||||
def mysql procs_priv Db 2 '' NO char 64 192 NULL NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references NEVER NULL
|
||||
def mysql procs_priv Grantor 6 '' NO char 141 423 NULL NULL NULL utf8 utf8_bin char(141) MUL select,insert,update,references NEVER NULL
|
||||
|
@ -391,7 +391,7 @@ NULL mysql event starts datetime NULL NULL NULL NULL datetime
|
|||
NULL mysql event ends datetime NULL NULL NULL NULL datetime
|
||||
3.0000 mysql event status enum 18 54 utf8 utf8_general_ci enum('ENABLED','DISABLED','SLAVESIDE_DISABLED')
|
||||
3.0000 mysql event on_completion enum 8 24 utf8 utf8_general_ci enum('DROP','PRESERVE')
|
||||
3.0000 mysql event sql_mode set 494 1482 utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH')
|
||||
3.0000 mysql event sql_mode set 515 1545 utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL')
|
||||
3.0000 mysql event comment char 64 192 utf8 utf8_bin char(64)
|
||||
NULL mysql event originator int NULL NULL NULL NULL int(10) unsigned
|
||||
1.0000 mysql event time_zone char 64 64 latin1 latin1_swedish_ci char(64)
|
||||
|
@ -482,7 +482,7 @@ NULL mysql innodb_table_stats sum_of_other_index_sizes bigint NULL NULL NULL NUL
|
|||
3.0000 mysql proc definer char 141 423 utf8 utf8_bin char(141)
|
||||
NULL mysql proc created timestamp NULL NULL NULL NULL timestamp
|
||||
NULL mysql proc modified timestamp NULL NULL NULL NULL timestamp
|
||||
3.0000 mysql proc sql_mode set 494 1482 utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH')
|
||||
3.0000 mysql proc sql_mode set 515 1545 utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL')
|
||||
1.0000 mysql proc comment text 65535 65535 utf8 utf8_bin text
|
||||
3.0000 mysql proc character_set_client char 32 96 utf8 utf8_bin char(32)
|
||||
3.0000 mysql proc collation_connection char 32 96 utf8 utf8_bin char(32)
|
||||
|
|
|
@ -60,7 +60,7 @@ def mysql event modified 9 '0000-00-00 00:00:00' NO timestamp NULL NULL NULL NUL
|
|||
def mysql event name 2 '' NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) PRI NEVER NULL
|
||||
def mysql event on_completion 14 'DROP' NO enum 8 24 NULL NULL NULL utf8 utf8_general_ci enum('DROP','PRESERVE') NEVER NULL
|
||||
def mysql event originator 17 NULL NO int NULL NULL 10 0 NULL NULL NULL int(10) unsigned NEVER NULL
|
||||
def mysql event sql_mode 15 '' NO set 494 1482 NULL NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NEVER NULL
|
||||
def mysql event sql_mode 15 '' NO set 515 1545 NULL NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL') NEVER NULL
|
||||
def mysql event starts 11 NULL YES datetime NULL NULL NULL NULL 0 NULL NULL datetime NEVER NULL
|
||||
def mysql event status 13 'ENABLED' NO enum 18 54 NULL NULL NULL utf8 utf8_general_ci enum('ENABLED','DISABLED','SLAVESIDE_DISABLED') NEVER NULL
|
||||
def mysql event time_zone 18 'SYSTEM' NO char 64 64 NULL NULL NULL latin1 latin1_swedish_ci char(64) NEVER NULL
|
||||
|
@ -137,7 +137,7 @@ def mysql proc returns 10 NULL NO longblob 4294967295 4294967295 NULL NULL NULL
|
|||
def mysql proc security_type 8 'DEFINER' NO enum 7 21 NULL NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER') NEVER NULL
|
||||
def mysql proc specific_name 4 '' NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) NEVER NULL
|
||||
def mysql proc sql_data_access 6 'CONTAINS_SQL' NO enum 17 51 NULL NULL NULL utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') NEVER NULL
|
||||
def mysql proc sql_mode 15 '' NO set 494 1482 NULL NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NEVER NULL
|
||||
def mysql proc sql_mode 15 '' NO set 515 1545 NULL NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL') NEVER NULL
|
||||
def mysql proc type 3 NULL NO enum 9 27 NULL NULL NULL utf8 utf8_general_ci enum('FUNCTION','PROCEDURE') PRI NEVER NULL
|
||||
def mysql procs_priv Db 2 '' NO char 64 192 NULL NULL NULL utf8 utf8_bin char(64) PRI NEVER NULL
|
||||
def mysql procs_priv Grantor 6 '' NO char 141 423 NULL NULL NULL utf8 utf8_bin char(141) MUL NEVER NULL
|
||||
|
@ -389,7 +389,7 @@ NULL mysql event starts datetime NULL NULL NULL NULL datetime
|
|||
NULL mysql event ends datetime NULL NULL NULL NULL datetime
|
||||
3.0000 mysql event status enum 18 54 utf8 utf8_general_ci enum('ENABLED','DISABLED','SLAVESIDE_DISABLED')
|
||||
3.0000 mysql event on_completion enum 8 24 utf8 utf8_general_ci enum('DROP','PRESERVE')
|
||||
3.0000 mysql event sql_mode set 494 1482 utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH')
|
||||
3.0000 mysql event sql_mode set 515 1545 utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL')
|
||||
3.0000 mysql event comment char 64 192 utf8 utf8_bin char(64)
|
||||
NULL mysql event originator int NULL NULL NULL NULL int(10) unsigned
|
||||
1.0000 mysql event time_zone char 64 64 latin1 latin1_swedish_ci char(64)
|
||||
|
@ -466,7 +466,7 @@ NULL mysql index_stats avg_frequency decimal NULL NULL NULL NULL decimal(12,4)
|
|||
3.0000 mysql proc definer char 141 423 utf8 utf8_bin char(141)
|
||||
NULL mysql proc created timestamp NULL NULL NULL NULL timestamp
|
||||
NULL mysql proc modified timestamp NULL NULL NULL NULL timestamp
|
||||
3.0000 mysql proc sql_mode set 494 1482 utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH')
|
||||
3.0000 mysql proc sql_mode set 515 1545 utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL')
|
||||
1.0000 mysql proc comment text 65535 65535 utf8 utf8_bin text
|
||||
3.0000 mysql proc character_set_client char 32 96 utf8 utf8_bin char(32)
|
||||
3.0000 mysql proc collation_connection char 32 96 utf8 utf8_bin char(32)
|
||||
|
|
|
@ -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,14 +10,4 @@
|
|||
#
|
||||
##############################################################################
|
||||
|
||||
innodb_defragment_fill_factor : MDEV-11336 Fix and enable innodb_defragment
|
||||
innodb.defrag_mdl-9155 : MDEV-11336 Fix and enable innodb_defragment
|
||||
innodb.innodb_defrag_concurrent : MDEV-11336 Fix and enable innodb_defragment
|
||||
innodb.innodb_defrag_stats : MDEV-11336 Fix and enable innodb_defragment
|
||||
innodb.innodb_defrag_stats_many_tables : MDEV-11336 Fix and enable innodb_defragment
|
||||
innodb.innodb_defragment : MDEV-11336 Fix and enable innodb_defragment
|
||||
innodb.innodb_defragment_fill_factor : MDEV-11336 Fix and enable innodb_defragment
|
||||
innodb.innodb_defragment_small : MDEV-11336 Fix and enable innodb_defragment
|
||||
innodb.innodb_defrag_binlog : MDEV-11336 Fix and enable innodb_defragment
|
||||
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
|
||||
|
|
|
@ -11,3 +11,14 @@ t1 CREATE TABLE `t1` (
|
|||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
|
||||
drop table t1;
|
||||
set @@sql_mode=default;
|
||||
create table t1 (
|
||||
id1 int(11) not null auto_increment,
|
||||
id2 varchar(30) not null,
|
||||
id3 datetime not null default current_timestamp,
|
||||
primary key (id1),
|
||||
unique key unique_id2 (id2)
|
||||
) engine=innodb;
|
||||
alter table t1 change column id2 id4 varchar(100) not null;
|
||||
select * from t1 where id4 like 'a';
|
||||
id1 id4 id3
|
||||
drop table t1;
|
||||
|
|
|
@ -329,9 +329,10 @@ CREATE INDEX t1e ON t1 (e(767));
|
|||
UPDATE t1 SET a=@c,b=@c,c=@c,d=@c,e=@c,f=@c,g=@c,h=@c,i=@c,j=@c,
|
||||
k=@c,l=@c,m=@c,n=@c,o=@c,p=@c,q=@c,r=@c,s=@c,t=@c,u=@c;
|
||||
CREATE INDEX t1f ON t1 (f(767));
|
||||
BEGIN;
|
||||
UPDATE t1 SET a=@d,b=@d,c=@d,d=@d,e=@d,f=@d,g=@d,h=@d,i=@d,j=@d,
|
||||
k=@d,l=@d,m=@d,n=@d,o=@d,p=@d,q=@d,r=@d,s=@d,t=@d,u=@d;
|
||||
ERROR HY000: Undo log record is too big
|
||||
ROLLBACK;
|
||||
BEGIN;
|
||||
UPDATE t1 SET a=@d,b=@d,c=@d,d=@d,e=@d;
|
||||
UPDATE t1 SET f=@d,g=@d,h=@d,i=@d,j=@d,k=@d,l=@d,m=@d,
|
||||
|
@ -364,8 +365,9 @@ UPDATE t1 SET r=@e;
|
|||
CREATE INDEX t1s ON t1 (s(767));
|
||||
UPDATE t1 SET s=@e;
|
||||
CREATE INDEX t1t ON t1 (t(767));
|
||||
BEGIN;
|
||||
UPDATE t1 SET t=@e;
|
||||
ERROR HY000: Undo log record is too big
|
||||
ROLLBACK;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
|
@ -534,11 +536,11 @@ PRIMARY KEY (b(10), a), INDEX (c(767)), INDEX(b(767))
|
|||
) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
|
||||
INSERT INTO bug12547647 VALUES (5,REPEAT('khdfo5AlOq',1900),REPEAT('g',7751));
|
||||
COMMIT;
|
||||
BEGIN;
|
||||
UPDATE bug12547647 SET c = REPEAT('b',16928);
|
||||
ERROR HY000: Undo log record is too big
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Error 1713 Undo log record is too big
|
||||
ROLLBACK;
|
||||
DROP TABLE bug12547647;
|
||||
SET SESSION innodb_strict_mode = on;
|
||||
CREATE TABLE t1(
|
||||
|
|
|
@ -223,13 +223,14 @@ aa=@c,ba=@c,ca=@c,da=@c,ea=@c,fa=@c,ga=@c,ha=@c,ia=@c,ja=@c,
|
|||
ka=@c,la=@c,ma=@c,na=@c,oa=@c,pa=@c,qa=@c,ra=@c,sa=@c,ta=@c,ua=@c,
|
||||
va=@c,wa=@c,xa=@c,ya=@c,za=@c;
|
||||
CREATE INDEX t1f17 ON t1 (v(767));
|
||||
BEGIN;
|
||||
UPDATE t1 SET a=@d,b=@d,c=@d,d=@d,e=@d,f=@d,g=@d,h=@d,i=@d,j=@d,
|
||||
k=@d,l=@d,m=@d,n=@d,o=@d,p=@d,q=@d,r=@d,s=@d,t=@d,u=@d,
|
||||
v=@d,w=@d,x=@d,y=@d,z=@d,
|
||||
aa=@d,ba=@d,ca=@d,da=@d,ea=@d,fa=@d,ga=@d,ha=@d,ia=@d,ja=@d,
|
||||
ka=@d,la=@d,ma=@d,na=@d,oa=@d,pa=@d,qa=@d,ra=@d,sa=@d,ta=@d,ua=@d,
|
||||
va=@d,wa=@d,xa=@d,ya=@d,za=@d;
|
||||
ERROR HY000: Undo log record is too big
|
||||
ROLLBACK;
|
||||
BEGIN;
|
||||
UPDATE t1 SET a=@d,b=@d,c=@d,d=@d,e=@d;
|
||||
UPDATE t1 SET f=@d,g=@d,h=@d,i=@d,j=@d;
|
||||
|
|
|
@ -258,6 +258,7 @@ kc=@c,lc=@c,mc=@c,nc=@c,oc=@c,pc=@c,qc=@c,rc=@c,sc=@c,tc=@c,uc=@c,
|
|||
vc=@c,wc=@c,xc=@c,yc=@c,zc=@c;
|
||||
COMMIT;
|
||||
CREATE INDEX tg1f2 ON t1 (ia(767),ja(767));
|
||||
BEGIN;
|
||||
UPDATE t1 SET a=@d,b=@d,c=@d,d=@d,e=@d,f=@d,g=@d,h=@d,i=@d,j=@d,
|
||||
k=@d,l=@d,m=@d,n=@d,o=@d,p=@d,q=@d,r=@d,s=@d,t=@d,u=@d,
|
||||
v=@d,w=@d,x=@d,y=@d,z=@d,
|
||||
|
@ -270,7 +271,7 @@ vb=@d,wb=@d,xb=@d,yb=@d,zb=@d,
|
|||
ac=@d,bc=@d,cc=@d,dc=@d,ec=@d,fc=@d,gc=@d,hc=@d,ic=@d,jc=@d,
|
||||
kc=@d,lc=@d,mc=@d,nc=@d,oc=@d,pc=@d,qc=@d,rc=@d,sc=@d,tc=@d,uc=@d,
|
||||
vc=@d,wc=@d,xc=@d,yc=@d,zc=@d;
|
||||
ERROR HY000: Undo log record is too big
|
||||
ROLLBACK;
|
||||
BEGIN;
|
||||
UPDATE t1 SET a=@d,b=@d,c=@d,d=@d,e=@d;
|
||||
UPDATE t1 SET f=@d,g=@d,h=@d,i=@d,j=@d;
|
||||
|
|
|
@ -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` (
|
||||
|
@ -640,10 +634,8 @@ CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL;
|
|||
ALTER TABLE t1o DROP INDEX ct, DROP INDEX FTS_DOC_ID_INDEX,
|
||||
CHANGE FTS_DOC_ID foo_id BIGINT UNSIGNED NOT NULL;
|
||||
ALTER TABLE t1o ADD UNIQUE INDEX FTS_DOC_ID_INDEX(foo_id);
|
||||
call mtr.add_suppression("InnoDB: No matching column for `FTS_DOC_ID` in index `ct` of table `test`\\.`t1o`");
|
||||
ALTER TABLE t1o CHANGE foo_id FTS_DOC_ID BIGINT UNSIGNED NOT NULL,
|
||||
ADD FULLTEXT INDEX(ct);
|
||||
ERROR HY000: Index for table 't1o' is corrupt; try to repair it
|
||||
DROP TABLE sys_indexes;
|
||||
CREATE TABLE sys_indexes SELECT i.* FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES i
|
||||
INNER JOIN sys_tables st ON i.TABLE_ID=st.TABLE_ID;
|
||||
|
@ -651,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
|
||||
|
@ -857,3 +856,33 @@ DROP TABLE dest_db.t1;
|
|||
DROP TABLE source_db.t1;
|
||||
DROP DATABASE source_db;
|
||||
DROP DATABASE dest_db;
|
||||
USE test;
|
||||
#
|
||||
# MDEV-14038 ALTER TABLE does not exit on error with InnoDB + bad default function
|
||||
#
|
||||
CREATE TABLE t1 (a INT NOT NULL DEFAULT 0) ENGINE=InnoDB;
|
||||
iNSERT INTO t1 VALUES (10);
|
||||
ALTER TABLE t1 ADD b TINYINT NOT NULL DEFAULT if(unix_timestamp()>1,1000,0);
|
||||
ERROR 22003: Out of range value for column 'b' at row 1
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
10
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT NOT NULL DEFAULT 0) ENGINE=InnoDB;
|
||||
iNSERT INTO t1 VALUES (10);
|
||||
ALTER TABLE t1 ADD b DATE NOT NULL DEFAULT if(unix_timestamp()>1,TIMESTAMP'2001-01-01 10:20:30',0);
|
||||
affected rows: 0
|
||||
info: Records: 0 Duplicates: 0 Warnings: 0
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
10 2001-01-01
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT NOT NULL DEFAULT 0) ENGINE=InnoDB;
|
||||
iNSERT INTO t1 VALUES (10);
|
||||
ALTER TABLE t1 ADD b TIME NOT NULL DEFAULT if(unix_timestamp()>1,TIMESTAMP'2001-01-01 10:20:30',0);
|
||||
affected rows: 0
|
||||
info: Records: 0 Duplicates: 0 Warnings: 0
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
10 10:20:30
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -37,3 +37,13 @@ Level Code Message
|
|||
show errors;
|
||||
Level Code Message
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-14038 ALTER TABLE does not exit on error with InnoDB + bad default function
|
||||
#
|
||||
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
|
||||
ALTER TABLE t1 ADD COLUMN b LINESTRING DEFAULT POINT(1,1);
|
||||
ERROR 22007: Incorrect LINESTRING value: 'POINT' for column 'b' at row 1
|
||||
DESCRIBE t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) YES NULL
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -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
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue