1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-09 22:24:09 +03:00

Merge 10.9 into 10.10

This commit is contained in:
Marko Mäkelä
2022-06-09 15:26:09 +03:00
313 changed files with 9849 additions and 10539 deletions

View File

@@ -1,6 +1,6 @@
/* /*
Copyright (c) 2001, 2012, Oracle and/or its affiliates. Copyright (c) 2001, 2012, Oracle and/or its affiliates.
Copyright (c) 2009, 2020, MariaDB Copyright (c) 2009, 2022, MariaDB
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@@ -102,6 +102,7 @@ enum options_client
OPT_IGNORE_DATA, OPT_IGNORE_DATA,
OPT_PRINT_ROW_COUNT, OPT_PRINT_ROW_EVENT_POSITIONS, OPT_PRINT_ROW_COUNT, OPT_PRINT_ROW_EVENT_POSITIONS,
OPT_CHECK_IF_UPGRADE_NEEDED, OPT_CHECK_IF_UPGRADE_NEEDED,
OPT_COMPATIBILTY_CLEARTEXT_PLUGIN,
OPT_SHUTDOWN_WAIT_FOR_SLAVES, OPT_SHUTDOWN_WAIT_FOR_SLAVES,
OPT_COPY_S3_TABLES, OPT_COPY_S3_TABLES,
OPT_PRINT_TABLE_METADATA, OPT_PRINT_TABLE_METADATA,

View File

@@ -1660,6 +1660,8 @@ static struct my_option my_long_options[] =
&delimiter_str, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, &delimiter_str, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"execute", 'e', "Execute command and quit. (Disables --force and history file.)", 0, {"execute", 'e', "Execute command and quit. (Disables --force and history file.)", 0,
0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"enable-cleartext-plugin", OPT_COMPATIBILTY_CLEARTEXT_PLUGIN, "Obsolete option. Exists only for MySQL compatibility.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"vertical", 'E', "Print the output of a query (rows) vertically.", {"vertical", 'E', "Print the output of a query (rows) vertically.",
&vertical, &vertical, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, &vertical, &vertical, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0,
0}, 0},
@@ -1969,6 +1971,14 @@ get_one_option(const struct my_option *opt, const char *argument, const char *fi
printf("WARNING: --server-arg option not supported in this configuration.\n"); printf("WARNING: --server-arg option not supported in this configuration.\n");
#endif #endif
break; break;
case OPT_COMPATIBILTY_CLEARTEXT_PLUGIN:
/*
This option exists in MySQL client but not in MariaDB. Users switching from
MySQL might still have this option in their commands, and it will not work
in MariaDB unless it is handled. Therefore output a warning and continue.
*/
printf("WARNING: option '--enable-cleartext-plugin' is obsolete.\n");
break;
case 'A': case 'A':
opt_rehash= 0; opt_rehash= 0;
break; break;

View File

