Merge branch '10.0' into 10.1
This commit is contained in:
commit
3b0c7ac1f9
@ -1,11 +1,11 @@
|
|||||||
MariaDB is in most aspects identical to MySQL.
|
MariaDB is in most aspects identical to MySQL.
|
||||||
|
|
||||||
Differences between MySQL and MariaDB can be found at:
|
Differences between MySQL and MariaDB can be found at:
|
||||||
http://kb.askmonty.org/en/mariadb-versus-mysql-features/
|
https://mariadb.com/kb/en/mariadb-vs-mysql-features/
|
||||||
http://kb.askmonty.org/en/mariadb-versus-mysql-compatibility/
|
https://mariadb.com/kb/en/mariadb-vs-mysql-compatibility/
|
||||||
|
|
||||||
The MariaDB manual can be found at:
|
The MariaDB manual can be found at:
|
||||||
http://kb.askmonty.org/
|
https://mariadb.com/kb/
|
||||||
|
|
||||||
The MySQL Reference Manual is available in various formats on
|
The MySQL Reference Manual is available in various formats on
|
||||||
http://dev.mysql.com/doc.
|
http://dev.mysql.com/doc.
|
||||||
|
@ -243,7 +243,7 @@
|
|||||||
in the caller's frame is set in the new context as well.
|
in the caller's frame is set in the new context as well.
|
||||||
4) For each instruction, call its execute() method.
|
4) For each instruction, call its execute() method.
|
||||||
The result is a pointer to the next instruction to execute (or NULL)
|
The result is a pointer to the next instruction to execute (or NULL)
|
||||||
if an error occured.
|
if an error occurred.
|
||||||
5) On success, set the new values of the OUT and INOUT parameters in
|
5) On success, set the new values of the OUT and INOUT parameters in
|
||||||
the caller's frame.
|
the caller's frame.
|
||||||
|
|
||||||
@ -853,7 +853,7 @@
|
|||||||
// '*nextp' will be set to the index of the next instruction
|
// '*nextp' will be set to the index of the next instruction
|
||||||
// to execute. (For most instruction this will be the
|
// to execute. (For most instruction this will be the
|
||||||
// instruction following this one.)
|
// instruction following this one.)
|
||||||
// Returns 0 on success, non-zero if some error occured.
|
// Returns 0 on success, non-zero if some error occurred.
|
||||||
virtual int execute(THD *, uint *nextp)
|
virtual int execute(THD *, uint *nextp)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
Instructions for building MariaDB can be found at:
|
Instructions for building MariaDB can be found at:
|
||||||
https://kb.askmonty.org/en/compiling-mariadb-from-source/
|
https://mariadb.com/kb/en/compiling-mariadb-from-source
|
||||||
|
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
Up-to-date instructions about building MariaDB on Windows can be found
|
Up-to-date instructions about building MariaDB on Windows can be found
|
||||||
at: http://kb.askmonty.org/en/building-mariadb-on-windows
|
at: https://mariadb.com/kb/en/Building_MariaDB_on_Windows
|
||||||
|
|
||||||
|
@ -3354,7 +3354,7 @@ com_go(String *buffer,char *line __attribute__((unused)))
|
|||||||
|
|
||||||
end:
|
end:
|
||||||
|
|
||||||
/* Show warnings if any or error occured */
|
/* Show warnings if any or error occurred */
|
||||||
if (show_warnings == 1 && (warnings >= 1 || error))
|
if (show_warnings == 1 && (warnings >= 1 || error))
|
||||||
print_warnings();
|
print_warnings();
|
||||||
|
|
||||||
|
@ -658,7 +658,7 @@ static int get_upgrade_info_file_name(char* name)
|
|||||||
/*
|
/*
|
||||||
Read the content of mysql_upgrade_info file and
|
Read the content of mysql_upgrade_info file and
|
||||||
compare the version number form file against
|
compare the version number form file against
|
||||||
version number wich mysql_upgrade was compiled for
|
version number which mysql_upgrade was compiled for
|
||||||
|
|
||||||
NOTE
|
NOTE
|
||||||
This is an optimization to avoid running mysql_upgrade
|
This is an optimization to avoid running mysql_upgrade
|
||||||
|
@ -277,8 +277,8 @@ static void usage(void)
|
|||||||
printf("Usage: %s [OPTIONS] database [tables]\n", my_progname);
|
printf("Usage: %s [OPTIONS] database [tables]\n", my_progname);
|
||||||
printf("OR %s [OPTIONS] --databases DB1 [DB2 DB3...]\n",
|
printf("OR %s [OPTIONS] --databases DB1 [DB2 DB3...]\n",
|
||||||
my_progname);
|
my_progname);
|
||||||
puts("Please consult the MariaDB/MySQL knowledgebase at");
|
puts("Please consult the MariaDB Knowledge Base at");
|
||||||
puts("http://kb.askmonty.org/v/mysqlcheck for latest information about");
|
puts("https://mariadb.com/kb/en/mysqlcheck for latest information about");
|
||||||
puts("this program.");
|
puts("this program.");
|
||||||
print_defaults("my", load_default_groups);
|
print_defaults("my", load_default_groups);
|
||||||
puts("");
|
puts("");
|
||||||
@ -523,7 +523,6 @@ static int is_view(const char *table)
|
|||||||
{
|
{
|
||||||
fprintf(stderr, "Failed to %s\n", query);
|
fprintf(stderr, "Failed to %s\n", query);
|
||||||
fprintf(stderr, "Error: %s\n", mysql_error(sock));
|
fprintf(stderr, "Error: %s\n", mysql_error(sock));
|
||||||
my_free(query);
|
|
||||||
DBUG_RETURN(-1);
|
DBUG_RETURN(-1);
|
||||||
}
|
}
|
||||||
res= mysql_store_result(sock);
|
res= mysql_store_result(sock);
|
||||||
|
@ -1104,7 +1104,7 @@ void do_eval(DYNAMIC_STRING *query_eval, const char *query,
|
|||||||
Run query and dump the result to stderr in vertical format
|
Run query and dump the result to stderr in vertical format
|
||||||
|
|
||||||
NOTE! This function should be safe to call when an error
|
NOTE! This function should be safe to call when an error
|
||||||
has occured and thus any further errors will be ignored(although logged)
|
has occurred and thus any further errors will be ignored (although logged)
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
show_query
|
show_query
|
||||||
@ -1170,7 +1170,7 @@ static void show_query(MYSQL* mysql, const char* query)
|
|||||||
is added to the warning stack, only print @@warning_count-1 warnings.
|
is added to the warning stack, only print @@warning_count-1 warnings.
|
||||||
|
|
||||||
NOTE! This function should be safe to call when an error
|
NOTE! This function should be safe to call when an error
|
||||||
has occured and this any further errors will be ignored(although logged)
|
has occurred and this any further errors will be ignored(although logged)
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
show_warnings_before_error
|
show_warnings_before_error
|
||||||
@ -4699,7 +4699,7 @@ void do_sync_with_master2(struct st_command *command, long offset,
|
|||||||
master_pos_wait returned NULL. This indicates that
|
master_pos_wait returned NULL. This indicates that
|
||||||
slave SQL thread is not started, the slave's master
|
slave SQL thread is not started, the slave's master
|
||||||
information is not initialized, the arguments are
|
information is not initialized, the arguments are
|
||||||
incorrect, or an error has occured
|
incorrect, or an error has occurred
|
||||||
*/
|
*/
|
||||||
die("%.*s failed: '%s' returned NULL " \
|
die("%.*s failed: '%s' returned NULL " \
|
||||||
"indicating slave SQL thread failure",
|
"indicating slave SQL thread failure",
|
||||||
|
@ -43,8 +43,8 @@ SET(CPACK_RPM_PACKAGE_DESCRIPTION "${CPACK_RPM_PACKAGE_SUMMARY}
|
|||||||
It is GPL v2 licensed, which means you can use the it free of charge under the
|
It is GPL v2 licensed, which means you can use the it free of charge under the
|
||||||
conditions of the GNU General Public License Version 2 (http://www.gnu.org/licenses/).
|
conditions of the GNU General Public License Version 2 (http://www.gnu.org/licenses/).
|
||||||
|
|
||||||
MariaDB documentation can be found at http://kb.askmonty.org/
|
MariaDB documentation can be found at https://mariadb.com/kb
|
||||||
MariaDB bug reports should be submitted through https://mariadb.atlassian.net/
|
MariaDB bug reports should be submitted through https://jira.mariadb.org
|
||||||
|
|
||||||
")
|
")
|
||||||
|
|
||||||
|
4
debian/additions/innotop/innotop
vendored
4
debian/additions/innotop/innotop
vendored
@ -1503,7 +1503,7 @@ my %exprs = (
|
|||||||
|
|
||||||
my %columns = (
|
my %columns = (
|
||||||
active_secs => { hdr => 'SecsActive', num => 1, label => 'Seconds transaction has been active', },
|
active_secs => { hdr => 'SecsActive', num => 1, label => 'Seconds transaction has been active', },
|
||||||
add_pool_alloc => { hdr => 'Add\'l Pool', num => 1, label => 'Additonal pool allocated' },
|
add_pool_alloc => { hdr => 'Add\'l Pool', num => 1, label => 'Additional pool allocated' },
|
||||||
attempted_op => { hdr => 'Action', num => 0, label => 'The action that caused the error' },
|
attempted_op => { hdr => 'Action', num => 0, label => 'The action that caused the error' },
|
||||||
awe_mem_alloc => { hdr => 'AWE Memory', num => 1, label => '[Windows] AWE memory allocated' },
|
awe_mem_alloc => { hdr => 'AWE Memory', num => 1, label => '[Windows] AWE memory allocated' },
|
||||||
binlog_cache_overflow => { hdr => 'Binlog Cache', num => 1, label => 'Transactions too big for binlog cache that went to disk' },
|
binlog_cache_overflow => { hdr => 'Binlog Cache', num => 1, label => 'Transactions too big for binlog cache that went to disk' },
|
||||||
@ -10365,7 +10365,7 @@ show you something like this:
|
|||||||
pages_modified Dirty Pages Pages modified (dirty IB_bp_pages_m
|
pages_modified Dirty Pages Pages modified (dirty IB_bp_pages_m
|
||||||
buf_pool_hit_rate Hit Rate Buffer pool hit rate IB_bp_buf_poo
|
buf_pool_hit_rate Hit Rate Buffer pool hit rate IB_bp_buf_poo
|
||||||
total_mem_alloc Memory Total memory allocate IB_bp_total_m
|
total_mem_alloc Memory Total memory allocate IB_bp_total_m
|
||||||
add_pool_alloc Add'l Pool Additonal pool alloca IB_bp_add_poo
|
add_pool_alloc Add'l Pool Additional pool alloca IB_bp_add_poo
|
||||||
|
|
||||||
The first line shows which table you're editing, and reminds you again to press
|
The first line shows which table you're editing, and reminds you again to press
|
||||||
'?' for a list of key mappings. The rest is a tabular representation of the
|
'?' for a list of key mappings. The rest is a tabular representation of the
|
||||||
|
2
debian/additions/innotop/innotop.1
vendored
2
debian/additions/innotop/innotop.1
vendored
@ -1579,7 +1579,7 @@ show you something like this:
|
|||||||
\& pages_modified Dirty Pages Pages modified (dirty IB_bp_pages_m
|
\& pages_modified Dirty Pages Pages modified (dirty IB_bp_pages_m
|
||||||
\& buf_pool_hit_rate Hit Rate Buffer pool hit rate IB_bp_buf_poo
|
\& buf_pool_hit_rate Hit Rate Buffer pool hit rate IB_bp_buf_poo
|
||||||
\& total_mem_alloc Memory Total memory allocate IB_bp_total_m
|
\& total_mem_alloc Memory Total memory allocate IB_bp_total_m
|
||||||
\& add_pool_alloc Add\*(Aql Pool Additonal pool alloca IB_bp_add_poo
|
\& add_pool_alloc Add\*(Aql Pool Additional pool alloca IB_bp_add_poo
|
||||||
.Ve
|
.Ve
|
||||||
.PP
|
.PP
|
||||||
The first line shows which table you're editing, and reminds you again to press
|
The first line shows which table you're editing, and reminds you again to press
|
||||||
|
2
debian/additions/mysqlreport
vendored
2
debian/additions/mysqlreport
vendored
@ -366,7 +366,7 @@ sub read_relative_infiles
|
|||||||
|
|
||||||
# The infile must begin with the system variable values.
|
# The infile must begin with the system variable values.
|
||||||
# Therefore, the first occurance of Aborted_clients indicates the beginning
|
# Therefore, the first occurance of Aborted_clients indicates the beginning
|
||||||
# of the first set of status values if no sets have occured yet ($stat_n == 0).
|
# of the first set of status values if no sets have occurred yet ($stat_n == 0).
|
||||||
# In this case, the following status values are printed to the current fh,
|
# In this case, the following status values are printed to the current fh,
|
||||||
# along with the system variable values read thus far, until Aborted_clients
|
# along with the system variable values read thus far, until Aborted_clients
|
||||||
# occurs again. Then begins the second and subsequent sets of status values.
|
# occurs again. Then begins the second and subsequent sets of status values.
|
||||||
|
2
debian/copyright
vendored
2
debian/copyright
vendored
@ -9,7 +9,7 @@ The MariaDB packages were initally made by http://ourdelta.org/, and
|
|||||||
are now managed by the MariaDB development team,
|
are now managed by the MariaDB development team,
|
||||||
maria-developers@lists.launchpad.net
|
maria-developers@lists.launchpad.net
|
||||||
|
|
||||||
MariaDB can be downloaded from http://downloads.askmonty.org/mariadb/
|
MariaDB can be downloaded from https://downloads.mariadb.org/
|
||||||
|
|
||||||
Copyright:
|
Copyright:
|
||||||
|
|
||||||
|
@ -10,18 +10,11 @@
|
|||||||
compress
|
compress
|
||||||
sharedscripts
|
sharedscripts
|
||||||
postrotate
|
postrotate
|
||||||
test -x /usr/bin/mysqladmin || exit 0
|
test -x /usr/bin/mysqladmin || exit 0
|
||||||
|
|
||||||
# If this fails, check debian.conf!
|
if [ -f `my_print_defaults --mysqld | grep -oP "pid-file=\K[^$]+"` ]; then
|
||||||
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
|
# If this fails, check debian.conf!
|
||||||
if [ -z "`$MYADMIN ping 2>/dev/null`" ]; then
|
mysqladmin --defaults-file=/etc/mysql/debian.cnf flush-logs
|
||||||
# Really no mysqld or rather a missing debian-sys-maint user?
|
fi
|
||||||
# If this occurs and is not a error please report a bug.
|
|
||||||
if ps cax | grep -q mysqld; then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
$MYADMIN flush-logs
|
|
||||||
fi
|
|
||||||
endscript
|
endscript
|
||||||
}
|
}
|
||||||
|
5
debian/mariadb-server-10.1.postinst
vendored
5
debian/mariadb-server-10.1.postinst
vendored
@ -240,7 +240,10 @@ db_stop # in case invoke failes
|
|||||||
# Thus MariaDB server is started via init.d script, which in turn redirects to
|
# Thus MariaDB server is started via init.d script, which in turn redirects to
|
||||||
# systemctl. If we upgrade from MySQL mysql.service may be masked, which also
|
# systemctl. If we upgrade from MySQL mysql.service may be masked, which also
|
||||||
# means init.d script is disabled. Unmask mysql service explicitely.
|
# means init.d script is disabled. Unmask mysql service explicitely.
|
||||||
deb-systemd-helper unmask mysql.service >/dev/null || true
|
# Check first that the command exists, to avoid emitting any warning messages.
|
||||||
|
if [ -x "$(command -v deb-systemd-helper)" ]; then
|
||||||
|
deb-systemd-helper unmask mysql.service > /dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
#DEBHELPER#
|
#DEBHELPER#
|
||||||
|
|
||||||
|
@ -121,11 +121,11 @@ void SetErrorString(YasslError error, char* buffer)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case certificate_error :
|
case certificate_error :
|
||||||
strncpy(buffer, "unable to proccess cerificate", max);
|
strncpy(buffer, "unable to process cerificate", max);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case privateKey_error :
|
case privateKey_error :
|
||||||
strncpy(buffer, "unable to proccess private key, bad format", max);
|
strncpy(buffer, "unable to process private key, bad format", max);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case badVersion_error :
|
case badVersion_error :
|
||||||
|
@ -178,7 +178,7 @@ struct mysql_async_context {
|
|||||||
resumed, eg. whether we woke up due to connection completed or timeout
|
resumed, eg. whether we woke up due to connection completed or timeout
|
||||||
in mysql_real_connect_cont().
|
in mysql_real_connect_cont().
|
||||||
*/
|
*/
|
||||||
unsigned int events_occured;
|
unsigned int events_occurred;
|
||||||
/*
|
/*
|
||||||
This is set to the result of the whole asynchronous operation when it
|
This is set to the result of the whole asynchronous operation when it
|
||||||
completes. It uses a union, as different calls have different return
|
completes. It uses a union, as different calls have different return
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
if requested.
|
if requested.
|
||||||
|
|
||||||
The functions are documented at
|
The functions are documented at
|
||||||
http://kb.askmonty.org/en/progress-reporting#how-to-add-support-for-progress-reporting-to-a-storage-engine
|
https://mariadb.com/kb/en/progress-reporting/#how-to-add-support-for-progress-reporting-to-a-storage-engine
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -2233,7 +2233,7 @@ static int stmt_read_row_buffered(MYSQL_STMT *stmt, unsigned char **row)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
Read one row from network: unbuffered non-cursor fetch.
|
Read one row from network: unbuffered non-cursor fetch.
|
||||||
If last row was read, or error occured, erase this statement
|
If last row was read, or error occurred, erase this statement
|
||||||
from record pointing to object unbuffered fetch is performed from.
|
from record pointing to object unbuffered fetch is performed from.
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
|
@ -1583,7 +1583,7 @@ may fail in total, as each repetition is considered a new test case, which may i
|
|||||||
\fB\-\-retry\-failure=\fR\fB\fIN\fR\fR
|
\fB\-\-retry\-failure=\fR\fB\fIN\fR\fR
|
||||||
.sp
|
.sp
|
||||||
When using the \fB-\-retry\fR option to retry failed tests,
|
When using the \fB-\-retry\fR option to retry failed tests,
|
||||||
stop when N failures have occured (default 2)\&. Setting it to 0 or 1 effectively turns off retries\&.
|
stop when N failures have occurred (default 2)\&. Setting it to 0 or 1 effectively turns off retries\&.
|
||||||
.RE
|
.RE
|
||||||
.sp
|
.sp
|
||||||
.RS 4
|
.RS 4
|
||||||
|
@ -11,7 +11,7 @@ All tests must pass. If one or more of them fail on your system, please
|
|||||||
read the following manual section for instructions on how to report the
|
read the following manual section for instructions on how to report the
|
||||||
problem:
|
problem:
|
||||||
|
|
||||||
http://kb.askmonty.org/v/reporting-bugs
|
https://mariadb.com/kb/en/reporting-bugs
|
||||||
|
|
||||||
If you want to use an already running MySQL server for specific tests,
|
If you want to use an already running MySQL server for specific tests,
|
||||||
use the --extern option to mysql-test-run. Please note that in this mode,
|
use the --extern option to mysql-test-run. Please note that in this mode,
|
||||||
|
@ -375,7 +375,7 @@ source include/start_slave.inc;
|
|||||||
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage.*");
|
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage.*");
|
||||||
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_stmt_cache_size' bytes of storage.*");
|
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_stmt_cache_size' bytes of storage.*");
|
||||||
CALL mtr.add_suppression("Writing one row to the row-based binary log failed.*");
|
CALL mtr.add_suppression("Writing one row to the row-based binary log failed.*");
|
||||||
CALL mtr.add_suppression("Slave SQL.*The incident LOST_EVENTS occured on the master. Message: error writing to the binary log");
|
CALL mtr.add_suppression("Slave SQL.*The incident LOST_EVENTS occurred on the master. Message: error writing to the binary log");
|
||||||
|
|
||||||
connection master;
|
connection master;
|
||||||
TRUNCATE t1;
|
TRUNCATE t1;
|
||||||
|
@ -133,7 +133,7 @@ INSERT INTO global_suppressions VALUES
|
|||||||
("Slave: Query caused different errors on master and slave"),
|
("Slave: Query caused different errors on master and slave"),
|
||||||
("Slave: Table .* doesn't exist"),
|
("Slave: Table .* doesn't exist"),
|
||||||
("Slave: Table width mismatch"),
|
("Slave: Table width mismatch"),
|
||||||
("Slave: The incident LOST_EVENTS occured on the master"),
|
("Slave: The incident LOST_EVENTS occurred on the master"),
|
||||||
("Slave: Unknown error.* 1105"),
|
("Slave: Unknown error.* 1105"),
|
||||||
("Slave: Can't drop database.* database doesn't exist"),
|
("Slave: Can't drop database.* database doesn't exist"),
|
||||||
("Warning:\s+One can only use the --user.*root"),
|
("Warning:\s+One can only use the --user.*root"),
|
||||||
|
@ -34,7 +34,7 @@ package My::SafeProcess;
|
|||||||
# will zap the "monitored process" and exit
|
# will zap the "monitored process" and exit
|
||||||
# - the "monitored process" to exit, in which case it will exit
|
# - the "monitored process" to exit, in which case it will exit
|
||||||
# itself with same exit code as the "monitored process"
|
# itself with same exit code as the "monitored process"
|
||||||
# - the parent process to send the "shutdown" signal in wich case
|
# - the parent process to send the "shutdown" signal in which case
|
||||||
# monitor will kill the "monitored process" hard and exit
|
# monitor will kill the "monitored process" hard and exit
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
@ -306,7 +306,7 @@ sub mtr_report_stats ($) {
|
|||||||
/Slave: Query caused different errors on master and slave/ or
|
/Slave: Query caused different errors on master and slave/ or
|
||||||
/Slave: Table .* doesn't exist/ or
|
/Slave: Table .* doesn't exist/ or
|
||||||
/Slave: Table width mismatch/ or
|
/Slave: Table width mismatch/ or
|
||||||
/Slave: The incident LOST_EVENTS occured on the master/ or
|
/Slave: The incident LOST_EVENTS occurred on the master/ or
|
||||||
/Slave: Unknown error.* 1105/ or
|
/Slave: Unknown error.* 1105/ or
|
||||||
/Slave: Can't drop database.* database doesn't exist/ or
|
/Slave: Can't drop database.* database doesn't exist/ or
|
||||||
/Slave SQL:.*(?:error.* \d+|Query:.*)/ or
|
/Slave SQL:.*(?:error.* \d+|Query:.*)/ or
|
||||||
|
@ -6183,7 +6183,7 @@ Misc options
|
|||||||
failures before stopping, set with the --retry-failure
|
failures before stopping, set with the --retry-failure
|
||||||
option
|
option
|
||||||
retry-failure=N When using the --retry option to retry failed tests,
|
retry-failure=N When using the --retry option to retry failed tests,
|
||||||
stop when N failures have occured (default $opt_retry_failure)
|
stop when N failures have occurred (default $opt_retry_failure)
|
||||||
reorder Reorder tests to get fewer server restarts
|
reorder Reorder tests to get fewer server restarts
|
||||||
help Get this help text
|
help Get this help text
|
||||||
|
|
||||||
|
@ -3,12 +3,12 @@ Name Location Comment
|
|||||||
Booking.com http://www.booking.com Founding member of the MariaDB Foundation
|
Booking.com http://www.booking.com Founding member of the MariaDB Foundation
|
||||||
MariaDB Corporation https://mariadb.com Founding member of the MariaDB Foundation
|
MariaDB Corporation https://mariadb.com Founding member of the MariaDB Foundation
|
||||||
Auttomattic http://automattic.com Member of the MariaDB Foundation
|
Auttomattic http://automattic.com Member of the MariaDB Foundation
|
||||||
Parallels http://www.parallels.com/products/plesk Founding member of the MariaDB Foundation
|
Visma http://visma.com Member of the MariaDB Foundation
|
||||||
|
Nexedi http://www.nexedi.com Member of the MariaDB Foundation
|
||||||
Acronis http://www.acronis.com Member of the MariaDB Foundation
|
Acronis http://www.acronis.com Member of the MariaDB Foundation
|
||||||
Verkkokauppa.com Finland Sponsor of the MariaDB Foundation
|
Verkkokauppa.com Finland Sponsor of the MariaDB Foundation
|
||||||
Webyog Bangalore Sponsor of the MariaDB Foundation
|
Webyog Bangalore Sponsor of the MariaDB Foundation
|
||||||
Wikimedia Foundation USA Sponsor of the MariaDB Foundation
|
Google USA Sponsoring encryption, parallel replication and GTID
|
||||||
Google USA Sponsoring parallel replication and GTID
|
|
||||||
Facebook USA Sponsoring non-blocking API, LIMIT ROWS EXAMINED etc
|
Facebook USA Sponsoring non-blocking API, LIMIT ROWS EXAMINED etc
|
||||||
Ronald Bradford Brisbane, Australia EFF contribution for UC2006 Auction
|
Ronald Bradford Brisbane, Australia EFF contribution for UC2006 Auction
|
||||||
Sheeri Kritzer Boston, Mass. USA EFF contribution for UC2006 Auction
|
Sheeri Kritzer Boston, Mass. USA EFF contribution for UC2006 Auction
|
||||||
|
@ -379,7 +379,7 @@ SELECT * FROM t1 WHERE a=0;
|
|||||||
a
|
a
|
||||||
# Connection con1
|
# Connection con1
|
||||||
# Sending:
|
# Sending:
|
||||||
ALTER TABLE t1 COMMENT 'test';
|
ALTER TABLE t1 MODIFY a INT UNSIGNED;;
|
||||||
# Connection default
|
# Connection default
|
||||||
# Wait until ALTER TABLE is blocked on table 't1'.
|
# Wait until ALTER TABLE is blocked on table 't1'.
|
||||||
INSERT DELAYED INTO t1 VALUES (3);
|
INSERT DELAYED INTO t1 VALUES (3);
|
||||||
|
@ -603,7 +603,7 @@ INSERT INTO events_test.event_log VALUES (NULL,@evname,@cnt+1,current_timestamp(
|
|||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
END IF;
|
END IF;
|
||||||
END;|
|
END;|
|
||||||
Sleep till the first INSERT into events_test.event_log occured
|
Sleep till the first INSERT into events_test.event_log occurred
|
||||||
SELECT COUNT(*) > 0 AS "Expect 1" FROM events_test.event_log;
|
SELECT COUNT(*) > 0 AS "Expect 1" FROM events_test.event_log;
|
||||||
Expect 1
|
Expect 1
|
||||||
1
|
1
|
||||||
|
@ -1595,7 +1595,7 @@ explain select * from t1 where a=10 and b=10 or c=10;
|
|||||||
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 t1 index_merge a,b,c a,c 5,5 NULL 54 Using union(a,c); Using where
|
1 SIMPLE t1 index_merge a,b,c a,c 5,5 NULL 54 Using union(a,c); Using where
|
||||||
This will switch to sort-union (intersection will be gone, too,
|
This will switch to sort-union (intersection will be gone, too,
|
||||||
thats a known limitation:
|
that's a known limitation:
|
||||||
set optimizer_switch='default,index_merge_union=off';
|
set optimizer_switch='default,index_merge_union=off';
|
||||||
explain select * from t1 where a=10 and b=10 or c=10;
|
explain select * from t1 where a=10 and b=10 or c=10;
|
||||||
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
|
||||||
|
@ -1821,7 +1821,7 @@ a b
|
|||||||
Osnabrück Köln
|
Osnabrück Köln
|
||||||
drop table t1;
|
drop table t1;
|
||||||
#
|
#
|
||||||
# Bug#15328 Segmentation fault occured if my.cnf is invalid for escape sequence
|
# Bug#15328 Segmentation fault occurred if my.cnf is invalid for escape sequence
|
||||||
#
|
#
|
||||||
--fields-optionally-enclosed-by="
|
--fields-optionally-enclosed-by="
|
||||||
#
|
#
|
||||||
|
@ -153,3 +153,9 @@ t1 CREATE TABLE `t1` (
|
|||||||
PARTITIONS 5 */
|
PARTITIONS 5 */
|
||||||
#Cleanup.
|
#Cleanup.
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
create database mysqltest1;
|
||||||
|
create table mysqltest1.t1 (a int not null, b int not null) engine=archive
|
||||||
|
partition by list(a) subpartition by hash(b)
|
||||||
|
(partition p1 values in (1),
|
||||||
|
partition p2 values in (2));
|
||||||
|
drop database mysqltest1;
|
||||||
|
@ -147,3 +147,10 @@ SHOW CREATE TABLE t1;
|
|||||||
|
|
||||||
--echo #Cleanup.
|
--echo #Cleanup.
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
create database mysqltest1;
|
||||||
|
create table mysqltest1.t1 (a int not null, b int not null) engine=archive
|
||||||
|
partition by list(a) subpartition by hash(b)
|
||||||
|
(partition p1 values in (1),
|
||||||
|
partition p2 values in (2));
|
||||||
|
drop database mysqltest1;
|
||||||
|
21
mysql-test/suite/innodb/r/innodb-agregate.result
Normal file
21
mysql-test/suite/innodb/r/innodb-agregate.result
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
create table t2 (a smallint(6) not null, b int(10) not null, name varchar(20), primary key(a,b), key(name)) engine=InnoDB;
|
||||||
|
insert into t2 values (8355,3,"sanja"),(8355,4,"wlad"),(8366,5, "lawrin"),(8366,6,"markusjm");
|
||||||
|
select count(distinct name) from t2 where a=8366 and b>=5 and b<=5;
|
||||||
|
count(distinct name)
|
||||||
|
1
|
||||||
|
select count(distinct name) from t2 where a=8366 and b=5;
|
||||||
|
count(distinct name)
|
||||||
|
1
|
||||||
|
select count(distinct name) from t2 where a=8366 and b between 5 and 5.5;
|
||||||
|
count(distinct name)
|
||||||
|
1
|
||||||
|
select sum(distinct a) from t2 where a=8366 and b>=5 and b<=5;
|
||||||
|
sum(distinct a)
|
||||||
|
8366
|
||||||
|
select sum(distinct a) from t2 where a=8366 and b=5;
|
||||||
|
sum(distinct a)
|
||||||
|
8366
|
||||||
|
select sum(distinct a) from t2 where a=8366 and b between 5 and 5.5;
|
||||||
|
sum(distinct a)
|
||||||
|
8366
|
||||||
|
drop table t2;
|
18
mysql-test/suite/innodb/t/innodb-agregate.test
Normal file
18
mysql-test/suite/innodb/t/innodb-agregate.test
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
--source include/have_innodb.inc
|
||||||
|
|
||||||
|
#
|
||||||
|
# MDEV-9667: Server hangs after select count(distinct name) from t2 where a=8366 and b>=5 and b<=5;
|
||||||
|
#
|
||||||
|
|
||||||
|
create table t2 (a smallint(6) not null, b int(10) not null, name varchar(20), primary key(a,b), key(name)) engine=InnoDB;
|
||||||
|
|
||||||
|
insert into t2 values (8355,3,"sanja"),(8355,4,"wlad"),(8366,5, "lawrin"),(8366,6,"markusjm");
|
||||||
|
|
||||||
|
select count(distinct name) from t2 where a=8366 and b>=5 and b<=5;
|
||||||
|
select count(distinct name) from t2 where a=8366 and b=5;
|
||||||
|
select count(distinct name) from t2 where a=8366 and b between 5 and 5.5;
|
||||||
|
select sum(distinct a) from t2 where a=8366 and b>=5 and b<=5;
|
||||||
|
select sum(distinct a) from t2 where a=8366 and b=5;
|
||||||
|
select sum(distinct a) from t2 where a=8366 and b between 5 and 5.5;
|
||||||
|
|
||||||
|
drop table t2;
|
@ -337,7 +337,7 @@ START SLAVE;
|
|||||||
--source include/wait_for_slave_to_start.inc
|
--source include/wait_for_slave_to_start.inc
|
||||||
--replace_result $gtid GTID
|
--replace_result $gtid GTID
|
||||||
eval SELECT MASTER_GTID_WAIT("$gtid", 30);
|
eval SELECT MASTER_GTID_WAIT("$gtid", 30);
|
||||||
# The bug occured here, the slave would get an out-of-order binlog error
|
# The bug occurred here, the slave would get an out-of-order binlog error
|
||||||
# due to trying to re-apply the 100-x-x transaction.
|
# due to trying to re-apply the 100-x-x transaction.
|
||||||
|
|
||||||
# Restart stopped multi-source connections, and sync up.
|
# Restart stopped multi-source connections, and sync up.
|
||||||
|
@ -1653,7 +1653,7 @@ if($print_details)
|
|||||||
--enable_result_log
|
--enable_result_log
|
||||||
--horizontal_results
|
--horizontal_results
|
||||||
--echo # Dump detailed differences after - before statement execution
|
--echo # Dump detailed differences after - before statement execution
|
||||||
--echo # 1. The statement executing connection and hopefully noone else
|
--echo # 1. The statement executing connection and hopefully no one else
|
||||||
SELECT @default_object_instance_begin;
|
SELECT @default_object_instance_begin;
|
||||||
SELECT EVENT_NAME, OBJECT_INSTANCE_BEGIN,
|
SELECT EVENT_NAME, OBJECT_INSTANCE_BEGIN,
|
||||||
COUNT_READ, SUM_NUMBER_OF_BYTES_READ,
|
COUNT_READ, SUM_NUMBER_OF_BYTES_READ,
|
||||||
|
@ -1663,7 +1663,7 @@ if($print_details)
|
|||||||
--enable_result_log
|
--enable_result_log
|
||||||
--horizontal_results
|
--horizontal_results
|
||||||
--echo # Dump detailed differences after - before statement execution
|
--echo # Dump detailed differences after - before statement execution
|
||||||
--echo # 1. The statement executing connection and hopefully noone else
|
--echo # 1. The statement executing connection and hopefully no one else
|
||||||
SELECT @default_object_instance_begin;
|
SELECT @default_object_instance_begin;
|
||||||
SELECT EVENT_NAME, OBJECT_INSTANCE_BEGIN,
|
SELECT EVENT_NAME, OBJECT_INSTANCE_BEGIN,
|
||||||
COUNT_READ, SUM_NUMBER_OF_BYTES_READ,
|
COUNT_READ, SUM_NUMBER_OF_BYTES_READ,
|
||||||
|
@ -142,8 +142,8 @@ ERROR HY000: Can't generate a unique log-filename master-bin.(1-999)
|
|||||||
SET debug_dbug= @old_dbug;
|
SET debug_dbug= @old_dbug;
|
||||||
INSERT INTO t4 VALUES (2);
|
INSERT INTO t4 VALUES (2);
|
||||||
include/wait_for_slave_sql_error.inc [errno=1590]
|
include/wait_for_slave_sql_error.inc [errno=1590]
|
||||||
Last_SQL_Error = 'The incident LOST_EVENTS occured on the master. Message: error writing to the binary log'
|
Last_SQL_Error = 'The incident LOST_EVENTS occurred on the master. Message: error writing to the binary log'
|
||||||
FOUND /Slave SQL: The incident LOST_EVENTS occured on the master\. Message: error writing to the binary log, Internal MariaDB error code: 1590/ in mysqld.2.err
|
FOUND /Slave SQL: The incident LOST_EVENTS occurred on the master\. Message: error writing to the binary log, Internal MariaDB error code: 1590/ in mysqld.2.err
|
||||||
SELECT * FROM t4 ORDER BY a;
|
SELECT * FROM t4 ORDER BY a;
|
||||||
a
|
a
|
||||||
1
|
1
|
||||||
|
@ -39,6 +39,6 @@ a
|
|||||||
4
|
4
|
||||||
5
|
5
|
||||||
FOUND /Slave SQL: Error 'Duplicate entry .* on query\. .*Query: '.*', Gtid 0-1-100, Internal MariaDB error code:|Slave SQL: Could not execute Write_rows.*table test.t1; Duplicate entry.*, Gtid 0-1-100, Internal MariaDB error/ in mysqld.2.err
|
FOUND /Slave SQL: Error 'Duplicate entry .* on query\. .*Query: '.*', Gtid 0-1-100, Internal MariaDB error code:|Slave SQL: Could not execute Write_rows.*table test.t1; Duplicate entry.*, Gtid 0-1-100, Internal MariaDB error/ in mysqld.2.err
|
||||||
FOUND /Slave SQL: The incident LOST_EVENTS occured on the master\. Message: <none>, Internal MariaDB error code: 1590/ in mysqld.2.err
|
FOUND /Slave SQL: The incident LOST_EVENTS occurred on the master\. Message: <none>, Internal MariaDB error code: 1590/ in mysqld.2.err
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
include/rpl_end.inc
|
include/rpl_end.inc
|
||||||
|
@ -16,9 +16,9 @@ a
|
|||||||
2
|
2
|
||||||
3
|
3
|
||||||
4
|
4
|
||||||
call mtr.add_suppression("Slave SQL.*The incident LOST_EVENTS occured on the master.* 1590");
|
call mtr.add_suppression("Slave SQL.*The incident LOST_EVENTS occurred on the master.* 1590");
|
||||||
include/wait_for_slave_sql_error.inc [errno=1590]
|
include/wait_for_slave_sql_error.inc [errno=1590]
|
||||||
Last_SQL_Error = 'The incident LOST_EVENTS occured on the master. Message: <none>'
|
Last_SQL_Error = 'The incident LOST_EVENTS occurred on the master. Message: <none>'
|
||||||
**** On Slave ****
|
**** On Slave ****
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
a
|
a
|
||||||
|
@ -151,7 +151,7 @@ include/start_slave.inc
|
|||||||
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage.*");
|
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage.*");
|
||||||
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_stmt_cache_size' bytes of storage.*");
|
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_stmt_cache_size' bytes of storage.*");
|
||||||
CALL mtr.add_suppression("Writing one row to the row-based binary log failed.*");
|
CALL mtr.add_suppression("Writing one row to the row-based binary log failed.*");
|
||||||
CALL mtr.add_suppression("Slave SQL.*The incident LOST_EVENTS occured on the master. Message: error writing to the binary log");
|
CALL mtr.add_suppression("Slave SQL.*The incident LOST_EVENTS occurred on the master. Message: error writing to the binary log");
|
||||||
TRUNCATE t1;
|
TRUNCATE t1;
|
||||||
SET GLOBAL max_binlog_cache_size= ORIGINAL_VALUE;
|
SET GLOBAL max_binlog_cache_size= ORIGINAL_VALUE;
|
||||||
SET GLOBAL binlog_cache_size= ORIGINAL_VALUE;
|
SET GLOBAL binlog_cache_size= ORIGINAL_VALUE;
|
||||||
|
@ -152,7 +152,7 @@ include/start_slave.inc
|
|||||||
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage.*");
|
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage.*");
|
||||||
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_stmt_cache_size' bytes of storage.*");
|
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_stmt_cache_size' bytes of storage.*");
|
||||||
CALL mtr.add_suppression("Writing one row to the row-based binary log failed.*");
|
CALL mtr.add_suppression("Writing one row to the row-based binary log failed.*");
|
||||||
CALL mtr.add_suppression("Slave SQL.*The incident LOST_EVENTS occured on the master. Message: error writing to the binary log");
|
CALL mtr.add_suppression("Slave SQL.*The incident LOST_EVENTS occurred on the master. Message: error writing to the binary log");
|
||||||
TRUNCATE t1;
|
TRUNCATE t1;
|
||||||
SET GLOBAL max_binlog_cache_size= ORIGINAL_VALUE;
|
SET GLOBAL max_binlog_cache_size= ORIGINAL_VALUE;
|
||||||
SET GLOBAL binlog_cache_size= ORIGINAL_VALUE;
|
SET GLOBAL binlog_cache_size= ORIGINAL_VALUE;
|
||||||
|
@ -151,7 +151,7 @@ include/start_slave.inc
|
|||||||
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage.*");
|
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage.*");
|
||||||
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_stmt_cache_size' bytes of storage.*");
|
CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_stmt_cache_size' bytes of storage.*");
|
||||||
CALL mtr.add_suppression("Writing one row to the row-based binary log failed.*");
|
CALL mtr.add_suppression("Writing one row to the row-based binary log failed.*");
|
||||||
CALL mtr.add_suppression("Slave SQL.*The incident LOST_EVENTS occured on the master. Message: error writing to the binary log");
|
CALL mtr.add_suppression("Slave SQL.*The incident LOST_EVENTS occurred on the master. Message: error writing to the binary log");
|
||||||
TRUNCATE t1;
|
TRUNCATE t1;
|
||||||
SET GLOBAL max_binlog_cache_size= ORIGINAL_VALUE;
|
SET GLOBAL max_binlog_cache_size= ORIGINAL_VALUE;
|
||||||
SET GLOBAL binlog_cache_size= ORIGINAL_VALUE;
|
SET GLOBAL binlog_cache_size= ORIGINAL_VALUE;
|
||||||
|
@ -299,7 +299,7 @@ if(!$log_error_)
|
|||||||
}
|
}
|
||||||
--let SEARCH_FILE= $log_error_
|
--let SEARCH_FILE= $log_error_
|
||||||
--let SEARCH_RANGE=-50000
|
--let SEARCH_RANGE=-50000
|
||||||
--let SEARCH_PATTERN= Slave SQL: The incident LOST_EVENTS occured on the master\. Message: error writing to the binary log, Internal MariaDB error code: 1590
|
--let SEARCH_PATTERN= Slave SQL: The incident LOST_EVENTS occurred on the master\. Message: error writing to the binary log, Internal MariaDB error code: 1590
|
||||||
--source include/search_pattern_in_file.inc
|
--source include/search_pattern_in_file.inc
|
||||||
|
|
||||||
SELECT * FROM t4 ORDER BY a;
|
SELECT * FROM t4 ORDER BY a;
|
||||||
|
@ -66,7 +66,7 @@ if(!$log_error_)
|
|||||||
--let SEARCH_RANGE=-50000
|
--let SEARCH_RANGE=-50000
|
||||||
--let SEARCH_PATTERN=Slave SQL: Error 'Duplicate entry .* on query\. .*Query: '.*', Gtid 0-1-100, Internal MariaDB error code:|Slave SQL: Could not execute Write_rows.*table test.t1; Duplicate entry.*, Gtid 0-1-100, Internal MariaDB error
|
--let SEARCH_PATTERN=Slave SQL: Error 'Duplicate entry .* on query\. .*Query: '.*', Gtid 0-1-100, Internal MariaDB error code:|Slave SQL: Could not execute Write_rows.*table test.t1; Duplicate entry.*, Gtid 0-1-100, Internal MariaDB error
|
||||||
--source include/search_pattern_in_file.inc
|
--source include/search_pattern_in_file.inc
|
||||||
--let SEARCH_PATTERN=Slave SQL: The incident LOST_EVENTS occured on the master\. Message: <none>, Internal MariaDB error code: 1590
|
--let SEARCH_PATTERN=Slave SQL: The incident LOST_EVENTS occurred on the master\. Message: <none>, Internal MariaDB error code: 1590
|
||||||
--source include/search_pattern_in_file.inc
|
--source include/search_pattern_in_file.inc
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ eval SET GLOBAL debug_dbug= '$debug_save';
|
|||||||
|
|
||||||
connection slave;
|
connection slave;
|
||||||
# Wait until SQL thread stops with error LOST_EVENT on master
|
# Wait until SQL thread stops with error LOST_EVENT on master
|
||||||
call mtr.add_suppression("Slave SQL.*The incident LOST_EVENTS occured on the master.* 1590");
|
call mtr.add_suppression("Slave SQL.*The incident LOST_EVENTS occurred on the master.* 1590");
|
||||||
let $slave_sql_errno= 1590;
|
let $slave_sql_errno= 1590;
|
||||||
let $show_slave_sql_error= 1;
|
let $show_slave_sql_error= 1;
|
||||||
source include/wait_for_slave_sql_error.inc;
|
source include/wait_for_slave_sql_error.inc;
|
||||||
|
@ -111,10 +111,10 @@
|
|||||||
#
|
#
|
||||||
# 6. Hints for analysis of test failures:
|
# 6. Hints for analysis of test failures:
|
||||||
# 1. Look into the protocol and check in which ddl*.inc
|
# 1. Look into the protocol and check in which ddl*.inc
|
||||||
# script the difference to the expected result occured.
|
# script the difference to the expected result occurred.
|
||||||
# 2. Comment the sourcing of all other ddl*.inc scripts
|
# 2. Comment the sourcing of all other ddl*.inc scripts
|
||||||
# out.
|
# out.
|
||||||
# 3. Edit the ddl*.inc script where the error occured and
|
# 3. Edit the ddl*.inc script where the error occurred and
|
||||||
# remove all
|
# remove all
|
||||||
# - "--disable_query_log", "--disable_result_log"
|
# - "--disable_query_log", "--disable_result_log"
|
||||||
# - successful passed subtests.
|
# - successful passed subtests.
|
||||||
|
@ -8,12 +8,24 @@
|
|||||||
SET @orig = @@global.innodb_buffer_pool_load_now;
|
SET @orig = @@global.innodb_buffer_pool_load_now;
|
||||||
SELECT @orig;
|
SELECT @orig;
|
||||||
|
|
||||||
|
let $old_status= `SELECT variable_value FROM information_schema.global_status
|
||||||
|
WHERE LOWER(variable_name) = 'innodb_buffer_pool_dump_status'`;
|
||||||
|
|
||||||
|
# A previous test could have run buffer pool dump already;
|
||||||
|
# in this case we want to make sure that the current time is different
|
||||||
|
# from the timestamp in the status variable
|
||||||
|
|
||||||
|
let $wait_condition =
|
||||||
|
SELECT TRIM(SUBSTR('$old_status', -8)) != DATE_FORMAT(CURTIME(), '%k:%i:%s');
|
||||||
|
-- source include/wait_condition.inc
|
||||||
|
|
||||||
# Do the dump
|
# Do the dump
|
||||||
SET GLOBAL innodb_buffer_pool_dump_now = ON;
|
SET GLOBAL innodb_buffer_pool_dump_now = ON;
|
||||||
|
|
||||||
# Wait for the dump to complete
|
# Wait for the dump to complete
|
||||||
let $wait_condition =
|
let $wait_condition =
|
||||||
SELECT SUBSTR(variable_value, 1, 33) = 'Buffer pool(s) dump completed at '
|
SELECT variable_value != '$old_status'
|
||||||
|
AND SUBSTR(variable_value, 1, 33) = 'Buffer pool(s) dump completed at '
|
||||||
FROM information_schema.global_status
|
FROM information_schema.global_status
|
||||||
WHERE LOWER(variable_name) = 'innodb_buffer_pool_dump_status';
|
WHERE LOWER(variable_name) = 'innodb_buffer_pool_dump_status';
|
||||||
-- source include/wait_condition.inc
|
-- source include/wait_condition.inc
|
||||||
|
@ -5,17 +5,39 @@ CREATE TABLE t1 (c1 VARCHAR(50));
|
|||||||
INSERT INTO t1 VALUES ("one"),("two"),("three"),("four"),("five");
|
INSERT INTO t1 VALUES ("one"),("two"),("three"),("four"),("five");
|
||||||
SHOW VARIABLES LIKE 'secure_file_priv';
|
SHOW VARIABLES LIKE 'secure_file_priv';
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
|
|
||||||
# Atempt to create a file where we normally aren't allowed to create one.
|
# Atempt to create a file where we normally aren't allowed to create one.
|
||||||
|
#
|
||||||
# Doing this in a portable manner is difficult but we should be able to
|
# Doing this in a portable manner is difficult but we should be able to
|
||||||
# count on the depth of the directory hierarchy used. Three steps up from
|
# count on the directory hierarchy used. A step up from MYSQLTEST_VARDIR
|
||||||
# the datadir is the 'mysql_test' directory.
|
# should definitely lead us to a "protected" directory,
|
||||||
--let $PROTECTED_FILE=`SELECT concat(@@datadir,'/../../../bug50373.txt')`
|
# but at the same time should still be writable since MTR was able
|
||||||
--eval SELECT * FROM t1 INTO OUTFILE '$PROTECTED_FILE';
|
# to create the vardir itself there.
|
||||||
DELETE FROM t1;
|
# If we run tests normally, it will be mysql-test directory.
|
||||||
--eval LOAD DATA INFILE '$PROTECTED_FILE' INTO TABLE t1;
|
# If we run tests with --mem, it will be /dev/shm.
|
||||||
SELECT * FROM t1;
|
# If we run tests with --parallel, it will be mysql-test/var
|
||||||
--eval SELECT load_file('$PROTECTED_FILE') AS loaded_file;
|
# (because MYSQLTEST_VARDIR in this case is mysql-test/var/N).
|
||||||
|
|
||||||
|
--perl
|
||||||
|
use File::Basename;
|
||||||
|
my $protected_file= dirname($ENV{MYSQLTEST_VARDIR}).'/bug50373.txt';
|
||||||
|
open(FILE, ">", "$ENV{MYSQL_TMP_DIR}/bug50373.inc") or die;
|
||||||
|
print FILE "SELECT * FROM t1 INTO OUTFILE '".$protected_file."';\n";
|
||||||
|
print FILE "DELETE FROM t1;\n";
|
||||||
|
print FILE "LOAD DATA INFILE '".$protected_file."' INTO TABLE t1;\n";
|
||||||
|
print FILE "SELECT * FROM t1;\n";
|
||||||
|
print FILE "SELECT load_file('",$protected_file,"') AS loaded_file;\n";
|
||||||
|
close(FILE);
|
||||||
|
EOF
|
||||||
|
|
||||||
|
--source $MYSQL_TMP_DIR/bug50373.inc
|
||||||
|
--remove_file $MYSQL_TMP_DIR/bug50373.inc
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
remove_file $PROTECTED_FILE;
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--perl
|
||||||
|
use File::Basename;
|
||||||
|
unlink dirname($ENV{MYSQLTEST_VARDIR}).'/bug50373.txt';
|
||||||
|
EOF
|
||||||
|
|
||||||
|
@ -457,7 +457,7 @@ SELECT * FROM t1 WHERE a=0;
|
|||||||
--echo # Connection con1
|
--echo # Connection con1
|
||||||
connection con1;
|
connection con1;
|
||||||
--echo # Sending:
|
--echo # Sending:
|
||||||
--send ALTER TABLE t1 COMMENT 'test'
|
--send ALTER TABLE t1 MODIFY a INT UNSIGNED;
|
||||||
|
|
||||||
--echo # Connection default
|
--echo # Connection default
|
||||||
connection default;
|
connection default;
|
||||||
@ -465,7 +465,7 @@ connection default;
|
|||||||
let $wait_condition=
|
let $wait_condition=
|
||||||
SELECT COUNT(*) = 1 FROM information_schema.processlist
|
SELECT COUNT(*) = 1 FROM information_schema.processlist
|
||||||
WHERE state = "Waiting for table metadata lock"
|
WHERE state = "Waiting for table metadata lock"
|
||||||
AND info = "ALTER TABLE t1 COMMENT 'test'";
|
AND info LIKE "ALTER TABLE t1%";
|
||||||
--source include/wait_condition.inc
|
--source include/wait_condition.inc
|
||||||
--error ER_LOCK_DEADLOCK
|
--error ER_LOCK_DEADLOCK
|
||||||
INSERT DELAYED INTO t1 VALUES (3);
|
INSERT DELAYED INTO t1 VALUES (3);
|
||||||
|
@ -944,7 +944,7 @@ DELIMITER ;|
|
|||||||
# reasonable time like 4 seconds. Till ~ 2 seconds could pass on a heavy
|
# reasonable time like 4 seconds. Till ~ 2 seconds could pass on a heavy
|
||||||
# loaded testing box before something gets executed).
|
# loaded testing box before something gets executed).
|
||||||
# Detection of execution is via the records inserted by the event.
|
# Detection of execution is via the records inserted by the event.
|
||||||
--echo Sleep till the first INSERT into events_test.event_log occured
|
--echo Sleep till the first INSERT into events_test.event_log occurred
|
||||||
let $wait_timeout= 4;
|
let $wait_timeout= 4;
|
||||||
let $wait_condition=
|
let $wait_condition=
|
||||||
SELECT COUNT(*) > 0 FROM events_test.event_log;
|
SELECT COUNT(*) > 0 FROM events_test.event_log;
|
||||||
|
@ -117,7 +117,7 @@ set optimizer_switch='default,index_merge_intersection=off';
|
|||||||
explain select * from t1 where a=10 and b=10 or c=10;
|
explain select * from t1 where a=10 and b=10 or c=10;
|
||||||
|
|
||||||
--echo This will switch to sort-union (intersection will be gone, too,
|
--echo This will switch to sort-union (intersection will be gone, too,
|
||||||
--echo thats a known limitation:
|
--echo that's a known limitation:
|
||||||
set optimizer_switch='default,index_merge_union=off';
|
set optimizer_switch='default,index_merge_union=off';
|
||||||
explain select * from t1 where a=10 and b=10 or c=10;
|
explain select * from t1 where a=10 and b=10 or c=10;
|
||||||
|
|
||||||
|
@ -655,7 +655,7 @@ insert into t1 values (1);
|
|||||||
flush tables;
|
flush tables;
|
||||||
# Open t2 and (implicitly) t1.
|
# Open t2 and (implicitly) t1.
|
||||||
select * from t2;
|
select * from t2;
|
||||||
# Truncate t1, wich was not recognized as open without the bugfix.
|
# Truncate t1, which was not recognized as open without the bugfix.
|
||||||
# After fix for Bug#8306 and before fix for Bug#26379,
|
# After fix for Bug#8306 and before fix for Bug#26379,
|
||||||
# it should fail with a table-in-use error message, otherwise succeed.
|
# it should fail with a table-in-use error message, otherwise succeed.
|
||||||
truncate table t1;
|
truncate table t1;
|
||||||
|
@ -702,7 +702,7 @@ drop table t1;
|
|||||||
|
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Bug#15328 Segmentation fault occured if my.cnf is invalid for escape sequence
|
--echo # Bug#15328 Segmentation fault occurred if my.cnf is invalid for escape sequence
|
||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
--exec $MYSQL_MY_PRINT_DEFAULTS --config-file=$MYSQL_TEST_DIR/std_data/bug15328.cnf mysqldump
|
--exec $MYSQL_MY_PRINT_DEFAULTS --config-file=$MYSQL_TEST_DIR/std_data/bug15328.cnf mysqldump
|
||||||
|
@ -103,6 +103,12 @@
|
|||||||
#include <my_sys.h>
|
#include <my_sys.h>
|
||||||
#include <lf.h>
|
#include <lf.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
when using alloca() leave at least that many bytes of the stack -
|
||||||
|
for functions we might be calling from within this stack frame
|
||||||
|
*/
|
||||||
|
#define ALLOCA_SAFETY_MARGIN 8192
|
||||||
|
|
||||||
#define LF_PINBOX_MAX_PINS 65536
|
#define LF_PINBOX_MAX_PINS 65536
|
||||||
|
|
||||||
static void lf_pinbox_real_free(LF_PINS *pins);
|
static void lf_pinbox_real_free(LF_PINS *pins);
|
||||||
@ -345,7 +351,8 @@ static void lf_pinbox_real_free(LF_PINS *pins)
|
|||||||
{
|
{
|
||||||
int alloca_size= sizeof(void *)*LF_PINBOX_PINS*npins;
|
int alloca_size= sizeof(void *)*LF_PINBOX_PINS*npins;
|
||||||
/* create a sorted list of pinned addresses, to speed up searches */
|
/* create a sorted list of pinned addresses, to speed up searches */
|
||||||
if (available_stack_size(&pinbox, *pins->stack_ends_here) > alloca_size)
|
if (available_stack_size(&pinbox, *pins->stack_ends_here) >
|
||||||
|
alloca_size + ALLOCA_SAFETY_MARGIN)
|
||||||
{
|
{
|
||||||
struct st_harvester hv;
|
struct st_harvester hv;
|
||||||
addr= (void **) alloca(alloca_size);
|
addr= (void **) alloca(alloca_size);
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
RETURN VALUE
|
RETURN VALUE
|
||||||
0 All OK
|
0 All OK
|
||||||
1 An error occured
|
1 An error occurred
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
my_b_copy_to_file(IO_CACHE *cache, FILE *file)
|
my_b_copy_to_file(IO_CACHE *cache, FILE *file)
|
||||||
|
@ -274,7 +274,7 @@ struct st_hash_link
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* simple states of a block */
|
/* simple states of a block */
|
||||||
#define BLOCK_ERROR 1 /* an error occured when performing file i/o */
|
#define BLOCK_ERROR 1 /* an error occurred when performing file i/o */
|
||||||
#define BLOCK_READ 2 /* file block is in the block buffer */
|
#define BLOCK_READ 2 /* file block is in the block buffer */
|
||||||
#define BLOCK_IN_SWITCH 4 /* block is preparing to read new page */
|
#define BLOCK_IN_SWITCH 4 /* block is preparing to read new page */
|
||||||
#define BLOCK_REASSIGNED 8 /* blk does not accept requests for old page */
|
#define BLOCK_REASSIGNED 8 /* blk does not accept requests for old page */
|
||||||
|
@ -363,7 +363,7 @@ err:
|
|||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
0 - ok
|
0 - ok
|
||||||
1 - error occured
|
1 - error occurred
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int handle_default_option(void *in_ctx, const char *group_name,
|
static int handle_default_option(void *in_ctx, const char *group_name,
|
||||||
|
@ -110,7 +110,7 @@ static int my_win_unlink(const char *name)
|
|||||||
if (handle != INVALID_HANDLE_VALUE)
|
if (handle != INVALID_HANDLE_VALUE)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
We opened file without sharing flags (exclusive), noone else has this file
|
We opened file without sharing flags (exclusive), no one else has this file
|
||||||
opened, thus it is save to close handle to remove it. No renaming is
|
opened, thus it is save to close handle to remove it. No renaming is
|
||||||
necessary.
|
necessary.
|
||||||
*/
|
*/
|
||||||
|
@ -131,7 +131,7 @@ error:
|
|||||||
|
|
||||||
RETURN VALUE
|
RETURN VALUE
|
||||||
0 Success
|
0 Success
|
||||||
-1 An error has occured and 'my_errno' is set
|
-1 An error has occurred and 'my_errno' is set
|
||||||
to indicate the actual error code.
|
to indicate the actual error code.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -203,7 +203,7 @@ int my_lock(File fd, int locktype, my_off_t start, my_off_t length,
|
|||||||
== MY_FILEPOS_ERROR)
|
== MY_FILEPOS_ERROR)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
If an error has occured in my_seek then we will already
|
If an error has occurred in my_seek then we will already
|
||||||
have an error code in my_errno; Just return error code.
|
have an error code in my_errno; Just return error code.
|
||||||
*/
|
*/
|
||||||
DBUG_RETURN(-1);
|
DBUG_RETURN(-1);
|
||||||
|
@ -42,7 +42,7 @@ to be retrieved are specified by the 5th argument for the
|
|||||||
corresponding open_index call.
|
corresponding open_index call.
|
||||||
|
|
||||||
The execute_single method always returns an arrayref. The first
|
The execute_single method always returns an arrayref. The first
|
||||||
element is the error code, which is 0 when no error is occured.
|
element is the error code, which is 0 when no error is occurred.
|
||||||
The remaining are the field values. If more than one record is
|
The remaining are the field values. If more than one record is
|
||||||
returned, it is flatten to an 1-dimensional array. For example,
|
returned, it is flatten to an 1-dimensional array. For example,
|
||||||
when 5 records that have 3 columns are returned, you can retrieve
|
when 5 records that have 3 columns are returned, you can retrieve
|
||||||
@ -125,9 +125,9 @@ methods.
|
|||||||
die $hs->get_error() if $res->[0] != 0;
|
die $hs->get_error() if $res->[0] != 0;
|
||||||
|
|
||||||
-----------------------------------------------------------------
|
-----------------------------------------------------------------
|
||||||
When an error is occured, the first element of the returned
|
When an error is occurred, the first element of the returned
|
||||||
arrayref becomes a non-zero value. A negative value indicates
|
arrayref becomes a non-zero value. A negative value indicates
|
||||||
that an I/O error is occured and the Net::HandlerSocket object
|
that an I/O error is occurred and the Net::HandlerSocket object
|
||||||
should be disposed. A positive value means that the connection is
|
should be disposed. A positive value means that the connection is
|
||||||
still active and the Net::HandlerSocket object can be reused
|
still active and the Net::HandlerSocket object can be reused
|
||||||
later.
|
later.
|
||||||
|
@ -102,7 +102,7 @@ public:
|
|||||||
it are in use. A new Block is allocated and is put into the rear of the
|
it are in use. A new Block is allocated and is put into the rear of the
|
||||||
Block link table if no Block is free.
|
Block link table if no Block is free.
|
||||||
|
|
||||||
@return Return a TranxNode *, or NULL if an error occured.
|
@return Return a TranxNode *, or NULL if an error occurred.
|
||||||
*/
|
*/
|
||||||
TranxNode *allocate_node()
|
TranxNode *allocate_node()
|
||||||
{
|
{
|
||||||
@ -134,7 +134,7 @@ public:
|
|||||||
/**
|
/**
|
||||||
All nodes are freed.
|
All nodes are freed.
|
||||||
|
|
||||||
@return Return 0, or 1 if an error occured.
|
@return Return 0, or 1 if an error occurred.
|
||||||
*/
|
*/
|
||||||
int free_all_nodes()
|
int free_all_nodes()
|
||||||
{
|
{
|
||||||
@ -150,7 +150,7 @@ public:
|
|||||||
|
|
||||||
@param node All nodes before 'node' will be freed
|
@param node All nodes before 'node' will be freed
|
||||||
|
|
||||||
@return Return 0, or 1 if an error occured.
|
@return Return 0, or 1 if an error occurred.
|
||||||
*/
|
*/
|
||||||
int free_nodes_before(TranxNode* node)
|
int free_nodes_before(TranxNode* node)
|
||||||
{
|
{
|
||||||
|
@ -441,7 +441,7 @@ use IPC::Open3;
|
|||||||
$DEBUG = 0;
|
$DEBUG = 0;
|
||||||
|
|
||||||
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>8
|
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>8
|
||||||
# Normaly nothing should be changed beneeth this line
|
# Normally nothing should be changed beneeth this line
|
||||||
|
|
||||||
|
|
||||||
# ****************************
|
# ****************************
|
||||||
@ -2342,7 +2342,7 @@ BEGIN {
|
|||||||
."of `$MySQLaccess::script'."
|
."of `$MySQLaccess::script'."
|
||||||
,'Access_denied'
|
,'Access_denied'
|
||||||
=> "Sorry,\n"
|
=> "Sorry,\n"
|
||||||
."An error occured when trying to connect to the database\n"
|
."An error occurred when trying to connect to the database\n"
|
||||||
."with the grant-tables:\n"
|
."with the grant-tables:\n"
|
||||||
."* Maybe YOU do not have READ-access to this database?\n"
|
."* Maybe YOU do not have READ-access to this database?\n"
|
||||||
."* If you used the -U option, you may have supplied an invalid username?\n"
|
."* If you used the -U option, you may have supplied an invalid username?\n"
|
||||||
@ -2352,24 +2352,24 @@ BEGIN {
|
|||||||
."* If you used the -P option, you may have supplied an invalid password?\n"
|
."* If you used the -P option, you may have supplied an invalid password?\n"
|
||||||
,'Dbaccess_denied'
|
,'Dbaccess_denied'
|
||||||
=> "Sorry,\n"
|
=> "Sorry,\n"
|
||||||
."An error occured when trying to connect to the database\n"
|
."An error occurred when trying to connect to the database\n"
|
||||||
."with the grant-tables. (dbaccess denied)\n"
|
."with the grant-tables. (dbaccess denied)\n"
|
||||||
,'Unknown_tmp_table'
|
,'Unknown_tmp_table'
|
||||||
=> "Sorry,\n"
|
=> "Sorry,\n"
|
||||||
."An error occured when trying to work with the temporary tables in the database\n"
|
."An error occurred when trying to work with the temporary tables in the database\n"
|
||||||
."with the grant-tables. (One of the temporary tables does not exist)\n"
|
."with the grant-tables. (One of the temporary tables does not exist)\n"
|
||||||
,'Unknown_table'
|
,'Unknown_table'
|
||||||
=> "Sorry,\n"
|
=> "Sorry,\n"
|
||||||
."An error occured when trying to work with some tables in the database\n"
|
."An error occurred when trying to work with some tables in the database\n"
|
||||||
."with the grant-tables. (table does not exist)\n"
|
."with the grant-tables. (table does not exist)\n"
|
||||||
,'use_old_server'
|
,'use_old_server'
|
||||||
=> "Sorry,\n"
|
=> "Sorry,\n"
|
||||||
."An error occured when executing an SQL statement.\n"
|
."An error occurred when executing an SQL statement.\n"
|
||||||
."You might consider altering the use of the parameter `--old_server' when \n"
|
."You might consider altering the use of the parameter `--old_server' when \n"
|
||||||
."calling `$MySQLaccess::script'."
|
."calling `$MySQLaccess::script'."
|
||||||
,'unknown_error'
|
,'unknown_error'
|
||||||
=> "Sorry,\n"
|
=> "Sorry,\n"
|
||||||
."An error occured when trying to connect to the database\n"
|
."An error occurred when trying to connect to the database\n"
|
||||||
."with the grant-tables. (unknown error)\n"
|
."with the grant-tables. (unknown error)\n"
|
||||||
,'anonymous_access'
|
,'anonymous_access'
|
||||||
=> "Accessing the db as an anonymous user.\n"
|
=> "Accessing the db as an anonymous user.\n"
|
||||||
@ -2422,7 +2422,7 @@ sub Print_Header {
|
|||||||
sub Print_Footer {
|
sub Print_Footer {
|
||||||
if ($MySQLaccess::CMD) { #command-line mode
|
if ($MySQLaccess::CMD) { #command-line mode
|
||||||
print "\n"
|
print "\n"
|
||||||
."BUGs can be reported at https://mariadb.atlassian.net/browse/MDEV\n";
|
."BUGs can be reported at https://jira.mariadb.org\n";
|
||||||
}
|
}
|
||||||
if ($MySQLaccess::CGI) { #CGI-BIN mode
|
if ($MySQLaccess::CGI) { #CGI-BIN mode
|
||||||
if ($MySQLaccess::Param{'brief'}) {
|
if ($MySQLaccess::Param{'brief'}) {
|
||||||
@ -2430,7 +2430,7 @@ sub Print_Footer {
|
|||||||
}
|
}
|
||||||
print "<HR>\n"
|
print "<HR>\n"
|
||||||
."<ADDRESS>\n"
|
."<ADDRESS>\n"
|
||||||
."BUGs can be reported at <a href=\"https://mariadb.atlassian.net/browse/MDEV\">MariaDB JIRA</a><BR>\n"
|
."BUGs can be reported at <a href=\"https://jira.mariadb.org\">MariaDB JIRA</a><BR>\n"
|
||||||
# ."Don't forget to mention the version $VERSION!<BR>\n"
|
# ."Don't forget to mention the version $VERSION!<BR>\n"
|
||||||
."</ADDRESS>\n"
|
."</ADDRESS>\n"
|
||||||
."</BODY>\n"
|
."</BODY>\n"
|
||||||
|
@ -265,7 +265,7 @@ sub fetch_all_rows
|
|||||||
if (!($sth= $dbh->prepare($query)))
|
if (!($sth= $dbh->prepare($query)))
|
||||||
{
|
{
|
||||||
print "\n" if ($opt_debug);
|
print "\n" if ($opt_debug);
|
||||||
die "Error occured with prepare($query)\n -> $DBI::errstr\n";
|
die "Error occurred with prepare($query)\n -> $DBI::errstr\n";
|
||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
if (!$sth->execute)
|
if (!$sth->execute)
|
||||||
@ -282,7 +282,7 @@ sub fetch_all_rows
|
|||||||
print "0\n" if ($opt_debug);
|
print "0\n" if ($opt_debug);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
die "Error occured with execute($query)\n -> $DBI::errstr\n";
|
die "Error occurred with execute($query)\n -> $DBI::errstr\n";
|
||||||
$sth->finish;
|
$sth->finish;
|
||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
|
@ -235,7 +235,7 @@ static void load_env_plugins(MYSQL *mysql)
|
|||||||
This function must be called before any other client plugin function.
|
This function must be called before any other client plugin function.
|
||||||
|
|
||||||
@retval 0 successful
|
@retval 0 successful
|
||||||
@retval != 0 error occured
|
@retval != 0 error occurred
|
||||||
*/
|
*/
|
||||||
int mysql_client_plugin_init()
|
int mysql_client_plugin_init()
|
||||||
{
|
{
|
||||||
|
@ -102,7 +102,7 @@ my_connect_async(struct mysql_async_context *b, my_socket fd,
|
|||||||
my_context_yield(&b->async_context);
|
my_context_yield(&b->async_context);
|
||||||
if (b->suspend_resume_hook)
|
if (b->suspend_resume_hook)
|
||||||
(*b->suspend_resume_hook)(FALSE, b->suspend_resume_hook_user_data);
|
(*b->suspend_resume_hook)(FALSE, b->suspend_resume_hook_user_data);
|
||||||
if (b->events_occured & MYSQL_WAIT_TIMEOUT)
|
if (b->events_occurred & MYSQL_WAIT_TIMEOUT)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
s_err_size= sizeof(res);
|
s_err_size= sizeof(res);
|
||||||
@ -149,7 +149,7 @@ my_recv_async(struct mysql_async_context *b, int fd,
|
|||||||
my_context_yield(&b->async_context);
|
my_context_yield(&b->async_context);
|
||||||
if (b->suspend_resume_hook)
|
if (b->suspend_resume_hook)
|
||||||
(*b->suspend_resume_hook)(FALSE, b->suspend_resume_hook_user_data);
|
(*b->suspend_resume_hook)(FALSE, b->suspend_resume_hook_user_data);
|
||||||
if (b->events_occured & MYSQL_WAIT_TIMEOUT)
|
if (b->events_occurred & MYSQL_WAIT_TIMEOUT)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -177,7 +177,7 @@ my_send_async(struct mysql_async_context *b, int fd,
|
|||||||
my_context_yield(&b->async_context);
|
my_context_yield(&b->async_context);
|
||||||
if (b->suspend_resume_hook)
|
if (b->suspend_resume_hook)
|
||||||
(*b->suspend_resume_hook)(FALSE, b->suspend_resume_hook_user_data);
|
(*b->suspend_resume_hook)(FALSE, b->suspend_resume_hook_user_data);
|
||||||
if (b->events_occured & MYSQL_WAIT_TIMEOUT)
|
if (b->events_occurred & MYSQL_WAIT_TIMEOUT)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -210,7 +210,7 @@ my_io_wait_async(struct mysql_async_context *b, enum enum_vio_io_event event,
|
|||||||
my_context_yield(&b->async_context);
|
my_context_yield(&b->async_context);
|
||||||
if (b->suspend_resume_hook)
|
if (b->suspend_resume_hook)
|
||||||
(*b->suspend_resume_hook)(FALSE, b->suspend_resume_hook_user_data);
|
(*b->suspend_resume_hook)(FALSE, b->suspend_resume_hook_user_data);
|
||||||
return (b->events_occured & MYSQL_WAIT_TIMEOUT) ? 0 : 1;
|
return (b->events_occurred & MYSQL_WAIT_TIMEOUT) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -349,7 +349,7 @@ mysql_get_timeout_value_ms(const MYSQL *mysql)
|
|||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
b->active= 1; \
|
b->active= 1; \
|
||||||
b->events_occured= ready_status; \
|
b->events_occurred= ready_status; \
|
||||||
res= my_context_continue(&b->async_context); \
|
res= my_context_continue(&b->async_context); \
|
||||||
b->active= 0; \
|
b->active= 0; \
|
||||||
if (res > 0) \
|
if (res > 0) \
|
||||||
@ -405,7 +405,7 @@ mysql_get_timeout_value_ms(const MYSQL *mysql)
|
|||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
b->active= 1; \
|
b->active= 1; \
|
||||||
b->events_occured= ready_status; \
|
b->events_occurred= ready_status; \
|
||||||
res= my_context_continue(&b->async_context); \
|
res= my_context_continue(&b->async_context); \
|
||||||
b->active= 0; \
|
b->active= 0; \
|
||||||
if (res > 0) \
|
if (res > 0) \
|
||||||
|
@ -39,17 +39,17 @@ struct show_table_contributors_st show_table_contributors[]= {
|
|||||||
/* MariaDB foundation members, in contribution, size , time order */
|
/* MariaDB foundation members, in contribution, size , time order */
|
||||||
{"Booking.com", "http://www.booking.com", "Founding member of the MariaDB Foundation"},
|
{"Booking.com", "http://www.booking.com", "Founding member of the MariaDB Foundation"},
|
||||||
{"MariaDB Corporation", "https://mariadb.com", "Founding member of the MariaDB Foundation"},
|
{"MariaDB Corporation", "https://mariadb.com", "Founding member of the MariaDB Foundation"},
|
||||||
{"Auttomattic", "http://automattic.com", "Member of the MariaDB Foundation"},
|
{"Auttomattic", "http://automattic.com", "Member of the MariaDB Foundation"},
|
||||||
{"Parallels", "http://www.parallels.com/products/plesk", "Founding member of the MariaDB Foundation"},
|
{"Visma", "http://visma.com", "Member of the MariaDB Foundation"},
|
||||||
|
{"Nexedi", "http://www.nexedi.com", "Member of the MariaDB Foundation"},
|
||||||
{"Acronis", "http://www.acronis.com", "Member of the MariaDB Foundation"},
|
{"Acronis", "http://www.acronis.com", "Member of the MariaDB Foundation"},
|
||||||
|
|
||||||
/* Smaller sponsors, newer per year */
|
/* Smaller sponsors, newer per year */
|
||||||
{"Verkkokauppa.com", "Finland", "Sponsor of the MariaDB Foundation"},
|
{"Verkkokauppa.com", "Finland", "Sponsor of the MariaDB Foundation"},
|
||||||
{"Webyog", "Bangalore", "Sponsor of the MariaDB Foundation"},
|
{"Webyog", "Bangalore", "Sponsor of the MariaDB Foundation"},
|
||||||
{"Wikimedia Foundation", "USA", "Sponsor of the MariaDB Foundation"},
|
|
||||||
|
|
||||||
/* Sponsors of important features */
|
/* Sponsors of important features */
|
||||||
{"Google", "USA", "Sponsoring parallel replication and GTID" },
|
{"Google", "USA", "Sponsoring encryption, parallel replication and GTID"},
|
||||||
{"Facebook", "USA", "Sponsoring non-blocking API, LIMIT ROWS EXAMINED etc"},
|
{"Facebook", "USA", "Sponsoring non-blocking API, LIMIT ROWS EXAMINED etc"},
|
||||||
|
|
||||||
/* Individual contributors, names in historical order, newer first */
|
/* Individual contributors, names in historical order, newer first */
|
||||||
|
@ -199,14 +199,15 @@ int extension_based_table_discovery(MY_DIR *dirp, const char *ext_meta,
|
|||||||
end= cur + dirp->number_of_files;
|
end= cur + dirp->number_of_files;
|
||||||
while (cur < end)
|
while (cur < end)
|
||||||
{
|
{
|
||||||
char *octothorp= strrchr(cur->name + 1, '#');
|
char *octothorp= strchr(cur->name + 1, '#');
|
||||||
char *ext= strchr(octothorp ? octothorp : cur->name, FN_EXTCHAR);
|
char *ext= strchr(octothorp ? octothorp : cur->name, FN_EXTCHAR);
|
||||||
|
|
||||||
if (ext)
|
if (ext)
|
||||||
{
|
{
|
||||||
size_t len= (octothorp ? octothorp : ext) - cur->name;
|
size_t len= (octothorp ? octothorp : ext) - cur->name;
|
||||||
if (from != cur &&
|
if (from != cur &&
|
||||||
(my_strnncoll(cs, (uchar*)from->name, len, (uchar*)cur->name, len) ||
|
(strlen(from->name) <= len ||
|
||||||
|
my_strnncoll(cs, (uchar*)from->name, len, (uchar*)cur->name, len) ||
|
||||||
(from->name[len] != FN_EXTCHAR && from->name[len] != '#')))
|
(from->name[len] != FN_EXTCHAR && from->name[len] != '#')))
|
||||||
advance(from, to, cur, skip);
|
advance(from, to, cur, skip);
|
||||||
|
|
||||||
|
@ -947,7 +947,7 @@ end:
|
|||||||
|
|
||||||
|
|
||||||
@retval FALSE an event with such db/name key exists
|
@retval FALSE an event with such db/name key exists
|
||||||
@retval TRUE no record found or an error occured.
|
@retval TRUE no record found or an error occurred.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
@ -191,7 +191,7 @@ Event_queue::deinit_queue()
|
|||||||
@param[out] created set to TRUE if no error and the element is
|
@param[out] created set to TRUE if no error and the element is
|
||||||
added to the queue, FALSE otherwise
|
added to the queue, FALSE otherwise
|
||||||
|
|
||||||
@retval TRUE an error occured. The value of created is undefined,
|
@retval TRUE an error occurred. The value of created is undefined,
|
||||||
the element was not deleted.
|
the element was not deleted.
|
||||||
@retval FALSE success
|
@retval FALSE success
|
||||||
*/
|
*/
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
#ifndef GCALC_DBUG_OFF
|
#ifndef GCALC_DBUG_OFF
|
||||||
#define GCALC_DBUG_PRINT(b) DBUG_PRINT("Gcalc", b)
|
#define GCALC_DBUG_PRINT(b) DBUG_PRINT("Gcalc", b)
|
||||||
#define GCALC_DBUG_ENTER(a) DBUG_ENTER("Gcalc "a)
|
#define GCALC_DBUG_ENTER(a) DBUG_ENTER("Gcalc " a)
|
||||||
#define GCALC_DBUG_RETURN(r) DBUG_RETURN(r)
|
#define GCALC_DBUG_RETURN(r) DBUG_RETURN(r)
|
||||||
#define GCALC_DBUG_VOID_RETURN DBUG_VOID_RETURN
|
#define GCALC_DBUG_VOID_RETURN DBUG_VOID_RETURN
|
||||||
#define GCALC_DBUG_ASSERT(r) DBUG_ASSERT(r)
|
#define GCALC_DBUG_ASSERT(r) DBUG_ASSERT(r)
|
||||||
|
@ -8306,7 +8306,7 @@ bool ha_partition::inplace_alter_table(TABLE *altered_table,
|
|||||||
/*
|
/*
|
||||||
Note that this function will try rollback failed ADD INDEX by
|
Note that this function will try rollback failed ADD INDEX by
|
||||||
executing DROP INDEX for the indexes that were committed (if any)
|
executing DROP INDEX for the indexes that were committed (if any)
|
||||||
before the error occured. This means that the underlying storage
|
before the error occurred. This means that the underlying storage
|
||||||
engine must be able to drop index in-place with X-lock held.
|
engine must be able to drop index in-place with X-lock held.
|
||||||
(As X-lock will be held here if new indexes are to be committed)
|
(As X-lock will be held here if new indexes are to be committed)
|
||||||
*/
|
*/
|
||||||
|
@ -325,7 +325,7 @@ int ha_init_errors(void)
|
|||||||
/* Set the dedicated error messages. */
|
/* Set the dedicated error messages. */
|
||||||
SETMSG(HA_ERR_KEY_NOT_FOUND, ER_DEFAULT(ER_KEY_NOT_FOUND));
|
SETMSG(HA_ERR_KEY_NOT_FOUND, ER_DEFAULT(ER_KEY_NOT_FOUND));
|
||||||
SETMSG(HA_ERR_FOUND_DUPP_KEY, ER_DEFAULT(ER_DUP_KEY));
|
SETMSG(HA_ERR_FOUND_DUPP_KEY, ER_DEFAULT(ER_DUP_KEY));
|
||||||
SETMSG(HA_ERR_RECORD_CHANGED, "Update wich is recoverable");
|
SETMSG(HA_ERR_RECORD_CHANGED, "Update which is recoverable");
|
||||||
SETMSG(HA_ERR_WRONG_INDEX, "Wrong index given to function");
|
SETMSG(HA_ERR_WRONG_INDEX, "Wrong index given to function");
|
||||||
SETMSG(HA_ERR_CRASHED, ER_DEFAULT(ER_NOT_KEYFILE));
|
SETMSG(HA_ERR_CRASHED, ER_DEFAULT(ER_NOT_KEYFILE));
|
||||||
SETMSG(HA_ERR_WRONG_IN_RECORD, ER_DEFAULT(ER_CRASHED_ON_USAGE));
|
SETMSG(HA_ERR_WRONG_IN_RECORD, ER_DEFAULT(ER_CRASHED_ON_USAGE));
|
||||||
|
@ -1302,7 +1302,7 @@ struct handlerton
|
|||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
By default (if not implemented by the engine, but the discovery_table() is
|
By default (if not implemented by the engine, but the discover_table() is
|
||||||
implemented) it will perform a file-based discovery:
|
implemented) it will perform a file-based discovery:
|
||||||
|
|
||||||
- if tablefile_extensions[0] is not null, this will discovers all tables
|
- if tablefile_extensions[0] is not null, this will discovers all tables
|
||||||
@ -3617,7 +3617,7 @@ public:
|
|||||||
*) a) If the previous step succeeds, handler::ha_commit_inplace_alter_table() is
|
*) a) If the previous step succeeds, handler::ha_commit_inplace_alter_table() is
|
||||||
called to allow the storage engine to do any final updates to its structures,
|
called to allow the storage engine to do any final updates to its structures,
|
||||||
to make all earlier changes durable and visible to other connections.
|
to make all earlier changes durable and visible to other connections.
|
||||||
b) If we have failed to upgrade lock or any errors have occured during the
|
b) If we have failed to upgrade lock or any errors have occurred during the
|
||||||
handler functions calls (including commit), we call
|
handler functions calls (including commit), we call
|
||||||
handler::ha_commit_inplace_alter_table()
|
handler::ha_commit_inplace_alter_table()
|
||||||
to rollback all changes which were done during previous steps.
|
to rollback all changes which were done during previous steps.
|
||||||
|
@ -4609,7 +4609,7 @@ bool is_outer_table(TABLE_LIST *table, SELECT_LEX *select)
|
|||||||
@retval
|
@retval
|
||||||
0 column fully fixed and fix_fields() should return FALSE
|
0 column fully fixed and fix_fields() should return FALSE
|
||||||
@retval
|
@retval
|
||||||
-1 error occured
|
-1 error occurred
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int
|
int
|
||||||
@ -6601,7 +6601,7 @@ void Item_field::update_null_value()
|
|||||||
UPDATE statement.
|
UPDATE statement.
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
0 if error occured
|
0 if error occurred
|
||||||
ref if all conditions are met
|
ref if all conditions are met
|
||||||
this field otherwise
|
this field otherwise
|
||||||
*/
|
*/
|
||||||
|
@ -429,7 +429,7 @@ public:
|
|||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
FALSE if parameter value has been set,
|
FALSE if parameter value has been set,
|
||||||
TRUE if error has occured.
|
TRUE if error has occurred.
|
||||||
*/
|
*/
|
||||||
virtual bool set_value(THD *thd, sp_rcontext *ctx, Item **it)= 0;
|
virtual bool set_value(THD *thd, sp_rcontext *ctx, Item **it)= 0;
|
||||||
|
|
||||||
@ -2692,7 +2692,7 @@ public:
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
If value for parameter was not set we treat it as non-const
|
If value for parameter was not set we treat it as non-const
|
||||||
so noone will use parameters value in fix_fields still
|
so no one will use parameters value in fix_fields still
|
||||||
parameter is constant during execution.
|
parameter is constant during execution.
|
||||||
*/
|
*/
|
||||||
virtual table_map used_tables() const
|
virtual table_map used_tables() const
|
||||||
|
@ -232,7 +232,7 @@ Item_func::fix_fields(THD *thd, Item **ref)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
fix_length_and_dec();
|
fix_length_and_dec();
|
||||||
if (thd->is_error()) // An error inside fix_length_and_dec occured
|
if (thd->is_error()) // An error inside fix_length_and_dec occurred
|
||||||
return TRUE;
|
return TRUE;
|
||||||
fixed= 1;
|
fixed= 1;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -5652,7 +5652,7 @@ void Item_func_get_user_var::fix_length_and_dec()
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
If the variable didn't exist it has been created as a STRING-type.
|
If the variable didn't exist it has been created as a STRING-type.
|
||||||
'm_var_entry' is NULL only if there occured an error during the call to
|
'm_var_entry' is NULL only if there occurred an error during the call to
|
||||||
get_var_with_binlog.
|
get_var_with_binlog.
|
||||||
*/
|
*/
|
||||||
if (!error && m_var_entry)
|
if (!error && m_var_entry)
|
||||||
|
@ -5915,7 +5915,7 @@ int subselect_partial_match_engine::exec()
|
|||||||
/* Search for a complete match. */
|
/* Search for a complete match. */
|
||||||
if ((lookup_res= lookup_engine->index_lookup()))
|
if ((lookup_res= lookup_engine->index_lookup()))
|
||||||
{
|
{
|
||||||
/* An error occured during lookup(). */
|
/* An error occurred during lookup(). */
|
||||||
item_in->value= 0;
|
item_in->value= 0;
|
||||||
item_in->null_value= 0;
|
item_in->null_value= 0;
|
||||||
return lookup_res;
|
return lookup_res;
|
||||||
|
14
sql/log.cc
14
sql/log.cc
@ -632,7 +632,7 @@ void Log_to_csv_event_handler::cleanup()
|
|||||||
indicated in the return value.
|
indicated in the return value.
|
||||||
|
|
||||||
@retval FALSE OK
|
@retval FALSE OK
|
||||||
@retval TRUE error occured
|
@retval TRUE error occurred
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool Log_to_csv_event_handler::
|
bool Log_to_csv_event_handler::
|
||||||
@ -797,7 +797,7 @@ err:
|
|||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
FALSE - OK
|
FALSE - OK
|
||||||
TRUE - error occured
|
TRUE - error occurred
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool Log_to_csv_event_handler::
|
bool Log_to_csv_event_handler::
|
||||||
@ -1108,7 +1108,7 @@ void Log_to_file_event_handler::flush()
|
|||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
FALSE - OK
|
FALSE - OK
|
||||||
TRUE - error occured
|
TRUE - error occurred
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool LOGGER::error_log_print(enum loglevel level, const char *format,
|
bool LOGGER::error_log_print(enum loglevel level, const char *format,
|
||||||
@ -1266,7 +1266,7 @@ bool LOGGER::flush_general_log()
|
|||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
FALSE OK
|
FALSE OK
|
||||||
TRUE error occured
|
TRUE error occurred
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool LOGGER::slow_log_print(THD *thd, const char *query, uint query_length,
|
bool LOGGER::slow_log_print(THD *thd, const char *query, uint query_length,
|
||||||
@ -2839,7 +2839,7 @@ void MYSQL_QUERY_LOG::reopen_file()
|
|||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
FASE - OK
|
FASE - OK
|
||||||
TRUE - error occured
|
TRUE - error occurred
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool MYSQL_QUERY_LOG::write(time_t event_time, const char *user_host,
|
bool MYSQL_QUERY_LOG::write(time_t event_time, const char *user_host,
|
||||||
@ -2941,7 +2941,7 @@ err:
|
|||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
FALSE - OK
|
FALSE - OK
|
||||||
TRUE - error occured
|
TRUE - error occurred
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool MYSQL_QUERY_LOG::write(THD *thd, time_t current_time,
|
bool MYSQL_QUERY_LOG::write(THD *thd, time_t current_time,
|
||||||
@ -6403,7 +6403,7 @@ binlog_checkpoint_callback(void *cookie)
|
|||||||
/*
|
/*
|
||||||
For every supporting engine, we increment the xid_count and issue a
|
For every supporting engine, we increment the xid_count and issue a
|
||||||
commit_checkpoint_request(). Then we can count when all
|
commit_checkpoint_request(). Then we can count when all
|
||||||
commit_checkpoint_notify() callbacks have occured, and then log a new
|
commit_checkpoint_notify() callbacks have occurred, and then log a new
|
||||||
binlog checkpoint event.
|
binlog checkpoint event.
|
||||||
*/
|
*/
|
||||||
mysql_bin_log.mark_xids_active(entry->binlog_id, 1);
|
mysql_bin_log.mark_xids_active(entry->binlog_id, 1);
|
||||||
|
@ -1392,9 +1392,9 @@ int Log_event::read_log_event(IO_CACHE* file, String* packet,
|
|||||||
if (packet->append(file, data_len - LOG_EVENT_MINIMAL_HEADER_LEN))
|
if (packet->append(file, data_len - LOG_EVENT_MINIMAL_HEADER_LEN))
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
Fatal error occured when appending rest of the event
|
Fatal error occurred when appending rest of the event
|
||||||
to packet, possible failures:
|
to packet, possible failures:
|
||||||
1. EOF occured when reading from file, it's really an error
|
1. EOF occurred when reading from file, it's really an error
|
||||||
as there's supposed to be more bytes available.
|
as there's supposed to be more bytes available.
|
||||||
file->error will have been set to number of bytes left to read
|
file->error will have been set to number of bytes left to read
|
||||||
2. Read was interrupted, file->error would normally be set to -1
|
2. Read was interrupted, file->error would normally be set to -1
|
||||||
@ -11475,7 +11475,10 @@ Rows_log_event::write_row(rpl_group_info *rgi,
|
|||||||
|
|
||||||
/* unpack row into table->record[0] */
|
/* unpack row into table->record[0] */
|
||||||
if ((error= unpack_current_row(rgi)))
|
if ((error= unpack_current_row(rgi)))
|
||||||
|
{
|
||||||
|
table->file->print_error(error, MYF(0));
|
||||||
DBUG_RETURN(error);
|
DBUG_RETURN(error);
|
||||||
|
}
|
||||||
|
|
||||||
if (m_curr_row == m_rows_buf && !invoke_triggers)
|
if (m_curr_row == m_rows_buf && !invoke_triggers)
|
||||||
{
|
{
|
||||||
@ -12483,8 +12486,8 @@ Update_rows_log_event::do_exec_row(rpl_group_info *rgi)
|
|||||||
We need to read the second image in the event of error to be
|
We need to read the second image in the event of error to be
|
||||||
able to skip to the next pair of updates
|
able to skip to the next pair of updates
|
||||||
*/
|
*/
|
||||||
m_curr_row= m_curr_row_end;
|
if ((m_curr_row= m_curr_row_end))
|
||||||
unpack_current_row(rgi, &m_cols_ai);
|
unpack_current_row(rgi, &m_cols_ai);
|
||||||
thd_proc_info(thd, tmp);
|
thd_proc_info(thd, tmp);
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
@ -248,7 +248,7 @@ Old_rows_log_event::do_apply_event(Old_rows_log_event *ev, rpl_group_info *rgi)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (error)
|
if (error)
|
||||||
{ /* error has occured during the transaction */
|
{ /* error has occurred during the transaction */
|
||||||
rli->report(ERROR_LEVEL, ev_thd->get_stmt_da()->sql_errno(), NULL,
|
rli->report(ERROR_LEVEL, ev_thd->get_stmt_da()->sql_errno(), NULL,
|
||||||
"Error in %s event: error during transaction execution "
|
"Error in %s event: error during transaction execution "
|
||||||
"on table %s.%s. %s",
|
"on table %s.%s. %s",
|
||||||
@ -1593,7 +1593,7 @@ int Old_rows_log_event::do_apply_event(rpl_group_info *rgi)
|
|||||||
} // if (table)
|
} // if (table)
|
||||||
|
|
||||||
if (error)
|
if (error)
|
||||||
{ /* error has occured during the transaction */
|
{ /* error has occurred during the transaction */
|
||||||
rli->report(ERROR_LEVEL, thd->net.last_errno, NULL,
|
rli->report(ERROR_LEVEL, thd->net.last_errno, NULL,
|
||||||
"Error in %s event: error during transaction execution "
|
"Error in %s event: error during transaction execution "
|
||||||
"on table %s.%s. %s",
|
"on table %s.%s. %s",
|
||||||
|
@ -119,7 +119,7 @@ void init_show_explain_psi_keys(void)
|
|||||||
|
|
||||||
@retval FALSE - Ok, the call has been made
|
@retval FALSE - Ok, the call has been made
|
||||||
@retval TRUE - Call wasnt made (either the target is in disabled state or
|
@retval TRUE - Call wasnt made (either the target is in disabled state or
|
||||||
timeout occured)
|
timeout occurred)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool Apc_target::make_apc_call(THD *caller_thd, Apc_call *call,
|
bool Apc_target::make_apc_call(THD *caller_thd, Apc_call *call,
|
||||||
|
@ -119,10 +119,10 @@ static void die(const char *fmt, ...)
|
|||||||
if (verbose_errors)
|
if (verbose_errors)
|
||||||
{
|
{
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"http://kb.askmonty.org/v/installation-issues-on-windows contains some help\n"
|
"https://mariadb.com/kb/en/installation-issues-on-windows contains some help\n"
|
||||||
"for solving the most common problems. If this doesn't help you, please\n"
|
"for solving the most common problems. If this doesn't help you, please\n"
|
||||||
"leave a comment in the Knowledgebase or file a bug report at\n"
|
"leave a comment in the Knowledge Base or file a bug report at\n"
|
||||||
"http://mariadb.org/jira");
|
"https://jira.mariadb.org");
|
||||||
}
|
}
|
||||||
fflush(stderr);
|
fflush(stderr);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
@ -705,7 +705,7 @@ do_retry:
|
|||||||
thd->clear_error();
|
thd->clear_error();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
If we retry due to a deadlock kill that occured during the commit step, we
|
If we retry due to a deadlock kill that occurred during the commit step, we
|
||||||
might have already updated (but not committed) an update of table
|
might have already updated (but not committed) an update of table
|
||||||
mysql.gtid_slave_pos, and cleared the gtid_pending flag. Now we have
|
mysql.gtid_slave_pos, and cleared the gtid_pending flag. Now we have
|
||||||
rolled back any such update, so we must set the gtid_pending flag back to
|
rolled back any such update, so we must set the gtid_pending flag back to
|
||||||
@ -1128,7 +1128,7 @@ handle_rpl_parallel_thread(void *arg)
|
|||||||
/*
|
/*
|
||||||
Register ourself to wait for the previous commit, if we need to do
|
Register ourself to wait for the previous commit, if we need to do
|
||||||
such registration _and_ that previous commit has not already
|
such registration _and_ that previous commit has not already
|
||||||
occured.
|
occurred.
|
||||||
*/
|
*/
|
||||||
register_wait_for_prior_event_group_commit(rgi, entry);
|
register_wait_for_prior_event_group_commit(rgi, entry);
|
||||||
|
|
||||||
@ -1189,7 +1189,7 @@ handle_rpl_parallel_thread(void *arg)
|
|||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
Do an extra check for (deadlock) kill here. This helps prevent a
|
Do an extra check for (deadlock) kill here. This helps prevent a
|
||||||
lingering deadlock kill that occured during normal DML processing to
|
lingering deadlock kill that occurred during normal DML processing to
|
||||||
propagate past the mark_start_commit(). If we detect a deadlock only
|
propagate past the mark_start_commit(). If we detect a deadlock only
|
||||||
after mark_start_commit(), we have to unmark, which has at least a
|
after mark_start_commit(), we have to unmark, which has at least a
|
||||||
theoretical possibility of leaving a window where it looks like all
|
theoretical possibility of leaving a window where it looks like all
|
||||||
|
@ -319,7 +319,7 @@ struct rpl_parallel_entry {
|
|||||||
group here. Then later event groups (with higher sub_id) can know not to
|
group here. Then later event groups (with higher sub_id) can know not to
|
||||||
try to start (event groups that already started will be rolled back when
|
try to start (event groups that already started will be rolled back when
|
||||||
wait_for_prior_commit() returns error).
|
wait_for_prior_commit() returns error).
|
||||||
The value is ULONGLONG_MAX when no error occured.
|
The value is ULONGLONG_MAX when no error occurred.
|
||||||
*/
|
*/
|
||||||
uint64 stop_on_error_sub_id;
|
uint64 stop_on_error_sub_id;
|
||||||
/*
|
/*
|
||||||
|
@ -185,7 +185,7 @@ pack_row(TABLE *table, MY_BITMAP const* cols,
|
|||||||
|
|
||||||
@retval HA_ERR_GENERIC
|
@retval HA_ERR_GENERIC
|
||||||
A generic, internal, error caused the unpacking to fail.
|
A generic, internal, error caused the unpacking to fail.
|
||||||
@retval ER_SLAVE_CORRUPT_EVENT
|
@retval HA_ERR_CORRUPT_EVENT
|
||||||
Found error when trying to unpack fields.
|
Found error when trying to unpack fields.
|
||||||
*/
|
*/
|
||||||
#if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION)
|
#if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION)
|
||||||
@ -349,7 +349,7 @@ unpack_row(rpl_group_info *rgi,
|
|||||||
"Could not read field '%s' of table '%s.%s'",
|
"Could not read field '%s' of table '%s.%s'",
|
||||||
f->field_name, table->s->db.str,
|
f->field_name, table->s->db.str,
|
||||||
table->s->table_name.str);
|
table->s->table_name.str);
|
||||||
DBUG_RETURN(ER_SLAVE_CORRUPT_EVENT);
|
DBUG_RETURN(HA_ERR_CORRUPT_EVENT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6034,7 +6034,7 @@ ER_EVENT_CANNOT_ALTER_IN_THE_PAST
|
|||||||
eng "Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was not changed. Specify a time in the future."
|
eng "Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was not changed. Specify a time in the future."
|
||||||
ger "Execution Zeitpunkt des Ereignisses in der Vergangenheit liegt, und es war NACH ABSCHLUSS Set nicht erhalten. Die Veranstaltung wurde nicht verändert. Geben Sie einen Zeitpunkt in der Zukunft."
|
ger "Execution Zeitpunkt des Ereignisses in der Vergangenheit liegt, und es war NACH ABSCHLUSS Set nicht erhalten. Die Veranstaltung wurde nicht verändert. Geben Sie einen Zeitpunkt in der Zukunft."
|
||||||
ER_SLAVE_INCIDENT
|
ER_SLAVE_INCIDENT
|
||||||
eng "The incident %s occured on the master. Message: %-.64s"
|
eng "The incident %s occurred on the master. Message: %-.64s"
|
||||||
ger "Der Vorfall %s passierte auf dem Master. Meldung: %-.64s"
|
ger "Der Vorfall %s passierte auf dem Master. Meldung: %-.64s"
|
||||||
ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT
|
ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT
|
||||||
eng "Table has no partition for some existing values"
|
eng "Table has no partition for some existing values"
|
||||||
|
@ -100,7 +100,7 @@ extern "C" sig_handler handle_fatal_signal(int sig)
|
|||||||
"or misconfigured. This error can also be caused by malfunctioning hardware.\n\n");
|
"or misconfigured. This error can also be caused by malfunctioning hardware.\n\n");
|
||||||
|
|
||||||
my_safe_printf_stderr("%s",
|
my_safe_printf_stderr("%s",
|
||||||
"To report this bug, see http://kb.askmonty.org/en/reporting-bugs\n\n");
|
"To report this bug, see https://mariadb.com/kb/en/reporting-bugs\n\n");
|
||||||
|
|
||||||
my_safe_printf_stderr("%s",
|
my_safe_printf_stderr("%s",
|
||||||
"We will try our best to scrape up some info that will hopefully help\n"
|
"We will try our best to scrape up some info that will hopefully help\n"
|
||||||
@ -227,7 +227,7 @@ extern "C" sig_handler handle_fatal_signal(int sig)
|
|||||||
if (calling_initgroups)
|
if (calling_initgroups)
|
||||||
{
|
{
|
||||||
my_safe_printf_stderr("%s", "\n"
|
my_safe_printf_stderr("%s", "\n"
|
||||||
"This crash occured while the server was calling initgroups(). This is\n"
|
"This crash occurred while the server was calling initgroups(). This is\n"
|
||||||
"often due to the use of a mysqld that is statically linked against \n"
|
"often due to the use of a mysqld that is statically linked against \n"
|
||||||
"glibc and configured to use LDAP in /etc/nsswitch.conf.\n"
|
"glibc and configured to use LDAP in /etc/nsswitch.conf.\n"
|
||||||
"You will need to either upgrade to a version of glibc that does not\n"
|
"You will need to either upgrade to a version of glibc that does not\n"
|
||||||
|
@ -4955,6 +4955,7 @@ err_during_init:
|
|||||||
*/
|
*/
|
||||||
mysql_mutex_lock(&LOCK_active_mi);
|
mysql_mutex_lock(&LOCK_active_mi);
|
||||||
if (opt_slave_parallel_threads > 0 &&
|
if (opt_slave_parallel_threads > 0 &&
|
||||||
|
master_info_index &&// master_info_index is set to NULL on server shutdown
|
||||||
!master_info_index->any_slave_sql_running())
|
!master_info_index->any_slave_sql_running())
|
||||||
rpl_parallel_inactivate_pool(&global_rpl_thread_pool);
|
rpl_parallel_inactivate_pool(&global_rpl_thread_pool);
|
||||||
mysql_mutex_unlock(&LOCK_active_mi);
|
mysql_mutex_unlock(&LOCK_active_mi);
|
||||||
|
@ -611,7 +611,7 @@ public:
|
|||||||
instruction for CONTINUE error handlers.
|
instruction for CONTINUE error handlers.
|
||||||
|
|
||||||
@retval 0 on success,
|
@retval 0 on success,
|
||||||
@retval other if some error occured
|
@retval other if some error occurred
|
||||||
*/
|
*/
|
||||||
|
|
||||||
virtual int execute(THD *thd, uint *nextp) = 0;
|
virtual int execute(THD *thd, uint *nextp) = 0;
|
||||||
|
@ -10133,7 +10133,7 @@ bool sp_revoke_privileges(THD *thd, const char *sp_db, const char *sp_name,
|
|||||||
|
|
||||||
@return
|
@return
|
||||||
@retval FALSE Success
|
@retval FALSE Success
|
||||||
@retval TRUE An error occured. Error message not yet sent.
|
@retval TRUE An error occurred. Error message not yet sent.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool sp_grant_privileges(THD *thd, const char *sp_db, const char *sp_name,
|
bool sp_grant_privileges(THD *thd, const char *sp_db, const char *sp_name,
|
||||||
|
@ -8563,7 +8563,7 @@ bool setup_on_expr(THD *thd, TABLE_LIST *table, bool is_update)
|
|||||||
TODO
|
TODO
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
TRUE if some error occured (e.g. out of memory)
|
TRUE if some error occurred (e.g. out of memory)
|
||||||
FALSE if all is OK
|
FALSE if all is OK
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -8673,7 +8673,7 @@ err_no_arena:
|
|||||||
function.
|
function.
|
||||||
|
|
||||||
@return Status
|
@return Status
|
||||||
@retval true An error occured.
|
@retval true An error occurred.
|
||||||
@retval false OK.
|
@retval false OK.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -8835,7 +8835,7 @@ static bool not_null_fields_have_null_values(TABLE *table)
|
|||||||
record[1] buffers correspond to new and old versions of row respectively.
|
record[1] buffers correspond to new and old versions of row respectively.
|
||||||
|
|
||||||
@return Status
|
@return Status
|
||||||
@retval true An error occured.
|
@retval true An error occurred.
|
||||||
@retval false OK.
|
@retval false OK.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -8895,7 +8895,7 @@ fill_record_n_invoke_before_triggers(THD *thd, TABLE *table, List<Item> &fields,
|
|||||||
function.
|
function.
|
||||||
|
|
||||||
@return Status
|
@return Status
|
||||||
@retval true An error occured.
|
@retval true An error occurred.
|
||||||
@retval false OK.
|
@retval false OK.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -8990,7 +8990,7 @@ err:
|
|||||||
record[1] buffers correspond to new and old versions of row respectively.
|
record[1] buffers correspond to new and old versions of row respectively.
|
||||||
|
|
||||||
@return Status
|
@return Status
|
||||||
@retval true An error occured.
|
@retval true An error occurred.
|
||||||
@retval false OK.
|
@retval false OK.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -2206,7 +2206,7 @@ finish:
|
|||||||
for a match for any record from join_tab. To iterate over the candidates
|
for a match for any record from join_tab. To iterate over the candidates
|
||||||
for a match the virtual function get_next_candidate_for_match is used,
|
for a match the virtual function get_next_candidate_for_match is used,
|
||||||
while the virtual function prepare_look_for_matches is called to prepare
|
while the virtual function prepare_look_for_matches is called to prepare
|
||||||
for such iteration proccess.
|
for such iteration process.
|
||||||
|
|
||||||
NOTES
|
NOTES
|
||||||
The function produces all matching extensions for the records in the
|
The function produces all matching extensions for the records in the
|
||||||
|
@ -631,7 +631,7 @@ public:
|
|||||||
return saved_fake_select_lex;
|
return saved_fake_select_lex;
|
||||||
return first_select();
|
return first_select();
|
||||||
};
|
};
|
||||||
//node on wich we should return current_select pointer after parsing subquery
|
//node on which we should return current_select pointer after parsing subquery
|
||||||
st_select_lex *return_to;
|
st_select_lex *return_to;
|
||||||
/* LIMIT clause runtime counters */
|
/* LIMIT clause runtime counters */
|
||||||
ha_rows select_limit_cnt, offset_limit_cnt;
|
ha_rows select_limit_cnt, offset_limit_cnt;
|
||||||
|
@ -7977,7 +7977,7 @@ bool st_select_lex_unit::add_fake_select_lex(THD *thd_arg)
|
|||||||
@retval
|
@retval
|
||||||
FALSE if all is OK
|
FALSE if all is OK
|
||||||
@retval
|
@retval
|
||||||
TRUE if a memory allocation error occured
|
TRUE if a memory allocation error occurred
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
@ -2007,7 +2007,7 @@ static int mysql_test_show_create_routine(Prepared_statement *stmt, int type)
|
|||||||
@note This function handles create view commands.
|
@note This function handles create view commands.
|
||||||
|
|
||||||
@retval FALSE Operation was a success.
|
@retval FALSE Operation was a success.
|
||||||
@retval TRUE An error occured.
|
@retval TRUE An error occurred.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static bool mysql_test_create_view(Prepared_statement *stmt)
|
static bool mysql_test_create_view(Prepared_statement *stmt)
|
||||||
|
@ -3285,7 +3285,7 @@ int reset_slave(THD *thd, Master_info* mi)
|
|||||||
char fname[FN_REFLEN];
|
char fname[FN_REFLEN];
|
||||||
int thread_mask= 0, error= 0;
|
int thread_mask= 0, error= 0;
|
||||||
uint sql_errno=ER_UNKNOWN_ERROR;
|
uint sql_errno=ER_UNKNOWN_ERROR;
|
||||||
const char* errmsg= "Unknown error occured while reseting slave";
|
const char* errmsg= "Unknown error occurred while reseting slave";
|
||||||
char master_info_file_tmp[FN_REFLEN];
|
char master_info_file_tmp[FN_REFLEN];
|
||||||
char relay_log_info_file_tmp[FN_REFLEN];
|
char relay_log_info_file_tmp[FN_REFLEN];
|
||||||
DBUG_ENTER("reset_slave");
|
DBUG_ENTER("reset_slave");
|
||||||
@ -3890,7 +3890,7 @@ bool mysql_show_binlog_events(THD* thd)
|
|||||||
DBUG_ASSERT(thd->lex->sql_command == SQLCOM_SHOW_BINLOG_EVENTS ||
|
DBUG_ASSERT(thd->lex->sql_command == SQLCOM_SHOW_BINLOG_EVENTS ||
|
||||||
thd->lex->sql_command == SQLCOM_SHOW_RELAYLOG_EVENTS);
|
thd->lex->sql_command == SQLCOM_SHOW_RELAYLOG_EVENTS);
|
||||||
|
|
||||||
/* select wich binary log to use: binlog or relay */
|
/* select which binary log to use: binlog or relay */
|
||||||
if ( thd->lex->sql_command == SQLCOM_SHOW_BINLOG_EVENTS )
|
if ( thd->lex->sql_command == SQLCOM_SHOW_BINLOG_EVENTS )
|
||||||
{
|
{
|
||||||
binary_log= &mysql_bin_log;
|
binary_log= &mysql_bin_log;
|
||||||
|
@ -454,7 +454,7 @@ bool handle_select(THD *thd, LEX *lex, select_result *result,
|
|||||||
this field from inner subqueries.
|
this field from inner subqueries.
|
||||||
|
|
||||||
@return Status
|
@return Status
|
||||||
@retval true An error occured.
|
@retval true An error occurred.
|
||||||
@retval false OK.
|
@retval false OK.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -12976,7 +12976,7 @@ bool Item_func_eq::check_equality(THD *thd, COND_EQUAL *cond_equal,
|
|||||||
equality predicates that is equivalent to the conjunction.
|
equality predicates that is equivalent to the conjunction.
|
||||||
Thus, =(a1,a2,a3) can substitute for ((a1=a3) AND (a2=a3) AND (a2=a1)) as
|
Thus, =(a1,a2,a3) can substitute for ((a1=a3) AND (a2=a3) AND (a2=a1)) as
|
||||||
it is equivalent to ((a1=a2) AND (a2=a3)).
|
it is equivalent to ((a1=a2) AND (a2=a3)).
|
||||||
The function always makes a substitution of all equality predicates occured
|
The function always makes a substitution of all equality predicates occurred
|
||||||
in a conjuction for a minimal set of multiple equality predicates.
|
in a conjuction for a minimal set of multiple equality predicates.
|
||||||
This set can be considered as a canonical representation of the
|
This set can be considered as a canonical representation of the
|
||||||
sub-conjunction of the equality predicates.
|
sub-conjunction of the equality predicates.
|
||||||
@ -21895,7 +21895,7 @@ find_order_in_list(THD *thd, Item **ref_pointer_array, TABLE_LIST *tables,
|
|||||||
select_item= find_item_in_list(order_item, fields, &counter,
|
select_item= find_item_in_list(order_item, fields, &counter,
|
||||||
REPORT_EXCEPT_NOT_FOUND, &resolution);
|
REPORT_EXCEPT_NOT_FOUND, &resolution);
|
||||||
if (!select_item)
|
if (!select_item)
|
||||||
return TRUE; /* The item is not unique, or some other error occured. */
|
return TRUE; /* The item is not unique, or some other error occurred. */
|
||||||
|
|
||||||
|
|
||||||
/* Check whether the resolved field is not ambiguos. */
|
/* Check whether the resolved field is not ambiguos. */
|
||||||
@ -25217,7 +25217,7 @@ void JOIN::restore_query_plan(Join_plan_state *restore_from)
|
|||||||
|
|
||||||
@retval REOPT_NEW_PLAN there is a new plan.
|
@retval REOPT_NEW_PLAN there is a new plan.
|
||||||
@retval REOPT_OLD_PLAN no new improved plan was produced, use the old one.
|
@retval REOPT_OLD_PLAN no new improved plan was produced, use the old one.
|
||||||
@retval REOPT_ERROR an irrecovarable error occured during reoptimization.
|
@retval REOPT_ERROR an irrecovarable error occurred during reoptimization.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
JOIN::enum_reopt_result
|
JOIN::enum_reopt_result
|
||||||
|
@ -938,7 +938,7 @@ protected:
|
|||||||
enum enum_reopt_result {
|
enum enum_reopt_result {
|
||||||
REOPT_NEW_PLAN, /* there is a new reoptimized plan */
|
REOPT_NEW_PLAN, /* there is a new reoptimized plan */
|
||||||
REOPT_OLD_PLAN, /* no new improved plan can be found, use the old one */
|
REOPT_OLD_PLAN, /* no new improved plan can be found, use the old one */
|
||||||
REOPT_ERROR, /* an irrecovarable error occured during reoptimization */
|
REOPT_ERROR, /* an irrecovarable error occurred during reoptimization */
|
||||||
REOPT_NONE /* not yet reoptimized */
|
REOPT_NONE /* not yet reoptimized */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user