Skip to content

Commit

Permalink
Merge bb-10.2-ext into 10.3
Browse files Browse the repository at this point in the history
  • Loading branch information
dr-m committed Nov 2, 2017
2 parents 06ec864 + 2ec7b87 commit 5603a58
Show file tree
Hide file tree
Showing 24 changed files with 135 additions and 111 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ language: cpp
os:
- linux
- osx
osx_image: xcode8.3
osx_image: xcode9.1
compiler:
- gcc
- clang
Expand Down
5 changes: 3 additions & 2 deletions mysql-test/r/mysqld--help.result
Original file line number Diff line number Diff line change
Expand Up @@ -479,8 +479,9 @@ The following options may be given as the first argument:
file.Value can be between 0 and 11. Higher values mean
more verbosity
--long-query-time=# Log all queries that have taken more than long_query_time
seconds to execute to file. The argument will be treated
as a decimal value with microsecond precision
seconds to execute to the slow query log file. The
argument will be treated as a decimal value with
microsecond precision
--low-priority-updates
INSERT/DELETE/UPDATE has lower priority than selects
--lower-case-table-names[=#]
Expand Down
2 changes: 1 addition & 1 deletion mysql-test/suite/encryption/disabled.def
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@

innodb_scrub : MDEV-8139 scrubbing does not work reliably
innodb_scrub_background : MDEV-8139 scrubbing does not work reliably

innodb-redo-badkey : MDEV-13893 / MDEV-12699 Improve crash recovery of corrupted data pages
4 changes: 2 additions & 2 deletions mysql-test/suite/encryption/r/encryption_force.result
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,11 @@ t4 CREATE TABLE `t4` (
PARTITION BY HASH (`a`)
PARTITIONS 2
alter table t1 encrypted=no;
ERROR HY000: Can't create table `test`.`#sql-temporary` (errno: 140 "Wrong create options")
ERROR HY000: Table storage engine 'InnoDB' does not support the create option 'ENCRYPTED'
alter table t2 encrypted=yes;
alter table t3 encrypted=default;
alter table t4 encrypted=no;
ERROR HY000: Can't create table `test`.`#sql-temporary` (errno: 140 "Wrong create options")
ERROR HY000: Table storage engine 'InnoDB' does not support the create option 'ENCRYPTED'
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
Expand Down
2 changes: 1 addition & 1 deletion mysql-test/suite/encryption/r/filekeys_encfile.result
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ t1 CREATE TABLE `t1` (
`b` char(200) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `encrypted`=yes `encryption_key_id`=2
alter table t1 encryption_key_id=3;
ERROR HY000: Can't create table `test`.`#sql-temporary` (errno: 140 "Wrong create options")
ERROR HY000: Table storage engine 'InnoDB' does not support the create option 'ENCRYPTION_KEY_ID'
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
Expand Down
2 changes: 1 addition & 1 deletion mysql-test/suite/encryption/r/filekeys_encfile_file.result
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ t1 CREATE TABLE `t1` (
`b` char(200) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `encrypted`=yes `encryption_key_id`=2
alter table t1 encryption_key_id=3;
ERROR HY000: Can't create table `test`.`#sql-temporary` (errno: 140 "Wrong create options")
ERROR HY000: Table storage engine 'InnoDB' does not support the create option 'ENCRYPTION_KEY_ID'
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
Expand Down
5 changes: 2 additions & 3 deletions mysql-test/suite/encryption/r/innodb-encryption-alter.result
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,10 @@ CREATE TABLE t2 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNOD
Warnings:
Warning 140 InnoDB: Ignored ENCRYPTION_KEY_ID 1 when encryption is disabled
ALTER TABLE t1 ENCRYPTION_KEY_ID=99;
ERROR HY000: Can't create table `test`.`#sql-temporary` (errno: 140 "Wrong create options")
ERROR HY000: Table storage engine 'InnoDB' does not support the create option 'ENCRYPTION_KEY_ID'
SHOW WARNINGS;
Level Code Message
Warning 140 InnoDB: ENCRYPTION_KEY_ID 99 not available
Error 1005 Can't create table `test`.`#sql-temporary` (errno: 140 "Wrong create options")
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
Error 1478 Table storage engine 'InnoDB' does not support the create option 'ENCRYPTION_KEY_ID'
set innodb_default_encryption_key_id = 1;
drop table t1,t2;
2 changes: 1 addition & 1 deletion mysql-test/suite/encryption/r/innodb-spatial-index.result
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT,
c VARCHAR(256), coordinate POINT NOT NULL, SPATIAL index(coordinate)) ENGINE=INNODB;
ALTER TABLE t1 ENCRYPTED=YES;
ERROR HY000: Can't create table `test`.`#sql-temporary` (errno: 140 "Wrong create options")
ERROR HY000: Table storage engine 'InnoDB' does not support the create option 'ENCRYPTED'
DROP TABLE t1;
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT,
c VARCHAR(256), coordinate POINT NOT NULL) ENCRYPTED=YES ENGINE=INNODB;
Expand Down
6 changes: 2 additions & 4 deletions mysql-test/suite/encryption/t/encryption_force.test
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,11 @@ show create table t2;
show create table t3;
show create table t4;

--replace_regex /#sql-[0-9a-f_]*/#sql-temporary/
--error ER_CANT_CREATE_TABLE
--error ER_ILLEGAL_HA_CREATE_OPTION
alter table t1 encrypted=no;
alter table t2 encrypted=yes;
alter table t3 encrypted=default;
--replace_regex /#sql-[0-9a-f_]*/#sql-temporary/
--error ER_CANT_CREATE_TABLE
--error ER_ILLEGAL_HA_CREATE_OPTION
alter table t4 encrypted=no;

show create table t1;
Expand Down
4 changes: 1 addition & 3 deletions mysql-test/suite/encryption/t/filekeys_goodtest.inc
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@ insert t1 values (12345, repeat('1234567890', 20));

alter table t1 encryption_key_id=2;
show create table t1;
--replace_regex /#sql-[0-9a-f_]*/#sql-temporary/
--error ER_CANT_CREATE_TABLE
--error ER_ILLEGAL_HA_CREATE_OPTION
alter table t1 encryption_key_id=3;
show create table t1;
alter table t1 encryption_key_id=33;
Expand All @@ -17,4 +16,3 @@ alter table t1 encryption_key_id=4;
show create table t1;

drop table t1;

4 changes: 1 addition & 3 deletions mysql-test/suite/encryption/t/innodb-encryption-alter.test
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,8 @@ DROP TABLE t1;
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB;
SHOW CREATE TABLE t1;
CREATE TABLE t2 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED=NO ENCRYPTION_KEY_ID=1;
--replace_regex /#sql-[0-9a-f_]*/#sql-temporary/
--error 1005
--error ER_ILLEGAL_HA_CREATE_OPTION
ALTER TABLE t1 ENCRYPTION_KEY_ID=99;
--replace_regex /#sql-[0-9a-f_]*/#sql-temporary/
SHOW WARNINGS;
set innodb_default_encryption_key_id = 1;

Expand Down
4 changes: 1 addition & 3 deletions mysql-test/suite/encryption/t/innodb-spatial-index.test
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,8 @@ ENCRYPTED=YES;
#
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT,
c VARCHAR(256), coordinate POINT NOT NULL, SPATIAL index(coordinate)) ENGINE=INNODB;
--replace_regex /#sql-[0-9a-f_]*`/#sql-temporary`/
--error ER_CANT_CREATE_TABLE
--error ER_ILLEGAL_HA_CREATE_OPTION
ALTER TABLE t1 ENCRYPTED=YES;
--replace_regex /#sql-[0-9a-f_]*`/#sql-temporary`/
DROP TABLE t1;

#
Expand Down
1 change: 1 addition & 0 deletions mysql-test/suite/gcol/disabled.def
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
innodb_virtual_debug_purge : MDEV-13568 should purge yield to LOCK TABLES?
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,11 @@ innodb_redundant CREATE TABLE `innodb_redundant` (
`b` char(200) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=REDUNDANT
alter table innodb_redundant page_compressed=1;
ERROR HY000: Can't create table `test`.`#sql-temporary` (errno: 140 "Wrong create options")
ERROR HY000: Table storage engine 'InnoDB' does not support the create option 'PAGE_COMPRESSED'
show warnings;
Level Code Message
Warning 140 InnoDB: PAGE_COMPRESSED table can't have ROW_TYPE=REDUNDANT
Error 1005 Can't create table `test`.`#sql-temporary` (errno: 140 "Wrong create options")
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
Error 1478 Table storage engine 'InnoDB' does not support the create option 'PAGE_COMPRESSED'
show create table innodb_redundant;
Table Create Table
innodb_redundant CREATE TABLE `innodb_redundant` (
Expand Down
3 changes: 2 additions & 1 deletion mysql-test/suite/innodb/r/innodb-table-online.result
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,8 @@ t1 CREATE TABLE `t1` (
ALTER TABLE t1 ROW_FORMAT=REDUNDANT;
SET DEBUG_SYNC = 'row_log_table_apply1_before SIGNAL rebuilt2 WAIT_FOR dml2_done';
SET lock_wait_timeout = 10;
ALTER TABLE t1 ROW_FORMAT=COMPACT, ALGORITHM = INPLACE;
ALTER TABLE t1 ROW_FORMAT=COMPACT
PAGE_COMPRESSED = YES PAGE_COMPRESSION_LEVEL = 1, ALGORITHM = INPLACE;
# session default
connection default;
INSERT INTO t1 SELECT 80 + c1, c2, c3 FROM t1;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,8 @@ create table innodb_redundant(c1 bigint not null, b char(200)) engine=innodb row
show warnings;
create table innodb_redundant(c1 bigint not null, b char(200)) engine=innodb row_format=redundant;
show create table innodb_redundant;
--replace_regex /#sql-[0-9a-f_]*`/#sql-temporary`/
--error 1005
--error ER_ILLEGAL_HA_CREATE_OPTION
alter table innodb_redundant page_compressed=1;
--replace_regex /#sql-[0-9a-f_]*`/#sql-temporary`/
show warnings;
show create table innodb_redundant;
alter table innodb_redundant row_format=compact page_compressed=1;
Expand Down
3 changes: 2 additions & 1 deletion mysql-test/suite/innodb/t/innodb-table-online.test
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,8 @@ SET DEBUG_SYNC = 'row_log_table_apply1_before SIGNAL rebuilt2 WAIT_FOR dml2_done
# Ensure that the ALTER TABLE will be executed even with some concurrent DML.
SET lock_wait_timeout = 10;
--send
ALTER TABLE t1 ROW_FORMAT=COMPACT, ALGORITHM = INPLACE;
ALTER TABLE t1 ROW_FORMAT=COMPACT
PAGE_COMPRESSED = YES PAGE_COMPRESSION_LEVEL = 1, ALGORITHM = INPLACE;

# Generate some log (delete-mark, delete-unmark, insert etc.)
# while the index creation is blocked. Some of this may run
Expand Down
2 changes: 1 addition & 1 deletion mysql-test/suite/sys_vars/r/sysvars_server_embedded.result
Original file line number Diff line number Diff line change
Expand Up @@ -1935,7 +1935,7 @@ GLOBAL_VALUE_ORIGIN COMPILE-TIME
DEFAULT_VALUE 10.000000
VARIABLE_SCOPE SESSION
VARIABLE_TYPE DOUBLE
VARIABLE_COMMENT Log all queries that have taken more than long_query_time seconds to execute to file. The argument will be treated as a decimal value with microsecond precision
VARIABLE_COMMENT Log all queries that have taken more than long_query_time seconds to execute to the slow query log file. The argument will be treated as a decimal value with microsecond precision
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 31536000
NUMERIC_BLOCK_SIZE NULL
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2131,7 +2131,7 @@ GLOBAL_VALUE_ORIGIN COMPILE-TIME
DEFAULT_VALUE 10.000000
VARIABLE_SCOPE SESSION
VARIABLE_TYPE DOUBLE
VARIABLE_COMMENT Log all queries that have taken more than long_query_time seconds to execute to file. The argument will be treated as a decimal value with microsecond precision
VARIABLE_COMMENT Log all queries that have taken more than long_query_time seconds to execute to the slow query log file. The argument will be treated as a decimal value with microsecond precision
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 31536000
NUMERIC_BLOCK_SIZE NULL
Expand Down
50 changes: 31 additions & 19 deletions scripts/mysqld_safe.sh
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,11 @@ log_generic () {
echo "$msg"
case $logging in
init) ;; # Just echo the message, don't save it anywhere
file) echo "$msg" | "$helper" "$user" log "$err_log" ;;
file)
if [ -n "$helper" ]; then
echo "$msg" | "$helper" "$user" log "$err_log"
fi
;;
syslog) logger -t "$syslog_tag_mysqld_safe" -p "$priority" "$*" ;;
*)
echo "Internal program error (non-fatal):" \
Expand All @@ -173,7 +177,11 @@ log_notice () {
eval_log_error () {
local cmd="$1"
case $logging in
file) cmd="$cmd 2>&1 | "`shell_quote_string "$helper"`" $user log "`shell_quote_string "$err_log"` ;;
file)
if [ -n "$helper" ]; then
cmd="$cmd 2>&1 | "`shell_quote_string "$helper"`" $user log "`shell_quote_string "$err_log"`
fi
;;
syslog)
# mysqld often prefixes its messages with a timestamp, which is
# redundant when logging to syslog (which adds its own timestamp)
Expand Down Expand Up @@ -455,32 +463,33 @@ get_mysql_config() {

# set_malloc_lib LIB
# - If LIB is empty, do nothing and return
# - If LIB is 'tcmalloc', look for tcmalloc shared library in /usr/lib
# then pkglibdir. tcmalloc is part of the Google perftools project.
# - If LIB starts with 'tcmalloc' or 'jemalloc', look for the shared library in
# /usr/lib, /usr/lib64 and then pkglibdir.
# tcmalloc is part of the Google perftools project.
# - If LIB is an absolute path, assume it is a malloc shared library
#
# Put LIB in mysqld_ld_preload, which will be added to LD_PRELOAD when
# running mysqld. See ld.so for details.
set_malloc_lib() {
malloc_lib="$1"

if [ "$malloc_lib" = tcmalloc ]; then
if expr "$malloc_lib" : "\(tcmalloc\|jemalloc\)" > /dev/null ; then
pkglibdir=`get_mysql_config --variable=pkglibdir`
malloc_lib=
where=''
# This list is kept intentionally simple. Simply set --malloc-lib
# to a full path if another location is desired.
for libdir in /usr/lib "$pkglibdir" "$pkglibdir/mysql"; do
for flavor in _minimal '' _and_profiler _debug; do
tmp="$libdir/libtcmalloc$flavor.so"
#log_notice "DEBUG: Checking for malloc lib '$tmp'"
[ -r "$tmp" ] || continue
malloc_lib="$tmp"
break 2
done
for libdir in /usr/lib /usr/lib64 "$pkglibdir" "$pkglibdir/mysql"; do
tmp=`echo "$libdir/lib$malloc_lib.so".[0-9]`
where="$where $libdir"
# log_notice "DEBUG: Checking for malloc lib '$tmp'"
[ -r "$tmp" ] || continue
malloc_lib="$tmp"
where=''
break
done

if [ -z "$malloc_lib" ]; then
log_error "no shared library for --malloc-lib=tcmalloc found in /usr/lib or $pkglibdir"
if [ -n "$where" ]; then
log_error "no shared library for lib$malloc_lib.so.[0-9] found in$where"
exit 1
fi
fi
Expand All @@ -496,8 +505,8 @@ set_malloc_lib() {
fi
;;
*)
log_error "--malloc-lib must be an absolute path or 'tcmalloc'; " \
"ignoring value '$malloc_lib'"
log_error "--malloc-lib must be an absolute path, 'tcmalloc' or " \
"'jemalloc'; ignoring value '$malloc_lib'"
exit 1
;;
esac
Expand Down Expand Up @@ -549,6 +558,9 @@ fi
helper=`find_in_bin mysqld_safe_helper`
print_defaults=`find_in_bin my_print_defaults`

# Check if helper exists
$helper --help >/dev/null 2>&1 || helper=""

#
# Second, try to find the data directory
#
Expand Down Expand Up @@ -751,7 +763,7 @@ then
does not exist or is not executable. Please cd to the mysql installation
directory and restart this script from there as follows:
./bin/mysqld_safe&
See http://dev.mysql.com/doc/mysql/en/mysqld-safe.html for more information"
See https://mariadb.com/kb/en/mysqld_safe for more information"
exit 1
fi

Expand Down
4 changes: 3 additions & 1 deletion sql/item_jsonfunc.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1353,6 +1353,8 @@ longlong Item_func_json_contains_path::val_int()
bzero(p_found, (arg_count-2) * sizeof(bool));
n_found= arg_count - 2;
}
else
n_found= 0; /* Jost to prevent 'uninitialized value' warnings */

result= 0;
while (json_get_path_next(&je, &p) == 0)
Expand Down Expand Up @@ -2059,7 +2061,7 @@ String *Item_func_json_merge::val_str(String *str)
{
DBUG_ASSERT(fixed == 1);
json_engine_t je1, je2;
String *js1= args[0]->val_json(&tmp_js1), *js2;
String *js1= args[0]->val_json(&tmp_js1), *js2=NULL;
uint n_arg;
LINT_INIT(js2);

Expand Down
8 changes: 4 additions & 4 deletions sql/mysqld.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2160,15 +2160,15 @@ static void mysqld_exit(int exit_code)
shutdown_performance_schema(); // we do it as late as possible
#endif
set_malloc_size_cb(NULL);
if (!opt_debugging && !my_disable_leak_check)
if (opt_endinfo && global_status_var.global_memory_used)
fprintf(stderr, "Warning: Memory not freed: %ld\n",
(long) global_status_var.global_memory_used);
if (!opt_debugging && !my_disable_leak_check && exit_code == 0)
{
DBUG_SLOW_ASSERT(global_status_var.global_memory_used == 0);
}
cleanup_tls();
DBUG_LEAVE;
if (opt_endinfo && global_status_var.global_memory_used)
fprintf(stderr, "Warning: Memory not freed: %ld\n",
(long) global_status_var.global_memory_used);
sd_notify(0, "STATUS=MariaDB server is down");
exit(exit_code); /* purecov: inspected */
}
Expand Down
4 changes: 2 additions & 2 deletions sql/sys_vars.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1309,8 +1309,8 @@ static bool update_cached_long_query_time(sys_var *self, THD *thd,
static Sys_var_double Sys_long_query_time(
"long_query_time",
"Log all queries that have taken more than long_query_time seconds "
"to execute to file. The argument will be treated as a decimal value "
"with microsecond precision",
"to execute to the slow query log file. The argument will be treated "
"as a decimal value with microsecond precision",
SESSION_VAR(long_query_time_double),
CMD_LINE(REQUIRED_ARG), VALID_RANGE(0, LONG_TIMEOUT), DEFAULT(10),
NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0),
Expand Down
Loading

0 comments on commit 5603a58

Please sign in to comment.