@@ -1997,11 +1997,10 @@ static void DBUGOpenFile(CODE_STATE *cs,
static void DBUGCloseFile(CODE_STATE *cs, sFILE *new_value) static void DBUGCloseFile(CODE_STATE *cs, sFILE *new_value)
{ {
sFILE *fp; sFILE *fp;
if (!cs || !cs->stack || !cs->stack->out_file) if (!cs || !cs->stack || !(fp= cs->stack->out_file))
return; return;
fp= cs->stack->out_file; if (fp != sstdout && fp != sstderr && --fp->used == 0)
if (--fp->used == 0)
{ {
if (fclose(fp->file) == EOF) if (fclose(fp->file) == EOF)
{ {

View File

@@ -1,5 +1,6 @@
/****************************************************** /******************************************************
Copyright (c) 2011-2013 Percona LLC and/or its affiliates. Copyright (c) 2011-2013 Percona LLC and/or its affiliates.
Copyright (c) 2022, MariaDB Corporation.
Compressing datasink implementation for XtraBackup. Compressing datasink implementation for XtraBackup.
@@ -32,11 +33,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
typedef struct { typedef struct {
pthread_t id; pthread_t id;
uint num; uint num;
pthread_mutex_t ctrl_mutex;
pthread_cond_t ctrl_cond;
pthread_mutex_t data_mutex; pthread_mutex_t data_mutex;
pthread_cond_t data_cond; pthread_cond_t data_cond;
my_bool started;
my_bool data_avail; my_bool data_avail;
my_bool cancelled; my_bool cancelled;
const char *from; const char *from;
@@ -206,14 +204,13 @@ compress_write(ds_file_t *file, const uchar *buf, size_t len)
thd = threads + i; thd = threads + i;
pthread_mutex_lock(&thd->ctrl_mutex); pthread_mutex_lock(&thd->data_mutex);
chunk_len = (len > COMPRESS_CHUNK_SIZE) ? chunk_len = (len > COMPRESS_CHUNK_SIZE) ?
COMPRESS_CHUNK_SIZE : len; COMPRESS_CHUNK_SIZE : len;
thd->from = ptr; thd->from = ptr;
thd->from_len = chunk_len; thd->from_len = chunk_len;
pthread_mutex_lock(&thd->data_mutex);
thd->data_avail = TRUE; thd->data_avail = TRUE;
pthread_cond_signal(&thd->data_cond); pthread_cond_signal(&thd->data_cond);
pthread_mutex_unlock(&thd->data_mutex); pthread_mutex_unlock(&thd->data_mutex);
@@ -239,26 +236,24 @@ compress_write(ds_file_t *file, const uchar *buf, size_t len)
xb_a(threads[i].to_len > 0); xb_a(threads[i].to_len > 0);
if (ds_write(dest_file, "NEWBNEWB", 8) || bool fail = ds_write(dest_file, "NEWBNEWB", 8) ||
write_uint64_le(dest_file, write_uint64_le(dest_file,
comp_file->bytes_processed)) { comp_file->bytes_processed);
msg("compress: write to the destination stream "
"failed.");
return 1;
}
comp_file->bytes_processed += threads[i].from_len; comp_file->bytes_processed += threads[i].from_len;
if (write_uint32_le(dest_file, threads[i].adler) || if (!fail) {
ds_write(dest_file, threads[i].to, fail = write_uint32_le(dest_file, threads[i].adler) ||
threads[i].to_len)) { ds_write(dest_file, threads[i].to,
msg("compress: write to the destination stream " threads[i].to_len);
"failed.");
return 1;
} }
pthread_mutex_unlock(&threads[i].data_mutex); pthread_mutex_unlock(&threads[i].data_mutex);
pthread_mutex_unlock(&threads[i].ctrl_mutex);
if (fail) {
msg("compress: write to the destination stream "
"failed.");
return 1;
}
} }
} }
@@ -328,6 +323,23 @@ write_uint64_le(ds_file_t *file, ulonglong n)
return ds_write(file, tmp, sizeof(tmp)); return ds_write(file, tmp, sizeof(tmp));
} }
static
void
destroy_worker_thread(comp_thread_ctxt_t *thd)
{
pthread_mutex_lock(&thd->data_mutex);
thd->cancelled = TRUE;
pthread_cond_signal(&thd->data_cond);
pthread_mutex_unlock(&thd->data_mutex);
pthread_join(thd->id, NULL);
pthread_cond_destroy(&thd->data_cond);
pthread_mutex_destroy(&thd->data_mutex);
my_free(thd->to);
}
static static
comp_thread_ctxt_t * comp_thread_ctxt_t *
create_worker_threads(uint n) create_worker_threads(uint n)
@@ -342,53 +354,31 @@ create_worker_threads(uint n)
comp_thread_ctxt_t *thd = threads + i; comp_thread_ctxt_t *thd = threads + i;
thd->num = i + 1; thd->num = i + 1;
thd->started = FALSE;
thd->cancelled = FALSE; thd->cancelled = FALSE;
thd->data_avail = FALSE; thd->data_avail = FALSE;
thd->to = (char *) my_malloc(PSI_NOT_INSTRUMENTED, thd->to = (char *) my_malloc(PSI_NOT_INSTRUMENTED,
COMPRESS_CHUNK_SIZE + MY_QLZ_COMPRESS_OVERHEAD, MYF(MY_FAE)); COMPRESS_CHUNK_SIZE + MY_QLZ_COMPRESS_OVERHEAD, MYF(MY_FAE));
/* Initialize the control mutex and condition var */
if (pthread_mutex_init(&thd->ctrl_mutex, NULL) ||
pthread_cond_init(&thd->ctrl_cond, NULL)) {
goto err;
}
/* Initialize and data mutex and condition var */ /* Initialize and data mutex and condition var */
if (pthread_mutex_init(&thd->data_mutex, NULL) || if (pthread_mutex_init(&thd->data_mutex, NULL) ||
pthread_cond_init(&thd->data_cond, NULL)) { pthread_cond_init(&thd->data_cond, NULL)) {
goto err; goto err;
} }
pthread_mutex_lock(&thd->ctrl_mutex);
if (pthread_create(&thd->id, NULL, compress_worker_thread_func, if (pthread_create(&thd->id, NULL, compress_worker_thread_func,
thd)) { thd)) {
msg("compress: pthread_create() failed: " msg("compress: pthread_create() failed: "
"errno = %d", errno); "errno = %d", errno);
pthread_mutex_unlock(&thd->ctrl_mutex);
goto err; goto err;
} }
} }
/* Wait for the threads to start */
for (i = 0; i < n; i++) {
comp_thread_ctxt_t *thd = threads + i;
while (thd->started == FALSE)
pthread_cond_wait(&thd->ctrl_cond, &thd->ctrl_mutex);
pthread_mutex_unlock(&thd->ctrl_mutex);
}
return threads; return threads;
err: err:
while (i > 0) { for (; i; i--) {
comp_thread_ctxt_t *thd; destroy_worker_thread(threads + i);
i--;
thd = threads + i;
pthread_mutex_unlock(&thd->ctrl_mutex);
} }
my_free(threads); my_free(threads);
@@ -402,21 +392,7 @@ destroy_worker_threads(comp_thread_ctxt_t *threads, uint n)
uint i; uint i;
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
comp_thread_ctxt_t *thd = threads + i; destroy_worker_thread(threads + i);
pthread_mutex_lock(&thd->data_mutex);
threads[i].cancelled = TRUE;
pthread_cond_signal(&thd->data_cond);
pthread_mutex_unlock(&thd->data_mutex);
pthread_join(thd->id, NULL);
pthread_cond_destroy(&thd->data_cond);
pthread_mutex_destroy(&thd->data_mutex);
pthread_cond_destroy(&thd->ctrl_cond);
pthread_mutex_destroy(&thd->ctrl_mutex);
my_free(thd->to);
} }
my_free(threads); my_free(threads);
@@ -428,19 +404,9 @@ compress_worker_thread_func(void *arg)
{ {
comp_thread_ctxt_t *thd = (comp_thread_ctxt_t *) arg; comp_thread_ctxt_t *thd = (comp_thread_ctxt_t *) arg;
pthread_mutex_lock(&thd->ctrl_mutex);
pthread_mutex_lock(&thd->data_mutex); pthread_mutex_lock(&thd->data_mutex);
thd->started = TRUE;
pthread_cond_signal(&thd->ctrl_cond);
pthread_mutex_unlock(&thd->ctrl_mutex);
while (1) { while (1) {
thd->data_avail = FALSE;
pthread_cond_signal(&thd->data_cond);
while (!thd->data_avail && !thd->cancelled) { while (!thd->data_avail && !thd->cancelled) {
pthread_cond_wait(&thd->data_cond, &thd->data_mutex); pthread_cond_wait(&thd->data_cond, &thd->data_mutex);
} }

View File

@@ -580,8 +580,8 @@ void CorruptedPages::zero_out_free_pages()
space_it->second.pages.begin(); space_it->second.pages.begin();
page_it != space_it->second.pages.end(); ++page_it) page_it != space_it->second.pages.end(); ++page_it)
{ {
bool is_free= fseg_page_is_free(space, *page_it); if (fseg_page_is_allocated(space, *page_it))
if (!is_free) { {
space_info_t &space_info = non_free_pages[space_id]; space_info_t &space_info = non_free_pages[space_id];
space_info.pages.insert(*page_it); space_info.pages.insert(*page_it);
if (space_info.space_name.empty()) if (space_info.space_name.empty())

View File

@@ -18,7 +18,7 @@
.\" SQL scripts .\" SQL scripts
.\" batch SQL files .\" batch SQL files
.SH "NAME" .SH "NAME"
mysql \- the MariaDB command\-line tool mariadb \- the MariaDB command\-line tool (mysql is now a symlink to mariadb)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysql\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIdb_name\fR\fR\ 'u .HP \w'\fBmysql\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIdb_name\fR\fR\ 'u
\fBmysql [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIdb_name\fR\fR \fBmysql [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIdb_name\fR\fR
@@ -507,6 +507,21 @@ the section called \(lqMYSQL COMMANDS\(rq\&.
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
.\" mysql: enable cleartext plugin option
.\" enable cleartext plugin option: mysql
\fB\-\-enable\-cleartext\-plugin\fR
.sp
Obsolete option\&. Exists only for MySQL compatibility\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
.\" mysql: execute option .\" mysql: execute option
.\" execute option: mysql .\" execute option: mysql
\fB\-\-execute=\fR\fB\fIstatement\fR\fR, \fB\-\-execute=\fR\fB\fIstatement\fR\fR,

View File

@@ -14,9 +14,9 @@
.\" mysql_client_test .\" mysql_client_test
.\" mysql_client_test_embedded .\" mysql_client_test_embedded
.SH "NAME" .SH "NAME"
mysql_client_test \- test client API mariadb-client-test \- test client API (mysql_client_test is now a symlink to mariadb-client-test)
.br .br
mysql_client_test_embedded \- test client API for embedded server mariadb-client-test-embedded \- test client API for embedded server (mysql_client_test_embedded is now a symlink to mariadb-client-test-embedded)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysql_client_test\ [\fR\fB\fIoptions\fR\fR\fB]\ [\fR\fB\fItest_name\fR\fR\fB]\ \&.\&.\&.\fR\ 'u .HP \w'\fBmysql_client_test\ [\fR\fB\fIoptions\fR\fR\fB]\ [\fR\fB\fItest_name\fR\fR\fB]\ \&.\&.\&.\fR\ 'u
\fBmysql_client_test [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fItest_name\fR\fR\fB] \&.\&.\&.\fR \fBmysql_client_test [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fItest_name\fR\fR\fB] \&.\&.\&.\fR

View File

@@ -13,7 +13,7 @@
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" mysql_convert_table_format .\" mysql_convert_table_format
.SH "NAME" .SH "NAME"
mysql_convert_table_format \- convert tables to use a given storage engine mariadb-convert-table-format \- convert tables to use a given storage engine (mysql_convert_table_format is now a symlink to mariadb-convert-table-format)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysql_convert_table_format\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIdb_name\fR\fR\ 'u .HP \w'\fBmysql_convert_table_format\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIdb_name\fR\fR\ 'u
\fBmysql_convert_table_format [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIdb_name\fR\fR \fBmysql_convert_table_format [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIdb_name\fR\fR

View File

@@ -13,7 +13,7 @@
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" mysql_find_rows .\" mysql_find_rows
.SH "NAME" .SH "NAME"
mysql_find_rows \- extract SQL statements from files mariadb-find-rows \- extract SQL statements from files (mysql_find_rows is now a symlink to mariadb-find-rows)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysql_find_rows\ [\fR\fB\fIoptions\fR\fR\fB]\ [\fR\fB\fIfile_name\fR\fR\fB\ \&.\&.\&.]\fR\ 'u .HP \w'\fBmysql_find_rows\ [\fR\fB\fIoptions\fR\fR\fB]\ [\fR\fB\fIfile_name\fR\fR\fB\ \&.\&.\&.]\fR\ 'u
\fBmysql_find_rows [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIfile_name\fR\fR\fB \&.\&.\&.]\fR \fBmysql_find_rows [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIfile_name\fR\fR\fB \&.\&.\&.]\fR

View File

@@ -13,7 +13,7 @@
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" mysql_fix_extensions .\" mysql_fix_extensions
.SH "NAME" .SH "NAME"
mysql_fix_extensions \- normalize table file name extensions mariadb-fix-extensions \- normalize table file name extensions (mysql_fix_extensions is now a symlink to mariadb-fix-extensions)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysql_fix_extensions\ \fR\fB\fIdata_dir\fR\fR\ 'u .HP \w'\fBmysql_fix_extensions\ \fR\fB\fIdata_dir\fR\fR\ 'u
\fBmysql_fix_extensions \fR\fB\fIdata_dir\fR\fR \fBmysql_fix_extensions \fR\fB\fIdata_dir\fR\fR

View File

@@ -13,7 +13,7 @@
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" mysql_install_db .\" mysql_install_db
.SH "NAME" .SH "NAME"
mysql_install_db \- initialize MariaDB data directory mariadb-install-db \- initialize MariaDB data directory (mysql_install_db is now a symlink to mariadb-install-db)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysql_install_db\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u .HP \w'\fBmysql_install_db\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u
\fBmysql_install_db [\fR\fB\fIoptions\fR\fR\fB]\fR \fBmysql_install_db [\fR\fB\fIoptions\fR\fR\fB]\fR

View File

@@ -9,7 +9,7 @@
.\" disable justification (adjust text to left margin only) .\" disable justification (adjust text to left margin only)
.ad l .ad l
.SH NAME .SH NAME
mysql_ldb \- RocksDB tool mariadb-ldb \- RocksDB tool (mysql_ldb is now a symlink to mariadb-ldb)
.SH DESCRIPTION .SH DESCRIPTION
Use \fBmysql_ldb \-\-help\fR for details on usage\. Use \fBmysql_ldb \-\-help\fR for details on usage\.
.PP .PP

View File

@@ -22,7 +22,7 @@
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" mysql_plugin .\" mysql_plugin
.SH "NAME" .SH "NAME"
mysql_plugin \- configure MariaDB server plugins mariadb-plugin \- configure MariaDB server plugins (mysql_plugin is now a symlink to mariadb-plugin)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysql_plugin\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIplugin\fR\fR\fB\ {ENABLE|DISABLE}\fR\ 'u .HP \w'\fBmysql_plugin\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIplugin\fR\fR\fB\ {ENABLE|DISABLE}\fR\ 'u
\fBmysql_plugin [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIplugin\fR\fR\fB {ENABLE|DISABLE}\fR \fBmysql_plugin [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIplugin\fR\fR\fB {ENABLE|DISABLE}\fR

View File

@@ -13,7 +13,7 @@
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" mysql_secure_installation .\" mysql_secure_installation
.SH "NAME" .SH "NAME"
mysql_secure_installation \- improve MariaDB installation security mariadb-secure-installation \- improve MariaDB installation security (mysql_secure_installation is now a symlink to mariadb-secure-installation)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysql_secure_installation\fR\ 'u .HP \w'\fBmysql_secure_installation\fR\ 'u
\fBmysql_secure_installation\fR \fBmysql_secure_installation\fR

View File

@@ -13,7 +13,7 @@
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" mysql_setpermission .\" mysql_setpermission
.SH "NAME" .SH "NAME"
mysql_setpermission \- interactively set permissions in grant tables mariadb-setpermission \- interactively set permissions in grant tables (mysql_setpermission is now a symlink to mariadb-setpermission)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysql_setpermission\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u .HP \w'\fBmysql_setpermission\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u
\fBmysql_setpermission [\fR\fB\fIoptions\fR\fR\fB]\fR \fBmysql_setpermission [\fR\fB\fIoptions\fR\fR\fB]\fR

View File

@@ -14,7 +14,7 @@
.\" mysql_tzinfo_to_sql .\" mysql_tzinfo_to_sql
.\" time zone tables .\" time zone tables
.SH "NAME" .SH "NAME"
mysql_tzinfo_to_sql \- load the time zone tables mariadb-tzinfo-to-sql \- load the time zone tables (mysql_tzinfo_to_sql is now a symlink to mariadb-tzinfo-to-sql)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysql_tzinfo_to_sql\ \fR\fB\fIarguments\fR\fR\ 'u .HP \w'\fBmysql_tzinfo_to_sql\ \fR\fB\fIarguments\fR\fR\ 'u
\fBmysql_tzinfo_to_sql \fR\fB\fIarguments\fR\fR \fBmysql_tzinfo_to_sql \fR\fB\fIarguments\fR\fR

View File

@@ -15,7 +15,7 @@
.\" upgrading MySQL .\" upgrading MySQL
.\" MySQL: upgrading .\" MySQL: upgrading
.SH "NAME" .SH "NAME"
mysql_upgrade \- check tables for MariaDB upgrade mariadb-upgrade \- check tables for MariaDB upgrade (mysql_upgrade is now a symlink to mariadb-upgrade)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysql_upgrade\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u .HP \w'\fBmysql_upgrade\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u
\fBmysql_upgrade [\fR\fB\fIoptions\fR\fR\fB]\fR \fBmysql_upgrade [\fR\fB\fIoptions\fR\fR\fB]\fR

View File

@@ -13,7 +13,7 @@
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" mysql_waitpid .\" mysql_waitpid
.SH "NAME" .SH "NAME"
mysql_waitpid \- kill process and wait for its termination mariadb-waitpid \- kill process and wait for its termination (mysql_waitpid is now a symlink to mariadb-waitpid)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysql_waitpid\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIpid\fR\fR\fB\ \fR\fB\fIwait_time\fR\fR\ 'u .HP \w'\fBmysql_waitpid\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIpid\fR\fR\fB\ \fR\fB\fIwait_time\fR\fR\ 'u
\fBmysql_waitpid [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIpid\fR\fR\fB \fR\fB\fIwait_time\fR\fR \fBmysql_waitpid [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIpid\fR\fR\fB \fR\fB\fIwait_time\fR\fR

View File

@@ -13,7 +13,7 @@
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" mysqlaccess .\" mysqlaccess
.SH "NAME" .SH "NAME"
mysqlaccess \- client for checking access privileges mariadb-access \- client for checking access privileges (mysqlaccess is now a symlink to mariadb-access)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysqlaccess\ [\fR\fB\fIhost_name\fR\fR\fB\ [\fR\fB\fIuser_name\fR\fR\fB\ [\fR\fB\fIdb_name\fR\fR\fB]]]\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u .HP \w'\fBmysqlaccess\ [\fR\fB\fIhost_name\fR\fR\fB\ [\fR\fB\fIuser_name\fR\fR\fB\ [\fR\fB\fIdb_name\fR\fR\fB]]]\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u
\fBmysqlaccess [\fR\fB\fIhost_name\fR\fR\fB [\fR\fB\fIuser_name\fR\fR\fB [\fR\fB\fIdb_name\fR\fR\fB]]] [\fR\fB\fIoptions\fR\fR\fB]\fR \fBmysqlaccess [\fR\fB\fIhost_name\fR\fR\fB [\fR\fB\fIuser_name\fR\fR\fB [\fR\fB\fIdb_name\fR\fR\fB]]] [\fR\fB\fIoptions\fR\fR\fB]\fR

View File

@@ -15,7 +15,7 @@
.\" administration: server .\" administration: server
.\" server administration .\" server administration
.SH "NAME" .SH "NAME"
mysqladmin \- client for administering a MariaDB server mariadb-admin \- client for administering a MariaDB server (mysqladmin is now a symlink to mariadb-admin)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysqladmin\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIcommand\fR\fR\fB\ [\fR\fB\fIcommand\-arg\fR\fR\fB]\ [\fR\fB\fIcommand\fR\fR\fB\ [\fR\fB\fIcommand\-arg\fR\fR\fB]]\ \&.\&.\&.\fR\ 'u .HP \w'\fBmysqladmin\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIcommand\fR\fR\fB\ [\fR\fB\fIcommand\-arg\fR\fR\fB]\ [\fR\fB\fIcommand\fR\fR\fB\ [\fR\fB\fIcommand\-arg\fR\fR\fB]]\ \&.\&.\&.\fR\ 'u
\fBmysqladmin [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIcommand\fR\fR\fB [\fR\fB\fIcommand\-arg\fR\fR\fB] [\fR\fB\fIcommand\fR\fR\fB [\fR\fB\fIcommand\-arg\fR\fR\fB]] \&.\&.\&.\fR \fBmysqladmin [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIcommand\fR\fR\fB [\fR\fB\fIcommand\-arg\fR\fR\fB] [\fR\fB\fIcommand\fR\fR\fB [\fR\fB\fIcommand\-arg\fR\fR\fB]] \&.\&.\&.\fR

View File

@@ -13,7 +13,7 @@
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" mysqlbinlog .\" mysqlbinlog
.SH "NAME" .SH "NAME"
mysqlbinlog \- utility for processing binary log files mariadb-binlog \- utility for processing binary log files (mysqlbinlog is now a symlink to mariadb-binlog)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysqlbinlog\ [\fR\fBoptions\fR\fB]\ \fR\fB\fIlog_file\fR\fR\fB\ \&.\&.\&.\fR\ 'u .HP \w'\fBmysqlbinlog\ [\fR\fBoptions\fR\fB]\ \fR\fB\fIlog_file\fR\fR\fB\ \&.\&.\&.\fR\ 'u
\fBmysqlbinlog [\fR\fBoptions\fR\fB] \fR\fB\fIlog_file\fR\fR\fB \&.\&.\&.\fR \fBmysqlbinlog [\fR\fBoptions\fR\fB] \fR\fB\fIlog_file\fR\fR\fB \&.\&.\&.\fR

View File

@@ -17,7 +17,7 @@
.\" tables: maintenance .\" tables: maintenance
.\" tables: repair .\" tables: repair
.SH "NAME" .SH "NAME"
mysqlcheck \- a table maintenance program mariadb-check \- a table maintenance program (mysqlcheck is now a symlink to mariadb-check)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysqlcheck\ [\fR\fB\fIoptions\fR\fR\fB]\ [\fR\fB\fIdb_name\fR\fR\fB\ [\fR\fB\fItbl_name\fR\fR\fB\ \&.\&.\&.]]\fR\ 'u .HP \w'\fBmysqlcheck\ [\fR\fB\fIoptions\fR\fR\fB]\ [\fR\fB\fIdb_name\fR\fR\fB\ [\fR\fB\fItbl_name\fR\fR\fB\ \&.\&.\&.]]\fR\ 'u
\fBmysqlcheck [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIdb_name\fR\fR\fB [\fR\fB\fItbl_name\fR\fR\fB \&.\&.\&.]]\fR \fBmysqlcheck [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIdb_name\fR\fR\fB [\fR\fB\fItbl_name\fR\fR\fB \&.\&.\&.]]\fR

View File

@@ -14,7 +14,7 @@
.\" mysqld: MariaDB server .\" mysqld: MariaDB server
.\" MariaDB server: mysqld .\" MariaDB server: mysqld
.SH "NAME" .SH "NAME"
mysqld \- the MariaDB server mariadbd \- the MariaDB server (mysqld is now a symlink to mariadbd)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysqld\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u .HP \w'\fBmysqld\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u
\fBmysqld [\fR\fB\fIoptions\fR\fR\fB]\fR \fBmysqld [\fR\fB\fIoptions\fR\fR\fB]\fR

View File

@@ -1,6 +1,6 @@
'\" t '\" t
.\" .\"
.TH "\FBMARIADB-MULTI\FR" "1" "15 May 2020" "MariaDB 10\&.10" "MariaDB Database System" .TH "\FBMARIADBD-MULTI\FR" "1" "15 May 2020" "MariaDB 10\&.10" "MariaDB Database System"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * set default formatting .\" * set default formatting
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
@@ -16,7 +16,7 @@
.\" scripts .\" scripts
.\" multi mysqld .\" multi mysqld
.SH "NAME" .SH "NAME"
mysqld_multi \- manage multiple MariaDB servers mariadbd-multi \- manage multiple MariaDB servers (mysqld_multi is now a symlink to mariadbd-multi)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysqld_multi\ [\fR\fB\fIoptions\fR\fR\fB]\ {start|stop|report}\ [\fR\fB\fIGNR\fR\fR\fB[,\fR\fB\fIGNR\fR\fR\fB]\ \&.\&.\&.]\fR\ 'u .HP \w'\fBmysqld_multi\ [\fR\fB\fIoptions\fR\fR\fB]\ {start|stop|report}\ [\fR\fB\fIGNR\fR\fR\fB[,\fR\fB\fIGNR\fR\fR\fB]\ \&.\&.\&.]\fR\ 'u
\fBmysqld_multi [\fR\fB\fIoptions\fR\fR\fB] {start|stop|report} [\fR\fB\fIGNR\fR\fR\fB[,\fR\fB\fIGNR\fR\fR\fB] \&.\&.\&.]\fR \fBmysqld_multi [\fR\fB\fIoptions\fR\fR\fB] {start|stop|report} [\fR\fB\fIGNR\fR\fR\fB[,\fR\fB\fIGNR\fR\fR\fB] \&.\&.\&.]\fR

View File

@@ -1,6 +1,6 @@
'\" t '\" t
.\" .\"
.TH "\FBMARIADB-SAFE\FR" "1" "15 May 2020" "MariaDB 10\&.10" "MariaDB Database System" .TH "\FBMARIADBD-SAFE\FR" "1" "15 May 2020" "MariaDB 10\&.10" "MariaDB Database System"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * set default formatting .\" * set default formatting
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
@@ -15,7 +15,7 @@
.\" tools: mysqld_safe .\" tools: mysqld_safe
.\" scripts .\" scripts
.SH "NAME" .SH "NAME"
mysqld_safe \- MariaDB server startup script mariadbd-safe \- MariaDB server startup script (mysqld_safe is now a symlink to mariadbd-safe)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysqld_safe\ \fR\fB\fIoptions\fR\fR\ 'u .HP \w'\fBmysqld_safe\ \fR\fB\fIoptions\fR\fR\ 'u
\fBmysqld_safe \fR\fB\fIoptions\fR\fR \fBmysqld_safe \fR\fB\fIoptions\fR\fR

View File

@@ -1,6 +1,6 @@
'\" t '\" t
.\" .\"
.TH "\FBMARIADB-SAFE-HELPER\FR" "1" "15 May 2020" "MariaDB 10\&.10" "MariaDB Database System" .TH "\FBMARIADBD-SAFE-HELPER\FR" "1" "15 May 2020" "MariaDB 10\&.10" "MariaDB Database System"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * set default formatting .\" * set default formatting
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
@@ -9,7 +9,7 @@
.\" disable justification (adjust text to left margin only) .\" disable justification (adjust text to left margin only)
.ad l .ad l
.SH NAME .SH NAME
mysqld_safe_helper \- helper script mariadbd-safe-helper \- helper script (mysqld_safe_helper is now a symlink to mariadbd-safe-helper)
.SH DESCRIPTION .SH DESCRIPTION
Use: Helper script\. Use: Helper script\.
.PP .PP

View File

@@ -17,7 +17,7 @@
.\" databases: dumping .\" databases: dumping
.\" tables: dumping .\" tables: dumping
.SH "NAME" .SH "NAME"
mysqldump \- a database backup program mariadb-dump \- a database backup program (mysqldump is now a symlink to mariadb-dump)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysqldump\ [\fR\fB\fIoptions\fR\fR\fB]\ [\fR\fB\fIdb_name\fR\fR\fB\ [\fR\fB\fItbl_name\fR\fR\fB\ \&.\&.\&.]]\fR\ 'u .HP \w'\fBmysqldump\ [\fR\fB\fIoptions\fR\fR\fB]\ [\fR\fB\fIdb_name\fR\fR\fB\ [\fR\fB\fItbl_name\fR\fR\fB\ \&.\&.\&.]]\fR\ 'u
\fBmysqldump [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIdb_name\fR\fR\fB [\fR\fB\fItbl_name\fR\fR\fB \&.\&.\&.]]\fR \fBmysqldump [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIdb_name\fR\fR\fB [\fR\fB\fItbl_name\fR\fR\fB \&.\&.\&.]]\fR

View File

@@ -13,7 +13,7 @@
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" mysqldumpslow .\" mysqldumpslow
.SH "NAME" .SH "NAME"
mysqldumpslow \- Summarize slow query log files mariadb-dumpslow \- Summarize slow query log files (mysqldumpslow is now a symlink to mariadb-dumpslow)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysqldumpslow\ [\fR\fBoptions\fR\fB]\ [\fR\fB\fIlog_file\fR\fR\fB\ \&.\&.\&.]\fR\ 'u .HP \w'\fBmysqldumpslow\ [\fR\fBoptions\fR\fB]\ [\fR\fB\fIlog_file\fR\fR\fB\ \&.\&.\&.]\fR\ 'u
\fBmysqldumpslow [\fR\fBoptions\fR\fB] [\fR\fB\fIlog_file\fR\fR\fB \&.\&.\&.]\fR \fBmysqldumpslow [\fR\fBoptions\fR\fB] [\fR\fB\fIlog_file\fR\fR\fB \&.\&.\&.]\fR

View File

@@ -17,7 +17,7 @@
.\" databases: dumping .\" databases: dumping
.\" tables: dumping .\" tables: dumping
.SH "NAME" .SH "NAME"
mysqlhotcopy \- a database backup program mariadb-hotcopy \- a database backup program (mysqlhotcopy is now a symlink to mariadb-hotcopy)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysqlhotcopy\ \fR\fB\fIarguments\fR\fR\ 'u .HP \w'\fBmysqlhotcopy\ \fR\fB\fIarguments\fR\fR\ 'u
\fBmysqlhotcopy \fR\fB\fIarguments\fR\fR \fBmysqlhotcopy \fR\fB\fIarguments\fR\fR

View File

@@ -17,7 +17,7 @@
.\" files: text .\" files: text
.\" text files: importing .\" text files: importing
.SH "NAME" .SH "NAME"
mysqlimport \- a data import program mariadb-import \- a data import program (mysqlimport is now a symlink to mariadb-import)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysqlimport\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIdb_name\fR\fR\fB\ \fR\fB\fItextfile1\fR\fR\fB\ \&.\&.\&.\fR\ 'u .HP \w'\fBmysqlimport\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIdb_name\fR\fR\fB\ \fR\fB\fItextfile1\fR\fR\fB\ \&.\&.\&.\fR\ 'u
\fBmysqlimport [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIdb_name\fR\fR\fB \fR\fB\fItextfile1\fR\fR\fB \&.\&.\&.\fR \fBmysqlimport [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIdb_name\fR\fR\fB \fR\fB\fItextfile1\fR\fR\fB \&.\&.\&.\fR

View File

@@ -18,7 +18,7 @@
.\" columns: displaying .\" columns: displaying
.\" showing: database information .\" showing: database information
.SH "NAME" .SH "NAME"
mysqlshow \- display database, table, and column information mariadb-show \- display database, table, and column information (mysqlshow is now a symlink to mariadb-show)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysqlshow\ [\fR\fB\fIoptions\fR\fR\fB]\ [\fR\fB\fIdb_name\fR\fR\fB\ [\fR\fB\fItbl_name\fR\fR\fB\ [\fR\fB\fIcol_name\fR\fR\fB]]]\fR\ 'u .HP \w'\fBmysqlshow\ [\fR\fB\fIoptions\fR\fR\fB]\ [\fR\fB\fIdb_name\fR\fR\fB\ [\fR\fB\fItbl_name\fR\fR\fB\ [\fR\fB\fIcol_name\fR\fR\fB]]]\fR\ 'u
\fBmysqlshow [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIdb_name\fR\fR\fB [\fR\fB\fItbl_name\fR\fR\fB [\fR\fB\fIcol_name\fR\fR\fB]]]\fR \fBmysqlshow [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIdb_name\fR\fR\fB [\fR\fB\fItbl_name\fR\fR\fB [\fR\fB\fIcol_name\fR\fR\fB]]]\fR

View File

@@ -14,7 +14,7 @@
.\" mysqlslap .\" mysqlslap
.\" load emulation .\" load emulation
.SH "NAME" .SH "NAME"
mysqlslap \- load emulation client mariadb-slap \- load emulation client (mysqlslap is now a symlink to mariadb-slap)
.SH "SYNOPSIS" .SH "SYNOPSIS"
.HP \w'\fBmysqlslap\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u .HP \w'\fBmysqlslap\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u
\fBmysqlslap [\fR\fB\fIoptions\fR\fR\fB]\fR \fBmysqlslap [\fR\fB\fIoptions\fR\fR\fB]\fR

View File

@@ -14,7 +14,7 @@
.\" mysqltest .\" mysqltest
.\" mysqltest_embedded .\" mysqltest_embedded
.SH "NAME" .SH "NAME"
mysqltest \- program to run test cases mariadb-test \- program to run test cases (mysqltest is now a symlink to mariadb-test)
.br .br
mysqltest_embedded \- program to run embedded test cases mysqltest_embedded \- program to run embedded test cases
.SH "SYNOPSIS" .SH "SYNOPSIS"

View File

@@ -1,4 +1,4 @@
--require include/not_valgrind.require --require include/not_valgrind.require
--disable_query_log --disable_query_log
eval select $VALGRIND_TEST as using_valgrind; eval select $VALGRIND_TEST+0 as using_valgrind;
--enable_query_log --enable_query_log

View File

@@ -1,5 +1,3 @@
drop table if exists t1,t2;
drop database if exists mysqltest;
set @save_max_allowed_packet=@@global.max_allowed_packet; set @save_max_allowed_packet=@@global.max_allowed_packet;
create table t1 ( create table t1 (
col1 int not null auto_increment primary key, col1 int not null auto_increment primary key,
@@ -2588,22 +2586,6 @@ set max_statement_time= 0;
drop table t1; drop table t1;
drop view v1; drop view v1;
# #
# MDEV-25803 Inplace ALTER breaks MyISAM/Aria tables when order of keys is changed
#
set @save_default_engine= @@default_storage_engine;
create or replace table t1 (x int, y int, unique (y), unique (x), primary key(x)) engine myisam;
alter table t1 change x xx int, algorithm=inplace;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
create or replace table t1 (x int, y int, unique (y), unique (x), primary key(x));
alter table t1 change x xx int, algorithm=inplace;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
drop table t1;
set @@default_storage_engine= @save_default_engine;
#
# End of 10.3 tests # End of 10.3 tests
# #
# #
@@ -2650,296 +2632,6 @@ DROP TABLE t1;
# End of 10.4 tests # End of 10.4 tests
# #
# #
# MDEV-16290 ALTER TABLE ... RENAME COLUMN syntax
#
SET @save_default_engine= @@DEFAULT_STORAGE_ENGINE;
CREATE TABLE t1(a INT, b VARCHAR(30), c FLOAT);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` varchar(30) DEFAULT NULL,
`c` float DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
INSERT INTO t1 VALUES(1,'abcd',1.234);
CREATE TABLE t2(a INT, b VARCHAR(30), c FLOAT) ENGINE=MyIsam;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`a` int(11) DEFAULT NULL,
`b` varchar(30) DEFAULT NULL,
`c` float DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
INSERT INTO t2 VALUES(1,'abcd',1.234);
ALTER TABLE t1 RENAME COLUMN a TO a;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` varchar(30) DEFAULT NULL,
`c` float DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 RENAME COLUMN a TO m;
ALTER TABLE t1 RENAME COLUMN a TO m;
ERROR 42S22: Unknown column 'a' in 't1'
ALTER TABLE t1 RENAME COLUMN IF EXISTS a TO m;
Warnings:
Note 1054 Unknown column 'a' in 't1'
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`m` int(11) DEFAULT NULL,
`b` varchar(30) DEFAULT NULL,
`c` float DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
SELECT * FROM t1;
m b c
1 abcd 1.234
ALTER TABLE t1 RENAME COLUMN m TO x,
RENAME COLUMN b TO y,
RENAME COLUMN c TO z;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`x` int(11) DEFAULT NULL,
`y` varchar(30) DEFAULT NULL,
`z` float DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
SELECT * FROM t1;
x y z
1 abcd 1.234
ALTER TABLE t2 RENAME COLUMN a TO d, RENAME COLUMN b TO e, RENAME COLUMN c to f;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`d` int(11) DEFAULT NULL,
`e` varchar(30) DEFAULT NULL,
`f` float DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SELECT * FROM t2;
d e f
1 abcd 1.234
ALTER TABLE t1 CHANGE COLUMN x a INT, RENAME COLUMN y TO b;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` varchar(30) DEFAULT NULL,
`z` float DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 CHANGE COLUMN z c DOUBLE, RENAME COLUMN b to b;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` varchar(30) DEFAULT NULL,
`c` double DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 CHANGE COLUMN a b int, RENAME COLUMN b TO c, CHANGE COLUMN c d FLOAT;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`b` int(11) DEFAULT NULL,
`c` varchar(30) DEFAULT NULL,
`d` float DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 ADD COLUMN zz INT, RENAME COLUMN d TO f;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`b` int(11) DEFAULT NULL,
`c` varchar(30) DEFAULT NULL,
`f` float DEFAULT NULL,
`zz` int(11) DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 DROP COLUMN zz, RENAME COLUMN c TO zz;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`b` int(11) DEFAULT NULL,
`zz` varchar(30) DEFAULT NULL,
`f` float DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 RENAME COLUMN zz to c, DROP COLUMN f;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`b` int(11) DEFAULT NULL,
`c` varchar(30) DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 ADD COLUMN d INT DEFAULT 5, RENAME COLUMN c TO b, DROP COLUMN b;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`b` varchar(30) DEFAULT NULL,
`d` int(11) DEFAULT 5
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 RENAME COLUMN b TO d, RENAME COLUMN d TO b;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`d` varchar(30) DEFAULT NULL,
`b` int(11) DEFAULT 5
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 ADD KEY(b);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`d` varchar(30) DEFAULT NULL,
`b` int(11) DEFAULT 5,
KEY `b` (`b`)
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 RENAME COLUMN b TO bb;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`d` varchar(30) DEFAULT NULL,
`bb` int(11) DEFAULT 5,
KEY `b` (`bb`)
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
SELECT * FROM t1;
d bb
abcd 5
CREATE TABLE t3(a int, b int, KEY(b));
ALTER TABLE t3 ADD CONSTRAINT FOREIGN KEY(b) REFERENCES t1(bb);
SHOW CREATE TABLE t3;
Table Create Table
t3 CREATE TABLE `t3` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
KEY `b` (`b`),
CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`b`) REFERENCES `t1` (`bb`)
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 RENAME COLUMN bb TO b;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`d` varchar(30) DEFAULT NULL,
`b` int(11) DEFAULT 5,
KEY `b` (`b`)
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t3 RENAME COLUMN b TO c;
SHOW CREATE TABLE t3;
Table Create Table
t3 CREATE TABLE `t3` (
`a` int(11) DEFAULT NULL,
`c` int(11) DEFAULT NULL,
KEY `b` (`c`),
CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t1` (`b`)
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
CREATE TABLE t4(a int);
ALTER TABLE t4 RENAME COLUMN a TO aa, ALGORITHM = INPLACE;
SHOW CREATE TABLE t4;
Table Create Table
t4 CREATE TABLE `t4` (
`aa` int(11) DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t4 RENAME COLUMN aa TO a, ALGORITHM = COPY;
SHOW CREATE TABLE t4;
Table Create Table
t4 CREATE TABLE `t4` (
`a` int(11) DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
DROP TABLE t4;
CREATE VIEW v1 AS SELECT d,e,f FROM t2;
CREATE TRIGGER trg1 BEFORE UPDATE on t2 FOR EACH ROW SET NEW.d=OLD.d + 10;
CREATE PROCEDURE sp1() INSERT INTO t2(d) VALUES(10);
ALTER TABLE t2 RENAME COLUMN d TO g;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`g` int(11) DEFAULT NULL,
`e` varchar(30) DEFAULT NULL,
`f` float DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
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 `test`.`t2`.`d` AS `d`,`test`.`t2`.`e` AS `e`,`test`.`t2`.`f` AS `f` from `t2` koi8r koi8r_general_ci
Warnings:
Warning 1356 View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
SELECT * FROM v1;
ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
UPDATE t2 SET f = f + 10;
ERROR 42S22: Unknown column 'd' in 'OLD'
CALL sp1();
ERROR 42S22: Unknown column 'd' in 'field list'
DROP TRIGGER trg1;
DROP PROCEDURE sp1;
CREATE TABLE t_gen(a INT, b DOUBLE GENERATED ALWAYS AS (SQRT(a)));
INSERT INTO t_gen(a) VALUES(4);
SELECT * FROM t_gen;
a b
4 2
SHOW CREATE TABLE t_gen;
Table Create Table
t_gen CREATE TABLE `t_gen` (
`a` int(11) DEFAULT NULL,
`b` double GENERATED ALWAYS AS (sqrt(`a`)) VIRTUAL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t_gen RENAME COLUMN a TO c, CHANGE COLUMN b b DOUBLE GENERATED ALWAYS AS (SQRT(c));
SELECT * FROM t_gen;
c b
4 2
SHOW CREATE TABLE t_gen;
Table Create Table
t_gen CREATE TABLE `t_gen` (
`c` int(11) DEFAULT NULL,
`b` double GENERATED ALWAYS AS (sqrt(`c`)) VIRTUAL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t_gen CHANGE COLUMN c x INT;
show create table t_gen;
Table Create Table
t_gen CREATE TABLE `t_gen` (
`x` int(11) DEFAULT NULL,
`b` double GENERATED ALWAYS AS (sqrt(`x`)) VIRTUAL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t_gen RENAME COLUMN x TO a;
DROP TABLE t_gen;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`d` varchar(30) DEFAULT NULL,
`b` int(11) DEFAULT 5,
KEY `b` (`b`)
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 RENAME COLUMN b z;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'z' at line 1
ALTER TABLE t1 RENAME COLUMN FROM b TO z;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'FROM b TO z' at line 1
ALTER TABLE t1 RENAME COLUMN b TO 1;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1' at line 1
ALTER TABLE t1 RENAME COLUMN b TO e, RENAME COLUMN c TO e;
ERROR 42S22: Unknown column 'c' in 't1'
ALTER TABLE t1 ADD COLUMN z INT, RENAME COLUMN b TO z;
ERROR 42S21: Duplicate column name 'z'
ALTER TABLE t1 DROP COLUMN b, RENAME COLUMN b TO z;
ERROR 42S22: Unknown column 'b' in 't1'
ALTER TABLE t1 RENAME COLUMN b TO b, RENAME COLUMN b TO b;
ERROR 42S22: Unknown column 'b' in 't1'
ALTER TABLE t1 RENAME COLUMN b TO c3, DROP COLUMN c3;
ERROR 42000: Can't DROP COLUMN `c3`; check that it exists
ALTER TABLE t1 ADD COLUMN z INT, CHANGE COLUMN z y INT, DROP COLUMN y;
ERROR 42S22: Unknown column 'z' in 't1'
ALTER TABLE t1 ADD COLUMN z INT, RENAME COLUMN z TO y, DROP COLUMN y;
ERROR 42S22: Unknown column 'z' in 't1'
ALTER TABLE t1 RENAME COLUMN b TO `nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn`;
ERROR 42000: Incorrect column name 'nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn'
ALTER TABLE t1 CHANGE b `nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn` int;
ERROR 42000: Identifier name 'nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn' is too long
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`d` varchar(30) DEFAULT NULL,
`b` int(11) DEFAULT 5,
KEY `b` (`b`)
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
SELECT * FROM t1;
d b
abcd 5
DROP VIEW v1;
DROP TABLE t3,t1,t2;
SET DEFAULT_STORAGE_ENGINE= @save_default_engine;
#
# MDEV-7318 RENAME INDEX # MDEV-7318 RENAME INDEX
# #
# #
@@ -3389,22 +3081,6 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1; drop table t1;
# #
# MDEV-25803 Inplace ALTER breaks MyISAM/Aria tables when order of keys is changed
#
set @save_default_engine= @@default_storage_engine;
create or replace table t1 (x int, y int, unique (y), unique (x), primary key(x)) engine myisam;
alter table t1 change x xx int, algorithm=inplace;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
create or replace table t1 (x int, y int, unique (y), unique (x), primary key(x));
alter table t1 change x xx int, algorithm=inplace;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
drop table t1;
set @@default_storage_engine= @save_default_engine;
#
# MDEV-25555 Server crashes in tree_record_pos after INPLACE-recreating index on HEAP table # MDEV-25555 Server crashes in tree_record_pos after INPLACE-recreating index on HEAP table
# #
create table t1 (a int, key idx1(a), key idx2 using btree(a)) engine=memory; create table t1 (a int, key idx1(a), key idx2 using btree(a)) engine=memory;

View File

@@ -2,10 +2,6 @@
# #
# Test of alter table # Test of alter table
# #
--disable_warnings
drop table if exists t1,t2;
drop database if exists mysqltest;
--enable_warnings
set @save_max_allowed_packet=@@global.max_allowed_packet; set @save_max_allowed_packet=@@global.max_allowed_packet;
create table t1 ( create table t1 (
@@ -2099,47 +2095,6 @@ set max_statement_time= 0;
drop table t1; drop table t1;
drop view v1; drop view v1;
--echo #
--echo # MDEV-25803 Inplace ALTER breaks MyISAM/Aria tables when order of keys is changed
--echo #
set @save_default_engine= @@default_storage_engine;
--disable_query_log
if ($MTR_COMBINATION_INNODB)
{
set default_storage_engine= innodb;
}
if ($MTR_COMBINATION_ARIA)
{
set default_storage_engine= aria;
}
--enable_query_log
if (!$MTR_COMBINATION_INNODB)
{
--disable_query_log
--disable_result_log
# There is no inplace ADD INDEX for MyISAM/Aria:
create or replace table t1 (x int);
--error ER_ALTER_OPERATION_NOT_SUPPORTED
alter table t1 add unique (x), algorithm=inplace;
--error ER_ALTER_OPERATION_NOT_SUPPORTED
alter table t1 add primary key(x), algorithm=inplace;
--error ER_ALTER_OPERATION_NOT_SUPPORTED
alter table t1 add index(x), algorithm=inplace;
--enable_query_log
--enable_result_log
}
create or replace table t1 (x int, y int, unique (y), unique (x), primary key(x)) engine myisam;
alter table t1 change x xx int, algorithm=inplace;
check table t1;
create or replace table t1 (x int, y int, unique (y), unique (x), primary key(x));
alter table t1 change x xx int, algorithm=inplace;
check table t1;
# cleanup
drop table t1;
set @@default_storage_engine= @save_default_engine;
--echo # --echo #
--echo # End of 10.3 tests --echo # End of 10.3 tests
--echo # --echo #
@@ -2192,205 +2147,6 @@ DROP TABLE t1;
--echo # End of 10.4 tests --echo # End of 10.4 tests
--echo # --echo #
--echo #
--echo # MDEV-16290 ALTER TABLE ... RENAME COLUMN syntax
--echo #
SET @save_default_engine= @@DEFAULT_STORAGE_ENGINE;
--disable_query_log
if ($MTR_COMBINATION_INNODB)
{
SET DEFAULT_STORAGE_ENGINE= INNODB;
}
if ($MTR_COMBINATION_ARIA)
{
SET DEFAULT_STORAGE_ENGINE= ARIA;
}
if ($MTR_COMBINATION_HEAP)
{
SET DEFAULT_STORAGE_ENGINE= MEMORY;
}
--enable_query_log
let $default_engine= `select @@default_storage_engine`;
CREATE TABLE t1(a INT, b VARCHAR(30), c FLOAT);
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
INSERT INTO t1 VALUES(1,'abcd',1.234);
CREATE TABLE t2(a INT, b VARCHAR(30), c FLOAT) ENGINE=MyIsam;
SHOW CREATE TABLE t2;
INSERT INTO t2 VALUES(1,'abcd',1.234);
# Rename one column
ALTER TABLE t1 RENAME COLUMN a TO a;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
ALTER TABLE t1 RENAME COLUMN a TO m;
--error ER_BAD_FIELD_ERROR
ALTER TABLE t1 RENAME COLUMN a TO m;
ALTER TABLE t1 RENAME COLUMN IF EXISTS a TO m;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
SELECT * FROM t1;
# Rename multiple column
ALTER TABLE t1 RENAME COLUMN m TO x,
RENAME COLUMN b TO y,
RENAME COLUMN c TO z;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
SELECT * FROM t1;
# Rename multiple columns with MyIsam Engine
ALTER TABLE t2 RENAME COLUMN a TO d, RENAME COLUMN b TO e, RENAME COLUMN c to f;
SHOW CREATE TABLE t2;
SELECT * FROM t2;
# Mix different ALTER operations with RENAME COLUMN
ALTER TABLE t1 CHANGE COLUMN x a INT, RENAME COLUMN y TO b;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
ALTER TABLE t1 CHANGE COLUMN z c DOUBLE, RENAME COLUMN b to b;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
ALTER TABLE t1 CHANGE COLUMN a b int, RENAME COLUMN b TO c, CHANGE COLUMN c d FLOAT;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
ALTER TABLE t1 ADD COLUMN zz INT, RENAME COLUMN d TO f;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
ALTER TABLE t1 DROP COLUMN zz, RENAME COLUMN c TO zz;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
ALTER TABLE t1 RENAME COLUMN zz to c, DROP COLUMN f;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
ALTER TABLE t1 ADD COLUMN d INT DEFAULT 5, RENAME COLUMN c TO b, DROP COLUMN b;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
#Cyclic Rename
ALTER TABLE t1 RENAME COLUMN b TO d, RENAME COLUMN d TO b;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
# Rename with Indexes
ALTER TABLE t1 ADD KEY(b);
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
ALTER TABLE t1 RENAME COLUMN b TO bb;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
SELECT * FROM t1;
# Rename with Foreign keys.
CREATE TABLE t3(a int, b int, KEY(b));
ALTER TABLE t3 ADD CONSTRAINT FOREIGN KEY(b) REFERENCES t1(bb);
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t3;
ALTER TABLE t1 RENAME COLUMN bb TO b;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
ALTER TABLE t3 RENAME COLUMN b TO c;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t3;
# Different Algorithm
CREATE TABLE t4(a int);
ALTER TABLE t4 RENAME COLUMN a TO aa, ALGORITHM = INPLACE;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t4;
ALTER TABLE t4 RENAME COLUMN aa TO a, ALGORITHM = COPY;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t4;
DROP TABLE t4;
# View, Trigger and SP
CREATE VIEW v1 AS SELECT d,e,f FROM t2;
CREATE TRIGGER trg1 BEFORE UPDATE on t2 FOR EACH ROW SET NEW.d=OLD.d + 10;
CREATE PROCEDURE sp1() INSERT INTO t2(d) VALUES(10);
ALTER TABLE t2 RENAME COLUMN d TO g;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t2;
SHOW CREATE VIEW v1;
--error ER_VIEW_INVALID
SELECT * FROM v1;
--error ER_BAD_FIELD_ERROR
UPDATE t2 SET f = f + 10;
--error ER_BAD_FIELD_ERROR
CALL sp1();
DROP TRIGGER trg1;
DROP PROCEDURE sp1;
# Generated Columns
if (!$MTR_COMBINATION_HEAP)
{
CREATE TABLE t_gen(a INT, b DOUBLE GENERATED ALWAYS AS (SQRT(a)));
INSERT INTO t_gen(a) VALUES(4);
SELECT * FROM t_gen;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t_gen;
ALTER TABLE t_gen RENAME COLUMN a TO c, CHANGE COLUMN b b DOUBLE GENERATED ALWAYS AS (SQRT(c));
SELECT * FROM t_gen;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t_gen;
#--error ER_DEPENDENT_BY_GENERATED_COLUMN
ALTER TABLE t_gen CHANGE COLUMN c x INT;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
show create table t_gen;
#--error ER_DEPENDENT_BY_GENERATED_COLUMN
ALTER TABLE t_gen RENAME COLUMN x TO a;
DROP TABLE t_gen;
}
#
# Negative tests
#
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
# Invalid Syntax
--error ER_PARSE_ERROR
ALTER TABLE t1 RENAME COLUMN b z;
--error ER_PARSE_ERROR
ALTER TABLE t1 RENAME COLUMN FROM b TO z;
--error ER_PARSE_ERROR
ALTER TABLE t1 RENAME COLUMN b TO 1;
# Duplicate column name
--error ER_BAD_FIELD_ERROR
ALTER TABLE t1 RENAME COLUMN b TO e, RENAME COLUMN c TO e;
--error ER_DUP_FIELDNAME
ALTER TABLE t1 ADD COLUMN z INT, RENAME COLUMN b TO z;
# Multiple operation on same column
--error ER_BAD_FIELD_ERROR
ALTER TABLE t1 DROP COLUMN b, RENAME COLUMN b TO z;
--error ER_BAD_FIELD_ERROR
ALTER TABLE t1 RENAME COLUMN b TO b, RENAME COLUMN b TO b;
--error ER_CANT_DROP_FIELD_OR_KEY
ALTER TABLE t1 RENAME COLUMN b TO c3, DROP COLUMN c3;
--error ER_BAD_FIELD_ERROR
ALTER TABLE t1 ADD COLUMN z INT, CHANGE COLUMN z y INT, DROP COLUMN y;
--error ER_BAD_FIELD_ERROR
ALTER TABLE t1 ADD COLUMN z INT, RENAME COLUMN z TO y, DROP COLUMN y;
# Invalid column name while renaming
--error ER_WRONG_COLUMN_NAME
ALTER TABLE t1 RENAME COLUMN b TO `nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn`;
# This error is different compared to ALTER TABLE ... CHANGE command
--error ER_TOO_LONG_IDENT
ALTER TABLE t1 CHANGE b `nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn` int;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
SELECT * FROM t1;
# Cleanup
DROP VIEW v1;
DROP TABLE t3,t1,t2;
SET DEFAULT_STORAGE_ENGINE= @save_default_engine;
--echo # --echo #
--echo # MDEV-7318 RENAME INDEX --echo # MDEV-7318 RENAME INDEX
--echo # --echo #
@@ -2608,47 +2364,6 @@ alter table t1 rename column abc to ABC;
show create table t1; show create table t1;
drop table t1; drop table t1;
--echo #
--echo # MDEV-25803 Inplace ALTER breaks MyISAM/Aria tables when order of keys is changed
--echo #
set @save_default_engine= @@default_storage_engine;
--disable_query_log
if ($MTR_COMBINATION_INNODB)
{
set default_storage_engine= innodb;
}
if ($MTR_COMBINATION_ARIA)
{
set default_storage_engine= aria;
}
--enable_query_log
if (!$MTR_COMBINATION_INNODB)
{
--disable_query_log
--disable_result_log
# There is no inplace ADD INDEX for MyISAM/Aria:
create or replace table t1 (x int);
--error ER_ALTER_OPERATION_NOT_SUPPORTED
alter table t1 add unique (x), algorithm=inplace;
--error ER_ALTER_OPERATION_NOT_SUPPORTED
alter table t1 add primary key(x), algorithm=inplace;
--error ER_ALTER_OPERATION_NOT_SUPPORTED
alter table t1 add index(x), algorithm=inplace;
--enable_query_log
--enable_result_log
}
create or replace table t1 (x int, y int, unique (y), unique (x), primary key(x)) engine myisam;
alter table t1 change x xx int, algorithm=inplace;
check table t1;
create or replace table t1 (x int, y int, unique (y), unique (x), primary key(x));
alter table t1 change x xx int, algorithm=inplace;
check table t1;
# cleanup
drop table t1;
set @@default_storage_engine= @save_default_engine;
--echo # --echo #
--echo # MDEV-25555 Server crashes in tree_record_pos after INPLACE-recreating index on HEAP table --echo # MDEV-25555 Server crashes in tree_record_pos after INPLACE-recreating index on HEAP table
--echo # --echo #

View File

@@ -1,6 +1,6 @@
--- ./mysql-test/main/alter_table.result 2020-02-27 19:35:41.279992329 +0300 --- main/alter_table_combinations.result 2022-05-24 17:16:56.769146869 +0200
+++ ./mysql-test/main/alter_table,aria.reject 2020-02-27 19:37:13.251994491 +0300 +++ main/alter_table_combinations.reject 2022-05-24 17:25:20.847126357 +0200
@@ -2716,8 +2716,7 @@ @@ -173,8 +173,7 @@
t3 CREATE TABLE `t3` ( t3 CREATE TABLE `t3` (
`a` int(11) DEFAULT NULL, `a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL,
@@ -10,7 +10,7 @@
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1 ) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 RENAME COLUMN bb TO b; ALTER TABLE t1 RENAME COLUMN bb TO b;
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
@@ -2733,8 +2732,7 @@ @@ -190,8 +189,7 @@
t3 CREATE TABLE `t3` ( t3 CREATE TABLE `t3` (
`a` int(11) DEFAULT NULL, `a` int(11) DEFAULT NULL,
`c` int(11) DEFAULT NULL, `c` int(11) DEFAULT NULL,

View File

@@ -1,6 +1,15 @@
--- ./mysql-test/main/alter_table.result 2020-02-27 19:35:41.279992329 +0300 --- main/alter_table_combinations.result 2022-05-24 17:16:56.769146869 +0200
+++ ./mysql-test/main/alter_table,heap.reject 2020-02-27 19:39:44.175998039 +0300 +++ main/alter_table_combinations.reject 2022-05-24 17:25:01.216127156 +0200
@@ -2716,8 +2716,7 @@ @@ -11,7 +11,7 @@
alter table t1 change x xx int, algorithm=inplace;
check table t1;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
drop table t1;
#
# End of 10.3 tests
@@ -173,8 +173,7 @@
t3 CREATE TABLE `t3` ( t3 CREATE TABLE `t3` (
`a` int(11) DEFAULT NULL, `a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL,
@@ -10,7 +19,7 @@
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1 ) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 RENAME COLUMN bb TO b; ALTER TABLE t1 RENAME COLUMN bb TO b;
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
@@ -2733,8 +2732,7 @@ @@ -190,8 +189,7 @@
t3 CREATE TABLE `t3` ( t3 CREATE TABLE `t3` (
`a` int(11) DEFAULT NULL, `a` int(11) DEFAULT NULL,
`c` int(11) DEFAULT NULL, `c` int(11) DEFAULT NULL,
@@ -20,7 +29,7 @@
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1 ) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
CREATE TABLE t4(a int); CREATE TABLE t4(a int);
ALTER TABLE t4 RENAME COLUMN a TO aa, ALGORITHM = INPLACE; ALTER TABLE t4 RENAME COLUMN a TO aa, ALGORITHM = INPLACE;
@@ -2774,36 +2772,6 @@ @@ -231,36 +229,6 @@
ERROR 42S22: Unknown column 'd' in 'field list' ERROR 42S22: Unknown column 'd' in 'field list'
DROP TRIGGER trg1; DROP TRIGGER trg1;
DROP PROCEDURE sp1; DROP PROCEDURE sp1;
@@ -57,3 +66,12 @@
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
@@ -316,7 +284,7 @@
alter table t1 change x xx int, algorithm=inplace;
check table t1;
Table Op Msg_type Msg_text
-test.t1 check status OK
+test.t1 check note The storage engine for the table doesn't support check
drop table t1;
#
# End of 10.5 tests

View File

@@ -1,4 +1,5 @@
[innodb] [innodb]
innodb
[aria] [aria]

View File

@@ -0,0 +1,324 @@
set @save_default_engine= @@default_storage_engine;
#
# MDEV-25803 Inplace ALTER breaks MyISAM/Aria tables when order of keys is changed
#
create or replace table t1 (x int, y int, unique (y), unique (x), primary key(x)) engine myisam;
alter table t1 change x xx int, algorithm=inplace;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
create or replace table t1 (x int, y int, unique (y), unique (x), primary key(x));
alter table t1 change x xx int, algorithm=inplace;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
drop table t1;
#
# End of 10.3 tests
#
#
# MDEV-16290 ALTER TABLE ... RENAME COLUMN syntax
#
CREATE TABLE t1(a INT, b VARCHAR(30), c FLOAT);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` varchar(30) DEFAULT NULL,
`c` float DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
INSERT INTO t1 VALUES(1,'abcd',1.234);
CREATE TABLE t2(a INT, b VARCHAR(30), c FLOAT) ENGINE=MyIsam;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`a` int(11) DEFAULT NULL,
`b` varchar(30) DEFAULT NULL,
`c` float DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
INSERT INTO t2 VALUES(1,'abcd',1.234);
ALTER TABLE t1 RENAME COLUMN a TO a;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` varchar(30) DEFAULT NULL,
`c` float DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 RENAME COLUMN a TO m;
ALTER TABLE t1 RENAME COLUMN a TO m;
ERROR 42S22: Unknown column 'a' in 't1'
ALTER TABLE t1 RENAME COLUMN IF EXISTS a TO m;
Warnings:
Note 1054 Unknown column 'a' in 't1'
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`m` int(11) DEFAULT NULL,
`b` varchar(30) DEFAULT NULL,
`c` float DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
SELECT * FROM t1;
m b c
1 abcd 1.234
ALTER TABLE t1 RENAME COLUMN m TO x,
RENAME COLUMN b TO y,
RENAME COLUMN c TO z;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`x` int(11) DEFAULT NULL,
`y` varchar(30) DEFAULT NULL,
`z` float DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
SELECT * FROM t1;
x y z
1 abcd 1.234
ALTER TABLE t2 RENAME COLUMN a TO d, RENAME COLUMN b TO e, RENAME COLUMN c to f;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`d` int(11) DEFAULT NULL,
`e` varchar(30) DEFAULT NULL,
`f` float DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SELECT * FROM t2;
d e f
1 abcd 1.234
ALTER TABLE t1 CHANGE COLUMN x a INT, RENAME COLUMN y TO b;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` varchar(30) DEFAULT NULL,
`z` float DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 CHANGE COLUMN z c DOUBLE, RENAME COLUMN b to b;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` varchar(30) DEFAULT NULL,
`c` double DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 CHANGE COLUMN a b int, RENAME COLUMN b TO c, CHANGE COLUMN c d FLOAT;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`b` int(11) DEFAULT NULL,
`c` varchar(30) DEFAULT NULL,
`d` float DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 ADD COLUMN zz INT, RENAME COLUMN d TO f;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`b` int(11) DEFAULT NULL,
`c` varchar(30) DEFAULT NULL,
`f` float DEFAULT NULL,
`zz` int(11) DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 DROP COLUMN zz, RENAME COLUMN c TO zz;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`b` int(11) DEFAULT NULL,
`zz` varchar(30) DEFAULT NULL,
`f` float DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 RENAME COLUMN zz to c, DROP COLUMN f;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`b` int(11) DEFAULT NULL,
`c` varchar(30) DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 ADD COLUMN d INT DEFAULT 5, RENAME COLUMN c TO b, DROP COLUMN b;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`b` varchar(30) DEFAULT NULL,
`d` int(11) DEFAULT 5
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 RENAME COLUMN b TO d, RENAME COLUMN d TO b;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`d` varchar(30) DEFAULT NULL,
`b` int(11) DEFAULT 5
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 ADD KEY(b);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`d` varchar(30) DEFAULT NULL,
`b` int(11) DEFAULT 5,
KEY `b` (`b`)
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 RENAME COLUMN b TO bb;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`d` varchar(30) DEFAULT NULL,
`bb` int(11) DEFAULT 5,
KEY `b` (`bb`)
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
SELECT * FROM t1;
d bb
abcd 5
CREATE TABLE t3(a int, b int, KEY(b));
ALTER TABLE t3 ADD CONSTRAINT FOREIGN KEY(b) REFERENCES t1(bb);
SHOW CREATE TABLE t3;
Table Create Table
t3 CREATE TABLE `t3` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
KEY `b` (`b`),
CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`b`) REFERENCES `t1` (`bb`)
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 RENAME COLUMN bb TO b;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`d` varchar(30) DEFAULT NULL,
`b` int(11) DEFAULT 5,
KEY `b` (`b`)
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t3 RENAME COLUMN b TO c;
SHOW CREATE TABLE t3;
Table Create Table
t3 CREATE TABLE `t3` (
`a` int(11) DEFAULT NULL,
`c` int(11) DEFAULT NULL,
KEY `b` (`c`),
CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t1` (`b`)
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
CREATE TABLE t4(a int);
ALTER TABLE t4 RENAME COLUMN a TO aa, ALGORITHM = INPLACE;
SHOW CREATE TABLE t4;
Table Create Table
t4 CREATE TABLE `t4` (
`aa` int(11) DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t4 RENAME COLUMN aa TO a, ALGORITHM = COPY;
SHOW CREATE TABLE t4;
Table Create Table
t4 CREATE TABLE `t4` (
`a` int(11) DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
DROP TABLE t4;
CREATE VIEW v1 AS SELECT d,e,f FROM t2;
CREATE TRIGGER trg1 BEFORE UPDATE on t2 FOR EACH ROW SET NEW.d=OLD.d + 10;
CREATE PROCEDURE sp1() INSERT INTO t2(d) VALUES(10);
ALTER TABLE t2 RENAME COLUMN d TO g;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`g` int(11) DEFAULT NULL,
`e` varchar(30) DEFAULT NULL,
`f` float DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
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 `test`.`t2`.`d` AS `d`,`test`.`t2`.`e` AS `e`,`test`.`t2`.`f` AS `f` from `t2` latin1 latin1_swedish_ci
Warnings:
Warning 1356 View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
SELECT * FROM v1;
ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
UPDATE t2 SET f = f + 10;
ERROR 42S22: Unknown column 'd' in 'OLD'
CALL sp1();
ERROR 42S22: Unknown column 'd' in 'field list'
DROP TRIGGER trg1;
DROP PROCEDURE sp1;
CREATE TABLE t_gen(a INT, b DOUBLE GENERATED ALWAYS AS (SQRT(a)));
INSERT INTO t_gen(a) VALUES(4);
SELECT * FROM t_gen;
a b
4 2
SHOW CREATE TABLE t_gen;
Table Create Table
t_gen CREATE TABLE `t_gen` (
`a` int(11) DEFAULT NULL,
`b` double GENERATED ALWAYS AS (sqrt(`a`)) VIRTUAL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t_gen RENAME COLUMN a TO c, CHANGE COLUMN b b DOUBLE GENERATED ALWAYS AS (SQRT(c));
SELECT * FROM t_gen;
c b
4 2
SHOW CREATE TABLE t_gen;
Table Create Table
t_gen CREATE TABLE `t_gen` (
`c` int(11) DEFAULT NULL,
`b` double GENERATED ALWAYS AS (sqrt(`c`)) VIRTUAL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t_gen CHANGE COLUMN c x INT;
show create table t_gen;
Table Create Table
t_gen CREATE TABLE `t_gen` (
`x` int(11) DEFAULT NULL,
`b` double GENERATED ALWAYS AS (sqrt(`x`)) VIRTUAL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t_gen RENAME COLUMN x TO a;
DROP TABLE t_gen;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`d` varchar(30) DEFAULT NULL,
`b` int(11) DEFAULT 5,
KEY `b` (`b`)
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
ALTER TABLE t1 RENAME COLUMN b z;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'z' at line 1
ALTER TABLE t1 RENAME COLUMN FROM b TO z;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'FROM b TO z' at line 1
ALTER TABLE t1 RENAME COLUMN b TO 1;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1' at line 1
ALTER TABLE t1 RENAME COLUMN b TO e, RENAME COLUMN c TO e;
ERROR 42S22: Unknown column 'c' in 't1'
ALTER TABLE t1 ADD COLUMN z INT, RENAME COLUMN b TO z;
ERROR 42S21: Duplicate column name 'z'
ALTER TABLE t1 DROP COLUMN b, RENAME COLUMN b TO z;
ERROR 42S22: Unknown column 'b' in 't1'
ALTER TABLE t1 RENAME COLUMN b TO b, RENAME COLUMN b TO b;
ERROR 42S22: Unknown column 'b' in 't1'
ALTER TABLE t1 RENAME COLUMN b TO c3, DROP COLUMN c3;
ERROR 42000: Can't DROP COLUMN `c3`; check that it exists
ALTER TABLE t1 ADD COLUMN z INT, CHANGE COLUMN z y INT, DROP COLUMN y;
ERROR 42S22: Unknown column 'z' in 't1'
ALTER TABLE t1 ADD COLUMN z INT, RENAME COLUMN z TO y, DROP COLUMN y;
ERROR 42S22: Unknown column 'z' in 't1'
ALTER TABLE t1 RENAME COLUMN b TO `nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn`;
ERROR 42000: Incorrect column name 'nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn'
ALTER TABLE t1 CHANGE b `nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn` int;
ERROR 42000: Identifier name 'nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn' is too long
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`d` varchar(30) DEFAULT NULL,
`b` int(11) DEFAULT 5,
KEY `b` (`b`)
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1
SELECT * FROM t1;
d b
abcd 5
DROP VIEW v1;
DROP TABLE t3,t1,t2;
#
# MDEV-25803 Inplace ALTER breaks MyISAM/Aria tables when order of keys is changed
#
create or replace table t1 (x int, y int, unique (y), unique (x), primary key(x)) engine myisam;
alter table t1 change x xx int, algorithm=inplace;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
create or replace table t1 (x int, y int, unique (y), unique (x), primary key(x));
alter table t1 change x xx int, algorithm=inplace;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
drop table t1;
#
# End of 10.5 tests
#
set @@default_storage_engine= @save_default_engine;

View File

@@ -0,0 +1,263 @@
set @save_default_engine= @@default_storage_engine;
--disable_query_log
if ($MTR_COMBINATION_INNODB)
{
set default_storage_engine= innodb;
}
if ($MTR_COMBINATION_ARIA)
{
set default_storage_engine= aria;
}
if ($MTR_COMBINATION_HEAP)
{
set default_storage_engine= memory;
}
--enable_query_log
let $default_engine= `select @@default_storage_engine`;
--echo #
--echo # MDEV-25803 Inplace ALTER breaks MyISAM/Aria tables when order of keys is changed
--echo #
if (!$MTR_COMBINATION_INNODB)
{
--disable_query_log
--disable_result_log
# There is no inplace ADD INDEX for MyISAM/Aria:
create or replace table t1 (x int);
--error ER_ALTER_OPERATION_NOT_SUPPORTED
alter table t1 add unique (x), algorithm=inplace;
--error ER_ALTER_OPERATION_NOT_SUPPORTED
alter table t1 add primary key(x), algorithm=inplace;
--error ER_ALTER_OPERATION_NOT_SUPPORTED
alter table t1 add index(x), algorithm=inplace;
--enable_query_log
--enable_result_log
}
create or replace table t1 (x int, y int, unique (y), unique (x), primary key(x)) engine myisam;
alter table t1 change x xx int, algorithm=inplace;
check table t1;
create or replace table t1 (x int, y int, unique (y), unique (x), primary key(x));
alter table t1 change x xx int, algorithm=inplace;
check table t1;
drop table t1;
--echo #
--echo # End of 10.3 tests
--echo #
--echo #
--echo # MDEV-16290 ALTER TABLE ... RENAME COLUMN syntax
--echo #
CREATE TABLE t1(a INT, b VARCHAR(30), c FLOAT);
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
INSERT INTO t1 VALUES(1,'abcd',1.234);
CREATE TABLE t2(a INT, b VARCHAR(30), c FLOAT) ENGINE=MyIsam;
SHOW CREATE TABLE t2;
INSERT INTO t2 VALUES(1,'abcd',1.234);
# Rename one column
ALTER TABLE t1 RENAME COLUMN a TO a;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
ALTER TABLE t1 RENAME COLUMN a TO m;
--error ER_BAD_FIELD_ERROR
ALTER TABLE t1 RENAME COLUMN a TO m;
ALTER TABLE t1 RENAME COLUMN IF EXISTS a TO m;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
SELECT * FROM t1;
# Rename multiple column
ALTER TABLE t1 RENAME COLUMN m TO x,
RENAME COLUMN b TO y,
RENAME COLUMN c TO z;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
SELECT * FROM t1;
# Rename multiple columns with MyIsam Engine
ALTER TABLE t2 RENAME COLUMN a TO d, RENAME COLUMN b TO e, RENAME COLUMN c to f;
SHOW CREATE TABLE t2;
SELECT * FROM t2;
# Mix different ALTER operations with RENAME COLUMN
ALTER TABLE t1 CHANGE COLUMN x a INT, RENAME COLUMN y TO b;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
ALTER TABLE t1 CHANGE COLUMN z c DOUBLE, RENAME COLUMN b to b;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
ALTER TABLE t1 CHANGE COLUMN a b int, RENAME COLUMN b TO c, CHANGE COLUMN c d FLOAT;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
ALTER TABLE t1 ADD COLUMN zz INT, RENAME COLUMN d TO f;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
ALTER TABLE t1 DROP COLUMN zz, RENAME COLUMN c TO zz;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
ALTER TABLE t1 RENAME COLUMN zz to c, DROP COLUMN f;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
ALTER TABLE t1 ADD COLUMN d INT DEFAULT 5, RENAME COLUMN c TO b, DROP COLUMN b;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
#Cyclic Rename
ALTER TABLE t1 RENAME COLUMN b TO d, RENAME COLUMN d TO b;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
# Rename with Indexes
ALTER TABLE t1 ADD KEY(b);
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
ALTER TABLE t1 RENAME COLUMN b TO bb;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
SELECT * FROM t1;
# Rename with Foreign keys.
CREATE TABLE t3(a int, b int, KEY(b));
ALTER TABLE t3 ADD CONSTRAINT FOREIGN KEY(b) REFERENCES t1(bb);
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t3;
ALTER TABLE t1 RENAME COLUMN bb TO b;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
ALTER TABLE t3 RENAME COLUMN b TO c;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t3;
# Different Algorithm
CREATE TABLE t4(a int);
ALTER TABLE t4 RENAME COLUMN a TO aa, ALGORITHM = INPLACE;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t4;
ALTER TABLE t4 RENAME COLUMN aa TO a, ALGORITHM = COPY;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t4;
DROP TABLE t4;
# View, Trigger and SP
CREATE VIEW v1 AS SELECT d,e,f FROM t2;
CREATE TRIGGER trg1 BEFORE UPDATE on t2 FOR EACH ROW SET NEW.d=OLD.d + 10;
CREATE PROCEDURE sp1() INSERT INTO t2(d) VALUES(10);
ALTER TABLE t2 RENAME COLUMN d TO g;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t2;
SHOW CREATE VIEW v1;
--error ER_VIEW_INVALID
SELECT * FROM v1;
--error ER_BAD_FIELD_ERROR
UPDATE t2 SET f = f + 10;
--error ER_BAD_FIELD_ERROR
CALL sp1();
DROP TRIGGER trg1;
DROP PROCEDURE sp1;
# Generated Columns
if (!$MTR_COMBINATION_HEAP)
{
CREATE TABLE t_gen(a INT, b DOUBLE GENERATED ALWAYS AS (SQRT(a)));
INSERT INTO t_gen(a) VALUES(4);
SELECT * FROM t_gen;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t_gen;
ALTER TABLE t_gen RENAME COLUMN a TO c, CHANGE COLUMN b b DOUBLE GENERATED ALWAYS AS (SQRT(c));
SELECT * FROM t_gen;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t_gen;
#--error ER_DEPENDENT_BY_GENERATED_COLUMN
ALTER TABLE t_gen CHANGE COLUMN c x INT;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
show create table t_gen;
#--error ER_DEPENDENT_BY_GENERATED_COLUMN
ALTER TABLE t_gen RENAME COLUMN x TO a;
DROP TABLE t_gen;
}
#
# Negative tests
#
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
# Invalid Syntax
--error ER_PARSE_ERROR
ALTER TABLE t1 RENAME COLUMN b z;
--error ER_PARSE_ERROR
ALTER TABLE t1 RENAME COLUMN FROM b TO z;
--error ER_PARSE_ERROR
ALTER TABLE t1 RENAME COLUMN b TO 1;
# Duplicate column name
--error ER_BAD_FIELD_ERROR
ALTER TABLE t1 RENAME COLUMN b TO e, RENAME COLUMN c TO e;
--error ER_DUP_FIELDNAME
ALTER TABLE t1 ADD COLUMN z INT, RENAME COLUMN b TO z;
# Multiple operation on same column
--error ER_BAD_FIELD_ERROR
ALTER TABLE t1 DROP COLUMN b, RENAME COLUMN b TO z;
--error ER_BAD_FIELD_ERROR
ALTER TABLE t1 RENAME COLUMN b TO b, RENAME COLUMN b TO b;
--error ER_CANT_DROP_FIELD_OR_KEY
ALTER TABLE t1 RENAME COLUMN b TO c3, DROP COLUMN c3;
--error ER_BAD_FIELD_ERROR
ALTER TABLE t1 ADD COLUMN z INT, CHANGE COLUMN z y INT, DROP COLUMN y;
--error ER_BAD_FIELD_ERROR
ALTER TABLE t1 ADD COLUMN z INT, RENAME COLUMN z TO y, DROP COLUMN y;
# Invalid column name while renaming
--error ER_WRONG_COLUMN_NAME
ALTER TABLE t1 RENAME COLUMN b TO `nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn`;
# This error is different compared to ALTER TABLE ... CHANGE command
--error ER_TOO_LONG_IDENT
ALTER TABLE t1 CHANGE b `nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn` int;
--replace_result $default_engine DEFAULT_ENGINE " PAGE_CHECKSUM=1" ""
SHOW CREATE TABLE t1;
SELECT * FROM t1;
# Cleanup
DROP VIEW v1;
DROP TABLE t3,t1,t2;
--echo #
--echo # MDEV-25803 Inplace ALTER breaks MyISAM/Aria tables when order of keys is changed
--echo #
if (!$MTR_COMBINATION_INNODB)
{
--disable_query_log
--disable_result_log
# There is no inplace ADD INDEX for MyISAM/Aria:
create or replace table t1 (x int);
--error ER_ALTER_OPERATION_NOT_SUPPORTED
alter table t1 add unique (x), algorithm=inplace;
--error ER_ALTER_OPERATION_NOT_SUPPORTED
alter table t1 add primary key(x), algorithm=inplace;
--error ER_ALTER_OPERATION_NOT_SUPPORTED
alter table t1 add index(x), algorithm=inplace;
--enable_query_log
--enable_result_log
}
create or replace table t1 (x int, y int, unique (y), unique (x), primary key(x)) engine myisam;
alter table t1 change x xx int, algorithm=inplace;
check table t1;
create or replace table t1 (x int, y int, unique (y), unique (x), primary key(x));
alter table t1 change x xx int, algorithm=inplace;
check table t1;
drop table t1;
--echo #
--echo # End of 10.5 tests
--echo #
set @@default_storage_engine= @save_default_engine;

View File

@@ -3960,10 +3960,10 @@ a b max_c avg_c a b max_c avg_c a b min_c a b c d
6 20 315 279.3333 6 20 315 279.3333 6 20 214 6 20 315 279 6 20 315 279.3333 6 20 315 279.3333 6 20 214 6 20 315 279
6 20 315 279.3333 6 20 315 279.3333 8 33 114 8 80 800 314 6 20 315 279.3333 6 20 315 279.3333 8 33 114 8 80 800 314
6 20 315 279.3333 6 20 315 279.3333 6 20 214 6 23 303 909 6 20 315 279.3333 6 20 315 279.3333 6 20 214 6 23 303 909
6 20 315 279.3333 8 33 404 213.6667 6 20 214 6 20 315 279
6 20 315 279.3333 8 33 404 213.6667 6 20 214 6 23 303 909
8 33 404 213.6667 6 20 315 279.3333 8 33 114 8 64 248 107 8 33 404 213.6667 6 20 315 279.3333 8 33 114 8 64 248 107
8 33 404 213.6667 6 20 315 279.3333 8 33 114 8 80 800 314 8 33 404 213.6667 6 20 315 279.3333 8 33 114 8 80 800 314
6 20 315 279.3333 8 33 404 213.6667 6 20 214 6 20 315 279
6 20 315 279.3333 8 33 404 213.6667 6 20 214 6 23 303 909
8 33 404 213.6667 8 33 404 213.6667 7 11 708 7 13 312 406 8 33 404 213.6667 8 33 404 213.6667 7 11 708 7 13 312 406
8 33 404 213.6667 8 33 404 213.6667 8 33 114 8 64 248 107 8 33 404 213.6667 8 33 404 213.6667 8 33 114 8 64 248 107
8 33 404 213.6667 8 33 404 213.6667 6 20 214 6 20 315 279 8 33 404 213.6667 8 33 404 213.6667 6 20 214 6 20 315 279
@@ -3978,10 +3978,10 @@ a b max_c avg_c a b max_c avg_c a b min_c a b c d
6 20 315 279.3333 6 20 315 279.3333 6 20 214 6 20 315 279 6 20 315 279.3333 6 20 315 279.3333 6 20 214 6 20 315 279
6 20 315 279.3333 6 20 315 279.3333 8 33 114 8 80 800 314 6 20 315 279.3333 6 20 315 279.3333 8 33 114 8 80 800 314
6 20 315 279.3333 6 20 315 279.3333 6 20 214 6 23 303 909 6 20 315 279.3333 6 20 315 279.3333 6 20 214 6 23 303 909
6 20 315 279.3333 8 33 404 213.6667 6 20 214 6 20 315 279
6 20 315 279.3333 8 33 404 213.6667 6 20 214 6 23 303 909
8 33 404 213.6667 6 20 315 279.3333 8 33 114 8 64 248 107 8 33 404 213.6667 6 20 315 279.3333 8 33 114 8 64 248 107
8 33 404 213.6667 6 20 315 279.3333 8 33 114 8 80 800 314 8 33 404 213.6667 6 20 315 279.3333 8 33 114 8 80 800 314
6 20 315 279.3333 8 33 404 213.6667 6 20 214 6 20 315 279
6 20 315 279.3333 8 33 404 213.6667 6 20 214 6 23 303 909
8 33 404 213.6667 8 33 404 213.6667 7 11 708 7 13 312 406 8 33 404 213.6667 8 33 404 213.6667 7 11 708 7 13 312 406
8 33 404 213.6667 8 33 404 213.6667 8 33 114 8 64 248 107 8 33 404 213.6667 8 33 404 213.6667 8 33 114 8 64 248 107
8 33 404 213.6667 8 33 404 213.6667 6 20 214 6 20 315 279 8 33 404 213.6667 8 33 404 213.6667 6 20 214 6 20 315 279
@@ -3993,8 +3993,8 @@ and (v1.max_c<500) and (v3.a=t2.a) and (v2.max_c>300);
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 9 Using where 1 PRIMARY t2 ALL NULL NULL NULL NULL 9 Using where
1 PRIMARY <derived4> ref key0 key0 5 test.t2.a 2 Using where 1 PRIMARY <derived4> ref key0 key0 5 test.t2.a 2 Using where
1 PRIMARY <derived3> ALL NULL NULL NULL NULL 20 Using where; Using join buffer (flat, BNL join) 1 PRIMARY <derived2> ALL NULL NULL NULL NULL 20 Using where; Using join buffer (flat, BNL join)
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 20 Using where; Using join buffer (incremental, BNL join) 1 PRIMARY <derived3> ALL NULL NULL NULL NULL 20 Using where; Using join buffer (incremental, BNL join)
4 DERIVED t1 ALL NULL NULL NULL NULL 20 Using where; Using temporary; Using filesort 4 DERIVED t1 ALL NULL NULL NULL NULL 20 Using where; Using temporary; Using filesort
3 DERIVED t1 ALL NULL NULL NULL NULL 20 Using where; Using temporary; Using filesort 3 DERIVED t1 ALL NULL NULL NULL NULL 20 Using where; Using temporary; Using filesort
2 DERIVED t1 ALL NULL NULL NULL NULL 20 Using temporary; Using filesort 2 DERIVED t1 ALL NULL NULL NULL NULL 20 Using temporary; Using filesort
@@ -4051,6 +4051,41 @@ EXPLAIN
} }
} }
}, },
{
"block-nl-join": {
"table": {
"table_name": "<derived2>",
"access_type": "ALL",
"rows": 20,
"filtered": 100,
"attached_condition": "v1.max_c < 500"
},
"buffer_type": "flat",
"buffer_size": "715",
"join_type": "BNL",
"materialized": {
"query_block": {
"select_id": 2,
"having_condition": "max_c < 707 and max_c < 500",
"filesort": {
"sort_key": "t1.a, t1.b",
"temporary_table": {
"nested_loop": [
{
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows": 20,
"filtered": 100
}
}
]
}
}
}
}
}
},
{ {
"block-nl-join": { "block-nl-join": {
"table": { "table": {
@@ -4060,9 +4095,10 @@ EXPLAIN
"filtered": 100, "filtered": 100,
"attached_condition": "v2.max_c > 300" "attached_condition": "v2.max_c > 300"
}, },
"buffer_type": "flat", "buffer_type": "incremental",
"buffer_size": "715", "buffer_size": "9Kb",
"join_type": "BNL", "join_type": "BNL",
"attached_condition": "v2.a = v1.a or v1.a = t2.a",
"materialized": { "materialized": {
"query_block": { "query_block": {
"select_id": 3, "select_id": 3,
@@ -4086,42 +4122,6 @@ EXPLAIN
} }
} }
} }
},
{
"block-nl-join": {
"table": {
"table_name": "<derived2>",
"access_type": "ALL",
"rows": 20,
"filtered": 100,
"attached_condition": "v1.max_c < 500"
},
"buffer_type": "incremental",
"buffer_size": "9Kb",
"join_type": "BNL",
"attached_condition": "v1.a = v2.a or v1.a = t2.a",
"materialized": {
"query_block": {
"select_id": 2,
"having_condition": "max_c < 707 and max_c < 500",
"filesort": {
"sort_key": "t1.a, t1.b",
"temporary_table": {
"nested_loop": [
{
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows": 20,
"filtered": 100
}
}
]
}
}
}
}
}
} }
] ]
} }
@@ -11120,11 +11120,24 @@ EXPLAIN
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
"table_name": "<derived2>", "table_name": "t1",
"access_type": "ALL", "access_type": "ALL",
"rows": 2, "rows": 2,
"filtered": 100, "filtered": 100,
"attached_condition": "1 in (0,dt1.a)", "attached_condition": "1 in (0,t1.a) and t1.a is not null"
}
},
{
"table": {
"table_name": "<derived2>",
"access_type": "ref",
"possible_keys": ["key0"],
"key": "key0",
"key_length": "5",
"used_key_parts": ["a"],
"ref": ["test.t1.a"],
"rows": 2,
"filtered": 100,
"materialized": { "materialized": {
"query_block": { "query_block": {
"select_id": 2, "select_id": 2,
@@ -11147,20 +11160,6 @@ EXPLAIN
} }
} }
} }
},
{
"block-nl-join": {
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows": 2,
"filtered": 100
},
"buffer_type": "flat",
"buffer_size": "65",
"join_type": "BNL",
"attached_condition": "t1.a = dt1.a"
}
} }
] ]
} }
@@ -11189,11 +11188,24 @@ EXPLAIN
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
"table_name": "<derived2>", "table_name": "t1",
"access_type": "ALL", "access_type": "ALL",
"rows": 2, "rows": 2,
"filtered": 100, "filtered": 100,
"attached_condition": "dt.a in (1,dt.a)", "attached_condition": "t1.a in (1,t1.a) and t1.a is not null"
}
},
{
"table": {
"table_name": "<derived2>",
"access_type": "ref",
"possible_keys": ["key0"],
"key": "key0",
"key_length": "5",
"used_key_parts": ["a"],
"ref": ["test.t1.a"],
"rows": 2,
"filtered": 100,
"materialized": { "materialized": {
"query_block": { "query_block": {
"select_id": 2, "select_id": 2,
@@ -11216,20 +11228,6 @@ EXPLAIN
} }
} }
} }
},
{
"block-nl-join": {
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows": 2,
"filtered": 100
},
"buffer_type": "flat",
"buffer_size": "119",
"join_type": "BNL",
"attached_condition": "t1.a = dt.a"
}
} }
] ]
} }
@@ -11920,11 +11918,24 @@ EXPLAIN
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
"table_name": "<derived3>", "table_name": "t1",
"access_type": "ALL", "access_type": "ALL",
"rows": 2, "rows": 2,
"filtered": 100, "filtered": 100,
"attached_condition": "t.f2 < 2", "attached_condition": "t1.f2 < 2 and t1.f2 is not null"
}
},
{
"table": {
"table_name": "<derived3>",
"access_type": "ref",
"possible_keys": ["key0"],
"key": "key0",
"key_length": "5",
"used_key_parts": ["f2"],
"ref": ["test.t1.f2"],
"rows": 2,
"filtered": 100,
"materialized": { "materialized": {
"query_block": { "query_block": {
"select_id": 3, "select_id": 3,
@@ -11942,15 +11953,6 @@ EXPLAIN
} }
} }
} }
},
{
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows": 2,
"filtered": 100,
"attached_condition": "t1.f2 = t.f2"
}
} }
] ]
} }
@@ -11971,11 +11973,24 @@ EXPLAIN
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
"table_name": "<derived3>", "table_name": "t1",
"access_type": "ALL", "access_type": "ALL",
"rows": 2, "rows": 2,
"filtered": 100, "filtered": 100,
"attached_condition": "t.f2 < 2", "attached_condition": "t1.f2 < 2 and t1.f2 is not null"
}
},
{
"table": {
"table_name": "<derived3>",
"access_type": "ref",
"possible_keys": ["key0"],
"key": "key0",
"key_length": "5",
"used_key_parts": ["f2"],
"ref": ["test.t1.f2"],
"rows": 1,
"filtered": 100,
"materialized": { "materialized": {
"query_block": { "query_block": {
"select_id": 3, "select_id": 3,
@@ -11995,20 +12010,6 @@ EXPLAIN
} }
} }
} }
},
{
"block-nl-join": {
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows": 2,
"filtered": 100
},
"buffer_type": "flat",
"buffer_size": "65",
"join_type": "BNL",
"attached_condition": "t1.f2 = t.f2"
}
} }
] ]
} }
@@ -16484,8 +16485,8 @@ a b c a b c
3 21 500 3 21 231 3 21 500 3 21 231
explain select * from v1,t2 where (v1.b=t2.b) and (v1.a<4); explain select * from v1,t2 where (v1.b=t2.b) and (v1.a<4);
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 3 Using where 1 PRIMARY t2 ALL NULL NULL NULL NULL 9 Using where
1 PRIMARY t2 ALL NULL NULL NULL NULL 9 Using where; Using join buffer (flat, BNL join) 1 PRIMARY <derived2> ref key0 key0 5 test.t2.b 2 Using where
2 DERIVED t3 range i1 i1 5 NULL 2 Using index condition 2 DERIVED t3 range i1 i1 5 NULL 2 Using index condition
3 UNION t3 range i1 i1 5 NULL 1 Using index condition 3 UNION t3 range i1 i1 5 NULL 1 Using index condition
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL
@@ -16497,9 +16498,23 @@ EXPLAIN
"nested_loop": [ "nested_loop": [
{ {
"table": { "table": {
"table_name": "<derived2>", "table_name": "t2",
"access_type": "ALL", "access_type": "ALL",
"rows": 3, "rows": 9,
"filtered": 100,
"attached_condition": "t2.b is not null"
}
},
{
"table": {
"table_name": "<derived2>",
"access_type": "ref",
"possible_keys": ["key0"],
"key": "key0",
"key_length": "5",
"used_key_parts": ["b"],
"ref": ["test.t2.b"],
"rows": 2,
"filtered": 100, "filtered": 100,
"attached_condition": "v1.a < 4", "attached_condition": "v1.a < 4",
"materialized": { "materialized": {
@@ -16554,20 +16569,6 @@ EXPLAIN
} }
} }
} }
},
{
"block-nl-join": {
"table": {
"table_name": "t2",
"access_type": "ALL",
"rows": 9,
"filtered": 100
},
"buffer_type": "flat",
"buffer_size": "173",
"join_type": "BNL",
"attached_condition": "t2.b = v1.b"
}
} }
] ]
} }

View File

@@ -3,7 +3,7 @@ call mtr.add_suppression("mysql.user");
flush tables; flush tables;
flush privileges; flush privileges;
Warnings: Warnings:
Error 145 Table './mysql/user' is marked as crashed and should be repaired Error 145 Got error '145 "Table was marked as crashed and should be repaired"' for './mysql/user'
Warning 1034 12544 clients are using or haven't closed the table properly Warning 1034 12544 clients are using or haven't closed the table properly
Note 1034 Table is fixed Note 1034 Table is fixed
# switching back from mysql.user to mysql.global_priv # switching back from mysql.user to mysql.global_priv

View File

@@ -274,12 +274,16 @@ delete from mysql.help_relation where help_keyword_id=@keyword1_id and help_topi
delete from mysql.help_relation where help_keyword_id=@keyword2_id and help_topic_id=@topic1_id; delete from mysql.help_relation where help_keyword_id=@keyword2_id and help_topic_id=@topic1_id;
delete from mysql.help_relation where help_keyword_id=@keyword3_id and help_topic_id=@topic3_id; delete from mysql.help_relation where help_keyword_id=@keyword3_id and help_topic_id=@topic3_id;
delete from mysql.help_relation where help_keyword_id=@keyword3_id and help_topic_id=@topic4_id; delete from mysql.help_relation where help_keyword_id=@keyword3_id and help_topic_id=@topic4_id;
End of 4.1 tests. flush tables;
DROP TABLE IF EXISTS t1; #
# End of 4.1 tests.
#
CREATE TABLE t1 (i INT); CREATE TABLE t1 (i INT);
LOCK TABLES t1 WRITE; LOCK TABLES t1 WRITE;
HELP no_such_topic; HELP no_such_topic;
name is_it_category name is_it_category
UNLOCK TABLES; UNLOCK TABLES;
DROP TABLE t1; DROP TABLE t1;
End of 5.1 tests. #
# End of 5.1 tests.
#

View File

@@ -122,25 +122,22 @@ delete from mysql.help_relation where help_keyword_id=@keyword2_id and help_topi
delete from mysql.help_relation where help_keyword_id=@keyword3_id and help_topic_id=@topic3_id; delete from mysql.help_relation where help_keyword_id=@keyword3_id and help_topic_id=@topic3_id;
delete from mysql.help_relation where help_keyword_id=@keyword3_id and help_topic_id=@topic4_id; delete from mysql.help_relation where help_keyword_id=@keyword3_id and help_topic_id=@topic4_id;
--echo End of 4.1 tests. flush tables;
--echo #
--echo # End of 4.1 tests.
--echo #
# #
# Test that we can use HELP even under LOCK TABLES. See bug#9953: # Test that we can use HELP even under LOCK TABLES. See bug#9953:
# CONVERT_TZ requires mysql.time_zone_name to be locked. # CONVERT_TZ requires mysql.time_zone_name to be locked.
# #
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
CREATE TABLE t1 (i INT); CREATE TABLE t1 (i INT);
LOCK TABLES t1 WRITE; LOCK TABLES t1 WRITE;
HELP no_such_topic; HELP no_such_topic;
UNLOCK TABLES; UNLOCK TABLES;
DROP TABLE t1; DROP TABLE t1;
--echo #
--echo End of 5.1 tests. --echo # End of 5.1 tests.
--echo #

View File

@@ -916,11 +916,11 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where 1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where 1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where 1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where
1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where 1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
Warnings: Warnings:
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(`test`.`t3`.`a` = 1 and `test`.`t4`.`b` = `test`.`t2`.`b` and `test`.`t2`.`a` > 0) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(`test`.`t8`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` < 10)) on(`test`.`t7`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` >= 2)) on((`test`.`t3`.`b` = 2 or `test`.`t3`.`c` is null) and (`test`.`t6`.`b` = 2 or `test`.`t6`.`c` is null) and (`test`.`t5`.`b` = `test`.`t0`.`b` or `test`.`t3`.`c` is null or `test`.`t6`.`c` is null or `test`.`t8`.`c` is null) and `test`.`t1`.`a` <> 2) join `test`.`t9` where `test`.`t0`.`a` = 1 and `test`.`t1`.`b` = `test`.`t0`.`b` and `test`.`t9`.`a` = 1 and (`test`.`t2`.`a` >= 4 or `test`.`t2`.`c` is null) and (`test`.`t3`.`a` < 5 or `test`.`t3`.`c` is null) and (`test`.`t3`.`b` = `test`.`t4`.`b` or `test`.`t3`.`c` is null or `test`.`t4`.`c` is null) and (`test`.`t5`.`a` >= 2 or `test`.`t5`.`c` is null) and (`test`.`t6`.`a` >= 4 or `test`.`t6`.`c` is null) and (`test`.`t7`.`a` <= 2 or `test`.`t7`.`c` is null) and (`test`.`t8`.`a` < 1 or `test`.`t8`.`c` is null) and (`test`.`t9`.`b` = `test`.`t8`.`b` or `test`.`t8`.`c` is null) Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(`test`.`t3`.`a` = 1 and `test`.`t4`.`b` = `test`.`t2`.`b` and `test`.`t2`.`a` > 0) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(`test`.`t8`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` < 10)) on(`test`.`t7`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` >= 2)) on((`test`.`t3`.`b` = 2 or `test`.`t3`.`c` is null) and (`test`.`t6`.`b` = 2 or `test`.`t6`.`c` is null) and (`test`.`t5`.`b` = `test`.`t0`.`b` or `test`.`t3`.`c` is null or `test`.`t6`.`c` is null or `test`.`t8`.`c` is null) and `test`.`t1`.`a` <> 2) join `test`.`t9` where `test`.`t0`.`a` = 1 and `test`.`t1`.`b` = `test`.`t0`.`b` and `test`.`t9`.`a` = 1 and (`test`.`t2`.`a` >= 4 or `test`.`t2`.`c` is null) and (`test`.`t3`.`a` < 5 or `test`.`t3`.`c` is null) and (`test`.`t4`.`b` = `test`.`t3`.`b` or `test`.`t3`.`c` is null or `test`.`t4`.`c` is null) and (`test`.`t5`.`a` >= 2 or `test`.`t5`.`c` is null) and (`test`.`t6`.`a` >= 4 or `test`.`t6`.`c` is null) and (`test`.`t7`.`a` <= 2 or `test`.`t7`.`c` is null) and (`test`.`t8`.`a` < 1 or `test`.`t8`.`c` is null) and (`test`.`t9`.`b` = `test`.`t8`.`b` or `test`.`t8`.`c` is null)
INSERT INTO t4 VALUES (-3,12,0), (-4,13,0), (-1,11,0), (-3,11,0), (-5,15,0); INSERT INTO t4 VALUES (-3,12,0), (-4,13,0), (-1,11,0), (-3,11,0), (-5,15,0);
INSERT INTO t5 VALUES (-3,11,0), (-2,12,0), (-3,13,0), (-4,12,0); INSERT INTO t5 VALUES (-3,11,0), (-2,12,0), (-3,13,0), (-4,12,0);
CREATE INDEX idx_b ON t4(b); CREATE INDEX idx_b ON t4(b);
@@ -1476,9 +1476,9 @@ join t5 on t5.a=t3.b) on t3.a=t2.b;
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL NULL NULL NULL NULL X 1 SIMPLE t2 ALL NULL NULL NULL NULL X
1 SIMPLE t3 ref a a 5 test.t2.b X Using where 1 SIMPLE t3 ref a a 5 test.t2.b X Using where
1 SIMPLE t5 ref a a 5 test.t3.b X 1 SIMPLE t4 ref a a 5 test.t3.b X Using where
1 SIMPLE t4 ref a a 5 test.t5.a X Using where
1 SIMPLE t6 ref a a 5 test.t4.b X 1 SIMPLE t6 ref a a 5 test.t4.b X
1 SIMPLE t5 ref a a 5 test.t3.b X
drop table t0, t1, t2, t3, t4, t5, t6, t7; drop table t0, t1, t2, t3, t4, t5, t6, t7;
create table t1 (a int); create table t1 (a int);
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);

View File

@@ -925,11 +925,11 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join) 1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
1 SIMPLE t8 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join) 1 SIMPLE t8 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where; Using join buffer (incremental, BNL join) 1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where; Using join buffer (incremental, BNL join)
1 SIMPLE t4 hash_ALL NULL #hash#$hj 5 test.t2.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join) 1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
1 SIMPLE t4 hash_ALL NULL #hash#$hj 5 test.t2.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join) 1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
Warnings: Warnings:
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(`test`.`t3`.`a` = 1 and `test`.`t4`.`b` = `test`.`t2`.`b` and `test`.`t2`.`a` > 0 and `test`.`t2`.`b` is not null) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(`test`.`t8`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` < 10 and `test`.`t5`.`b` is not null)) on(`test`.`t7`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` >= 2 and `test`.`t5`.`b` is not null)) on((`test`.`t3`.`b` = 2 or `test`.`t3`.`c` is null) and (`test`.`t6`.`b` = 2 or `test`.`t6`.`c` is null) and (`test`.`t5`.`b` = `test`.`t0`.`b` or `test`.`t3`.`c` is null or `test`.`t6`.`c` is null or `test`.`t8`.`c` is null) and `test`.`t1`.`a` <> 2) join `test`.`t9` where `test`.`t0`.`a` = 1 and `test`.`t1`.`b` = `test`.`t0`.`b` and `test`.`t9`.`a` = 1 and (`test`.`t2`.`a` >= 4 or `test`.`t2`.`c` is null) and (`test`.`t3`.`a` < 5 or `test`.`t3`.`c` is null) and (`test`.`t3`.`b` = `test`.`t4`.`b` or `test`.`t3`.`c` is null or `test`.`t4`.`c` is null) and (`test`.`t5`.`a` >= 2 or `test`.`t5`.`c` is null) and (`test`.`t6`.`a` >= 4 or `test`.`t6`.`c` is null) and (`test`.`t7`.`a` <= 2 or `test`.`t7`.`c` is null) and (`test`.`t8`.`a` < 1 or `test`.`t8`.`c` is null) and (`test`.`t9`.`b` = `test`.`t8`.`b` or `test`.`t8`.`c` is null) Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(`test`.`t3`.`a` = 1 and `test`.`t4`.`b` = `test`.`t2`.`b` and `test`.`t2`.`a` > 0 and `test`.`t2`.`b` is not null) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(`test`.`t8`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` < 10 and `test`.`t5`.`b` is not null)) on(`test`.`t7`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` >= 2 and `test`.`t5`.`b` is not null)) on((`test`.`t3`.`b` = 2 or `test`.`t3`.`c` is null) and (`test`.`t6`.`b` = 2 or `test`.`t6`.`c` is null) and (`test`.`t5`.`b` = `test`.`t0`.`b` or `test`.`t3`.`c` is null or `test`.`t6`.`c` is null or `test`.`t8`.`c` is null) and `test`.`t1`.`a` <> 2) join `test`.`t9` where `test`.`t0`.`a` = 1 and `test`.`t1`.`b` = `test`.`t0`.`b` and `test`.`t9`.`a` = 1 and (`test`.`t2`.`a` >= 4 or `test`.`t2`.`c` is null) and (`test`.`t3`.`a` < 5 or `test`.`t3`.`c` is null) and (`test`.`t4`.`b` = `test`.`t3`.`b` or `test`.`t3`.`c` is null or `test`.`t4`.`c` is null) and (`test`.`t5`.`a` >= 2 or `test`.`t5`.`c` is null) and (`test`.`t6`.`a` >= 4 or `test`.`t6`.`c` is null) and (`test`.`t7`.`a` <= 2 or `test`.`t7`.`c` is null) and (`test`.`t8`.`a` < 1 or `test`.`t8`.`c` is null) and (`test`.`t9`.`b` = `test`.`t8`.`b` or `test`.`t8`.`c` is null)
INSERT INTO t4 VALUES (-3,12,0), (-4,13,0), (-1,11,0), (-3,11,0), (-5,15,0); INSERT INTO t4 VALUES (-3,12,0), (-4,13,0), (-1,11,0), (-3,11,0), (-5,15,0);
INSERT INTO t5 VALUES (-3,11,0), (-2,12,0), (-3,13,0), (-4,12,0); INSERT INTO t5 VALUES (-3,11,0), (-2,12,0), (-3,13,0), (-4,12,0);
CREATE INDEX idx_b ON t4(b); CREATE INDEX idx_b ON t4(b);
@@ -1027,8 +1027,8 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join) 1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan 1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
1 SIMPLE t5 ALL idx_b NULL NULL NULL 7 100.00 Using where; Using join buffer (incremental, BNL join) 1 SIMPLE t5 ALL idx_b NULL NULL NULL 7 100.00 Using where; Using join buffer (incremental, BNL join)
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
1 SIMPLE t7 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join) 1 SIMPLE t7 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan 1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
Warnings: Warnings:
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(`test`.`t3`.`a` = 1 and `test`.`t4`.`b` = `test`.`t2`.`b` and `test`.`t2`.`a` > 0 and `test`.`t4`.`a` > 0 and `test`.`t2`.`b` is not null) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(`test`.`t8`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` < 10 and `test`.`t8`.`a` >= 0 and `test`.`t5`.`b` is not null)) on(`test`.`t7`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` >= 2 and `test`.`t5`.`a` > 0 and `test`.`t5`.`b` is not null)) on((`test`.`t3`.`b` = 2 or `test`.`t3`.`c` is null) and (`test`.`t6`.`b` = 2 or `test`.`t6`.`c` is null) and (`test`.`t5`.`b` = `test`.`t0`.`b` or `test`.`t3`.`c` is null or `test`.`t6`.`c` is null or `test`.`t8`.`c` is null) and `test`.`t1`.`a` <> 2) join `test`.`t9` where `test`.`t0`.`a` = 1 and `test`.`t1`.`b` = `test`.`t0`.`b` and `test`.`t9`.`a` = 1 and (`test`.`t2`.`a` >= 4 or `test`.`t2`.`c` is null) and (`test`.`t3`.`a` < 5 or `test`.`t3`.`c` is null) and (`test`.`t4`.`b` = `test`.`t3`.`b` or `test`.`t3`.`c` is null or `test`.`t4`.`c` is null) and (`test`.`t5`.`a` >= 2 or `test`.`t5`.`c` is null) and (`test`.`t6`.`a` >= 4 or `test`.`t6`.`c` is null) and (`test`.`t7`.`a` <= 2 or `test`.`t7`.`c` is null) and (`test`.`t8`.`a` < 1 or `test`.`t8`.`c` is null) and (`test`.`t8`.`b` = `test`.`t9`.`b` or `test`.`t8`.`c` is null) Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(`test`.`t3`.`a` = 1 and `test`.`t4`.`b` = `test`.`t2`.`b` and `test`.`t2`.`a` > 0 and `test`.`t4`.`a` > 0 and `test`.`t2`.`b` is not null) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(`test`.`t8`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` < 10 and `test`.`t8`.`a` >= 0 and `test`.`t5`.`b` is not null)) on(`test`.`t7`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` >= 2 and `test`.`t5`.`a` > 0 and `test`.`t5`.`b` is not null)) on((`test`.`t3`.`b` = 2 or `test`.`t3`.`c` is null) and (`test`.`t6`.`b` = 2 or `test`.`t6`.`c` is null) and (`test`.`t5`.`b` = `test`.`t0`.`b` or `test`.`t3`.`c` is null or `test`.`t6`.`c` is null or `test`.`t8`.`c` is null) and `test`.`t1`.`a` <> 2) join `test`.`t9` where `test`.`t0`.`a` = 1 and `test`.`t1`.`b` = `test`.`t0`.`b` and `test`.`t9`.`a` = 1 and (`test`.`t2`.`a` >= 4 or `test`.`t2`.`c` is null) and (`test`.`t3`.`a` < 5 or `test`.`t3`.`c` is null) and (`test`.`t4`.`b` = `test`.`t3`.`b` or `test`.`t3`.`c` is null or `test`.`t4`.`c` is null) and (`test`.`t5`.`a` >= 2 or `test`.`t5`.`c` is null) and (`test`.`t6`.`a` >= 4 or `test`.`t6`.`c` is null) and (`test`.`t7`.`a` <= 2 or `test`.`t7`.`c` is null) and (`test`.`t8`.`a` < 1 or `test`.`t8`.`c` is null) and (`test`.`t8`.`b` = `test`.`t9`.`b` or `test`.`t8`.`c` is null)
@@ -1485,9 +1485,9 @@ join t5 on t5.a=t3.b) on t3.a=t2.b;
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL NULL NULL NULL NULL X 1 SIMPLE t2 ALL NULL NULL NULL NULL X
1 SIMPLE t3 ref a a 5 test.t2.b X Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan 1 SIMPLE t3 ref a a 5 test.t2.b X Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
1 SIMPLE t5 ref a a 5 test.t3.b X Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan 1 SIMPLE t4 ref a a 5 test.t3.b X Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
1 SIMPLE t4 ref a a 5 test.t5.a X Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
1 SIMPLE t6 ref a a 5 test.t4.b X Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan 1 SIMPLE t6 ref a a 5 test.t4.b X Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
1 SIMPLE t5 ref a a 5 test.t3.b X Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
drop table t0, t1, t2, t3, t4, t5, t6, t7; drop table t0, t1, t2, t3, t4, t5, t6, t7;
create table t1 (a int); create table t1 (a int);
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);

View File

@@ -633,4 +633,7 @@ drop table t1;
# #
# MDEV-15538 '-N' Produce html output wrong # MDEV-15538 '-N' Produce html output wrong
# #
<TABLE BORDER=1><TR><TD>1</TD></TR></TABLE> <TABLE BORDER=1><TR><TD>1</TD></TR></TABLE>
WARNING: option '--enable-cleartext-plugin' is obsolete.
1
1

View File

@@ -708,3 +708,11 @@ drop table t1;
--echo # MDEV-15538 '-N' Produce html output wrong --echo # MDEV-15538 '-N' Produce html output wrong
--echo # --echo #
--exec $MYSQL -NHe "select 1 as a" --exec $MYSQL -NHe "select 1 as a"
#
# Test obsolete option --enable-cleartext-plugin
# This should proceed with a warning
#
--echo
--exec $MYSQL test --enable-cleartext-plugin -e "select 1"

View File

@@ -17,7 +17,6 @@ mysqld is alive
# Creating an empty file 'cnf_file' # Creating an empty file 'cnf_file'
# Using --defaults-extra-file option with 'cnf_file'. # Using --defaults-extra-file option with 'cnf_file'.
mysqld is alive mysqld is alive
# Kill the server
# restart: --ssl-key=MYSQLTEST_VARDIR/tmp/ssl_key.pem --ssl-cert=MYSQLTEST_VARDIR/tmp/ssl_cert.pem # restart: --ssl-key=MYSQLTEST_VARDIR/tmp/ssl_key.pem --ssl-cert=MYSQLTEST_VARDIR/tmp/ssl_cert.pem
connect ssl_con,localhost,root,,,,,SSL; connect ssl_con,localhost,root,,,,,SSL;
SELECT VARIABLE_VALUE INTO @ssl_not_after FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_server_not_after'; SELECT VARIABLE_VALUE INTO @ssl_not_after FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_server_not_after';
@@ -26,5 +25,4 @@ SELECT VARIABLE_VALUE INTO @ssl_not_after FROM INFORMATION_SCHEMA.SESSION_STATUS
Result Result
OK OK
# Cleanup # Cleanup
# Kill the server
# restart # restart

View File

@@ -56,7 +56,7 @@ EOF
# MDEV-19168 Reload SSL certificate # MDEV-19168 Reload SSL certificate
# This test reloads server SSL certs ./mysqladmin flush-ssl, and checks that new SSL # This test reloads server SSL certs ./mysqladmin flush-ssl, and checks that new SSL
# connection use new certificate. # connection use new certificate.
# SWtatus variable Ssl_server_not_after is used to tell the old certificate from new. # Status variable Ssl_server_not_after is used to tell the old certificate from new.
# #
source include/have_ssl_communication.inc; source include/have_ssl_communication.inc;
@@ -72,8 +72,7 @@ copy_file $MYSQL_TEST_DIR/std_data/server-key.pem $ssl_key;
copy_file $MYSQL_TEST_DIR/std_data/server-cert.pem $ssl_cert; copy_file $MYSQL_TEST_DIR/std_data/server-cert.pem $ssl_cert;
let $restart_parameters=--ssl-key=$ssl_key --ssl-cert=$ssl_cert; let $restart_parameters=--ssl-key=$ssl_key --ssl-cert=$ssl_cert;
--source include/kill_mysqld.inc --source include/restart_mysqld.inc
--source include/start_mysqld.inc
connect ssl_con,localhost,root,,,,,SSL; connect ssl_con,localhost,root,,,,,SSL;
SELECT VARIABLE_VALUE INTO @ssl_not_after FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_server_not_after'; SELECT VARIABLE_VALUE INTO @ssl_not_after FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_server_not_after';
@@ -94,7 +93,6 @@ exec $MYSQL --ssl -e "SELECT IF(VARIABLE_VALUE <> '$ssl_not_after', 'OK', 'FAI
--echo # Cleanup --echo # Cleanup
remove_file $ssl_cert; remove_file $ssl_cert;
remove_file $ssl_key; remove_file $ssl_key;
# restart with usuall SSL # restart with usual SSL
let $restart_parameters=; let $restart_parameters=;
--source include/kill_mysqld.inc --source include/restart_mysqld.inc
--source include/start_mysqld.inc

View File

@@ -5515,6 +5515,11 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"rows_for_plan": 729, "rows_for_plan": 729,
"cost_for_plan": 451.8615234, "cost_for_plan": 451.8615234,
"semijoin_strategy_choice": [ "semijoin_strategy_choice": [
{
"strategy": "FirstMatch",
"records": 27,
"read_time": 665.225293
},
{ {
"strategy": "DuplicateWeedout", "strategy": "DuplicateWeedout",
"records": 27, "records": 27,
@@ -5665,44 +5670,6 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"cost_for_plan": 172.4410156, "cost_for_plan": 172.4410156,
"semijoin_strategy_choice": [], "semijoin_strategy_choice": [],
"rest_of_plan": [ "rest_of_plan": [
{
"plan_prefix": [
"t_outer_1",
"t_inner_1",
"t_outer_2",
"t_inner_3"
],
"table": "t_inner_4",
"best_access_path": {
"considered_access_paths": [
{
"access_type": "scan",
"resulting_rows": 3,
"cost": 2.005126953,
"chosen": true
}
],
"chosen_access_method": {
"type": "scan",
"records": 3,
"cost": 2.005126953,
"uses_join_buffering": true
}
},
"rows_for_plan": 2187,
"cost_for_plan": 611.8461426,
"semijoin_strategy_choice": [
{
"strategy": "FirstMatch",
"records": 81,
"read_time": 2232.809033
},
{
"chosen_strategy": "FirstMatch"
}
],
"pruned_by_cost": true
},
{ {
"plan_prefix": [ "plan_prefix": [
"t_outer_1", "t_outer_1",
@@ -5731,6 +5698,35 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"cost_for_plan": 1486.656396, "cost_for_plan": 1486.656396,
"semijoin_strategy_choice": [], "semijoin_strategy_choice": [],
"pruned_by_cost": true "pruned_by_cost": true
},
{
"plan_prefix": [
"t_outer_1",
"t_inner_1",
"t_outer_2",
"t_inner_3"
],
"table": "t_inner_4",
"best_access_path": {
"considered_access_paths": [
{
"access_type": "scan",
"resulting_rows": 3,
"cost": 2.005126953,
"chosen": true
}
],
"chosen_access_method": {
"type": "scan",
"records": 3,
"cost": 2.005126953,
"uses_join_buffering": true
}
},
"rows_for_plan": 2187,
"cost_for_plan": 611.8461426,
"semijoin_strategy_choice": [],
"pruned_by_cost": true
} }
] ]
} }
@@ -5761,7 +5757,7 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"rest_of_plan": [ "rest_of_plan": [
{ {
"plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_4"], "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_4"],
"table": "t_outer_2", "table": "t_inner_2",
"best_access_path": { "best_access_path": {
"considered_access_paths": [ "considered_access_paths": [
{ {
@@ -5787,9 +5783,9 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"t_outer_1", "t_outer_1",
"t_inner_1", "t_inner_1",
"t_inner_4", "t_inner_4",
"t_outer_2" "t_inner_2"
], ],
"table": "t_inner_2", "table": "t_outer_2",
"best_access_path": { "best_access_path": {
"considered_access_paths": [ "considered_access_paths": [
{ {
@@ -5816,7 +5812,7 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"t_outer_1", "t_outer_1",
"t_inner_1", "t_inner_1",
"t_inner_4", "t_inner_4",
"t_outer_2" "t_inner_2"
], ],
"table": "t_inner_3", "table": "t_inner_3",
"best_access_path": { "best_access_path": {
@@ -5844,7 +5840,7 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
}, },
{ {
"plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_4"], "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_4"],
"table": "t_inner_2", "table": "t_outer_2",
"best_access_path": { "best_access_path": {
"considered_access_paths": [ "considered_access_paths": [
{ {
@@ -5917,7 +5913,7 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"rest_of_plan": [ "rest_of_plan": [
{ {
"plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_3"], "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_3"],
"table": "t_outer_2", "table": "t_inner_2",
"best_access_path": { "best_access_path": {
"considered_access_paths": [ "considered_access_paths": [
{ {
@@ -5943,7 +5939,36 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"t_outer_1", "t_outer_1",
"t_inner_1", "t_inner_1",
"t_inner_3", "t_inner_3",
"t_outer_2" "t_inner_2"
],
"table": "t_outer_2",
"best_access_path": {
"considered_access_paths": [
{
"access_type": "scan",
"resulting_rows": 9,
"cost": 2.015380859,
"chosen": true
}
],
"chosen_access_method": {
"type": "scan",
"records": 9,
"cost": 2.015380859,
"uses_join_buffering": true
}
},
"rows_for_plan": 6561,
"cost_for_plan": 1486.656396,
"semijoin_strategy_choice": [],
"pruned_by_cost": true
},
{
"plan_prefix": [
"t_outer_1",
"t_inner_1",
"t_inner_3",
"t_inner_2"
], ],
"table": "t_inner_4", "table": "t_inner_4",
"best_access_path": { "best_access_path": {
@@ -5966,38 +5991,33 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"cost_for_plan": 611.8461426, "cost_for_plan": 611.8461426,
"semijoin_strategy_choice": [], "semijoin_strategy_choice": [],
"pruned_by_cost": true "pruned_by_cost": true
},
{
"plan_prefix": [
"t_outer_1",
"t_inner_1",
"t_inner_3",
"t_outer_2"
],
"table": "t_inner_2",
"best_access_path": {
"considered_access_paths": [
{
"access_type": "scan",
"resulting_rows": 9,
"cost": 2.015380859,
"chosen": true
}
],
"chosen_access_method": {
"type": "scan",
"records": 9,
"cost": 2.015380859,
"uses_join_buffering": true
}
},
"rows_for_plan": 6561,
"cost_for_plan": 1486.656396,
"semijoin_strategy_choice": [],
"pruned_by_cost": true
} }
] ]
}, },
{
"plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_3"],
"table": "t_outer_2",
"best_access_path": {
"considered_access_paths": [
{
"access_type": "scan",
"resulting_rows": 9,
"cost": 2.015380859,
"chosen": true
}
],
"chosen_access_method": {
"type": "scan",
"records": 9,
"cost": 2.015380859,
"uses_join_buffering": true
}
},
"rows_for_plan": 729,
"cost_for_plan": 172.4410156,
"semijoin_strategy_choice": [],
"pruned_by_heuristic": true
},
{ {
"plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_3"], "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_3"],
"table": "t_inner_4", "table": "t_inner_4",
@@ -6028,7 +6048,7 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"t_inner_3", "t_inner_3",
"t_inner_4" "t_inner_4"
], ],
"table": "t_outer_2", "table": "t_inner_2",
"best_access_path": { "best_access_path": {
"considered_access_paths": [ "considered_access_paths": [
{ {
@@ -6057,7 +6077,7 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"t_inner_3", "t_inner_3",
"t_inner_4" "t_inner_4"
], ],
"table": "t_inner_2", "table": "t_outer_2",
"best_access_path": { "best_access_path": {
"considered_access_paths": [ "considered_access_paths": [
{ {
@@ -6080,30 +6100,6 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"pruned_by_cost": true "pruned_by_cost": true
} }
] ]
},
{
"plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_3"],
"table": "t_inner_2",
"best_access_path": {
"considered_access_paths": [
{
"access_type": "scan",
"resulting_rows": 9,
"cost": 2.015380859,
"chosen": true
}
],
"chosen_access_method": {
"type": "scan",
"records": 9,
"cost": 2.015380859,
"uses_join_buffering": true
}
},
"rows_for_plan": 729,
"cost_for_plan": 172.4410156,
"semijoin_strategy_choice": [],
"pruned_by_heuristic": true
} }
] ]
} }

View File

@@ -6,7 +6,18 @@ drop table if exists t1, t2;
CREATE TABLE t1 (a int); CREATE TABLE t1 (a int);
CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1; CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1;
ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE v1; ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE v1;
ERROR 42000: Can't open table ERROR HY000: 'test.v1' is not of type 'BASE TABLE'
DROP VIEW v1;
DROP TABLE t1;
#
# MDEV-28599 EXCHANGE PARTITION on view causes ER_CHECK_NO_SUCH_TABLE instead of ER_WRONG_OBJECT
#
CREATE TABLE t1 (a int)
PARTITION BY HASH (a)
PARTITIONS 2;
CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1;
ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE v1;
ERROR HY000: 'test.v1' is not of type 'BASE TABLE'
DROP VIEW v1; DROP VIEW v1;
DROP TABLE t1; DROP TABLE t1;
# #

View File

@@ -16,7 +16,19 @@ let $MYSQLD_DATADIR= `SELECT @@datadir`;
--echo # --echo #
CREATE TABLE t1 (a int); CREATE TABLE t1 (a int);
CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1; CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1;
--error ER_CHECK_NO_SUCH_TABLE --error ER_WRONG_OBJECT
ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE v1;
DROP VIEW v1;
DROP TABLE t1;
--echo #
--echo # MDEV-28599 EXCHANGE PARTITION on view causes ER_CHECK_NO_SUCH_TABLE instead of ER_WRONG_OBJECT
--echo #
CREATE TABLE t1 (a int)
PARTITION BY HASH (a)
PARTITIONS 2;
CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1;
--error ER_WRONG_OBJECT
ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE v1; ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE v1;
DROP VIEW v1; DROP VIEW v1;
DROP TABLE t1; DROP TABLE t1;

View File

@@ -326,8 +326,8 @@ group by c_name, c_custkey, o_orderkey, o_orderdate, o_totalprice
order by o_totalprice desc, o_orderdate; order by o_totalprice desc, o_orderdate;
id select_type table type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY orders ALL PRIMARY,i_o_custkey NULL NULL NULL 1500 100.00 Using where; Using temporary; Using filesort 1 PRIMARY orders ALL PRIMARY,i_o_custkey NULL NULL NULL 1500 100.00 Using where; Using temporary; Using filesort
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 dbt3_s001.orders.o_orderkey 1 100.00
1 PRIMARY customer eq_ref PRIMARY PRIMARY 4 dbt3_s001.orders.o_custkey 1 100.00 1 PRIMARY customer eq_ref PRIMARY PRIMARY 4 dbt3_s001.orders.o_custkey 1 100.00
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 dbt3_s001.orders.o_orderkey 1 100.00
1 PRIMARY lineitem ref PRIMARY,i_l_orderkey,i_l_orderkey_quantity i_l_orderkey_quantity 4 dbt3_s001.orders.o_orderkey 4 100.00 Using index 1 PRIMARY lineitem ref PRIMARY,i_l_orderkey,i_l_orderkey_quantity i_l_orderkey_quantity 4 dbt3_s001.orders.o_orderkey 4 100.00 Using index
2 MATERIALIZED lineitem index NULL i_l_orderkey_quantity 13 NULL 6005 100.00 Using index 2 MATERIALIZED lineitem index NULL i_l_orderkey_quantity 13 NULL 6005 100.00 Using index
Warnings: Warnings:
@@ -360,8 +360,8 @@ group by c_name, c_custkey, o_orderkey, o_orderdate, o_totalprice
order by o_totalprice desc, o_orderdate; order by o_totalprice desc, o_orderdate;
id select_type table type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY orders ALL PRIMARY,i_o_custkey NULL NULL NULL 1500 100.00 Using where; Using temporary; Using filesort 1 PRIMARY orders ALL PRIMARY,i_o_custkey NULL NULL NULL 1500 100.00 Using where; Using temporary; Using filesort
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 dbt3_s001.orders.o_orderkey 1 100.00
1 PRIMARY customer eq_ref PRIMARY PRIMARY 4 dbt3_s001.orders.o_custkey 1 100.00 1 PRIMARY customer eq_ref PRIMARY PRIMARY 4 dbt3_s001.orders.o_custkey 1 100.00
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 dbt3_s001.orders.o_orderkey 1 100.00
1 PRIMARY lineitem ref PRIMARY,i_l_orderkey,i_l_orderkey_quantity i_l_orderkey_quantity 4 dbt3_s001.orders.o_orderkey 4 100.00 Using index 1 PRIMARY lineitem ref PRIMARY,i_l_orderkey,i_l_orderkey_quantity i_l_orderkey_quantity 4 dbt3_s001.orders.o_orderkey 4 100.00 Using index
2 MATERIALIZED lineitem index NULL i_l_orderkey_quantity 13 NULL 6005 100.00 Using index 2 MATERIALIZED lineitem index NULL i_l_orderkey_quantity 13 NULL 6005 100.00 Using index
Warnings: Warnings:

View File

@@ -331,8 +331,8 @@ group by c_name, c_custkey, o_orderkey, o_orderdate, o_totalprice
order by o_totalprice desc, o_orderdate; order by o_totalprice desc, o_orderdate;
id select_type table type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY orders ALL PRIMARY,i_o_custkey NULL NULL NULL 1500 100.00 Using where; Using temporary; Using filesort 1 PRIMARY orders ALL PRIMARY,i_o_custkey NULL NULL NULL 1500 100.00 Using where; Using temporary; Using filesort
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 dbt3_s001.orders.o_orderkey 1 100.00
1 PRIMARY customer eq_ref PRIMARY PRIMARY 4 dbt3_s001.orders.o_custkey 1 100.00 1 PRIMARY customer eq_ref PRIMARY PRIMARY 4 dbt3_s001.orders.o_custkey 1 100.00
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 dbt3_s001.orders.o_orderkey 1 100.00
1 PRIMARY lineitem ref PRIMARY,i_l_orderkey,i_l_orderkey_quantity i_l_orderkey_quantity 4 dbt3_s001.orders.o_orderkey 4 100.00 Using index 1 PRIMARY lineitem ref PRIMARY,i_l_orderkey,i_l_orderkey_quantity i_l_orderkey_quantity 4 dbt3_s001.orders.o_orderkey 4 100.00 Using index
2 MATERIALIZED lineitem index NULL PRIMARY 8 NULL 6005 100.00 2 MATERIALIZED lineitem index NULL PRIMARY 8 NULL 6005 100.00
Warnings: Warnings:
@@ -365,8 +365,8 @@ group by c_name, c_custkey, o_orderkey, o_orderdate, o_totalprice
order by o_totalprice desc, o_orderdate; order by o_totalprice desc, o_orderdate;
id select_type table type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY orders ALL PRIMARY,i_o_custkey NULL NULL NULL 1500 100.00 Using where; Using temporary; Using filesort 1 PRIMARY orders ALL PRIMARY,i_o_custkey NULL NULL NULL 1500 100.00 Using where; Using temporary; Using filesort
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 dbt3_s001.orders.o_orderkey 1 100.00
1 PRIMARY customer eq_ref PRIMARY PRIMARY 4 dbt3_s001.orders.o_custkey 1 100.00 1 PRIMARY customer eq_ref PRIMARY PRIMARY 4 dbt3_s001.orders.o_custkey 1 100.00
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 dbt3_s001.orders.o_orderkey 1 100.00
1 PRIMARY lineitem ref PRIMARY,i_l_orderkey,i_l_orderkey_quantity i_l_orderkey_quantity 4 dbt3_s001.orders.o_orderkey 4 100.00 Using index 1 PRIMARY lineitem ref PRIMARY,i_l_orderkey,i_l_orderkey_quantity i_l_orderkey_quantity 4 dbt3_s001.orders.o_orderkey 4 100.00 Using index
2 MATERIALIZED lineitem index NULL PRIMARY 8 NULL 6005 100.00 2 MATERIALIZED lineitem index NULL PRIMARY 8 NULL 6005 100.00
Warnings: Warnings:

View File

@@ -1160,8 +1160,8 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY A ALL NULL NULL NULL NULL 10 1 PRIMARY A ALL NULL NULL NULL NULL 10
1 PRIMARY B ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join) 1 PRIMARY B ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
1 PRIMARY E ALL NULL NULL NULL NULL 5 Start temporary; Using join buffer (flat, BNL join) 1 PRIMARY E ALL NULL NULL NULL NULL 5 Start temporary; Using join buffer (flat, BNL join)
1 PRIMARY D ALL NULL NULL NULL NULL 10 Using where; Using join buffer (flat, BNL join) 1 PRIMARY C ALL NULL NULL NULL NULL 10 Using where; Using join buffer (flat, BNL join)
1 PRIMARY C ALL NULL NULL NULL NULL 10 Using where; End temporary; Using join buffer (flat, BNL join) 1 PRIMARY D ALL NULL NULL NULL NULL 10 Using where; End temporary; Using join buffer (flat, BNL join)
flush status; flush status;
select count(*) from t0 A, t0 B, t0 C, t0 D where D.a in (select a from t1 E where a+1 < 10000 + A.a + B.a +C.a+D.a); select count(*) from t0 A, t0 B, t0 C, t0 D where D.a in (select a from t1 E where a+1 < 10000 + A.a + B.a +C.a+D.a);
count(*) count(*)

View File

@@ -1163,8 +1163,8 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY A ALL NULL NULL NULL NULL 10 1 PRIMARY A ALL NULL NULL NULL NULL 10
1 PRIMARY B ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join) 1 PRIMARY B ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
1 PRIMARY E ALL NULL NULL NULL NULL 5 Using where; Start temporary; Using join buffer (incremental, BNL join) 1 PRIMARY E ALL NULL NULL NULL NULL 5 Using where; Start temporary; Using join buffer (incremental, BNL join)
1 PRIMARY D hash_ALL NULL #hash#$hj 5 test.E.a 10 Using where; Using join buffer (incremental, BNLH join) 1 PRIMARY C ALL NULL NULL NULL NULL 10 Using where; Using join buffer (incremental, BNL join)
1 PRIMARY C ALL NULL NULL NULL NULL 10 Using where; End temporary; Using join buffer (incremental, BNL join) 1 PRIMARY D hash_ALL NULL #hash#$hj 5 test.E.a 10 Using where; End temporary; Using join buffer (incremental, BNLH join)
flush status; flush status;
select count(*) from t0 A, t0 B, t0 C, t0 D where D.a in (select a from t1 E where a+1 < 10000 + A.a + B.a +C.a+D.a); select count(*) from t0 A, t0 B, t0 C, t0 D where D.a in (select a from t1 E where a+1 < 10000 + A.a + B.a +C.a+D.a);
count(*) count(*)

View File

@@ -2178,10 +2178,10 @@ INSERT INTO t5 VALUES (7,0),(9,0);
explain explain
SELECT * FROM t3 WHERE t3.a IN (SELECT t5.a FROM t2, t4, t5 WHERE t2.c = t5.a AND t2.b = t5.b); SELECT * FROM t3 WHERE t3.a IN (SELECT t5.a FROM t2, t4, t5 WHERE t2.c = t5.a AND t2.b = t5.b);
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t5 index a a 10 NULL 2 Using index; Start temporary 1 PRIMARY t5 index a a 10 NULL 2 Using where; Using index; LooseScan
1 PRIMARY t4 ALL NULL NULL NULL NULL 3 1 PRIMARY t4 ALL NULL NULL NULL NULL 3
1 PRIMARY t2 ALL b NULL NULL NULL 10 Using where 1 PRIMARY t2 ref b b 5 test.t5.b 2 Using where; FirstMatch(t5)
1 PRIMARY t3 ALL NULL NULL NULL NULL 15 Using where; End temporary; Using join buffer (flat, BNL join) 1 PRIMARY t3 ALL NULL NULL NULL NULL 15 Using where; Using join buffer (flat, BNL join)
SELECT * FROM t3 WHERE t3.a IN (SELECT t5.a FROM t2, t4, t5 WHERE t2.c = t5.a AND t2.b = t5.b); SELECT * FROM t3 WHERE t3.a IN (SELECT t5.a FROM t2, t4, t5 WHERE t2.c = t5.a AND t2.b = t5.b);
a a
0 0
@@ -2500,8 +2500,8 @@ WHERE t1.a = t2.a AND t2.a IN (SELECT b FROM t3 STRAIGHT_JOIN t4);
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 system NULL NULL NULL NULL 1 1 PRIMARY t3 system NULL NULL NULL NULL 1
1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 1 1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 1
1 PRIMARY t2 ref a a 5 const 1 Using index 1 PRIMARY t1 ref a a 5 const 1 Using index
1 PRIMARY t1 ref a a 5 func 1 Using index 1 PRIMARY t2 ref a a 5 func 1 Using index
2 MATERIALIZED t4 ALL NULL NULL NULL NULL 0 2 MATERIALIZED t4 ALL NULL NULL NULL NULL 0
SELECT * FROM t1, t2 SELECT * FROM t1, t2
WHERE t1.a = t2.a AND t2.a IN (SELECT b FROM t3 STRAIGHT_JOIN t4); WHERE t1.a = t2.a AND t2.a IN (SELECT b FROM t3 STRAIGHT_JOIN t4);

View File

@@ -1129,8 +1129,8 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY alias3 ALL PRIMARY NULL NULL NULL # Using where 1 PRIMARY alias3 ALL PRIMARY NULL NULL NULL # Using where
1 PRIMARY alias4 ref PRIMARY,c c 4 test.alias3.d # Using index 1 PRIMARY alias4 ref PRIMARY,c c 4 test.alias3.d # Using index
1 PRIMARY alias5 eq_ref PRIMARY PRIMARY 4 test.alias4.b # Using where; FirstMatch(alias3) 1 PRIMARY alias5 eq_ref PRIMARY PRIMARY 4 test.alias4.b # Using where; FirstMatch(alias3)
1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
1 PRIMARY alias1 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join) 1 PRIMARY alias1 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
SELECT COUNT(*) FROM t1 AS alias1, t1 AS alias2, t2 AS alias3 SELECT COUNT(*) FROM t1 AS alias1, t1 AS alias2, t2 AS alias3
WHERE alias3.d IN ( WHERE alias3.d IN (
SELECT alias4.c FROM t2 AS alias4, t2 AS alias5 SELECT alias4.c FROM t2 AS alias4, t2 AS alias5
@@ -1150,8 +1150,8 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY alias3 ALL PRIMARY NULL NULL NULL # Using where 1 PRIMARY alias3 ALL PRIMARY NULL NULL NULL # Using where
1 PRIMARY alias4 ref PRIMARY,c c 4 test.alias3.d # Using index 1 PRIMARY alias4 ref PRIMARY,c c 4 test.alias3.d # Using index
1 PRIMARY alias5 eq_ref PRIMARY PRIMARY 4 test.alias4.b # Using where; FirstMatch(alias3) 1 PRIMARY alias5 eq_ref PRIMARY PRIMARY 4 test.alias4.b # Using where; FirstMatch(alias3)
1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
1 PRIMARY alias1 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join) 1 PRIMARY alias1 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
SELECT COUNT(*) FROM t1 AS alias1, t1 AS alias2, t2 AS alias3 SELECT COUNT(*) FROM t1 AS alias1, t1 AS alias2, t2 AS alias3
WHERE alias3.d IN ( WHERE alias3.d IN (
SELECT alias4.c FROM t2 AS alias4, t2 AS alias5 SELECT alias4.c FROM t2 AS alias4, t2 AS alias5

View File

@@ -1142,8 +1142,8 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY alias3 ALL PRIMARY NULL NULL NULL # Using where 1 PRIMARY alias3 ALL PRIMARY NULL NULL NULL # Using where
1 PRIMARY alias4 ref PRIMARY,c c 4 test.alias3.d # Using index 1 PRIMARY alias4 ref PRIMARY,c c 4 test.alias3.d # Using index
1 PRIMARY alias5 eq_ref PRIMARY PRIMARY 4 test.alias4.b # Using where; FirstMatch(alias3) 1 PRIMARY alias5 eq_ref PRIMARY PRIMARY 4 test.alias4.b # Using where; FirstMatch(alias3)
1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join) 1 PRIMARY alias1 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
1 PRIMARY alias1 ALL NULL NULL NULL NULL # Using join buffer (incremental, BNL join) 1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (incremental, BNL join)
SELECT COUNT(*) FROM t1 AS alias1, t1 AS alias2, t2 AS alias3 SELECT COUNT(*) FROM t1 AS alias1, t1 AS alias2, t2 AS alias3
WHERE alias3.d IN ( WHERE alias3.d IN (
SELECT alias4.c FROM t2 AS alias4, t2 AS alias5 SELECT alias4.c FROM t2 AS alias4, t2 AS alias5
@@ -1163,8 +1163,8 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY alias3 ALL PRIMARY NULL NULL NULL # Using where 1 PRIMARY alias3 ALL PRIMARY NULL NULL NULL # Using where
1 PRIMARY alias4 ref PRIMARY,c c 4 test.alias3.d # Using index 1 PRIMARY alias4 ref PRIMARY,c c 4 test.alias3.d # Using index
1 PRIMARY alias5 eq_ref PRIMARY PRIMARY 4 test.alias4.b # Using where; FirstMatch(alias3) 1 PRIMARY alias5 eq_ref PRIMARY PRIMARY 4 test.alias4.b # Using where; FirstMatch(alias3)
1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join) 1 PRIMARY alias1 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
1 PRIMARY alias1 ALL NULL NULL NULL NULL # Using join buffer (incremental, BNL join) 1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (incremental, BNL join)
SELECT COUNT(*) FROM t1 AS alias1, t1 AS alias2, t2 AS alias3 SELECT COUNT(*) FROM t1 AS alias1, t1 AS alias2, t2 AS alias3
WHERE alias3.d IN ( WHERE alias3.d IN (
SELECT alias4.c FROM t2 AS alias4, t2 AS alias5 SELECT alias4.c FROM t2 AS alias4, t2 AS alias5

View File

@@ -1131,8 +1131,8 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY alias3 ALL PRIMARY NULL NULL NULL # Using where 1 PRIMARY alias3 ALL PRIMARY NULL NULL NULL # Using where
1 PRIMARY alias4 ref PRIMARY,c c 4 test.alias3.d # Using index 1 PRIMARY alias4 ref PRIMARY,c c 4 test.alias3.d # Using index
1 PRIMARY alias5 eq_ref PRIMARY PRIMARY 4 test.alias4.b # Using where; FirstMatch(alias3) 1 PRIMARY alias5 eq_ref PRIMARY PRIMARY 4 test.alias4.b # Using where; FirstMatch(alias3)
1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
1 PRIMARY alias1 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join) 1 PRIMARY alias1 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
SELECT COUNT(*) FROM t1 AS alias1, t1 AS alias2, t2 AS alias3 SELECT COUNT(*) FROM t1 AS alias1, t1 AS alias2, t2 AS alias3
WHERE alias3.d IN ( WHERE alias3.d IN (
SELECT alias4.c FROM t2 AS alias4, t2 AS alias5 SELECT alias4.c FROM t2 AS alias4, t2 AS alias5
@@ -1152,8 +1152,8 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY alias3 ALL PRIMARY NULL NULL NULL # Using where 1 PRIMARY alias3 ALL PRIMARY NULL NULL NULL # Using where
1 PRIMARY alias4 ref PRIMARY,c c 4 test.alias3.d # Using index 1 PRIMARY alias4 ref PRIMARY,c c 4 test.alias3.d # Using index
1 PRIMARY alias5 eq_ref PRIMARY PRIMARY 4 test.alias4.b # Using where; FirstMatch(alias3) 1 PRIMARY alias5 eq_ref PRIMARY PRIMARY 4 test.alias4.b # Using where; FirstMatch(alias3)
1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
1 PRIMARY alias1 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join) 1 PRIMARY alias1 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
SELECT COUNT(*) FROM t1 AS alias1, t1 AS alias2, t2 AS alias3 SELECT COUNT(*) FROM t1 AS alias1, t1 AS alias2, t2 AS alias3
WHERE alias3.d IN ( WHERE alias3.d IN (
SELECT alias4.c FROM t2 AS alias4, t2 AS alias5 SELECT alias4.c FROM t2 AS alias4, t2 AS alias5
@@ -1933,19 +1933,19 @@ AND t3.id_product IN (SELECT id_product FROM t2 t2_4 WHERE t2_4.id_t2 = 34 OR t2
AND t3.id_product IN (SELECT id_product FROM t2 t2_5 WHERE t2_5.id_t2 = 29 OR t2_5.id_t2 = 28 OR t2_5.id_t2 = 26); AND t3.id_product IN (SELECT id_product FROM t2 t2_5 WHERE t2_5.id_t2 = 29 OR t2_5.id_t2 = 28 OR t2_5.id_t2 = 26);
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 index PRIMARY PRIMARY 4 NULL 18 Using index 1 PRIMARY t3 index PRIMARY PRIMARY 4 NULL 18 Using index
1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 4 func 1 Using where
1 PRIMARY t5 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
1 PRIMARY <subquery4> eq_ref distinct_key distinct_key 4 func 1 Using where
1 PRIMARY <subquery6> eq_ref distinct_key distinct_key 4 func 1 Using where
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 Using where
1 PRIMARY t4 eq_ref PRIMARY PRIMARY 8 test.t3.id_product,const 1 Using where; Using index
1 PRIMARY <subquery5> eq_ref distinct_key distinct_key 4 func 1 Using where 1 PRIMARY <subquery5> eq_ref distinct_key distinct_key 4 func 1 Using where
1 PRIMARY t5 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
1 PRIMARY <subquery6> eq_ref distinct_key distinct_key 4 func 1 Using where
1 PRIMARY t4 eq_ref PRIMARY PRIMARY 8 test.t3.id_product,const 1 Using where; Using index
1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 4 func 1 Using where
1 PRIMARY t1 index NULL PRIMARY 8 NULL 73 Using where; Using index; Using join buffer (flat, BNL join) 1 PRIMARY t1 index NULL PRIMARY 8 NULL 73 Using where; Using index; Using join buffer (flat, BNL join)
1 PRIMARY <subquery4> eq_ref distinct_key distinct_key 4 func 1 Using where
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 Using where
5 MATERIALIZED t2_4 range id_t2,id_product id_t2 5 NULL 18 Using index condition; Using where
6 MATERIALIZED t2_5 range id_t2,id_product id_t2 5 NULL 31 Using index condition; Using where
3 MATERIALIZED t2_2 ref id_t2,id_product id_t2 5 const 12 3 MATERIALIZED t2_2 ref id_t2,id_product id_t2 5 const 12
4 MATERIALIZED t2_3 range id_t2,id_product id_t2 5 NULL 33 Using index condition; Using where 4 MATERIALIZED t2_3 range id_t2,id_product id_t2 5 NULL 33 Using index condition; Using where
6 MATERIALIZED t2_5 range id_t2,id_product id_t2 5 NULL 31 Using index condition; Using where
2 MATERIALIZED t2_1 ALL id_t2,id_product NULL NULL NULL 223 Using where 2 MATERIALIZED t2_1 ALL id_t2,id_product NULL NULL NULL 223 Using where
5 MATERIALIZED t2_4 range id_t2,id_product id_t2 5 NULL 18 Using index condition; Using where
set optimizer_switch='rowid_filter=default'; set optimizer_switch='rowid_filter=default';
drop table t1,t2,t3,t4,t5; drop table t1,t2,t3,t4,t5;
set global innodb_stats_persistent= @innodb_stats_persistent_save; set global innodb_stats_persistent= @innodb_stats_persistent_save;

View File

@@ -2189,10 +2189,10 @@ INSERT INTO t5 VALUES (7,0),(9,0);
explain explain
SELECT * FROM t3 WHERE t3.a IN (SELECT t5.a FROM t2, t4, t5 WHERE t2.c = t5.a AND t2.b = t5.b); SELECT * FROM t3 WHERE t3.a IN (SELECT t5.a FROM t2, t4, t5 WHERE t2.c = t5.a AND t2.b = t5.b);
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t5 index a a 10 NULL 2 Using index; Start temporary 1 PRIMARY t5 index a a 10 NULL 2 Using where; Using index; LooseScan
1 PRIMARY t4 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join) 1 PRIMARY t4 ALL NULL NULL NULL NULL 3
1 PRIMARY t2 ALL b NULL NULL NULL 10 Using where; Using join buffer (incremental, BNL join) 1 PRIMARY t2 ref b b 5 test.t5.b 2 Using where; FirstMatch(t5)
1 PRIMARY t3 ALL NULL NULL NULL NULL 15 Using where; End temporary; Using join buffer (incremental, BNL join) 1 PRIMARY t3 ALL NULL NULL NULL NULL 15 Using where; Using join buffer (flat, BNL join)
SELECT * FROM t3 WHERE t3.a IN (SELECT t5.a FROM t2, t4, t5 WHERE t2.c = t5.a AND t2.b = t5.b); SELECT * FROM t3 WHERE t3.a IN (SELECT t5.a FROM t2, t4, t5 WHERE t2.c = t5.a AND t2.b = t5.b);
a a
0 0
@@ -2511,8 +2511,8 @@ WHERE t1.a = t2.a AND t2.a IN (SELECT b FROM t3 STRAIGHT_JOIN t4);
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 system NULL NULL NULL NULL 1 1 PRIMARY t3 system NULL NULL NULL NULL 1
1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 1 1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 1
1 PRIMARY t2 ref a a 5 const 1 Using index 1 PRIMARY t1 ref a a 5 const 1 Using index
1 PRIMARY t1 ref a a 5 func 1 Using index 1 PRIMARY t2 ref a a 5 func 1 Using index
2 MATERIALIZED t4 ALL NULL NULL NULL NULL 0 2 MATERIALIZED t4 ALL NULL NULL NULL NULL 0
SELECT * FROM t1, t2 SELECT * FROM t1, t2
WHERE t1.a = t2.a AND t2.a IN (SELECT b FROM t3 STRAIGHT_JOIN t4); WHERE t1.a = t2.a AND t2.a IN (SELECT b FROM t3 STRAIGHT_JOIN t4);

View File

@@ -18,7 +18,7 @@ error 0,$ERROR_SERVICE_DOES_NOT_EXIST;
exec $sc_exe delete $service_name; exec $sc_exe delete $service_name;
--enable_result_log --enable_result_log
source include/kill_mysqld.inc; source include/shutdown_mysqld.inc;
echo # run mysql_install_db with --service parameter; echo # run mysql_install_db with --service parameter;
--disable_result_log --disable_result_log
exec $MYSQL_INSTALL_DB_EXE --datadir=$ddir --port=$MASTER_MYPORT --password=$password --service=$service_name -R; exec $MYSQL_INSTALL_DB_EXE --datadir=$ddir --port=$MASTER_MYPORT --password=$password --service=$service_name -R;

View File

@@ -1,4 +1,3 @@
# Kill the server
# run mysql_install_db with --service parameter # run mysql_install_db with --service parameter
# Start service # Start service
# Connect with root user password=password # Connect with root user password=password

View File

@@ -1,4 +1,3 @@
# Kill the server
# run mysql_install_db with --service parameter # run mysql_install_db with --service parameter
# Start service # Start service
# Connect with root user password=パスワード # Connect with root user password=パスワード

View File

@@ -2,8 +2,8 @@ call mtr.add_suppression("Plugin 'file_key_management' init function returned er
call mtr.add_suppression("Plugin 'file_key_management' registration.*failed"); call mtr.add_suppression("Plugin 'file_key_management' registration.*failed");
call mtr.add_suppression("InnoDB: Table `test`\\.`t[12]` has an unreadable root page"); call mtr.add_suppression("InnoDB: Table `test`\\.`t[12]` has an unreadable root page");
call mtr.add_suppression("Table .*t[12].* is corrupted"); call mtr.add_suppression("Table .*t[12].* is corrupted");
call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t[12]\\.ibd' cannot be decrypted\\."); call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t[12]\\.ibd' cannot be decrypted; key_version=1");
call mtr.add_suppression("failed to read or decrypt \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\]"); call mtr.add_suppression("failed to read \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\]");
call mtr.add_suppression("InnoDB: Encrypted page \\[page id: space=[1-9][0-9]*, page number=3\\] in file .*test.t1.ibd looks corrupted; key_version=1"); call mtr.add_suppression("InnoDB: Encrypted page \\[page id: space=[1-9][0-9]*, page number=3\\] in file .*test.t1.ibd looks corrupted; key_version=1");
call mtr.add_suppression("File '.*mysql-test.std_data.keysbad3\\.txt' not found"); call mtr.add_suppression("File '.*mysql-test.std_data.keysbad3\\.txt' not found");
call mtr.add_suppression("\\[ERROR\\] InnoDB: Cannot decrypt \\[page id: space="); call mtr.add_suppression("\\[ERROR\\] InnoDB: Cannot decrypt \\[page id: space=");

View File

@@ -1,5 +1,5 @@
call mtr.add_suppression("InnoDB: Table `test`\\.`t1` (has an unreadable root page|does not exist.*is trying to rename)"); call mtr.add_suppression("InnoDB: Table `test`\\.`t1` (has an unreadable root page|does not exist.*is trying to rename)");
call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t1(new)?\\.ibd' cannot be decrypted\\."); call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t1(new)?\\.ibd' cannot be decrypted; key_version=1");
call mtr.add_suppression("failed to read or decrypt \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\]"); call mtr.add_suppression("failed to read or decrypt \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\]");
call mtr.add_suppression("Couldn't load plugins from 'file_key_management"); call mtr.add_suppression("Couldn't load plugins from 'file_key_management");
call mtr.add_suppression("InnoDB: Tablespace for table \`test\`.\`t1\` is set as discarded\\."); call mtr.add_suppression("InnoDB: Tablespace for table \`test\`.\`t1\` is set as discarded\\.");

View File

@@ -1,5 +1,5 @@
call mtr.add_suppression("InnoDB: Table `test`\\.`t1` has an unreadable root page"); call mtr.add_suppression("InnoDB: Table `test`\\.`t1` (has an unreadable root page)");
call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t1\\.ibd' cannot be decrypted\\."); call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t1\\.ibd' cannot be decrypted; key_version=1");
call mtr.add_suppression("failed to read or decrypt \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\]"); call mtr.add_suppression("failed to read or decrypt \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\]");
call mtr.add_suppression("Couldn't load plugins from 'file_key_management"); call mtr.add_suppression("Couldn't load plugins from 'file_key_management");
call mtr.add_suppression("Table .*t1.* is corrupted"); call mtr.add_suppression("Table .*t1.* is corrupted");

View File

@@ -1,4 +1,4 @@
call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t[123]\\.ibd' cannot be decrypted\\."); call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t[123]\\.ibd' cannot be decrypted; key_version=1");
call mtr.add_suppression("failed to read or decrypt \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\]"); call mtr.add_suppression("failed to read or decrypt \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\]");
call mtr.add_suppression("InnoDB: Unable to decompress ..test.t[1-3]\\.ibd\\[page id: space=[1-9][0-9]*, page number=[0-9]+\\]"); call mtr.add_suppression("InnoDB: Unable to decompress ..test.t[1-3]\\.ibd\\[page id: space=[1-9][0-9]*, page number=[0-9]+\\]");
call mtr.add_suppression("InnoDB: Table `test`\\.`t[12]` is corrupted"); call mtr.add_suppression("InnoDB: Table `test`\\.`t[12]` is corrupted");

View File

@@ -1,6 +1,7 @@
call mtr.add_suppression("Plugin 'file_key_management'"); call mtr.add_suppression("Plugin 'file_key_management'");
call mtr.add_suppression("Plugin 'InnoDB' init function returned error."); call mtr.add_suppression("Plugin 'InnoDB' init function returned error.");
call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t[1-4]\\.ibd' cannot be decrypted"); call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t[1-4]\\.ibd' cannot be decrypted; key_version=1");
call mtr.add_suppression("InnoDB: File '.*test/t[1234]\\.ibd' is corrupted");
call mtr.add_suppression("failed to read or decrypt \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\]"); call mtr.add_suppression("failed to read or decrypt \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\]");
call mtr.add_suppression("InnoDB: Unable to decompress .*.test.t[12]\\.ibd\\[page id: space=[1-9][0-9]*, page number=[0-9]+\\]"); call mtr.add_suppression("InnoDB: Unable to decompress .*.test.t[12]\\.ibd\\[page id: space=[1-9][0-9]*, page number=[0-9]+\\]");
call mtr.add_suppression("InnoDB: Database page corruption on disk or a failed read of file '.*test.t[12]\\.ibd'"); call mtr.add_suppression("InnoDB: Database page corruption on disk or a failed read of file '.*test.t[12]\\.ibd'");

View File

@@ -12,8 +12,8 @@ call mtr.add_suppression("Plugin 'file_key_management' init function returned er
call mtr.add_suppression("Plugin 'file_key_management' registration.*failed"); call mtr.add_suppression("Plugin 'file_key_management' registration.*failed");
call mtr.add_suppression("InnoDB: Table `test`\\.`t[12]` has an unreadable root page"); call mtr.add_suppression("InnoDB: Table `test`\\.`t[12]` has an unreadable root page");
call mtr.add_suppression("Table .*t[12].* is corrupted"); call mtr.add_suppression("Table .*t[12].* is corrupted");
call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t[12]\\.ibd' cannot be decrypted\\."); call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t[12]\\.ibd' cannot be decrypted; key_version=1");
call mtr.add_suppression("failed to read or decrypt \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\]"); call mtr.add_suppression("failed to read \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\]");
call mtr.add_suppression("InnoDB: Encrypted page \\[page id: space=[1-9][0-9]*, page number=3\\] in file .*test.t1.ibd looks corrupted; key_version=1"); call mtr.add_suppression("InnoDB: Encrypted page \\[page id: space=[1-9][0-9]*, page number=3\\] in file .*test.t1.ibd looks corrupted; key_version=1");
call mtr.add_suppression("File '.*mysql-test.std_data.keysbad3\\.txt' not found"); call mtr.add_suppression("File '.*mysql-test.std_data.keysbad3\\.txt' not found");
# for innodb_checksum_algorithm=full_crc32 only # for innodb_checksum_algorithm=full_crc32 only

View File

@@ -9,7 +9,7 @@
# MDEV-8727: Server/InnoDB hangs on shutdown after trying to read an encrypted table with a wrong key # MDEV-8727: Server/InnoDB hangs on shutdown after trying to read an encrypted table with a wrong key
# #
call mtr.add_suppression("InnoDB: Table `test`\\.`t1` (has an unreadable root page|does not exist.*is trying to rename)"); call mtr.add_suppression("InnoDB: Table `test`\\.`t1` (has an unreadable root page|does not exist.*is trying to rename)");
call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t1(new)?\\.ibd' cannot be decrypted\\."); call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t1(new)?\\.ibd' cannot be decrypted; key_version=1");
call mtr.add_suppression("failed to read or decrypt \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\]"); call mtr.add_suppression("failed to read or decrypt \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\]");
# Suppression for builds where file_key_management plugin is linked statically # Suppression for builds where file_key_management plugin is linked statically
call mtr.add_suppression("Couldn't load plugins from 'file_key_management"); call mtr.add_suppression("Couldn't load plugins from 'file_key_management");

View File

@@ -7,8 +7,8 @@
# MDEV-8768: Server crash at file btr0btr.ic line 122 when checking encrypted table using incorrect keys # MDEV-8768: Server crash at file btr0btr.ic line 122 when checking encrypted table using incorrect keys
# #
call mtr.add_suppression("InnoDB: Table `test`\\.`t1` has an unreadable root page"); call mtr.add_suppression("InnoDB: Table `test`\\.`t1` (has an unreadable root page)");
call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t1\\.ibd' cannot be decrypted\\."); call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t1\\.ibd' cannot be decrypted; key_version=1");
call mtr.add_suppression("failed to read or decrypt \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\]"); call mtr.add_suppression("failed to read or decrypt \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\]");
# Suppression for builds where file_key_management plugin is linked statically # Suppression for builds where file_key_management plugin is linked statically
call mtr.add_suppression("Couldn't load plugins from 'file_key_management"); call mtr.add_suppression("Couldn't load plugins from 'file_key_management");

View File

@@ -4,7 +4,7 @@
# embedded does not support restart # embedded does not support restart
-- source include/not_embedded.inc -- source include/not_embedded.inc
call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t[123]\\.ibd' cannot be decrypted\\."); call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t[123]\\.ibd' cannot be decrypted; key_version=1");
call mtr.add_suppression("failed to read or decrypt \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\]"); call mtr.add_suppression("failed to read or decrypt \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\]");
call mtr.add_suppression("InnoDB: Unable to decompress ..test.t[1-3]\\.ibd\\[page id: space=[1-9][0-9]*, page number=[0-9]+\\]"); call mtr.add_suppression("InnoDB: Unable to decompress ..test.t[1-3]\\.ibd\\[page id: space=[1-9][0-9]*, page number=[0-9]+\\]");
call mtr.add_suppression("InnoDB: Table `test`\\.`t[12]` is corrupted"); call mtr.add_suppression("InnoDB: Table `test`\\.`t[12]` is corrupted");

View File

@@ -9,7 +9,8 @@
call mtr.add_suppression("Plugin 'file_key_management'"); call mtr.add_suppression("Plugin 'file_key_management'");
call mtr.add_suppression("Plugin 'InnoDB' init function returned error."); call mtr.add_suppression("Plugin 'InnoDB' init function returned error.");
call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t[1-4]\\.ibd' cannot be decrypted"); call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t[1-4]\\.ibd' cannot be decrypted; key_version=1");
call mtr.add_suppression("InnoDB: File '.*test/t[1234]\\.ibd' is corrupted");
call mtr.add_suppression("failed to read or decrypt \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\]"); call mtr.add_suppression("failed to read or decrypt \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\]");
call mtr.add_suppression("InnoDB: Unable to decompress .*.test.t[12]\\.ibd\\[page id: space=[1-9][0-9]*, page number=[0-9]+\\]"); call mtr.add_suppression("InnoDB: Unable to decompress .*.test.t[12]\\.ibd\\[page id: space=[1-9][0-9]*, page number=[0-9]+\\]");
call mtr.add_suppression("InnoDB: Database page corruption on disk or a failed read of file '.*test.t[12]\\.ibd'"); call mtr.add_suppression("InnoDB: Database page corruption on disk or a failed read of file '.*test.t[12]\\.ibd'");

View File

@@ -10,7 +10,6 @@
# #
############################################################################## ##############################################################################
GCF-1081 : MDEV-18283 Galera test failure on galera.GCF-1081
GCF-939 : MDEV-21520 galera.GCF-939 GCF-939 : MDEV-21520 galera.GCF-939
MW-329 : MDEV-19962 Galera test failure on MW-329 MW-329 : MDEV-19962 Galera test failure on MW-329
galera_as_slave_ctas : MDEV-28378 timeout galera_as_slave_ctas : MDEV-28378 timeout
@@ -20,10 +19,7 @@ galera_bf_kill_debug : MDEV-24485 wsrep::client_state::do_acquire_ownership(): A
galera_bf_lock_wait : MDEV-21597 wsrep::transaction::start_transaction(): Assertion `active() == false' failed galera_bf_lock_wait : MDEV-21597 wsrep::transaction::start_transaction(): Assertion `active() == false' failed
galera_encrypt_tmp_files : Get error failed to enable encryption of temporary files galera_encrypt_tmp_files : Get error failed to enable encryption of temporary files
galera_gcache_recover_manytrx : MDEV-18834 Galera test failure galera_gcache_recover_manytrx : MDEV-18834 Galera test failure
galera_kill_largechanges : MDEV-18179 Galera test failure on galera.galera_kill_largechanges
galera_mdl_race : MDEV-21524 galera.galera_mdl_race
galera_parallel_simple : MDEV-20318 galera.galera_parallel_simple fails galera_parallel_simple : MDEV-20318 galera.galera_parallel_simple fails
galera_pc_ignore_sb : MDEV-20888 galera.galera_pc_ignore_sb
galera_pc_recovery : MDEV-25199 cluster fails to start up galera_pc_recovery : MDEV-25199 cluster fails to start up
galera_shutdown_nonprim : MDEV-21493 galera.galera_shutdown_nonprim galera_shutdown_nonprim : MDEV-21493 galera.galera_shutdown_nonprim
galera_sst_mysqldump : MDEV-26501 : galera.galera_sst_mysqldump MTR failed: galera SST with mysqldump failed galera_sst_mysqldump : MDEV-26501 : galera.galera_sst_mysqldump MTR failed: galera SST with mysqldump failed

View File

@@ -1,47 +0,0 @@
connection node_2;
connection node_1;
connection node_1;
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 INTEGER) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1, 0), (3, 0);
CREATE PROCEDURE proc_update ()
BEGIN
UPDATE t1 SET f2 = 1 where f1 > 0;
END|
connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1;
SET GLOBAL wsrep_provider_options = 'dbug=d,commit_monitor_master_enter_sync';
connection node_1;
CALL proc_update ();;
connection node_1a;
SET SESSION wsrep_sync_wait = 0;
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
connection node_1a;
SET GLOBAL DEBUG = 'd,sync.wsrep_before_BF_victim_unlock';
Warnings:
Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
connection node_2;
INSERT INTO t1 VALUES (2, 2);;
connection node_1a;
SET SESSION DEBUG_SYNC = 'now WAIT_FOR sync.wsrep_before_BF_victim_unlock_reached';
SET GLOBAL DEBUG = '';
Warnings:
Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
connection node_1a;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=commit_monitor_master_enter_sync';
connection node_2;
SELECT * FROM t1;
f1 f2
1 1
2 2
3 1
connection node_1;
SELECT * FROM t1;
f1 f2
1 1
2 2
3 1
wsrep_local_replays
1
DROP PROCEDURE proc_update;
DROP TABLE t1;

View File

@@ -12,3 +12,6 @@ INSERT INTO t1 VALUES (NEXT VALUE FOR Seq1_1);
ERROR 23000: Duplicate entry '1' for key 'PRIMARY' ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
DROP SEQUENCE Seq1_1; DROP SEQUENCE Seq1_1;
DROP TABLE t1; DROP TABLE t1;
CALL mtr.add_suppression("SEQUENCES declared without `NOCACHE` will not behave correctly in galera cluster.");
connection node_2;
CALL mtr.add_suppression("SEQUENCES declared without `NOCACHE` will not behave correctly in galera cluster.");

View File

@@ -0,0 +1,54 @@
connection node_2;
connection node_1;
CREATE SEQUENCE seq_nocache ENGINE=InnoDB;
DROP SEQUENCE seq_nocache;
CALL mtr.add_suppression("SEQUENCES declared without `NOCACHE` will not behave correctly in galera cluster.");
connection node_2;
CALL mtr.add_suppression("SEQUENCES declared without `NOCACHE` will not behave correctly in galera cluster.");
connection node_1;
CREATE SEQUENCE seq NOCACHE ENGINE=InnoDB;
SELECT NEXTVAL(seq) = 1;
NEXTVAL(seq) = 1
1
connection node_2;
SELECT NEXTVAL(seq) = 2;
NEXTVAL(seq) = 2
1
connection node_1;
SELECT NEXTVAL(seq) = 3;
NEXTVAL(seq) = 3
1
SELECT SETVAL(seq, 100);
SETVAL(seq, 100)
100
connection node_2;
SELECT NEXTVAL(seq) = 101;
NEXTVAL(seq) = 101
1
connection node_1;
SELECT NEXTVAL(seq) = 102;
NEXTVAL(seq) = 102
1
DROP SEQUENCE seq;
CREATE TABLE t1(f1 INT);
CREATE SEQUENCE seq_transaction NOCACHE ENGINE=InnoDB;
START TRANSACTION;
INSERT INTO t1 VALUES (0);
SELECT NEXTVAL(seq_transaction);
NEXTVAL(seq_transaction)
1
INSERT INTO t1 VALUES (NEXTVAL(seq_transaction));
COMMIT;
connection node_2;
SELECT COUNT(*) = 2 FROM t1;
COUNT(*) = 2
1
SELECT NEXTVAL(seq_transaction) = 3;
NEXTVAL(seq_transaction) = 3
1
connection node_1;
SELECT NEXTVAL(seq_transaction) = 4;
NEXTVAL(seq_transaction) = 4
1
DROP SEQUENCE seq_transaction;
DROP TABLE t1;

View File

@@ -1,27 +1,27 @@
--- r/galera_ist_MDEV-28423.result --- r/galera_ist_MDEV-28423.result
+++ r/galera_ist_MDEV-28423,debug.reject +++ r/galera_ist_MDEV-28423.reject
@@ -517,3 +517,187 @@ @@ -286,3 +286,111 @@
1
DROP TABLE t1; DROP TABLE t1;
COMMIT; COMMIT;
SET AUTOCOMMIT=ON;
+Performing State Transfer on a server that has been killed and restarted +Performing State Transfer on a server that has been killed and restarted
+while a DDL was in progress on it +while a DDL was in progress on it
+connection node_1; +connection node_1;
+CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB; +CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
+SET AUTOCOMMIT=OFF; +SET AUTOCOMMIT=OFF;
+START TRANSACTION; +START TRANSACTION;
+INSERT INTO t1 VALUES (1,'node1_committed_before'); +INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES (2,'node1_committed_before'); +INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES (3,'node1_committed_before'); +INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES (4,'node1_committed_before'); +INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES (5,'node1_committed_before'); +INSERT INTO t1 VALUES ('node1_committed_before');
+connection node_2; +connection node_2;
+START TRANSACTION; +START TRANSACTION;
+INSERT INTO t1 VALUES (6,'node2_committed_before'); +INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES (7,'node2_committed_before'); +INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES (8,'node2_committed_before'); +INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES (9,'node2_committed_before'); +INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES (10,'node2_committed_before'); +INSERT INTO t1 VALUES ('node2_committed_before');
+COMMIT; +COMMIT;
+SET GLOBAL debug_dbug = 'd,sync.alter_opened_table'; +SET GLOBAL debug_dbug = 'd,sync.alter_opened_table';
+connection node_1; +connection node_1;
@@ -32,26 +32,26 @@
+connection node_1; +connection node_1;
+SET AUTOCOMMIT=OFF; +SET AUTOCOMMIT=OFF;
+START TRANSACTION; +START TRANSACTION;
+INSERT INTO t1 (id,f1) VALUES (11,'node1_committed_during'); +INSERT INTO t1 (f1) VALUES ('node1_committed_during');
+INSERT INTO t1 (id,f1) VALUES (12,'node1_committed_during'); +INSERT INTO t1 (f1) VALUES ('node1_committed_during');
+INSERT INTO t1 (id,f1) VALUES (13,'node1_committed_during'); +INSERT INTO t1 (f1) VALUES ('node1_committed_during');
+INSERT INTO t1 (id,f1) VALUES (14,'node1_committed_during'); +INSERT INTO t1 (f1) VALUES ('node1_committed_during');
+INSERT INTO t1 (id,f1) VALUES (15,'node1_committed_during'); +INSERT INTO t1 (f1) VALUES ('node1_committed_during');
+COMMIT; +COMMIT;
+START TRANSACTION; +START TRANSACTION;
+INSERT INTO t1 (id,f1) VALUES (16,'node1_to_be_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (id,f1) VALUES (17,'node1_to_be_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (id,f1) VALUES (18,'node1_to_be_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (id,f1) VALUES (19,'node1_to_be_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (id,f1) VALUES (20,'node1_to_be_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+connect node_1a_galera_st_kill_slave_ddl, 127.0.0.1, root, , test, $NODE_MYPORT_1; +connect node_1a_galera_st_kill_slave_ddl, 127.0.0.1, root, , test, $NODE_MYPORT_1;
+SET AUTOCOMMIT=OFF; +SET AUTOCOMMIT=OFF;
+START TRANSACTION; +START TRANSACTION;
+INSERT INTO t1 (id,f1) VALUES (21,'node1_to_be_rollbacked_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (id,f1) VALUES (22,'node1_to_be_rollbacked_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (id,f1) VALUES (23,'node1_to_be_rollbacked_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (id,f1) VALUES (24,'node1_to_be_rollbacked_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (id,f1) VALUES (25,'node1_to_be_rollbacked_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+connection node_2; +connection node_2;
+Performing --wsrep-recover ... +Performing --wsrep-recover ...
+connection node_2; +connection node_2;
@@ -59,132 +59,56 @@
+Using --wsrep-start-position when starting mysqld ... +Using --wsrep-start-position when starting mysqld ...
+SET AUTOCOMMIT=OFF; +SET AUTOCOMMIT=OFF;
+START TRANSACTION; +START TRANSACTION;
+INSERT INTO t1 (id,f1) VALUES (26,'node2_committed_after'); +INSERT INTO t1 (f1) VALUES ('node2_committed_after');
+INSERT INTO t1 (id,f1) VALUES (27,'node2_committed_after'); +INSERT INTO t1 (f1) VALUES ('node2_committed_after');
+INSERT INTO t1 (id,f1) VALUES (28,'node2_committed_after'); +INSERT INTO t1 (f1) VALUES ('node2_committed_after');
+INSERT INTO t1 (id,f1) VALUES (29,'node2_committed_after'); +INSERT INTO t1 (f1) VALUES ('node2_committed_after');
+INSERT INTO t1 (id,f1) VALUES (30,'node2_committed_after'); +INSERT INTO t1 (f1) VALUES ('node2_committed_after');
+COMMIT; +COMMIT;
+connection node_1; +connection node_1;
+INSERT INTO t1 (id,f1) VALUES (31,'node1_to_be_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (id,f1) VALUES (32,'node1_to_be_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (id,f1) VALUES (33,'node1_to_be_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (id,f1) VALUES (34,'node1_to_be_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (id,f1) VALUES (35,'node1_to_be_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+COMMIT; +COMMIT;
+SET AUTOCOMMIT=OFF; +SET AUTOCOMMIT=OFF;
+START TRANSACTION; +START TRANSACTION;
+INSERT INTO t1 (id,f1) VALUES (36,'node1_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_committed_after');
+INSERT INTO t1 (id,f1) VALUES (37,'node1_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_committed_after');
+INSERT INTO t1 (id,f1) VALUES (38,'node1_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_committed_after');
+INSERT INTO t1 (id,f1) VALUES (39,'node1_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_committed_after');
+INSERT INTO t1 (id,f1) VALUES (40,'node1_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_committed_after');
+COMMIT; +COMMIT;
+connection node_1a_galera_st_kill_slave_ddl; +connection node_1a_galera_st_kill_slave_ddl;
+INSERT INTO t1 (id,f1) VALUES (41,'node1_to_be_rollbacked_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (id,f1) VALUES (42,'node1_to_be_rollbacked_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (id,f1) VALUES (43,'node1_to_be_rollbacked_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (id,f1) VALUES (44,'node1_to_be_rollbacked_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (id,f1) VALUES (45,'node1_to_be_rollbacked_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+ROLLBACK; +ROLLBACK;
+SET AUTOCOMMIT=ON; +SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
+SET SESSION wsrep_sync_wait=15; +COUNT(*) = 2
+SELECT COUNT(*) AS EXPECT_3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; +1
+EXPECT_3 +SELECT COUNT(*) = 35 FROM t1;
+3 +COUNT(*) = 35
+SELECT COUNT(*) AS EXPECT_35 FROM t1; +1
+EXPECT_35
+35
+SELECT * FROM t1;
+id f1 f2
+1 node1_committed_before NULL
+2 node1_committed_before NULL
+3 node1_committed_before NULL
+4 node1_committed_before NULL
+5 node1_committed_before NULL
+6 node2_committed_before NULL
+7 node2_committed_before NULL
+8 node2_committed_before NULL
+9 node2_committed_before NULL
+10 node2_committed_before NULL
+11 node1_committed_during NULL
+12 node1_committed_during NULL
+13 node1_committed_during NULL
+14 node1_committed_during NULL
+15 node1_committed_during NULL
+16 node1_to_be_committed_after NULL
+17 node1_to_be_committed_after NULL
+18 node1_to_be_committed_after NULL
+19 node1_to_be_committed_after NULL
+20 node1_to_be_committed_after NULL
+26 node2_committed_after NULL
+27 node2_committed_after NULL
+28 node2_committed_after NULL
+29 node2_committed_after NULL
+30 node2_committed_after NULL
+31 node1_to_be_committed_after NULL
+32 node1_to_be_committed_after NULL
+33 node1_to_be_committed_after NULL
+34 node1_to_be_committed_after NULL
+35 node1_to_be_committed_after NULL
+36 node1_committed_after NULL
+37 node1_committed_after NULL
+38 node1_committed_after NULL
+39 node1_committed_after NULL
+40 node1_committed_after NULL
+SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; +SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
+COUNT(*) = 0 +COUNT(*) = 0
+1 +1
+COMMIT; +COMMIT;
+connection node_1;
+SET AUTOCOMMIT=ON; +SET AUTOCOMMIT=ON;
+SET SESSION wsrep_sync_wait=15; +connection node_1;
+SELECT COUNT(*) AS EXPECT_3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; +SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
+EXPECT_3 +COUNT(*) = 2
+3 +1
+SELECT COUNT(*) AS EXPECT_35 FROM t1; +SELECT COUNT(*) = 35 FROM t1;
+EXPECT_35 +COUNT(*) = 35
+35 +1
+SELECT * FROM t1;
+id f1 f2
+1 node1_committed_before NULL
+2 node1_committed_before NULL
+3 node1_committed_before NULL
+4 node1_committed_before NULL
+5 node1_committed_before NULL
+6 node2_committed_before NULL
+7 node2_committed_before NULL
+8 node2_committed_before NULL
+9 node2_committed_before NULL
+10 node2_committed_before NULL
+11 node1_committed_during NULL
+12 node1_committed_during NULL
+13 node1_committed_during NULL
+14 node1_committed_during NULL
+15 node1_committed_during NULL
+16 node1_to_be_committed_after NULL
+17 node1_to_be_committed_after NULL
+18 node1_to_be_committed_after NULL
+19 node1_to_be_committed_after NULL
+20 node1_to_be_committed_after NULL
+26 node2_committed_after NULL
+27 node2_committed_after NULL
+28 node2_committed_after NULL
+29 node2_committed_after NULL
+30 node2_committed_after NULL
+31 node1_to_be_committed_after NULL
+32 node1_to_be_committed_after NULL
+33 node1_to_be_committed_after NULL
+34 node1_to_be_committed_after NULL
+35 node1_to_be_committed_after NULL
+36 node1_committed_after NULL
+37 node1_committed_after NULL
+38 node1_committed_after NULL
+39 node1_committed_after NULL
+40 node1_committed_after NULL
+SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; +SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
+COUNT(*) = 0 +COUNT(*) = 0
+1 +1
+DROP TABLE t1; +DROP TABLE t1;
+COMMIT; +COMMIT;
+SET AUTOCOMMIT=ON;
+SET GLOBAL debug_dbug = $debug_orig; +SET GLOBAL debug_dbug = $debug_orig;

View File

@@ -1,519 +1,287 @@
connection node_2;
connection node_1;
connection node_1; connection node_1;
connection node_2; connection node_2;
Performing State Transfer on a server that has been temporarily disconnected Performing State Transfer on a server that has been temporarily disconnected
connection node_1; connection node_1;
CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB; CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (1,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (2,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (3,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (4,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (5,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
COMMIT; COMMIT;
connection node_2; connection node_2;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (6,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (7,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (8,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (9,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (10,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
COMMIT; COMMIT;
Unloading wsrep provider ... Unloading wsrep provider ...
SET GLOBAL wsrep_cluster_address = ''; SET GLOBAL wsrep_cluster_address = '';
connection node_1; connection node_1;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (11,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (12,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (13,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (14,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (15,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
COMMIT; COMMIT;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (16,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (17,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (18,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (19,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (20,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
connect node_1a_galera_st_disconnect_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1; connect node_1a_galera_st_disconnect_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (21,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (22,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (23,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (24,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (25,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
connection node_2; connection node_2;
Loading wsrep provider ... Loading wsrep provider ...
disconnect node_2;
connect node_2, 127.0.0.1, root, , test, $NODE_MYPORT_2;
connection node_2;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (26,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (27,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (28,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (29,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (30,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
COMMIT; COMMIT;
connection node_1; connection node_1;
INSERT INTO t1 VALUES (31,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (32,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (33,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (34,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (35,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
COMMIT; COMMIT;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (36,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (37,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (38,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (39,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (40,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
COMMIT; COMMIT;
connection node_1a_galera_st_disconnect_slave; connection node_1a_galera_st_disconnect_slave;
INSERT INTO t1 VALUES (41,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (42,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (43,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (44,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (45,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
ROLLBACK; ROLLBACK;
SET AUTOCOMMIT=ON; SELECT COUNT(*) = 35 FROM t1;
SET SESSION wsrep_sync_wait=15; COUNT(*) = 35
SELECT COUNT(*) AS EXPECT_35 FROM t1; 1
EXPECT_35
35
SELECT * FROM t1;
id f1
1 node1_committed_before
2 node1_committed_before
3 node1_committed_before
4 node1_committed_before
5 node1_committed_before
6 node2_committed_before
7 node2_committed_before
8 node2_committed_before
9 node2_committed_before
10 node2_committed_before
11 node1_committed_during
12 node1_committed_during
13 node1_committed_during
14 node1_committed_during
15 node1_committed_during
16 node1_to_be_committed_after
17 node1_to_be_committed_after
18 node1_to_be_committed_after
19 node1_to_be_committed_after
20 node1_to_be_committed_after
26 node2_committed_after
27 node2_committed_after
28 node2_committed_after
29 node2_committed_after
30 node2_committed_after
31 node1_to_be_committed_after
32 node1_to_be_committed_after
33 node1_to_be_committed_after
34 node1_to_be_committed_after
35 node1_to_be_committed_after
36 node1_committed_after
37 node1_committed_after
38 node1_committed_after
39 node1_committed_after
40 node1_committed_after
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0 COUNT(*) = 0
1 1
connection node_1; COMMIT;
SET AUTOCOMMIT=ON; SET AUTOCOMMIT=ON;
SET SESSION wsrep_sync_wait=15; connection node_1;
SELECT COUNT(*) AS EXPECT_35 FROM t1; SELECT COUNT(*) = 35 FROM t1;
EXPECT_35 COUNT(*) = 35
35 1
SELECT * FROM t1;
id f1
1 node1_committed_before
2 node1_committed_before
3 node1_committed_before
4 node1_committed_before
5 node1_committed_before
6 node2_committed_before
7 node2_committed_before
8 node2_committed_before
9 node2_committed_before
10 node2_committed_before
11 node1_committed_during
12 node1_committed_during
13 node1_committed_during
14 node1_committed_during
15 node1_committed_during
16 node1_to_be_committed_after
17 node1_to_be_committed_after
18 node1_to_be_committed_after
19 node1_to_be_committed_after
20 node1_to_be_committed_after
26 node2_committed_after
27 node2_committed_after
28 node2_committed_after
29 node2_committed_after
30 node2_committed_after
31 node1_to_be_committed_after
32 node1_to_be_committed_after
33 node1_to_be_committed_after
34 node1_to_be_committed_after
35 node1_to_be_committed_after
36 node1_committed_after
37 node1_committed_after
38 node1_committed_after
39 node1_committed_after
40 node1_committed_after
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0 COUNT(*) = 0
1 1
DROP TABLE t1; DROP TABLE t1;
COMMIT; COMMIT;
SET AUTOCOMMIT=ON;
Performing State Transfer on a server that has been shut down cleanly and restarted Performing State Transfer on a server that has been shut down cleanly and restarted
connection node_1; connection node_1;
CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB; CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (1,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (2,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (3,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (4,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (5,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
COMMIT; COMMIT;
connection node_2; connection node_2;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (6,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (7,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (8,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (9,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (10,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
COMMIT; COMMIT;
Shutting down server ... Shutting down server ...
connection node_1; connection node_1;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (11,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (12,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (13,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (14,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (15,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
COMMIT; COMMIT;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (16,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (17,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (18,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (19,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (20,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
connect node_1a_galera_st_shutdown_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1; connect node_1a_galera_st_shutdown_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (21,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (22,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (23,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (24,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (25,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
connection node_2; connection node_2;
Starting server ... Starting server ...
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (26,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (27,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (28,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (29,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (30,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
COMMIT; COMMIT;
connection node_1; connection node_1;
INSERT INTO t1 VALUES (31,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (32,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (33,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (34,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (35,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
COMMIT; COMMIT;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (36,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (37,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (38,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (39,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (40,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
COMMIT; COMMIT;
connection node_1a_galera_st_shutdown_slave; connection node_1a_galera_st_shutdown_slave;
INSERT INTO t1 VALUES (41,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (42,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (43,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (44,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (45,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
ROLLBACK; ROLLBACK;
SET AUTOCOMMIT=ON; SELECT COUNT(*) = 35 FROM t1;
SET SESSION wsrep_sync_wait=15; COUNT(*) = 35
SELECT COUNT(*) AS EXPECT_15 FROM t1; 1
EXPECT_15
35
SELECT * from t1;
id f1
1 node1_committed_before
2 node1_committed_before
3 node1_committed_before
4 node1_committed_before
5 node1_committed_before
6 node2_committed_before
7 node2_committed_before
8 node2_committed_before
9 node2_committed_before
10 node2_committed_before
11 node1_committed_during
12 node1_committed_during
13 node1_committed_during
14 node1_committed_during
15 node1_committed_during
16 node1_to_be_committed_after
17 node1_to_be_committed_after
18 node1_to_be_committed_after
19 node1_to_be_committed_after
20 node1_to_be_committed_after
26 node2_committed_after
27 node2_committed_after
28 node2_committed_after
29 node2_committed_after
30 node2_committed_after
31 node1_to_be_committed_after
32 node1_to_be_committed_after
33 node1_to_be_committed_after
34 node1_to_be_committed_after
35 node1_to_be_committed_after
36 node1_committed_after
37 node1_committed_after
38 node1_committed_after
39 node1_committed_after
40 node1_committed_after
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0 COUNT(*) = 0
1 1
COMMIT; COMMIT;
connection node_1;
SET AUTOCOMMIT=ON; SET AUTOCOMMIT=ON;
SET SESSION wsrep_sync_wait=15; connection node_1;
SELECT COUNT(*) AS EXPECT_15 FROM t1; SELECT COUNT(*) = 35 FROM t1;
EXPECT_15 COUNT(*) = 35
35 1
SELECT * from t1;
id f1
1 node1_committed_before
2 node1_committed_before
3 node1_committed_before
4 node1_committed_before
5 node1_committed_before
6 node2_committed_before
7 node2_committed_before
8 node2_committed_before
9 node2_committed_before
10 node2_committed_before
11 node1_committed_during
12 node1_committed_during
13 node1_committed_during
14 node1_committed_during
15 node1_committed_during
16 node1_to_be_committed_after
17 node1_to_be_committed_after
18 node1_to_be_committed_after
19 node1_to_be_committed_after
20 node1_to_be_committed_after
26 node2_committed_after
27 node2_committed_after
28 node2_committed_after
29 node2_committed_after
30 node2_committed_after
31 node1_to_be_committed_after
32 node1_to_be_committed_after
33 node1_to_be_committed_after
34 node1_to_be_committed_after
35 node1_to_be_committed_after
36 node1_committed_after
37 node1_committed_after
38 node1_committed_after
39 node1_committed_after
40 node1_committed_after
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0 COUNT(*) = 0
1 1
DROP TABLE t1; DROP TABLE t1;
COMMIT; COMMIT;
SET AUTOCOMMIT=ON;
Performing State Transfer on a server that has been killed and restarted Performing State Transfer on a server that has been killed and restarted
connection node_1; connection node_1;
CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB; CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (1,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (2,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (3,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (4,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (5,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
COMMIT; COMMIT;
connection node_2; connection node_2;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (6,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (7,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (8,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (9,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (10,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
COMMIT; COMMIT;
Killing server ... Killing server ...
connection node_1; connection node_1;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (11,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (12,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (13,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (14,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (15,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
COMMIT; COMMIT;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (16,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (17,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (18,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (19,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (20,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
connect node_1a_galera_st_kill_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1; connect node_1a_galera_st_kill_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (21,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (22,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (23,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (24,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (25,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
connection node_2; connection node_2;
Performing --wsrep-recover ... Performing --wsrep-recover ...
Starting server ... Starting server ...
Using --wsrep-start-position when starting mysqld ... Using --wsrep-start-position when starting mysqld ...
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (26,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (27,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (28,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (29,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (30,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
COMMIT; COMMIT;
connection node_1; connection node_1;
INSERT INTO t1 VALUES (31,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (32,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (33,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (34,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (35,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
COMMIT; COMMIT;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (36,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (37,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (38,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (39,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (40,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
COMMIT; COMMIT;
connection node_1a_galera_st_kill_slave; connection node_1a_galera_st_kill_slave;
INSERT INTO t1 VALUES (41,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (42,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (43,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (45,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (46,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
ROLLBACK; ROLLBACK;
SET AUTOCOMMIT=ON; SELECT COUNT(*) = 35 FROM t1;
SET SESSION wsrep_sync_wait=15; COUNT(*) = 35
SELECT COUNT(*) AS EXPECT_35 FROM t1; 1
EXPECT_35
35
SELECT * FROM t1;
id f1
1 node1_committed_before
2 node1_committed_before
3 node1_committed_before
4 node1_committed_before
5 node1_committed_before
6 node2_committed_before
7 node2_committed_before
8 node2_committed_before
9 node2_committed_before
10 node2_committed_before
11 node1_committed_during
12 node1_committed_during
13 node1_committed_during
14 node1_committed_during
15 node1_committed_during
16 node1_to_be_committed_after
17 node1_to_be_committed_after
18 node1_to_be_committed_after
19 node1_to_be_committed_after
20 node1_to_be_committed_after
26 node2_committed_after
27 node2_committed_after
28 node2_committed_after
29 node2_committed_after
30 node2_committed_after
31 node1_to_be_committed_after
32 node1_to_be_committed_after
33 node1_to_be_committed_after
34 node1_to_be_committed_after
35 node1_to_be_committed_after
36 node1_committed_after
37 node1_committed_after
38 node1_committed_after
39 node1_committed_after
40 node1_committed_after
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0 COUNT(*) = 0
1 1
COMMIT; COMMIT;
connection node_1;
SET AUTOCOMMIT=ON; SET AUTOCOMMIT=ON;
SET SESSION wsrep_sync_wait=15; connection node_1;
SELECT COUNT(*) AS EXPECT_35 FROM t1; SELECT COUNT(*) = 35 FROM t1;
EXPECT_35 COUNT(*) = 35
35 1
SELECT * FROM t1;
id f1
1 node1_committed_before
2 node1_committed_before
3 node1_committed_before
4 node1_committed_before
5 node1_committed_before
6 node2_committed_before
7 node2_committed_before
8 node2_committed_before
9 node2_committed_before
10 node2_committed_before
11 node1_committed_during
12 node1_committed_during
13 node1_committed_during
14 node1_committed_during
15 node1_committed_during
16 node1_to_be_committed_after
17 node1_to_be_committed_after
18 node1_to_be_committed_after
19 node1_to_be_committed_after
20 node1_to_be_committed_after
26 node2_committed_after
27 node2_committed_after
28 node2_committed_after
29 node2_committed_after
30 node2_committed_after
31 node1_to_be_committed_after
32 node1_to_be_committed_after
33 node1_to_be_committed_after
34 node1_to_be_committed_after
35 node1_to_be_committed_after
36 node1_committed_after
37 node1_committed_after
38 node1_committed_after
39 node1_committed_after
40 node1_committed_after
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0 COUNT(*) = 0
1 1
DROP TABLE t1; DROP TABLE t1;
COMMIT; COMMIT;
SET AUTOCOMMIT=ON;

View File

@@ -1,27 +1,27 @@
--- r/galera_ist_MDEV-28583.result --- r/galera_ist_MDEV-28583.result
+++ r/galera_ist_MDEV-28583,debug.reject +++ r/galera_ist_MDEV-28583.reject
@@ -517,3 +517,187 @@ @@ -285,3 +285,111 @@
1
DROP TABLE t1; DROP TABLE t1;
COMMIT; COMMIT;
SET AUTOCOMMIT=ON;
+Performing State Transfer on a server that has been killed and restarted +Performing State Transfer on a server that has been killed and restarted
+while a DDL was in progress on it +while a DDL was in progress on it
+connection node_1; +connection node_1;
+CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB; +CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
+SET AUTOCOMMIT=OFF; +SET AUTOCOMMIT=OFF;
+START TRANSACTION; +START TRANSACTION;
+INSERT INTO t1 VALUES (1,'node1_committed_before'); +INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES (2,'node1_committed_before'); +INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES (3,'node1_committed_before'); +INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES (4,'node1_committed_before'); +INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES (5,'node1_committed_before'); +INSERT INTO t1 VALUES ('node1_committed_before');
+connection node_2; +connection node_2;
+START TRANSACTION; +START TRANSACTION;
+INSERT INTO t1 VALUES (6,'node2_committed_before'); +INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES (7,'node2_committed_before'); +INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES (8,'node2_committed_before'); +INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES (9,'node2_committed_before'); +INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES (10,'node2_committed_before'); +INSERT INTO t1 VALUES ('node2_committed_before');
+COMMIT; +COMMIT;
+SET GLOBAL debug_dbug = 'd,sync.alter_opened_table'; +SET GLOBAL debug_dbug = 'd,sync.alter_opened_table';
+connection node_1; +connection node_1;
@@ -32,26 +32,26 @@
+connection node_1; +connection node_1;
+SET AUTOCOMMIT=OFF; +SET AUTOCOMMIT=OFF;
+START TRANSACTION; +START TRANSACTION;
+INSERT INTO t1 (id,f1) VALUES (11,'node1_committed_during'); +INSERT INTO t1 (f1) VALUES ('node1_committed_during');
+INSERT INTO t1 (id,f1) VALUES (12,'node1_committed_during'); +INSERT INTO t1 (f1) VALUES ('node1_committed_during');
+INSERT INTO t1 (id,f1) VALUES (13,'node1_committed_during'); +INSERT INTO t1 (f1) VALUES ('node1_committed_during');
+INSERT INTO t1 (id,f1) VALUES (14,'node1_committed_during'); +INSERT INTO t1 (f1) VALUES ('node1_committed_during');
+INSERT INTO t1 (id,f1) VALUES (15,'node1_committed_during'); +INSERT INTO t1 (f1) VALUES ('node1_committed_during');
+COMMIT; +COMMIT;
+START TRANSACTION; +START TRANSACTION;
+INSERT INTO t1 (id,f1) VALUES (16,'node1_to_be_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (id,f1) VALUES (17,'node1_to_be_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (id,f1) VALUES (18,'node1_to_be_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (id,f1) VALUES (19,'node1_to_be_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (id,f1) VALUES (20,'node1_to_be_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+connect node_1a_galera_st_kill_slave_ddl, 127.0.0.1, root, , test, $NODE_MYPORT_1; +connect node_1a_galera_st_kill_slave_ddl, 127.0.0.1, root, , test, $NODE_MYPORT_1;
+SET AUTOCOMMIT=OFF; +SET AUTOCOMMIT=OFF;
+START TRANSACTION; +START TRANSACTION;
+INSERT INTO t1 (id,f1) VALUES (21,'node1_to_be_rollbacked_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (id,f1) VALUES (22,'node1_to_be_rollbacked_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (id,f1) VALUES (23,'node1_to_be_rollbacked_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (id,f1) VALUES (24,'node1_to_be_rollbacked_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (id,f1) VALUES (25,'node1_to_be_rollbacked_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+connection node_2; +connection node_2;
+Performing --wsrep-recover ... +Performing --wsrep-recover ...
+connection node_2; +connection node_2;
@@ -59,132 +59,56 @@
+Using --wsrep-start-position when starting mysqld ... +Using --wsrep-start-position when starting mysqld ...
+SET AUTOCOMMIT=OFF; +SET AUTOCOMMIT=OFF;
+START TRANSACTION; +START TRANSACTION;
+INSERT INTO t1 (id,f1) VALUES (26,'node2_committed_after'); +INSERT INTO t1 (f1) VALUES ('node2_committed_after');
+INSERT INTO t1 (id,f1) VALUES (27,'node2_committed_after'); +INSERT INTO t1 (f1) VALUES ('node2_committed_after');
+INSERT INTO t1 (id,f1) VALUES (28,'node2_committed_after'); +INSERT INTO t1 (f1) VALUES ('node2_committed_after');
+INSERT INTO t1 (id,f1) VALUES (29,'node2_committed_after'); +INSERT INTO t1 (f1) VALUES ('node2_committed_after');
+INSERT INTO t1 (id,f1) VALUES (30,'node2_committed_after'); +INSERT INTO t1 (f1) VALUES ('node2_committed_after');
+COMMIT; +COMMIT;
+connection node_1; +connection node_1;
+INSERT INTO t1 (id,f1) VALUES (31,'node1_to_be_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (id,f1) VALUES (32,'node1_to_be_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (id,f1) VALUES (33,'node1_to_be_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (id,f1) VALUES (34,'node1_to_be_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (id,f1) VALUES (35,'node1_to_be_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+COMMIT; +COMMIT;
+SET AUTOCOMMIT=OFF; +SET AUTOCOMMIT=OFF;
+START TRANSACTION; +START TRANSACTION;
+INSERT INTO t1 (id,f1) VALUES (36,'node1_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_committed_after');
+INSERT INTO t1 (id,f1) VALUES (37,'node1_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_committed_after');
+INSERT INTO t1 (id,f1) VALUES (38,'node1_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_committed_after');
+INSERT INTO t1 (id,f1) VALUES (39,'node1_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_committed_after');
+INSERT INTO t1 (id,f1) VALUES (40,'node1_committed_after'); +INSERT INTO t1 (f1) VALUES ('node1_committed_after');
+COMMIT; +COMMIT;
+connection node_1a_galera_st_kill_slave_ddl; +connection node_1a_galera_st_kill_slave_ddl;
+INSERT INTO t1 (id,f1) VALUES (41,'node1_to_be_rollbacked_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (id,f1) VALUES (42,'node1_to_be_rollbacked_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (id,f1) VALUES (43,'node1_to_be_rollbacked_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (id,f1) VALUES (44,'node1_to_be_rollbacked_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (id,f1) VALUES (45,'node1_to_be_rollbacked_after'); +INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+ROLLBACK; +ROLLBACK;
+SET AUTOCOMMIT=ON; +SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
+SET SESSION wsrep_sync_wait=15; +COUNT(*) = 2
+SELECT COUNT(*) AS EXPECT_3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; +1
+EXPECT_3 +SELECT COUNT(*) = 35 FROM t1;
+3 +COUNT(*) = 35
+SELECT COUNT(*) AS EXPECT_35 FROM t1; +1
+EXPECT_35
+35
+SELECT * FROM t1;
+id f1 f2
+1 node1_committed_before NULL
+2 node1_committed_before NULL
+3 node1_committed_before NULL
+4 node1_committed_before NULL
+5 node1_committed_before NULL
+6 node2_committed_before NULL
+7 node2_committed_before NULL
+8 node2_committed_before NULL
+9 node2_committed_before NULL
+10 node2_committed_before NULL
+11 node1_committed_during NULL
+12 node1_committed_during NULL
+13 node1_committed_during NULL
+14 node1_committed_during NULL
+15 node1_committed_during NULL
+16 node1_to_be_committed_after NULL
+17 node1_to_be_committed_after NULL
+18 node1_to_be_committed_after NULL
+19 node1_to_be_committed_after NULL
+20 node1_to_be_committed_after NULL
+26 node2_committed_after NULL
+27 node2_committed_after NULL
+28 node2_committed_after NULL
+29 node2_committed_after NULL
+30 node2_committed_after NULL
+31 node1_to_be_committed_after NULL
+32 node1_to_be_committed_after NULL
+33 node1_to_be_committed_after NULL
+34 node1_to_be_committed_after NULL
+35 node1_to_be_committed_after NULL
+36 node1_committed_after NULL
+37 node1_committed_after NULL
+38 node1_committed_after NULL
+39 node1_committed_after NULL
+40 node1_committed_after NULL
+SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; +SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
+COUNT(*) = 0 +COUNT(*) = 0
+1 +1
+COMMIT; +COMMIT;
+connection node_1;
+SET AUTOCOMMIT=ON; +SET AUTOCOMMIT=ON;
+SET SESSION wsrep_sync_wait=15; +connection node_1;
+SELECT COUNT(*) AS EXPECT_3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; +SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
+EXPECT_3 +COUNT(*) = 2
+3 +1
+SELECT COUNT(*) AS EXPECT_35 FROM t1; +SELECT COUNT(*) = 35 FROM t1;
+EXPECT_35 +COUNT(*) = 35
+35 +1
+SELECT * FROM t1;
+id f1 f2
+1 node1_committed_before NULL
+2 node1_committed_before NULL
+3 node1_committed_before NULL
+4 node1_committed_before NULL
+5 node1_committed_before NULL
+6 node2_committed_before NULL
+7 node2_committed_before NULL
+8 node2_committed_before NULL
+9 node2_committed_before NULL
+10 node2_committed_before NULL
+11 node1_committed_during NULL
+12 node1_committed_during NULL
+13 node1_committed_during NULL
+14 node1_committed_during NULL
+15 node1_committed_during NULL
+16 node1_to_be_committed_after NULL
+17 node1_to_be_committed_after NULL
+18 node1_to_be_committed_after NULL
+19 node1_to_be_committed_after NULL
+20 node1_to_be_committed_after NULL
+26 node2_committed_after NULL
+27 node2_committed_after NULL
+28 node2_committed_after NULL
+29 node2_committed_after NULL
+30 node2_committed_after NULL
+31 node1_to_be_committed_after NULL
+32 node1_to_be_committed_after NULL
+33 node1_to_be_committed_after NULL
+34 node1_to_be_committed_after NULL
+35 node1_to_be_committed_after NULL
+36 node1_committed_after NULL
+37 node1_committed_after NULL
+38 node1_committed_after NULL
+39 node1_committed_after NULL
+40 node1_committed_after NULL
+SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; +SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
+COUNT(*) = 0 +COUNT(*) = 0
+1 +1
+DROP TABLE t1; +DROP TABLE t1;
+COMMIT; +COMMIT;
+SET AUTOCOMMIT=ON;
+SET GLOBAL debug_dbug = $debug_orig; +SET GLOBAL debug_dbug = $debug_orig;

View File

@@ -1,519 +1,287 @@
connection node_2;
connection node_1;
connection node_1; connection node_1;
connection node_2; connection node_2;
Performing State Transfer on a server that has been temporarily disconnected Performing State Transfer on a server that has been temporarily disconnected
connection node_1; connection node_1;
CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB; CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (1,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (2,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (3,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (4,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (5,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
COMMIT; COMMIT;
connection node_2; connection node_2;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (6,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (7,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (8,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (9,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (10,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
COMMIT; COMMIT;
Unloading wsrep provider ... Unloading wsrep provider ...
SET GLOBAL wsrep_cluster_address = ''; SET GLOBAL wsrep_cluster_address = '';
connection node_1; connection node_1;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (11,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (12,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (13,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (14,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (15,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
COMMIT; COMMIT;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (16,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (17,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (18,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (19,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (20,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
connect node_1a_galera_st_disconnect_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1; connect node_1a_galera_st_disconnect_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (21,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (22,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (23,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (24,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (25,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
connection node_2; connection node_2;
Loading wsrep provider ... Loading wsrep provider ...
disconnect node_2;
connect node_2, 127.0.0.1, root, , test, $NODE_MYPORT_2;
connection node_2;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (26,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (27,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (28,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (29,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (30,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
COMMIT; COMMIT;
connection node_1; connection node_1;
INSERT INTO t1 VALUES (31,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (32,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (33,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (34,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (35,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
COMMIT; COMMIT;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (36,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (37,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (38,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (39,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (40,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
COMMIT; COMMIT;
connection node_1a_galera_st_disconnect_slave; connection node_1a_galera_st_disconnect_slave;
INSERT INTO t1 VALUES (41,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (42,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (43,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (44,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (45,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
ROLLBACK; ROLLBACK;
SET AUTOCOMMIT=ON; SELECT COUNT(*) = 35 FROM t1;
SET SESSION wsrep_sync_wait=15; COUNT(*) = 35
SELECT COUNT(*) AS EXPECT_35 FROM t1; 1
EXPECT_35
35
SELECT * FROM t1;
id f1
1 node1_committed_before
2 node1_committed_before
3 node1_committed_before
4 node1_committed_before
5 node1_committed_before
6 node2_committed_before
7 node2_committed_before
8 node2_committed_before
9 node2_committed_before
10 node2_committed_before
11 node1_committed_during
12 node1_committed_during
13 node1_committed_during
14 node1_committed_during
15 node1_committed_during
16 node1_to_be_committed_after
17 node1_to_be_committed_after
18 node1_to_be_committed_after
19 node1_to_be_committed_after
20 node1_to_be_committed_after
26 node2_committed_after
27 node2_committed_after
28 node2_committed_after
29 node2_committed_after
30 node2_committed_after
31 node1_to_be_committed_after
32 node1_to_be_committed_after
33 node1_to_be_committed_after
34 node1_to_be_committed_after
35 node1_to_be_committed_after
36 node1_committed_after
37 node1_committed_after
38 node1_committed_after
39 node1_committed_after
40 node1_committed_after
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0 COUNT(*) = 0
1 1
connection node_1; COMMIT;
SET AUTOCOMMIT=ON; SET AUTOCOMMIT=ON;
SET SESSION wsrep_sync_wait=15; connection node_1;
SELECT COUNT(*) AS EXPECT_35 FROM t1; SELECT COUNT(*) = 35 FROM t1;
EXPECT_35 COUNT(*) = 35
35 1
SELECT * FROM t1;
id f1
1 node1_committed_before
2 node1_committed_before
3 node1_committed_before
4 node1_committed_before
5 node1_committed_before
6 node2_committed_before
7 node2_committed_before
8 node2_committed_before
9 node2_committed_before
10 node2_committed_before
11 node1_committed_during
12 node1_committed_during
13 node1_committed_during
14 node1_committed_during
15 node1_committed_during
16 node1_to_be_committed_after
17 node1_to_be_committed_after
18 node1_to_be_committed_after
19 node1_to_be_committed_after
20 node1_to_be_committed_after
26 node2_committed_after
27 node2_committed_after
28 node2_committed_after
29 node2_committed_after
30 node2_committed_after
31 node1_to_be_committed_after
32 node1_to_be_committed_after
33 node1_to_be_committed_after
34 node1_to_be_committed_after
35 node1_to_be_committed_after
36 node1_committed_after
37 node1_committed_after
38 node1_committed_after
39 node1_committed_after
40 node1_committed_after
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0 COUNT(*) = 0
1 1
DROP TABLE t1; DROP TABLE t1;
COMMIT; COMMIT;
SET AUTOCOMMIT=ON;
Performing State Transfer on a server that has been shut down cleanly and restarted Performing State Transfer on a server that has been shut down cleanly and restarted
connection node_1; connection node_1;
CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB; CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (1,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (2,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (3,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (4,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (5,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
COMMIT; COMMIT;
connection node_2; connection node_2;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (6,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (7,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (8,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (9,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (10,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
COMMIT; COMMIT;
Shutting down server ... Shutting down server ...
connection node_1; connection node_1;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (11,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (12,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (13,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (14,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (15,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
COMMIT; COMMIT;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (16,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (17,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (18,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (19,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (20,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
connect node_1a_galera_st_shutdown_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1; connect node_1a_galera_st_shutdown_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (21,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (22,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (23,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (24,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (25,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
connection node_2; connection node_2;
Starting server ... Starting server ...
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (26,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (27,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (28,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (29,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (30,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
COMMIT; COMMIT;
connection node_1; connection node_1;
INSERT INTO t1 VALUES (31,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (32,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (33,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (34,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (35,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
COMMIT; COMMIT;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (36,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (37,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (38,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (39,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (40,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
COMMIT; COMMIT;
connection node_1a_galera_st_shutdown_slave; connection node_1a_galera_st_shutdown_slave;
INSERT INTO t1 VALUES (41,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (42,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (43,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (44,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (45,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
ROLLBACK; ROLLBACK;
SET AUTOCOMMIT=ON; SELECT COUNT(*) = 35 FROM t1;
SET SESSION wsrep_sync_wait=15; COUNT(*) = 35
SELECT COUNT(*) AS EXPECT_15 FROM t1; 1
EXPECT_15
35
SELECT * from t1;
id f1
1 node1_committed_before
2 node1_committed_before
3 node1_committed_before
4 node1_committed_before
5 node1_committed_before
6 node2_committed_before
7 node2_committed_before
8 node2_committed_before
9 node2_committed_before
10 node2_committed_before
11 node1_committed_during
12 node1_committed_during
13 node1_committed_during
14 node1_committed_during
15 node1_committed_during
16 node1_to_be_committed_after
17 node1_to_be_committed_after
18 node1_to_be_committed_after
19 node1_to_be_committed_after
20 node1_to_be_committed_after
26 node2_committed_after
27 node2_committed_after
28 node2_committed_after
29 node2_committed_after
30 node2_committed_after
31 node1_to_be_committed_after
32 node1_to_be_committed_after
33 node1_to_be_committed_after
34 node1_to_be_committed_after
35 node1_to_be_committed_after
36 node1_committed_after
37 node1_committed_after
38 node1_committed_after
39 node1_committed_after
40 node1_committed_after
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0 COUNT(*) = 0
1 1
COMMIT; COMMIT;
connection node_1;
SET AUTOCOMMIT=ON; SET AUTOCOMMIT=ON;
SET SESSION wsrep_sync_wait=15; connection node_1;
SELECT COUNT(*) AS EXPECT_15 FROM t1; SELECT COUNT(*) = 35 FROM t1;
EXPECT_15 COUNT(*) = 35
35 1
SELECT * from t1;
id f1
1 node1_committed_before
2 node1_committed_before
3 node1_committed_before
4 node1_committed_before
5 node1_committed_before
6 node2_committed_before
7 node2_committed_before
8 node2_committed_before
9 node2_committed_before
10 node2_committed_before
11 node1_committed_during
12 node1_committed_during
13 node1_committed_during
14 node1_committed_during
15 node1_committed_during
16 node1_to_be_committed_after
17 node1_to_be_committed_after
18 node1_to_be_committed_after
19 node1_to_be_committed_after
20 node1_to_be_committed_after
26 node2_committed_after
27 node2_committed_after
28 node2_committed_after
29 node2_committed_after
30 node2_committed_after
31 node1_to_be_committed_after
32 node1_to_be_committed_after
33 node1_to_be_committed_after
34 node1_to_be_committed_after
35 node1_to_be_committed_after
36 node1_committed_after
37 node1_committed_after
38 node1_committed_after
39 node1_committed_after
40 node1_committed_after
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0 COUNT(*) = 0
1 1
DROP TABLE t1; DROP TABLE t1;
COMMIT; COMMIT;
SET AUTOCOMMIT=ON;
Performing State Transfer on a server that has been killed and restarted Performing State Transfer on a server that has been killed and restarted
connection node_1; connection node_1;
CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB; CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (1,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (2,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (3,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (4,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
INSERT INTO t1 VALUES (5,'node1_committed_before'); INSERT INTO t1 VALUES ('node1_committed_before');
COMMIT; COMMIT;
connection node_2; connection node_2;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (6,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (7,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (8,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (9,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES (10,'node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before');
COMMIT; COMMIT;
Killing server ... Killing server ...
connection node_1; connection node_1;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (11,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (12,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (13,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (14,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
INSERT INTO t1 VALUES (15,'node1_committed_during'); INSERT INTO t1 VALUES ('node1_committed_during');
COMMIT; COMMIT;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (16,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (17,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (18,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (19,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (20,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
connect node_1a_galera_st_kill_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1; connect node_1a_galera_st_kill_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (21,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (22,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (23,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (24,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (25,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
connection node_2; connection node_2;
Performing --wsrep-recover ... Performing --wsrep-recover ...
Starting server ... Starting server ...
Using --wsrep-start-position when starting mysqld ... Using --wsrep-start-position when starting mysqld ...
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (26,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (27,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (28,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (29,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
INSERT INTO t1 VALUES (30,'node2_committed_after'); INSERT INTO t1 VALUES ('node2_committed_after');
COMMIT; COMMIT;
connection node_1; connection node_1;
INSERT INTO t1 VALUES (31,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (32,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (33,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (34,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
INSERT INTO t1 VALUES (35,'node1_to_be_committed_after'); INSERT INTO t1 VALUES ('node1_to_be_committed_after');
COMMIT; COMMIT;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES (36,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (37,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (38,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (39,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
INSERT INTO t1 VALUES (40,'node1_committed_after'); INSERT INTO t1 VALUES ('node1_committed_after');
COMMIT; COMMIT;
connection node_1a_galera_st_kill_slave; connection node_1a_galera_st_kill_slave;
INSERT INTO t1 VALUES (41,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (42,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (43,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (45,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES (46,'node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
ROLLBACK; ROLLBACK;
SET AUTOCOMMIT=ON; SELECT COUNT(*) = 35 FROM t1;
SET SESSION wsrep_sync_wait=15; COUNT(*) = 35
SELECT COUNT(*) AS EXPECT_35 FROM t1; 1
EXPECT_35
35
SELECT * FROM t1;
id f1
1 node1_committed_before
2 node1_committed_before
3 node1_committed_before
4 node1_committed_before
5 node1_committed_before
6 node2_committed_before
7 node2_committed_before
8 node2_committed_before
9 node2_committed_before
10 node2_committed_before
11 node1_committed_during
12 node1_committed_during
13 node1_committed_during
14 node1_committed_during
15 node1_committed_during
16 node1_to_be_committed_after
17 node1_to_be_committed_after
18 node1_to_be_committed_after
19 node1_to_be_committed_after
20 node1_to_be_committed_after
26 node2_committed_after
27 node2_committed_after
28 node2_committed_after
29 node2_committed_after
30 node2_committed_after
31 node1_to_be_committed_after
32 node1_to_be_committed_after
33 node1_to_be_committed_after
34 node1_to_be_committed_after
35 node1_to_be_committed_after
36 node1_committed_after
37 node1_committed_after
38 node1_committed_after
39 node1_committed_after
40 node1_committed_after
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0 COUNT(*) = 0
1 1
COMMIT; COMMIT;
connection node_1;
SET AUTOCOMMIT=ON; SET AUTOCOMMIT=ON;
SET SESSION wsrep_sync_wait=15; connection node_1;
SELECT COUNT(*) AS EXPECT_35 FROM t1; SELECT COUNT(*) = 35 FROM t1;
EXPECT_35 COUNT(*) = 35
35 1
SELECT * FROM t1;
id f1
1 node1_committed_before
2 node1_committed_before
3 node1_committed_before
4 node1_committed_before
5 node1_committed_before
6 node2_committed_before
7 node2_committed_before
8 node2_committed_before
9 node2_committed_before
10 node2_committed_before
11 node1_committed_during
12 node1_committed_during
13 node1_committed_during
14 node1_committed_during
15 node1_committed_during
16 node1_to_be_committed_after
17 node1_to_be_committed_after
18 node1_to_be_committed_after
19 node1_to_be_committed_after
20 node1_to_be_committed_after
26 node2_committed_after
27 node2_committed_after
28 node2_committed_after
29 node2_committed_after
30 node2_committed_after
31 node1_to_be_committed_after
32 node1_to_be_committed_after
33 node1_to_be_committed_after
34 node1_to_be_committed_after
35 node1_to_be_committed_after
36 node1_committed_after
37 node1_committed_after
38 node1_committed_after
39 node1_committed_after
40 node1_committed_after
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0 COUNT(*) = 0
1 1
DROP TABLE t1; DROP TABLE t1;
COMMIT; COMMIT;
SET AUTOCOMMIT=ON;

View File

@@ -1,24 +0,0 @@
connection node_2;
connection node_1;
connection node_1;
connection node_2;
connection node_1;
SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=true';
CREATE TABLE ten (f1 INTEGER) ENGINE=InnoDB;
INSERT INTO ten VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10),(11);
CREATE TABLE t1 (f1 VARCHAR(128)) ENGINE=InnoDB;
connection node_2;
Killing server ...
connection node_1;
INSERT INTO t1 SELECT REPEAT('a', 128) FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4, ten AS a5, ten AS a6;
connection node_2;
connection node_2a;
SELECT COUNT(*) FROM t1;
COUNT(*)
1771561
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
VARIABLE_VALUE
2
connection node_1;
DROP TABLE t1;
DROP TABLE ten;

View File

@@ -44,6 +44,9 @@ Table Create Table
Seq1_1 CREATE SEQUENCE `Seq1_1` start with 1 minvalue 1 maxvalue 9223372036854775806 increment by 1 cache 1000 nocycle ENGINE=InnoDB Seq1_1 CREATE SEQUENCE `Seq1_1` start with 1 minvalue 1 maxvalue 9223372036854775806 increment by 1 cache 1000 nocycle ENGINE=InnoDB
select NEXT VALUE FOR Seq1_1; select NEXT VALUE FOR Seq1_1;
NEXT VALUE FOR Seq1_1 NEXT VALUE FOR Seq1_1
1 3001
connection node_1; connection node_1;
DROP SEQUENCE Seq1_1; DROP SEQUENCE Seq1_1;
CALL mtr.add_suppression("SEQUENCES declared without `NOCACHE` will not behave correctly in galera cluster.");
connection node_2;
CALL mtr.add_suppression("SEQUENCES declared without `NOCACHE` will not behave correctly in galera cluster.");

View File

@@ -12,9 +12,9 @@ connection node_2;
TRUNCATE TABLE t1; TRUNCATE TABLE t1;
connection node_1; connection node_1;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
SELECT COUNT(*) = 0 FROM t1; SELECT COUNT(*) FROM t1;
COUNT(*) = 0 COUNT(*)
1 0
SET DEBUG_SYNC = 'RESET'; SET DEBUG_SYNC = 'RESET';
DROP TABLE t1; DROP TABLE t1;
connection node_1; connection node_1;
@@ -27,9 +27,9 @@ SET DEBUG_SYNC = 'now WAIT_FOR before_cert';
connection node_2; connection node_2;
TRUNCATE TABLE t1; TRUNCATE TABLE t1;
connection node_1; connection node_1;
SELECT COUNT(*) = 1 FROM t1; SELECT COUNT(*) FROM t1;
COUNT(*) = 1 COUNT(*)
1 0
SET DEBUG_SYNC = 'RESET'; SET DEBUG_SYNC = 'RESET';
DROP TABLE t1; DROP TABLE t1;
connection node_1; connection node_1;
@@ -44,18 +44,17 @@ connection node_2;
TRUNCATE TABLE t1; TRUNCATE TABLE t1;
connection node_1a; connection node_1a;
SET DEBUG_SYNC = 'now WAIT_FOR wsrep_retry_autocommit_reached'; SET DEBUG_SYNC = 'now WAIT_FOR wsrep_retry_autocommit_reached';
SELECT COUNT(*) = 0 FROM t1; SELECT COUNT(*) FROM t1;
COUNT(*) = 0 COUNT(*)
1 0
SET DEBUG_SYNC = 'now SIGNAL wsrep_retry_autocommit_continue WAIT_FOR before_cert'; SET DEBUG_SYNC = 'now SIGNAL wsrep_retry_autocommit_continue WAIT_FOR before_cert';
connection node_2; connection node_2;
TRUNCATE TABLE t1; TRUNCATE TABLE t1;
connection node_1a; connection node_1a;
SELECT COUNT(*) = 0 FROM t1; SELECT COUNT(*) FROM t1;
COUNT(*) = 0 COUNT(*)
1 0
connection node_1; connection node_1;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
SET DEBUG_SYNC = 'RESET'; SET DEBUG_SYNC = 'RESET';
SET GLOBAL debug_dbug = NULL; SET GLOBAL debug_dbug = NULL;
DROP TABLE t1; DROP TABLE t1;
@@ -66,8 +65,8 @@ SET GLOBAL debug_dbug = '+d,sync.wsrep_retry_autocommit';
SET DEBUG_SYNC = 'wsrep_before_certification SIGNAL before_cert WAIT_FOR continue EXECUTE 64'; SET DEBUG_SYNC = 'wsrep_before_certification SIGNAL before_cert WAIT_FOR continue EXECUTE 64';
INSERT INTO t1 VALUES (5); INSERT INTO t1 VALUES (5);
connection node_1; connection node_1;
SELECT COUNT(*) = 1 FROM t1; SELECT COUNT(*) FROM t1;
COUNT(*) = 1 COUNT(*)
1 1
SET DEBUG_SYNC = 'RESET'; SET DEBUG_SYNC = 'RESET';
SET GLOBAL debug_dbug = NULL; SET GLOBAL debug_dbug = NULL;

View File

@@ -1,72 +0,0 @@
#
# GCF-1081 - Assertion `!thd->sp_runtime_ctx`
#
# Test replaying of stored procedures
#
--source include/galera_cluster.inc
--source include/have_innodb.inc
--source include/have_debug_sync.inc
--source include/galera_have_debug_sync.inc
--connection node_1
--let $wsrep_local_replays_old = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_replays'`
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 INTEGER) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1, 0), (3, 0);
DELIMITER |;
CREATE PROCEDURE proc_update ()
BEGIN
UPDATE t1 SET f2 = 1 where f1 > 0;
END|
DELIMITER ;|
# Block the SP
--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
--let $galera_sync_point = commit_monitor_master_enter_sync
--source include/galera_set_sync_point.inc
--connection node_1
--send CALL proc_update ();
# Wait until SP is blocked
--connection node_1a
SET SESSION wsrep_sync_wait = 0;
--source include/galera_wait_sync_point.inc
# Issue a conflicting insert on node #2
--connection node_1a
SET GLOBAL debug_dbug = 'd,sync.wsrep_before_BF_victim_unlock';
--connection node_2
--send INSERT INTO t1 VALUES (2, 2);
# Wait until it BF aborts the SP
--connection node_1a
SET SESSION DEBUG_SYNC = 'now WAIT_FOR sync.wsrep_before_BF_victim_unlock_reached';
SET GLOBAL debug_dbug = '';
# Unblock the SP
--connection node_1a
--source include/galera_clear_sync_point.inc
--source include/galera_signal_sync_point.inc
--connection node_2
--reap
SELECT * FROM t1;
# SP succeeds
--connection node_1
--reap
SELECT * FROM t1;
# wsrep_local_replays has increased by 1
--let $wsrep_local_replays_new = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_replays'`
--disable_query_log
--eval SELECT $wsrep_local_replays_new - $wsrep_local_replays_old AS wsrep_local_replays;
--enable_query_log
DROP PROCEDURE proc_update;
DROP TABLE t1;

View File

@@ -13,3 +13,11 @@ CREATE SEQUENCE Seq1_1 START WITH 1 INCREMENT BY 1;
INSERT INTO t1 VALUES (NEXT VALUE FOR Seq1_1); INSERT INTO t1 VALUES (NEXT VALUE FOR Seq1_1);
DROP SEQUENCE Seq1_1; DROP SEQUENCE Seq1_1;
DROP TABLE t1; DROP TABLE t1;
# Supress warning for SEQUENCES that are declared without `NOCACHE` introduced with MDEV-27862
CALL mtr.add_suppression("SEQUENCES declared without `NOCACHE` will not behave correctly in galera cluster.");
--connection node_2
CALL mtr.add_suppression("SEQUENCES declared without `NOCACHE` will not behave correctly in galera cluster.");

View File

@@ -0,0 +1,4 @@
[binlogoff]
[binlogon]
log-bin

View File

@@ -0,0 +1,67 @@
--source include/galera_cluster.inc
--source include/have_innodb.inc
# Report WARNING when SEQUENCE is created without `NOCACHE`
CREATE SEQUENCE seq_nocache ENGINE=InnoDB;
DROP SEQUENCE seq_nocache;
CALL mtr.add_suppression("SEQUENCES declared without `NOCACHE` will not behave correctly in galera cluster.");
--connection node_2
CALL mtr.add_suppression("SEQUENCES declared without `NOCACHE` will not behave correctly in galera cluster.");
# NEXTVAL
--connection node_1
CREATE SEQUENCE seq NOCACHE ENGINE=InnoDB;
SELECT NEXTVAL(seq) = 1;
--connection node_2
SELECT NEXTVAL(seq) = 2;
--connection node_1
SELECT NEXTVAL(seq) = 3;
# SETVAL
SELECT SETVAL(seq, 100);
--connection node_2
SELECT NEXTVAL(seq) = 101;
--connection node_1
SELECT NEXTVAL(seq) = 102;
DROP SEQUENCE seq;
# TRANSACTIONS
CREATE TABLE t1(f1 INT);
CREATE SEQUENCE seq_transaction NOCACHE ENGINE=InnoDB;
START TRANSACTION;
INSERT INTO t1 VALUES (0);
SELECT NEXTVAL(seq_transaction);
INSERT INTO t1 VALUES (NEXTVAL(seq_transaction));
COMMIT;
--connection node_2
SELECT COUNT(*) = 2 FROM t1;
SELECT NEXTVAL(seq_transaction) = 3;
--connection node_1
SELECT NEXTVAL(seq_transaction) = 4;
DROP SEQUENCE seq_transaction;
DROP TABLE t1;

View File

@@ -1,50 +0,0 @@
#
# This test kill -9-s a slave while a large update has been performed on the master. SST is performed.
#
--source include/big_test.inc
--source include/galera_cluster.inc
# Save original auto_increment_offset values.
--let $node_1=node_1
--let $node_2=node_2
--source include/auto_increment_offset_save.inc
--connection node_1
# Enable the master to continue running during the split-brain situation that
# occurs when the slave is killed
--let $wsrep_provider_options_orig = `SELECT @@wsrep_provider_options`
SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=true';
CREATE TABLE ten (f1 INTEGER) ENGINE=InnoDB;
INSERT INTO ten VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10),(11);
CREATE TABLE t1 (f1 VARCHAR(128)) ENGINE=InnoDB;
--connection node_2
--source include/kill_galera.inc
--connection node_1
# We create a 128Mb (or so) transaction that is larger than gcache. The size of the gcache is not adjustable dynamically
INSERT INTO t1 SELECT REPEAT('a', 128) FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4, ten AS a5, ten AS a6;
--connection node_2
--source include/start_mysqld.inc
--let $galera_connection_name = node_2a
--let $galera_server_number = 2
--source include/galera_connect.inc
--connection node_2a
SELECT COUNT(*) FROM t1;
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
--connection node_1
--disable_query_log
--eval SET GLOBAL wsrep_provider_options = '$wsrep_provider_options_orig';
--enable_query_log
--let $node_2=node_2a
--source include/auto_increment_offset_restore.inc
DROP TABLE t1;
DROP TABLE ten;

View File

@@ -0,0 +1,11 @@
!include ../galera_2nodes.cnf
[mysqld]
wsrep_debug=1
[mysqld.1]
wsrep_provider_options='base_port=@mysqld.1.#galera_port;gcache.size=1;pc.ignore_sb=true'
[mysqld.2]
wsrep_provider_options='base_port=@mysqld.2.#galera_port;gcache.size=1;pc.ignore_sb=true'

View File

@@ -44,3 +44,9 @@ select NEXT VALUE FOR Seq1_1;
--connection node_1 --connection node_1
DROP SEQUENCE Seq1_1; DROP SEQUENCE Seq1_1;
CALL mtr.add_suppression("SEQUENCES declared without `NOCACHE` will not behave correctly in galera cluster.");
--connection node_2
CALL mtr.add_suppression("SEQUENCES declared without `NOCACHE` will not behave correctly in galera cluster.");

View File

@@ -30,7 +30,7 @@ TRUNCATE TABLE t1;
--connection node_1 --connection node_1
--error ER_LOCK_DEADLOCK --error ER_LOCK_DEADLOCK
--reap --reap
SELECT COUNT(*) = 0 FROM t1; SELECT COUNT(*) FROM t1;
SET DEBUG_SYNC = 'RESET'; SET DEBUG_SYNC = 'RESET';
DROP TABLE t1; DROP TABLE t1;
@@ -54,8 +54,9 @@ SET DEBUG_SYNC = 'now WAIT_FOR before_cert';
TRUNCATE TABLE t1; TRUNCATE TABLE t1;
--connection node_1 --connection node_1
--error 0,ER_LOCK_DEADLOCK
--reap --reap
SELECT COUNT(*) = 1 FROM t1; SELECT COUNT(*) FROM t1;
SET DEBUG_SYNC = 'RESET'; SET DEBUG_SYNC = 'RESET';
DROP TABLE t1; DROP TABLE t1;
@@ -82,17 +83,17 @@ TRUNCATE TABLE t1;
--connection node_1a --connection node_1a
SET DEBUG_SYNC = 'now WAIT_FOR wsrep_retry_autocommit_reached'; SET DEBUG_SYNC = 'now WAIT_FOR wsrep_retry_autocommit_reached';
SELECT COUNT(*) = 0 FROM t1; SELECT COUNT(*) FROM t1;
SET DEBUG_SYNC = 'now SIGNAL wsrep_retry_autocommit_continue WAIT_FOR before_cert'; SET DEBUG_SYNC = 'now SIGNAL wsrep_retry_autocommit_continue WAIT_FOR before_cert';
--connection node_2 --connection node_2
TRUNCATE TABLE t1; TRUNCATE TABLE t1;
--connection node_1a --connection node_1a
SELECT COUNT(*) = 0 FROM t1; SELECT COUNT(*) FROM t1;
--connection node_1 --connection node_1
--error ER_LOCK_DEADLOCK --error 0,ER_LOCK_DEADLOCK
--reap --reap
SET DEBUG_SYNC = 'RESET'; SET DEBUG_SYNC = 'RESET';
@@ -126,7 +127,7 @@ while ($count)
--connection node_1a --connection node_1a
SET DEBUG_SYNC = 'now WAIT_FOR wsrep_retry_autocommit_reached'; SET DEBUG_SYNC = 'now WAIT_FOR wsrep_retry_autocommit_reached';
SELECT COUNT(*) = 1 FROM t1; SELECT COUNT(*) FROM t1;
SET DEBUG_SYNC = 'now SIGNAL wsrep_retry_autocommit_continue'; SET DEBUG_SYNC = 'now SIGNAL wsrep_retry_autocommit_continue';
--dec $count --dec $count
@@ -135,8 +136,9 @@ while ($count)
--enable_query_log --enable_query_log
--connection node_1 --connection node_1
--error 0,ER_LOCK_DEADLOCK
--reap --reap
SELECT COUNT(*) = 1 FROM t1; SELECT COUNT(*) FROM t1;
SET DEBUG_SYNC = 'RESET'; SET DEBUG_SYNC = 'RESET';
SET GLOBAL debug_dbug = NULL; SET GLOBAL debug_dbug = NULL;

View File

@@ -10,8 +10,5 @@
# #
############################################################################## ##############################################################################
GCF-1018B : MDEV-18534 wsrep::transaction::adopt(): Assertion `transaction.is_streaming()' failed
GCF-1060 : MDEV-20848 galera_sr.GCF_1060
GCF-585 : MDEV-24698 galera_sr.GCF-585 MTR failed with SIGABRT: no such a transition REPLICATING -> APPLYING
GCF-1060 : MDEV-26528 wrong usage of mutex LOCK_thd_kill and LOCK_thd_kill GCF-1060 : MDEV-26528 wrong usage of mutex LOCK_thd_kill and LOCK_thd_kill
galera_sr_shutdown_master : MDEV-23612: galera_sr.galera_sr_shutdown_master MTR failed: WSREP_SST: [ERROR] Possible timeout in receving first data from donor in gtid stage

View File

@@ -1,13 +0,0 @@
##############################################################################
#
# List the test cases that are to be disabled temporarily.
#
# Separate the test case name and the comment with ':'.
#
# <testcasename> : BUG#<xxxx> <date disabled> <disabler> <comment>
#
# Do not use any TAB characters for whitespace.
#
##############################################################################
create-index-debug : MDEV-13680 InnoDB may crash when btr_page_alloc() fails

View File

@@ -1,23 +0,0 @@
SET @saved_debug_dbug = @@SESSION.debug_dbug;
#
#BUG#21326304 INNODB ONLINE ALTER TABLE ENDS IN CRASH ON DISK FULL
#
CREATE TABLE t1(f1 CHAR(255) NOT NULL, f2 CHAR(255) NOT NULL, f3
CHAR(255) NOT NULL, f4 CHAR(255) NOT NULL, f5 CHAR(255) NOT NULL,f6
CHAR(255) NOT NULL, f7 CHAR(255) NOT NULL, f8 CHAR(255) NOT NULL,f9
CHAR(255) NOT NULL, f10 CHAR(255) NOT NULL, f11 CHAR(255) NOT NULL,f12
CHAR(255) NOT NULL, f13 CHAR(255) NOT NULL, f14 CHAR(255) NOT NULL,f15
CHAR(255) NOT NULL, f16 CHAR(255) NOT NULL, f17 CHAR(255) NOT NULL,f18
CHAR(255) NOT NULL)
ENGINE=INNODB ROW_FORMAT=DYNAMIC;
INSERT INTO t1
VALUES('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r');
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 SELECT * FROM t1;
SET debug_dbug = '+d,disk_is_full';
ALTER TABLE t1 FORCE, ALGORITHM=INPLACE;
ERROR HY000: The table 't1' is full
SET debug_dbug= @saved_debug_dbug;
DROP TABLE t1;

View File

@@ -1,6 +1,7 @@
call mtr.add_suppression("Table `test`.`t2` should have 2 indexes but the tablespace has 1 indexes"); call mtr.add_suppression("Table `test`.`t2` should have 2 indexes but the tablespace has 1 indexes");
call mtr.add_suppression("Index for table 't2' is corrupt; try to repair it"); call mtr.add_suppression("Index for table 't2' is corrupt; try to repair it");
call mtr.add_suppression("Trying to read .* bytes at .* outside the bounds of the file: \\..test.t2\\.ibd"); call mtr.add_suppression("Trying to read .* bytes at .* outside the bounds of the file: \\..test.t2\\.ibd");
call mtr.add_suppression("InnoDB: File '.*test/t2\\.ibd' is corrupted");
CREATE TABLE t1 ( CREATE TABLE t1 (
id INT AUTO_INCREMENT PRIMARY KEY, id INT AUTO_INCREMENT PRIMARY KEY,
not_id INT, not_id INT,

View File

@@ -9,6 +9,8 @@ call mtr.add_suppression("InnoDB: Page for tablespace ");
call mtr.add_suppression("InnoDB: Invalid FSP_SPACE_FLAGS="); call mtr.add_suppression("InnoDB: Invalid FSP_SPACE_FLAGS=");
call mtr.add_suppression("InnoDB: Unknown index id .* on page"); call mtr.add_suppression("InnoDB: Unknown index id .* on page");
call mtr.add_suppression("InnoDB: Cannot save statistics for table `test`\\.`t1` because the \\.ibd file is missing"); call mtr.add_suppression("InnoDB: Cannot save statistics for table `test`\\.`t1` because the \\.ibd file is missing");
call mtr.add_suppression("InnoDB: Database page corruption on disk or a failed read of file '.*ibdata1' page");
call mtr.add_suppression("InnoDB: File '.*ibdata1' is corrupted");
FLUSH TABLES; FLUSH TABLES;
SET GLOBAL innodb_file_per_table = 1; SET GLOBAL innodb_file_per_table = 1;
CREATE TABLE t1 (c1 INT) ENGINE = InnoDB; CREATE TABLE t1 (c1 INT) ENGINE = InnoDB;
@@ -862,10 +864,8 @@ ALTER TABLE t1 DISCARD TABLESPACE;
SELECT COUNT(*) FROM t1; SELECT COUNT(*) FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1` ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,buf_page_import_corrupt_failure";
ALTER TABLE t1 IMPORT TABLESPACE; ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Internal error: Cannot reset LSNs in table `test`.`t1` : Data structure corruption ERROR HY000: Index for table 't1' is corrupt; try to repair it
SET SESSION debug_dbug=@saved_debug_dbug;
DROP TABLE t1; DROP TABLE t1;
unlink: t1.ibd unlink: t1.ibd
unlink: t1.cfg unlink: t1.cfg

Some files were not shown because too many files have changed in this diff Show More