
[Commits] 494dfb14f29: MDEV-17229: Encryption threads ignore innodb_default_encryption_key_id
by jan 07 Nov '18
by jan 07 Nov '18
07 Nov '18
revision-id: 494dfb14f29faa066926f87545a173ad676e669b (mariadb-10.1.37-7-g494dfb14f29)
parent(s): ef40018535b71f0a4387fa6c1cc22e9991dfc0db
author: Jan Lindström
committer: Jan Lindström
timestamp: 2018-11-07 09:41:08 +0200
message:
MDEV-17229: Encryption threads ignore innodb_default_encryption_key_id
Background: Original idea of this variable was to be used when
table is created. However, this is not clearly documented.
Cases:
(1) create table t1(a) engine=innodb encrypted=yes. This case
worked correctly as encryption metadata is created when table
is created.
(2) create table t1(a) engine=innodb; This case used global
default key_id i.e. 1 not user defined innodb_default_encryption_key_id
(3) create table t1(a) engine=innodb encrypted=no. No key_id is
used so warning should be issued when nondefault key_id is used.
Solution: Use default_encryption_key_id if defined when creating
encryption metadata for unencrypted to encrypted key rotation.
fil0crypt.cc::fil_crypt_start_encrypting_space()
Use global default encryption key_id if defined when
creating crypt_data for unencrypted => encrypted key
rotation.
ha_innodb.cc::innodb_default_encryption_key_id_update
ha_innodb.cc::innodb_default_encryption_key_id_validate
Add update and validate callbacks for variable
innodb_default_encryption_key_id and make sure
user can't define it to value that does not exists
on encryption plugin.
ha_innodb.cc::check_table_options()
We should not allow nondefault encryption key_id
when encryption is disabled as it will be newer
used.
srv0srv.h
srv0srv.cc
Add global srv_default_encryption_key_id where current
key_id is stored. This is needed as encryption threads
do not have THD.
---
.../encryption/r/innodb-checksum-algorithm.result | 2 +-
.../encryption/r/innodb-compressed-blob.result | 2 +
.../encryption/r/innodb-encryption-alter.result | 17 ------
.../r/innodb_encryption_default_key.result | 29 +++++++++
.../encryption/t/innodb-checksum-algorithm.test | 2 +-
.../encryption/t/innodb-encryption-alter.test | 7 ---
.../encryption/t/innodb_encryption_default_key.opt | 1 +
.../t/innodb_encryption_default_key.test | 45 ++++++++++++++
storage/innobase/fil/fil0crypt.cc | 4 +-
storage/innobase/handler/ha_innodb.cc | 68 +++++++++++++++++++++-
storage/innobase/include/srv0srv.h | 5 +-
storage/innobase/srv/srv0srv.cc | 5 +-
storage/xtradb/fil/fil0crypt.cc | 4 +-
storage/xtradb/handler/ha_innodb.cc | 68 +++++++++++++++++++++-
storage/xtradb/include/srv0srv.h | 5 +-
storage/xtradb/srv/srv0srv.cc | 5 +-
16 files changed, 231 insertions(+), 38 deletions(-)
diff --git a/mysql-test/suite/encryption/r/innodb-checksum-algorithm.result b/mysql-test/suite/encryption/r/innodb-checksum-algorithm.result
index a853f3869a9..b3deac98e3c 100644
--- a/mysql-test/suite/encryption/r/innodb-checksum-algorithm.result
+++ b/mysql-test/suite/encryption/r/innodb-checksum-algorithm.result
@@ -10,7 +10,7 @@ SET GLOBAL innodb_encrypt_tables = ON;
SET GLOBAL innodb_encryption_threads = 4;
call mtr.add_suppression("InnoDB: innodb_checksum_algorithm is set to \"strict_(crc32|none|innodb)\" but the page \\[page id: space=[0-9]+, page number=[0-9]+\\] contains a valid checksum \"(innodb|none|crc32)\"");
SET GLOBAL innodb_checksum_algorithm = innodb;
-SET GLOBAL innodb_default_encryption_key_id=4;
+SET GLOBAL innodb_default_encryption_key_id=1;
SET GLOBAL innodb_checksum_algorithm=crc32;
create table tce_crc32(a serial, b blob, index(b(10))) engine=innodb
ROW_FORMAT=COMPRESSED encrypted=yes;
diff --git a/mysql-test/suite/encryption/r/innodb-compressed-blob.result b/mysql-test/suite/encryption/r/innodb-compressed-blob.result
index ce73b80820f..a6f4856fdbb 100644
--- a/mysql-test/suite/encryption/r/innodb-compressed-blob.result
+++ b/mysql-test/suite/encryption/r/innodb-compressed-blob.result
@@ -7,6 +7,8 @@ set GLOBAL innodb_default_encryption_key_id=4;
create table t1(a int not null primary key, b blob, index(b(10))) engine=innodb row_format=compressed;
create table t2(a int not null primary key, b blob, index(b(10))) engine=innodb row_format=compressed encrypted=yes;
create table t3(a int not null primary key, b blob, index(b(10))) engine=innodb row_format=compressed encrypted=no;
+Warnings:
+Warning 140 InnoDB: Ignored ENCRYPTION_KEY_ID 4 when encryption is disabled
insert into t1 values (1, repeat('secret',6000));
insert into t2 values (1, repeat('secret',6000));
insert into t3 values (1, repeat('secret',6000));
diff --git a/mysql-test/suite/encryption/r/innodb-encryption-alter.result b/mysql-test/suite/encryption/r/innodb-encryption-alter.result
index 5245d1da7d0..9d4fd0583c3 100644
--- a/mysql-test/suite/encryption/r/innodb-encryption-alter.result
+++ b/mysql-test/suite/encryption/r/innodb-encryption-alter.result
@@ -6,21 +6,6 @@ CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNOD
Warnings:
Warning 140 InnoDB: Ignored ENCRYPTION_KEY_ID 4 when encryption is disabled
DROP TABLE t1;
-set innodb_default_encryption_key_id = 99;
-CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB;
-ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
-SHOW WARNINGS;
-Level Code Message
-Warning 140 InnoDB: ENCRYPTION_KEY_ID 99 not available
-Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
-Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
-CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED=YES;
-ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
-SHOW WARNINGS;
-Level Code Message
-Warning 140 InnoDB: ENCRYPTION_KEY_ID 99 not available
-Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
-Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
set innodb_default_encryption_key_id = 4;
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED=YES;
SHOW CREATE TABLE t1;
@@ -40,8 +25,6 @@ t1 CREATE TABLE `t1` (
PRIMARY KEY (`pk`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `ENCRYPTION_KEY_ID`=4
CREATE TABLE t2 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED=NO ENCRYPTION_KEY_ID=1;
-Warnings:
-Warning 140 InnoDB: Ignored ENCRYPTION_KEY_ID 1 when encryption is disabled
ALTER TABLE t1 ENCRYPTION_KEY_ID=99;
ERROR HY000: Table storage engine 'InnoDB' does not support the create option 'ENCRYPTION_KEY_ID'
SHOW WARNINGS;
diff --git a/mysql-test/suite/encryption/r/innodb_encryption_default_key.result b/mysql-test/suite/encryption/r/innodb_encryption_default_key.result
new file mode 100644
index 00000000000..f97af5e45a9
--- /dev/null
+++ b/mysql-test/suite/encryption/r/innodb_encryption_default_key.result
@@ -0,0 +1,29 @@
+SET GLOBAL innodb_file_format = `Barracuda`;
+SET GLOBAL innodb_file_per_table = ON;
+SET GLOBAL innodb_encrypt_tables = OFF;
+SET GLOBAL innodb_default_encryption_key_id = 1;
+create table t1 (a int not null primary key) engine=InnoDB;
+SET GLOBAL innodb_default_encryption_key_id = 999;
+ERROR 42000: Variable 'innodb_default_encryption_key_id' can't be set to the value of '999'
+SHOW WARNINGS;
+Level Code Message
+Warning 1210 InnoDB: innodb_default_encryption_key_id=999 not available in encryption plugin
+Error 1231 Variable 'innodb_default_encryption_key_id' can't be set to the value of '999'
+SET GLOBAL innodb_default_encryption_key_id = 4;
+SET GLOBAL innodb_encryption_threads = 4;
+SET GLOBAL innodb_encrypt_tables = ON;
+SELECT NAME,CURRENT_KEY_ID,MIN_KEY_VERSION FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0 ORDER BY NAME;
+NAME CURRENT_KEY_ID MIN_KEY_VERSION
+SELECT NAME,CURRENT_KEY_ID,MIN_KEY_VERSION FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0 ORDER BY NAME;
+NAME CURRENT_KEY_ID MIN_KEY_VERSION
+./ibdata1 4 1
+mysql/innodb_index_stats 4 1
+mysql/innodb_table_stats 4 1
+test/t1 4 1
+# Success!
+DROP TABLE t1;
+SET GLOBAL innodb_encryption_threads = DEFAULT;
+SET GLOBAL innodb_encrypt_tables = DEFAULT;
+SET GLOBAL innodb_file_format = DEFAULT;
+SET GLOBAL innodb_file_per_table = DEFAULT;
+SET GLOBAL innodb_default_encryption_key_id = DEFAULT;
diff --git a/mysql-test/suite/encryption/t/innodb-checksum-algorithm.test b/mysql-test/suite/encryption/t/innodb-checksum-algorithm.test
index d0caed05006..f4093bae81e 100644
--- a/mysql-test/suite/encryption/t/innodb-checksum-algorithm.test
+++ b/mysql-test/suite/encryption/t/innodb-checksum-algorithm.test
@@ -16,7 +16,7 @@ SET GLOBAL innodb_encryption_threads = 4;
call mtr.add_suppression("InnoDB: innodb_checksum_algorithm is set to \"strict_(crc32|none|innodb)\" but the page \\[page id: space=[0-9]+, page number=[0-9]+\\] contains a valid checksum \"(innodb|none|crc32)\"");
SET GLOBAL innodb_checksum_algorithm = innodb;
-SET GLOBAL innodb_default_encryption_key_id=4;
+SET GLOBAL innodb_default_encryption_key_id=1;
let MYSQLD_DATADIR =`SELECT @@datadir`;
diff --git a/mysql-test/suite/encryption/t/innodb-encryption-alter.test b/mysql-test/suite/encryption/t/innodb-encryption-alter.test
index 9465226dd96..b4a432406d9 100644
--- a/mysql-test/suite/encryption/t/innodb-encryption-alter.test
+++ b/mysql-test/suite/encryption/t/innodb-encryption-alter.test
@@ -19,13 +19,6 @@ SET GLOBAL innodb_encryption_threads = 4;
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED=NO ENCRYPTION_KEY_ID=4;
DROP TABLE t1;
-set innodb_default_encryption_key_id = 99;
---error 1005
-CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB;
-SHOW WARNINGS;
---error 1005
-CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED=YES;
-SHOW WARNINGS;
set innodb_default_encryption_key_id = 4;
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED=YES;
SHOW CREATE TABLE t1;
diff --git a/mysql-test/suite/encryption/t/innodb_encryption_default_key.opt b/mysql-test/suite/encryption/t/innodb_encryption_default_key.opt
new file mode 100644
index 00000000000..7d3f2da7971
--- /dev/null
+++ b/mysql-test/suite/encryption/t/innodb_encryption_default_key.opt
@@ -0,0 +1 @@
+--innodb-tablespaces-encryption
diff --git a/mysql-test/suite/encryption/t/innodb_encryption_default_key.test b/mysql-test/suite/encryption/t/innodb_encryption_default_key.test
new file mode 100644
index 00000000000..ece0823d0c2
--- /dev/null
+++ b/mysql-test/suite/encryption/t/innodb_encryption_default_key.test
@@ -0,0 +1,45 @@
+-- source include/have_innodb.inc
+-- source include/have_file_key_management_plugin.inc
+
+--disable_query_log
+let $innodb_file_format_orig = `SELECT @@innodb_file_format`;
+let $innodb_file_per_table_orig = `SELECT @@innodb_file_per_table`;
+--enable_query_log
+
+--disable_warnings
+SET GLOBAL innodb_file_format = `Barracuda`;
+SET GLOBAL innodb_file_per_table = ON;
+--enable_warnings
+
+SET GLOBAL innodb_encrypt_tables = OFF;
+SET GLOBAL innodb_default_encryption_key_id = 1;
+
+create table t1 (a int not null primary key) engine=InnoDB;
+
+# Do not allow setting default key to key_id that is not found
+--error ER_WRONG_VALUE_FOR_VAR
+SET GLOBAL innodb_default_encryption_key_id = 999;
+SHOW WARNINGS;
+
+SET GLOBAL innodb_default_encryption_key_id = 4;
+SET GLOBAL innodb_encryption_threads = 4;
+SET GLOBAL innodb_encrypt_tables = ON;
+
+--let $tables_count= `select count(*) from information_schema.tables where engine = 'InnoDB'`
+--let $wait_condition=SELECT COUNT(*) = $tables_count + 1 FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0 AND ROTATING_OR_FLUSHING = 0;
+--source include/wait_condition.inc
+
+SELECT NAME,CURRENT_KEY_ID,MIN_KEY_VERSION FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0 ORDER BY NAME;
+SELECT NAME,CURRENT_KEY_ID,MIN_KEY_VERSION FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0 ORDER BY NAME;
+
+--echo # Success!
+
+DROP TABLE t1;
+
+--disable_warnings
+SET GLOBAL innodb_encryption_threads = DEFAULT;
+SET GLOBAL innodb_encrypt_tables = DEFAULT;
+SET GLOBAL innodb_file_format = DEFAULT;
+SET GLOBAL innodb_file_per_table = DEFAULT;
+SET GLOBAL innodb_default_encryption_key_id = DEFAULT;
+--enable_warnings
diff --git a/storage/innobase/fil/fil0crypt.cc b/storage/innobase/fil/fil0crypt.cc
index 7859fe67d40..e81e25378a5 100644
--- a/storage/innobase/fil/fil0crypt.cc
+++ b/storage/innobase/fil/fil0crypt.cc
@@ -1064,7 +1064,9 @@ fil_crypt_start_encrypting_space(
* crypt data in page 0 */
/* 1 - create crypt data */
- crypt_data = fil_space_create_crypt_data(FIL_ENCRYPTION_DEFAULT, FIL_DEFAULT_ENCRYPTION_KEY);
+ crypt_data = fil_space_create_crypt_data(FIL_ENCRYPTION_DEFAULT,
+ srv_default_encryption_key_id != FIL_DEFAULT_ENCRYPTION_KEY
+ ? srv_default_encryption_key_id : FIL_DEFAULT_ENCRYPTION_KEY);
if (crypt_data == NULL) {
mutex_exit(&fil_crypt_threads_mutex);
diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc
index b3a830e47c3..7ef73decace 100644
--- a/storage/innobase/handler/ha_innodb.cc
+++ b/storage/innobase/handler/ha_innodb.cc
@@ -685,9 +685,71 @@ static int mysql_tmpfile_path(const char *path, const char *prefix)
static void innodb_remember_check_sysvar_funcs();
mysql_var_check_func check_sysvar_enum;
+/** Update the system variable srv_default_encryption_key_id using
+the "saved" value. This function is registered as a callback with MySQL.
+@param[in,out] thd thread handle
+@param[in] var pointer to system variable
+@param[out] save immediate result for update
+@param[in] value incoming string
+*/
+static
+void
+innodb_default_encryption_key_id_update(
+ THD* thd,
+ struct st_mysql_sys_var* var,
+ void* var_ptr,
+ const void* save)
+{
+ *reinterpret_cast<uint*>(var_ptr)
+ = srv_default_encryption_key_id
+ = (*static_cast<const uint*>(save));
+}
+
+/** Validate passed-in "value" is a valid encryption key_id
+found from encryption plugin.
+This function is registered as a callback with MySQL.
+@param[in,out] thd thread handle
+@param[in] var pointer to system variable
+@param[out] save immediate result for validate
+@param[in] value incoming string
+@return 0 for valid key_id */
+static
+int
+innodb_default_encryption_key_id_validate(
+ THD* thd,
+ struct st_mysql_sys_var* var,
+ void* save,
+ struct st_mysql_value* value)
+{
+ long long key_id_buf;
+ uint key_id;
+
+ if (value->val_int(value, &key_id_buf)) {
+ /* The value is NULL. That is invalid. */
+ return(1);
+ }
+
+ *reinterpret_cast<uint*>(save) = key_id = static_cast<uint>(key_id_buf);
+
+ /* Default encryption key_id must be found from encryption
+ plugin keys. */
+ if (key_id != FIL_DEFAULT_ENCRYPTION_KEY
+ && !encryption_key_id_exists(key_id)) {
+ push_warning_printf(
+ thd, Sql_condition::WARN_LEVEL_WARN,
+ ER_WRONG_ARGUMENTS,
+ "InnoDB: innodb_default_encryption_key_id=%u not available in encryption plugin",
+ key_id);
+ return (1);
+ }
+
+ return(0);
+}
+
static MYSQL_THDVAR_UINT(default_encryption_key_id, PLUGIN_VAR_RQCMDARG,
"Default encryption key id used for table encryption.",
- NULL, NULL,
+ innodb_default_encryption_key_id_validate,
+ innodb_default_encryption_key_id_update,
FIL_DEFAULT_ENCRYPTION_KEY, 1, UINT_MAX32, 0);
/**
@@ -11947,8 +12009,8 @@ ha_innobase::check_table_options(
}
/* Ignore nondefault key_id if encryption is set off */
- if (encrypt == FIL_ENCRYPTION_OFF &&
- options->encryption_key_id != THDVAR(thd, default_encryption_key_id)) {
+ if (encrypt == FIL_ENCRYPTION_OFF
+ && options->encryption_key_id != FIL_DEFAULT_ENCRYPTION_KEY) {
push_warning_printf(
thd, Sql_condition::WARN_LEVEL_WARN,
HA_WRONG_CREATE_OPTION,
diff --git a/storage/innobase/include/srv0srv.h b/storage/innobase/include/srv0srv.h
index 09af0b2cdd2..804b1a8f66c 100644
--- a/storage/innobase/include/srv0srv.h
+++ b/storage/innobase/include/srv0srv.h
@@ -3,7 +3,7 @@
Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
Copyright (c) 2008, 2009, Google Inc.
Copyright (c) 2009, Percona Inc.
-Copyright (c) 2013, 2017, MariaDB Corporation.
+Copyright (c) 2013, 2018, MariaDB Corporation.
Portions of this file contain modifications contributed and copyrighted by
Google, Inc. Those modifications are gratefully acknowledged and are described
@@ -367,6 +367,9 @@ extern ulong srv_flush_log_at_trx_commit;
extern uint srv_flush_log_at_timeout;
extern char srv_adaptive_flushing;
+/* Default encryption key_id */
+extern uint srv_default_encryption_key_id;
+
#ifdef WITH_INNODB_DISALLOW_WRITES
/* When this event is reset we do not allow any file writes to take place. */
extern os_event_t srv_allow_writes_event;
diff --git a/storage/innobase/srv/srv0srv.cc b/storage/innobase/srv/srv0srv.cc
index 87f9064c14e..f9fbc874f30 100644
--- a/storage/innobase/srv/srv0srv.cc
+++ b/storage/innobase/srv/srv0srv.cc
@@ -3,7 +3,7 @@
Copyright (c) 1995, 2017, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2008, 2009 Google Inc.
Copyright (c) 2009, Percona Inc.
-Copyright (c) 2013, 2017, MariaDB Corporation.
+Copyright (c) 2013, 2018, MariaDB Corporation.
Portions of this file contain modifications contributed and copyrighted by
Google, Inc. Those modifications are gratefully acknowledged and are described
@@ -225,6 +225,9 @@ UNIV_INTERN uint srv_flush_log_at_timeout = 1;
UNIV_INTERN ulong srv_page_size = UNIV_PAGE_SIZE_DEF;
UNIV_INTERN ulong srv_page_size_shift = UNIV_PAGE_SIZE_SHIFT_DEF;
+/* Default encryption key_id */
+UNIV_INTERN uint srv_default_encryption_key_id = FIL_DEFAULT_ENCRYPTION_KEY;
+
/* Try to flush dirty pages so as to avoid IO bursts at
the checkpoints. */
UNIV_INTERN char srv_adaptive_flushing = TRUE;
diff --git a/storage/xtradb/fil/fil0crypt.cc b/storage/xtradb/fil/fil0crypt.cc
index 7859fe67d40..e81e25378a5 100644
--- a/storage/xtradb/fil/fil0crypt.cc
+++ b/storage/xtradb/fil/fil0crypt.cc
@@ -1064,7 +1064,9 @@ fil_crypt_start_encrypting_space(
* crypt data in page 0 */
/* 1 - create crypt data */
- crypt_data = fil_space_create_crypt_data(FIL_ENCRYPTION_DEFAULT, FIL_DEFAULT_ENCRYPTION_KEY);
+ crypt_data = fil_space_create_crypt_data(FIL_ENCRYPTION_DEFAULT,
+ srv_default_encryption_key_id != FIL_DEFAULT_ENCRYPTION_KEY
+ ? srv_default_encryption_key_id : FIL_DEFAULT_ENCRYPTION_KEY);
if (crypt_data == NULL) {
mutex_exit(&fil_crypt_threads_mutex);
diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc
index 05066512db9..26d9db5dd08 100644
--- a/storage/xtradb/handler/ha_innodb.cc
+++ b/storage/xtradb/handler/ha_innodb.cc
@@ -686,9 +686,71 @@ ib_cb_t innodb_api_cb[] = {
static void innodb_remember_check_sysvar_funcs();
mysql_var_check_func check_sysvar_enum;
+/** Update the system variable srv_default_encryption_key_id using
+the "saved" value. This function is registered as a callback with MySQL.
+@param[in,out] thd thread handle
+@param[in] var pointer to system variable
+@param[out] save immediate result for update
+@param[in] value incoming string
+*/
+static
+void
+innodb_default_encryption_key_id_update(
+ THD* thd,
+ struct st_mysql_sys_var* var,
+ void* var_ptr,
+ const void* save)
+{
+ *reinterpret_cast<uint*>(var_ptr)
+ = srv_default_encryption_key_id
+ = (*static_cast<const uint*>(save));
+}
+
+/** Validate passed-in "value" is a valid encryption key_id
+found from encryption plugin.
+This function is registered as a callback with MySQL.
+@param[in,out] thd thread handle
+@param[in] var pointer to system variable
+@param[out] save immediate result for validate
+@param[in] value incoming string
+@return 0 for valid key_id */
+static
+int
+innodb_default_encryption_key_id_validate(
+ THD* thd,
+ struct st_mysql_sys_var* var,
+ void* save,
+ struct st_mysql_value* value)
+{
+ long long key_id_buf;
+ uint key_id;
+
+ if (value->val_int(value, &key_id_buf)) {
+ /* The value is NULL. That is invalid. */
+ return(1);
+ }
+
+ *reinterpret_cast<uint*>(save) = key_id = static_cast<uint>(key_id_buf);
+
+ /* Default encryption key_id must be found from encryption
+ plugin keys. */
+ if (key_id != FIL_DEFAULT_ENCRYPTION_KEY
+ && !encryption_key_id_exists(key_id)) {
+ push_warning_printf(
+ thd, Sql_condition::WARN_LEVEL_WARN,
+ ER_WRONG_ARGUMENTS,
+ "InnoDB: innodb_default_encryption_key_id=%u not available in encryption plugin",
+ key_id);
+ return (1);
+ }
+
+ return(0);
+}
+
static MYSQL_THDVAR_UINT(default_encryption_key_id, PLUGIN_VAR_RQCMDARG,
"Default encryption key id used for table encryption.",
- NULL, NULL,
+ innodb_default_encryption_key_id_validate,
+ innodb_default_encryption_key_id_update,
FIL_DEFAULT_ENCRYPTION_KEY, 1, UINT_MAX32, 0);
/**
@@ -12514,8 +12576,8 @@ ha_innobase::check_table_options(
}
/* Ignore nondefault key_id if encryption is set off */
- if (encrypt == FIL_ENCRYPTION_OFF &&
- options->encryption_key_id != THDVAR(thd, default_encryption_key_id)) {
+ if (encrypt == FIL_ENCRYPTION_OFF
+ && options->encryption_key_id != FIL_DEFAULT_ENCRYPTION_KEY) {
push_warning_printf(
thd, Sql_condition::WARN_LEVEL_WARN,
HA_WRONG_CREATE_OPTION,
diff --git a/storage/xtradb/include/srv0srv.h b/storage/xtradb/include/srv0srv.h
index 6df60e0e52d..54aa4319f5b 100644
--- a/storage/xtradb/include/srv0srv.h
+++ b/storage/xtradb/include/srv0srv.h
@@ -3,7 +3,7 @@
Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
Copyright (c) 2008, 2009, Google Inc.
Copyright (c) 2009, Percona Inc.
-Copyright (c) 2013, 2017, MariaDB Corporation.
+Copyright (c) 2013, 2018, MariaDB Corporation.
Portions of this file contain modifications contributed and copyrighted by
Google, Inc. Those modifications are gratefully acknowledged and are described
@@ -400,6 +400,9 @@ extern uint srv_flush_log_at_timeout;
extern char srv_use_global_flush_log_at_trx_commit;
extern char srv_adaptive_flushing;
+/* Default encryption key_id */
+extern uint srv_default_encryption_key_id;
+
#ifdef WITH_INNODB_DISALLOW_WRITES
/* When this event is reset we do not allow any file writes to take place. */
extern os_event_t srv_allow_writes_event;
diff --git a/storage/xtradb/srv/srv0srv.cc b/storage/xtradb/srv/srv0srv.cc
index 0133b17fada..b6e0ea1e937 100644
--- a/storage/xtradb/srv/srv0srv.cc
+++ b/storage/xtradb/srv/srv0srv.cc
@@ -3,7 +3,7 @@
Copyright (c) 1995, 2017, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2008, 2009 Google Inc.
Copyright (c) 2009, Percona Inc.
-Copyright (c) 2013, 2017, MariaDB Corporation.
+Copyright (c) 2013, 2018, MariaDB Corporation.
Portions of this file contain modifications contributed and copyrighted by
Google, Inc. Those modifications are gratefully acknowledged and are described
@@ -254,6 +254,9 @@ UNIV_INTERN ulong srv_page_size = UNIV_PAGE_SIZE_DEF;
UNIV_INTERN ulong srv_page_size_shift = UNIV_PAGE_SIZE_SHIFT_DEF;
UNIV_INTERN char srv_use_global_flush_log_at_trx_commit = TRUE;
+/* Default encryption key_id */
+UNIV_INTERN uint srv_default_encryption_key_id = FIL_DEFAULT_ENCRYPTION_KEY;
+
/* Try to flush dirty pages so as to avoid IO bursts at
the checkpoints. */
UNIV_INTERN char srv_adaptive_flushing = TRUE;
1
0

[Commits] 2ecffc79fa0: MDEV-11167: InnoDB: Warning: using a partial-field key prefix in search, results in assertion failure or "Can't find record" error
by Oleksandr Byelkin 07 Nov '18
by Oleksandr Byelkin 07 Nov '18
07 Nov '18
revision-id: 2ecffc79fa0569f93003b2e34d8df7e7643c203d (mariadb-10.0.37-11-g2ecffc79fa0)
parent(s): 9c026273a923f3433ad622124d7a008ce6b5c487
author: Oleksandr Byelkin
committer: Oleksandr Byelkin
timestamp: 2018-11-07 09:09:52 +0100
message:
MDEV-11167: InnoDB: Warning: using a partial-field key prefix in search, results in assertion failure or "Can't find record" error
Fix ha_rnd_init() argument (we do not doing scan but use rnd_pos)
---
mysql-test/r/partition_innodb.result | 26 ++++++++++++++++++++++++++
mysql-test/t/partition_innodb.test | 30 ++++++++++++++++++++++++++++++
sql/sql_update.cc | 2 +-
3 files changed, 57 insertions(+), 1 deletion(-)
diff --git a/mysql-test/r/partition_innodb.result b/mysql-test/r/partition_innodb.result
index f863ec5522a..ee3525cb085 100644
--- a/mysql-test/r/partition_innodb.result
+++ b/mysql-test/r/partition_innodb.result
@@ -890,3 +890,29 @@ ERROR HY000: Table definition has changed, please retry transaction
SELECT b FROM t1 WHERE b = 0;
ERROR HY000: Table definition has changed, please retry transaction
DROP TABLE t1;
+#
+# MDEV-11167: InnoDB: Warning: using a partial-field key prefix
+# in search, results in assertion failure or "Can't find record" error
+#
+CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+CREATE TABLE t2 (b INT, c INT, KEY(b)) ENGINE=InnoDB PARTITION BY HASH(c) PARTITIONS 2;
+CREATE ALGORITHM = MERGE VIEW v AS SELECT a, b FROM t1 STRAIGHT_JOIN t2 WHERE b = 'foo' WITH CHECK OPTION;
+INSERT INTO t1 VALUES (1),(2);
+INSERT IGNORE INTO t2 VALUES (2,2),('three',3),(4,4);
+Warnings:
+Warning 1366 Incorrect integer value: 'three' for column 'b' at row 2
+UPDATE v SET a = NULL ORDER BY a, b;
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'foo'
+DROP view v;
+DROP TABLE t1, t2;
+SET @save_isp=@@innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent= ON;
+CREATE TABLE t (f1 INT, f2 INT, KEY(f2)) ENGINE=InnoDB PARTITION BY HASH (f1) PARTITIONS 2;
+INSERT IGNORE INTO t VALUES (NULL,0),(NULL,0),(0,21),(4,0),(1,8),(5,66);
+CREATE ALGORITHM=MERGE VIEW v AS SELECT t1.* FROM t t1 JOIN t t2 WHERE t1.f1 < t2.f2 WITH LOCAL CHECK OPTION;
+UPDATE v SET f2 = NULL;
+ERROR HY000: CHECK OPTION failed 'test.v'
+SET GLOBAL innodb_stats_persistent= @save_isp;
+DROP view v;
+DROP TABLE t;
diff --git a/mysql-test/t/partition_innodb.test b/mysql-test/t/partition_innodb.test
index f6faa4cb0e6..5dbe9f467fa 100644
--- a/mysql-test/t/partition_innodb.test
+++ b/mysql-test/t/partition_innodb.test
@@ -996,3 +996,33 @@ SELECT b FROM t1 WHERE b = 0;
SELECT b FROM t1 WHERE b = 0;
--disconnect con1
DROP TABLE t1;
+
+--echo #
+--echo # MDEV-11167: InnoDB: Warning: using a partial-field key prefix
+--echo # in search, results in assertion failure or "Can't find record" error
+--echo #
+
+CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+CREATE TABLE t2 (b INT, c INT, KEY(b)) ENGINE=InnoDB PARTITION BY HASH(c) PARTITIONS 2;
+CREATE ALGORITHM = MERGE VIEW v AS SELECT a, b FROM t1 STRAIGHT_JOIN t2 WHERE b = 'foo' WITH CHECK OPTION;
+
+INSERT INTO t1 VALUES (1),(2);
+INSERT IGNORE INTO t2 VALUES (2,2),('three',3),(4,4);
+UPDATE v SET a = NULL ORDER BY a, b;
+
+DROP view v;
+DROP TABLE t1, t2;
+
+SET @save_isp=@@innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent= ON;
+
+CREATE TABLE t (f1 INT, f2 INT, KEY(f2)) ENGINE=InnoDB PARTITION BY HASH (f1) PARTITIONS 2;
+INSERT IGNORE INTO t VALUES (NULL,0),(NULL,0),(0,21),(4,0),(1,8),(5,66);
+CREATE ALGORITHM=MERGE VIEW v AS SELECT t1.* FROM t t1 JOIN t t2 WHERE t1.f1 < t2.f2 WITH LOCAL CHECK OPTION;
+--error ER_VIEW_CHECK_FAILED
+UPDATE v SET f2 = NULL;
+
+SET GLOBAL innodb_stats_persistent= @save_isp;
+DROP view v;
+DROP TABLE t;
+
diff --git a/sql/sql_update.cc b/sql/sql_update.cc
index 592e8158c0d..1972cc82454 100644
--- a/sql/sql_update.cc
+++ b/sql/sql_update.cc
@@ -2309,7 +2309,7 @@ int multi_update::do_updates()
check_opt_it.rewind();
while(TABLE *tbl= check_opt_it++)
{
- if ((local_error= tbl->file->ha_rnd_init(1)))
+ if ((local_error= tbl->file->ha_rnd_init(0)))
{
err_table= tbl;
goto err;
1
0

[Commits] 22517dd: MDEV-16357 LIMIT and ORDER BY clause is ignored on a query with UNION
by IgorBabaev 06 Nov '18
by IgorBabaev 06 Nov '18
06 Nov '18
revision-id: 22517dd937d31d3beb03d01f736a43f86b709d48 (mariadb-10.3.6-197-g22517dd)
parent(s): 563efeceece09154f71da6303244b1df36875428
author: Igor Babaev
committer: Igor Babaev
timestamp: 2018-11-06 09:40:07 -0800
message:
MDEV-16357 LIMIT and ORDER BY clause is ignored on a query with UNION
when using brackets
Do not create master unit for select if it has already one.
---
mysql-test/main/brackets.result | 24 ++++++++++++++++++++++++
mysql-test/main/brackets.test | 18 ++++++++++++++++++
sql/sql_lex.cc | 3 +++
3 files changed, 45 insertions(+)
diff --git a/mysql-test/main/brackets.result b/mysql-test/main/brackets.result
index 479b74b..e789cde 100644
--- a/mysql-test/main/brackets.result
+++ b/mysql-test/main/brackets.result
@@ -219,4 +219,28 @@ select 1 union select 1 union select 1;
((select 1) union (select 1) union (select 1));
1
1
+#
+# MDEV-16357: union in brackets with tail
+# union with tail in brackets
+#
+CREATE TABLE t1 (a int);
+INSERT INTO t1 VALUES(1),(2),(3),(4);
+CREATE TABLE t2 (a int);
+INSERT INTO t2 VALUES (4),(5),(6),(7);
+(SELECT a FROM t1 UNION SELECT a FROM t2) LIMIT 1;
+a
+1
+(SELECT a FROM t1 UNION SELECT a FROM t2) ORDER BY a DESC;
+a
+7
+6
+5
+4
+3
+2
+1
+(SELECT a FROM t1 UNION SELECT a FROM t2 LIMIT 1);
+a
+1
+DROP TABLE t1,t2;
# End of 10.4 tests
diff --git a/mysql-test/main/brackets.test b/mysql-test/main/brackets.test
index 699c70a..0eaa3bf 100644
--- a/mysql-test/main/brackets.test
+++ b/mysql-test/main/brackets.test
@@ -88,5 +88,23 @@ select 1 union select 1 union select 1;
(select 1 union select 1 union select 1);
((select 1) union (select 1) union (select 1));
+--echo #
+--echo # MDEV-16357: union in brackets with tail
+--echo # union with tail in brackets
+--echo #
+
+CREATE TABLE t1 (a int);
+INSERT INTO t1 VALUES(1),(2),(3),(4);
+
+CREATE TABLE t2 (a int);
+INSERT INTO t2 VALUES (4),(5),(6),(7);
+
+(SELECT a FROM t1 UNION SELECT a FROM t2) LIMIT 1;
+(SELECT a FROM t1 UNION SELECT a FROM t2) ORDER BY a DESC;
+
+(SELECT a FROM t1 UNION SELECT a FROM t2 LIMIT 1);
+
+DROP TABLE t1,t2;
+
--echo # End of 10.4 tests
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc
index 4a5aedc..9fdebd6 100644
--- a/sql/sql_lex.cc
+++ b/sql/sql_lex.cc
@@ -5250,6 +5250,9 @@ LEX::create_unit(SELECT_LEX *first_sel)
SELECT_LEX_UNIT *unit;
DBUG_ENTER("LEX::create_unit");
+ if (first_sel->master_unit())
+ DBUG_RETURN(first_sel->master_unit());
+
if (!(unit= alloc_unit()))
DBUG_RETURN(NULL);
2
1
revision-id: 5b59c7a861ab0f2962057c5d9da418e1a2f9002f (mariadb-10.1.37-7-g5b59c7a861a)
parent(s): 0981a7661b7e34437aff8750ab19b926e573b877
author: Jan Lindström
committer: Jan Lindström
timestamp: 2018-11-06 10:19:16 +0200
message:
After review changes.
---
mysql-test/suite/encryption/r/innodb-encryption-alter.result | 6 +++---
storage/innobase/handler/ha_innodb.cc | 10 +++++-----
storage/xtradb/handler/ha_innodb.cc | 10 +++++-----
3 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/mysql-test/suite/encryption/r/innodb-encryption-alter.result b/mysql-test/suite/encryption/r/innodb-encryption-alter.result
index 75417074fb0..5245d1da7d0 100644
--- a/mysql-test/suite/encryption/r/innodb-encryption-alter.result
+++ b/mysql-test/suite/encryption/r/innodb-encryption-alter.result
@@ -56,7 +56,7 @@ ALTER TABLE t1 ENCRYPTION_KEY_ID=4;
ERROR HY000: Table storage engine 'InnoDB' does not support the create option 'ENCRYPTION_KEY_ID'
SHOW WARNINGS;
Level Code Message
-Warning 140 InnoDB: Incorrect ENCRYPTION_KEY_ID 4 when encryption is disabled
+Warning 140 InnoDB: innodb_encrypt_tables=OFF only allows ENCRYPTION_KEY_ID=1
Error 1478 Table storage engine 'InnoDB' does not support the create option 'ENCRYPTION_KEY_ID'
SHOW CREATE TABLE t1;
Table Create Table
@@ -70,7 +70,7 @@ ALTER TABLE t2 ENCRYPTION_KEY_ID=4, ALGORITHM=COPY;
ERROR HY000: Can't create table `test`.`#sql-temporary` (errno: 140 "Wrong create options")
SHOW WARNINGS;
Level Code Message
-Warning 140 InnoDB: Incorrect ENCRYPTION_KEY_ID 4 when encryption is disabled
+Warning 140 InnoDB: innodb_encrypt_tables=OFF only allows ENCRYPTION_KEY_ID=1
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
SHOW CREATE TABLE t2;
@@ -84,6 +84,6 @@ CREATE TABLE t3 (a int not null primary key) engine=innodb ENCRYPTION_KEY_ID=4;
ERROR HY000: Can't create table `test`.`t3` (errno: 140 "Wrong create options")
SHOW WARNINGS;
Level Code Message
-Warning 140 InnoDB: Incorrect ENCRYPTION_KEY_ID 4 when encryption is disabled
+Warning 140 InnoDB: innodb_encrypt_tables=OFF only allows ENCRYPTION_KEY_ID=1
Error 1005 Can't create table `test`.`t3` (errno: 140 "Wrong create options")
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc
index d0d7f2374ba..b3a830e47c3 100644
--- a/storage/innobase/handler/ha_innodb.cc
+++ b/storage/innobase/handler/ha_innodb.cc
@@ -11960,14 +11960,14 @@ ha_innobase::check_table_options(
/* If default encryption is used and encryption is disabled, you may
not use nondefault encryption_key_id as it is not stored anywhere. */
- if (encrypt == FIL_ENCRYPTION_DEFAULT &&
- !srv_encrypt_tables &&
- options->encryption_key_id != FIL_DEFAULT_ENCRYPTION_KEY) {
+ if (encrypt == FIL_ENCRYPTION_DEFAULT
+ && !srv_encrypt_tables
+ && options->encryption_key_id != FIL_DEFAULT_ENCRYPTION_KEY) {
+ compile_time_assert(FIL_DEFAULT_ENCRYPTION_KEY == 1);
push_warning_printf(
thd, Sql_condition::WARN_LEVEL_WARN,
HA_WRONG_CREATE_OPTION,
- "InnoDB: Incorrect ENCRYPTION_KEY_ID %u when encryption is disabled",
- (uint)options->encryption_key_id
+ "InnoDB: innodb_encrypt_tables=OFF only allows ENCRYPTION_KEY_ID=1"
);
return "ENCRYPTION_KEY_ID";
}
diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc
index c7eb4d28844..05066512db9 100644
--- a/storage/xtradb/handler/ha_innodb.cc
+++ b/storage/xtradb/handler/ha_innodb.cc
@@ -12527,14 +12527,14 @@ ha_innobase::check_table_options(
/* If default encryption is used and encryption is disabled, you may
not use nondefault encryption_key_id as it is not stored anywhere. */
- if (encrypt == FIL_ENCRYPTION_DEFAULT &&
- !srv_encrypt_tables &&
- options->encryption_key_id != FIL_DEFAULT_ENCRYPTION_KEY) {
+ if (encrypt == FIL_ENCRYPTION_DEFAULT
+ && !srv_encrypt_tables
+ && options->encryption_key_id != FIL_DEFAULT_ENCRYPTION_KEY) {
+ compile_time_assert(FIL_DEFAULT_ENCRYPTION_KEY == 1);
push_warning_printf(
thd, Sql_condition::WARN_LEVEL_WARN,
HA_WRONG_CREATE_OPTION,
- "InnoDB: Incorrect ENCRYPTION_KEY_ID %u when encryption is disabled",
- (uint)options->encryption_key_id
+ "InnoDB: innodb_encrypt_tables=OFF only allows ENCRYPTION_KEY_ID=1"
);
return "ENCRYPTION_KEY_ID";
}
1
0

[Commits] b0d21b7: MDEV-14567 Include full name of object in message about incorrect value for column.
by holyfoot@askmonty.org 04 Nov '18
by holyfoot@askmonty.org 04 Nov '18
04 Nov '18
revision-id: b0d21b7832cea92522d0f8d280ceb8b13b335cbf (mariadb-10.2.18-56-gb0d21b7)
parent(s): 1c6b982e02eeaa75bb6c2f2a3c2b64491dd6d3c8
committer: Alexey Botchkov
timestamp: 2018-11-04 09:14:40 +0400
message:
MDEV-14567 Include full name of object in message about incorrect value for column.
Put the full field name in the ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
error message.
---
mysql-test/r/create.result | 6 +-
mysql-test/r/ctype_big5.result | 128 ++++----
mysql-test/r/ctype_cp932_binlog_stm.result | 128 ++++----
mysql-test/r/ctype_eucjpms.result | 128 ++++----
mysql-test/r/ctype_euckr.result | 140 ++++-----
mysql-test/r/ctype_gb2312.result | 128 ++++----
mysql-test/r/ctype_gbk.result | 454 ++++++++++++++---------------
mysql-test/r/ctype_latin1.result | 8 +-
mysql-test/r/ctype_many.result | 4 +-
mysql-test/r/ctype_recoding.result | 4 +-
sql/field.cc | 32 +-
11 files changed, 593 insertions(+), 567 deletions(-)
diff --git a/mysql-test/r/create.result b/mysql-test/r/create.result
index 2159127..aa75d94 100644
--- a/mysql-test/r/create.result
+++ b/mysql-test/r/create.result
@@ -1225,7 +1225,7 @@ INSERT INTO t3 VALUES (0);
SET sql_mode = TRADITIONAL;
ALTER TABLE t3 ADD INDEX(c1);
-ERROR 22007: Incorrect datetime value: '0000-00-00 00:00:00' for column 'c1' at row 1
+ERROR 22007: Incorrect datetime value: '0000-00-00 00:00:00' for column 'test.#sql-691c_15d.c1' at row 1
# -- Cleanup.
SET sql_mode = '';
@@ -1783,12 +1783,12 @@ NULL 0000-00-00 0000-00-00
drop table t1;
set @@session.sql_mode='STRICT_ALL_TABLES';
create table if not exists t1 (a int, b date, c date) select 1 as b, 2 as c;
-ERROR 22007: Incorrect date value: '1' for column 'b' at row 1
+ERROR 22007: Incorrect date value: '1' for column 'test.t1.b' at row 1
select * from t1;
ERROR 42S02: Table 'test.t1' doesn't exist
create table if not exists t1 (a int, b date, c date)
replace select 1 as b, 2 as c;
-ERROR 22007: Incorrect date value: '1' for column 'b' at row 1
+ERROR 22007: Incorrect date value: '1' for column 'test.t1.b' at row 1
select * from t1;
ERROR 42S02: Table 'test.t1' doesn't exist
create table if not exists t1 (a int, b date, c date)
diff --git a/mysql-test/r/ctype_big5.result b/mysql-test/r/ctype_big5.result
index 2db4da5..1503953 100644
--- a/mysql-test/r/ctype_big5.result
+++ b/mysql-test/r/ctype_big5.result
@@ -565,70 +565,70 @@ COUNT(*)
28672
UPDATE IGNORE t1 SET a=unhex(code) ORDER BY code;
Warnings:
-Warning 1366 Incorrect string value: '\x80 ' for column 'a' at row 1
-Warning 1366 Incorrect string value: '\x80!' for column 'a' at row 2
-Warning 1366 Incorrect string value: '\x80"' for column 'a' at row 3
-Warning 1366 Incorrect string value: '\x80#' for column 'a' at row 4
-Warning 1366 Incorrect string value: '\x80$' for column 'a' at row 5
-Warning 1366 Incorrect string value: '\x80%' for column 'a' at row 6
-Warning 1366 Incorrect string value: '\x80&' for column 'a' at row 7
-Warning 1366 Incorrect string value: '\x80'' for column 'a' at row 8
-Warning 1366 Incorrect string value: '\x80(' for column 'a' at row 9
-Warning 1366 Incorrect string value: '\x80)' for column 'a' at row 10
-Warning 1366 Incorrect string value: '\x80*' for column 'a' at row 11
-Warning 1366 Incorrect string value: '\x80+' for column 'a' at row 12
-Warning 1366 Incorrect string value: '\x80,' for column 'a' at row 13
-Warning 1366 Incorrect string value: '\x80-' for column 'a' at row 14
-Warning 1366 Incorrect string value: '\x80.' for column 'a' at row 15
-Warning 1366 Incorrect string value: '\x80/' for column 'a' at row 16
-Warning 1366 Incorrect string value: '\x800' for column 'a' at row 17
-Warning 1366 Incorrect string value: '\x801' for column 'a' at row 18
-Warning 1366 Incorrect string value: '\x802' for column 'a' at row 19
-Warning 1366 Incorrect string value: '\x803' for column 'a' at row 20
-Warning 1366 Incorrect string value: '\x804' for column 'a' at row 21
-Warning 1366 Incorrect string value: '\x805' for column 'a' at row 22
-Warning 1366 Incorrect string value: '\x806' for column 'a' at row 23
-Warning 1366 Incorrect string value: '\x807' for column 'a' at row 24
-Warning 1366 Incorrect string value: '\x808' for column 'a' at row 25
-Warning 1366 Incorrect string value: '\x809' for column 'a' at row 26
-Warning 1366 Incorrect string value: '\x80:' for column 'a' at row 27
-Warning 1366 Incorrect string value: '\x80;' for column 'a' at row 28
-Warning 1366 Incorrect string value: '\x80<' for column 'a' at row 29
-Warning 1366 Incorrect string value: '\x80=' for column 'a' at row 30
-Warning 1366 Incorrect string value: '\x80>' for column 'a' at row 31
-Warning 1366 Incorrect string value: '\x80?' for column 'a' at row 32
-Warning 1366 Incorrect string value: '\x80@' for column 'a' at row 33
-Warning 1366 Incorrect string value: '\x80A' for column 'a' at row 34
-Warning 1366 Incorrect string value: '\x80B' for column 'a' at row 35
-Warning 1366 Incorrect string value: '\x80C' for column 'a' at row 36
-Warning 1366 Incorrect string value: '\x80D' for column 'a' at row 37
-Warning 1366 Incorrect string value: '\x80E' for column 'a' at row 38
-Warning 1366 Incorrect string value: '\x80F' for column 'a' at row 39
-Warning 1366 Incorrect string value: '\x80G' for column 'a' at row 40
-Warning 1366 Incorrect string value: '\x80H' for column 'a' at row 41
-Warning 1366 Incorrect string value: '\x80I' for column 'a' at row 42
-Warning 1366 Incorrect string value: '\x80J' for column 'a' at row 43
-Warning 1366 Incorrect string value: '\x80K' for column 'a' at row 44
-Warning 1366 Incorrect string value: '\x80L' for column 'a' at row 45
-Warning 1366 Incorrect string value: '\x80M' for column 'a' at row 46
-Warning 1366 Incorrect string value: '\x80N' for column 'a' at row 47
-Warning 1366 Incorrect string value: '\x80O' for column 'a' at row 48
-Warning 1366 Incorrect string value: '\x80P' for column 'a' at row 49
-Warning 1366 Incorrect string value: '\x80Q' for column 'a' at row 50
-Warning 1366 Incorrect string value: '\x80R' for column 'a' at row 51
-Warning 1366 Incorrect string value: '\x80S' for column 'a' at row 52
-Warning 1366 Incorrect string value: '\x80T' for column 'a' at row 53
-Warning 1366 Incorrect string value: '\x80U' for column 'a' at row 54
-Warning 1366 Incorrect string value: '\x80V' for column 'a' at row 55
-Warning 1366 Incorrect string value: '\x80W' for column 'a' at row 56
-Warning 1366 Incorrect string value: '\x80X' for column 'a' at row 57
-Warning 1366 Incorrect string value: '\x80Y' for column 'a' at row 58
-Warning 1366 Incorrect string value: '\x80Z' for column 'a' at row 59
-Warning 1366 Incorrect string value: '\x80[' for column 'a' at row 60
-Warning 1366 Incorrect string value: '\x80\' for column 'a' at row 61
-Warning 1366 Incorrect string value: '\x80]' for column 'a' at row 62
-Warning 1366 Incorrect string value: '\x80^' for column 'a' at row 63
-Warning 1366 Incorrect string value: '\x80_' for column 'a' at row 64
+Warning 1366 Incorrect string value: '\x80 ' for column 'test.t1.a' at row 1
+Warning 1366 Incorrect string value: '\x80!' for column 'test.t1.a' at row 2
+Warning 1366 Incorrect string value: '\x80"' for column 'test.t1.a' at row 3
+Warning 1366 Incorrect string value: '\x80#' for column 'test.t1.a' at row 4
+Warning 1366 Incorrect string value: '\x80$' for column 'test.t1.a' at row 5
+Warning 1366 Incorrect string value: '\x80%' for column 'test.t1.a' at row 6
+Warning 1366 Incorrect string value: '\x80&' for column 'test.t1.a' at row 7
+Warning 1366 Incorrect string value: '\x80'' for column 'test.t1.a' at row 8
+Warning 1366 Incorrect string value: '\x80(' for column 'test.t1.a' at row 9
+Warning 1366 Incorrect string value: '\x80)' for column 'test.t1.a' at row 10
+Warning 1366 Incorrect string value: '\x80*' for column 'test.t1.a' at row 11
+Warning 1366 Incorrect string value: '\x80+' for column 'test.t1.a' at row 12
+Warning 1366 Incorrect string value: '\x80,' for column 'test.t1.a' at row 13
+Warning 1366 Incorrect string value: '\x80-' for column 'test.t1.a' at row 14
+Warning 1366 Incorrect string value: '\x80.' for column 'test.t1.a' at row 15
+Warning 1366 Incorrect string value: '\x80/' for column 'test.t1.a' at row 16
+Warning 1366 Incorrect string value: '\x800' for column 'test.t1.a' at row 17
+Warning 1366 Incorrect string value: '\x801' for column 'test.t1.a' at row 18
+Warning 1366 Incorrect string value: '\x802' for column 'test.t1.a' at row 19
+Warning 1366 Incorrect string value: '\x803' for column 'test.t1.a' at row 20
+Warning 1366 Incorrect string value: '\x804' for column 'test.t1.a' at row 21
+Warning 1366 Incorrect string value: '\x805' for column 'test.t1.a' at row 22
+Warning 1366 Incorrect string value: '\x806' for column 'test.t1.a' at row 23
+Warning 1366 Incorrect string value: '\x807' for column 'test.t1.a' at row 24
+Warning 1366 Incorrect string value: '\x808' for column 'test.t1.a' at row 25
+Warning 1366 Incorrect string value: '\x809' for column 'test.t1.a' at row 26
+Warning 1366 Incorrect string value: '\x80:' for column 'test.t1.a' at row 27
+Warning 1366 Incorrect string value: '\x80;' for column 'test.t1.a' at row 28
+Warning 1366 Incorrect string value: '\x80<' for column 'test.t1.a' at row 29
+Warning 1366 Incorrect string value: '\x80=' for column 'test.t1.a' at row 30
+Warning 1366 Incorrect string value: '\x80>' for column 'test.t1.a' at row 31
+Warning 1366 Incorrect string value: '\x80?' for column 'test.t1.a' at row 32
+Warning 1366 Incorrect string value: '\x80@' for column 'test.t1.a' at row 33
+Warning 1366 Incorrect string value: '\x80A' for column 'test.t1.a' at row 34
+Warning 1366 Incorrect string value: '\x80B' for column 'test.t1.a' at row 35
+Warning 1366 Incorrect string value: '\x80C' for column 'test.t1.a' at row 36
+Warning 1366 Incorrect string value: '\x80D' for column 'test.t1.a' at row 37
+Warning 1366 Incorrect string value: '\x80E' for column 'test.t1.a' at row 38
+Warning 1366 Incorrect string value: '\x80F' for column 'test.t1.a' at row 39
+Warning 1366 Incorrect string value: '\x80G' for column 'test.t1.a' at row 40
+Warning 1366 Incorrect string value: '\x80H' for column 'test.t1.a' at row 41
+Warning 1366 Incorrect string value: '\x80I' for column 'test.t1.a' at row 42
+Warning 1366 Incorrect string value: '\x80J' for column 'test.t1.a' at row 43
+Warning 1366 Incorrect string value: '\x80K' for column 'test.t1.a' at row 44
+Warning 1366 Incorrect string value: '\x80L' for column 'test.t1.a' at row 45
+Warning 1366 Incorrect string value: '\x80M' for column 'test.t1.a' at row 46
+Warning 1366 Incorrect string value: '\x80N' for column 'test.t1.a' at row 47
+Warning 1366 Incorrect string value: '\x80O' for column 'test.t1.a' at row 48
+Warning 1366 Incorrect string value: '\x80P' for column 'test.t1.a' at row 49
+Warning 1366 Incorrect string value: '\x80Q' for column 'test.t1.a' at row 50
+Warning 1366 Incorrect string value: '\x80R' for column 'test.t1.a' at row 51
+Warning 1366 Incorrect string value: '\x80S' for column 'test.t1.a' at row 52
+Warning 1366 Incorrect string value: '\x80T' for column 'test.t1.a' at row 53
+Warning 1366 Incorrect string value: '\x80U' for column 'test.t1.a' at row 54
+Warning 1366 Incorrect string value: '\x80V' for column 'test.t1.a' at row 55
+Warning 1366 Incorrect string value: '\x80W' for column 'test.t1.a' at row 56
+Warning 1366 Incorrect string value: '\x80X' for column 'test.t1.a' at row 57
+Warning 1366 Incorrect string value: '\x80Y' for column 'test.t1.a' at row 58
+Warning 1366 Incorrect string value: '\x80Z' for column 'test.t1.a' at row 59
+Warning 1366 Incorrect string value: '\x80[' for column 'test.t1.a' at row 60
+Warning 1366 Incorrect string value: '\x80\' for column 'test.t1.a' at row 61
+Warning 1366 Incorrect string value: '\x80]' for column 'test.t1.a' at row 62
+Warning 1366 Incorrect string value: '\x80^' for column 'test.t1.a' at row 63
+Warning 1366 Incorrect string value: '\x80_' for column 'test.t1.a' at row 64
SELECT COUNT(*) FROM t1 WHERE a<>'?';
COUNT(*)
13973
diff --git a/mysql-test/r/ctype_cp932_binlog_stm.result b/mysql-test/r/ctype_cp932_binlog_stm.result
index f49400b..ecb106e 100644
--- a/mysql-test/r/ctype_cp932_binlog_stm.result
+++ b/mysql-test/r/ctype_cp932_binlog_stm.result
@@ -98,70 +98,70 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1
UPDATE IGNORE t1 SET a=unhex(code) ORDER BY code;
Warnings:
-Warning 1366 Incorrect string value: '\x80 ' for column 'a' at row 1
-Warning 1366 Incorrect string value: '\x80!' for column 'a' at row 2
-Warning 1366 Incorrect string value: '\x80"' for column 'a' at row 3
-Warning 1366 Incorrect string value: '\x80#' for column 'a' at row 4
-Warning 1366 Incorrect string value: '\x80$' for column 'a' at row 5
-Warning 1366 Incorrect string value: '\x80%' for column 'a' at row 6
-Warning 1366 Incorrect string value: '\x80&' for column 'a' at row 7
-Warning 1366 Incorrect string value: '\x80'' for column 'a' at row 8
-Warning 1366 Incorrect string value: '\x80(' for column 'a' at row 9
-Warning 1366 Incorrect string value: '\x80)' for column 'a' at row 10
-Warning 1366 Incorrect string value: '\x80*' for column 'a' at row 11
-Warning 1366 Incorrect string value: '\x80+' for column 'a' at row 12
-Warning 1366 Incorrect string value: '\x80,' for column 'a' at row 13
-Warning 1366 Incorrect string value: '\x80-' for column 'a' at row 14
-Warning 1366 Incorrect string value: '\x80.' for column 'a' at row 15
-Warning 1366 Incorrect string value: '\x80/' for column 'a' at row 16
-Warning 1366 Incorrect string value: '\x800' for column 'a' at row 17
-Warning 1366 Incorrect string value: '\x801' for column 'a' at row 18
-Warning 1366 Incorrect string value: '\x802' for column 'a' at row 19
-Warning 1366 Incorrect string value: '\x803' for column 'a' at row 20
-Warning 1366 Incorrect string value: '\x804' for column 'a' at row 21
-Warning 1366 Incorrect string value: '\x805' for column 'a' at row 22
-Warning 1366 Incorrect string value: '\x806' for column 'a' at row 23
-Warning 1366 Incorrect string value: '\x807' for column 'a' at row 24
-Warning 1366 Incorrect string value: '\x808' for column 'a' at row 25
-Warning 1366 Incorrect string value: '\x809' for column 'a' at row 26
-Warning 1366 Incorrect string value: '\x80:' for column 'a' at row 27
-Warning 1366 Incorrect string value: '\x80;' for column 'a' at row 28
-Warning 1366 Incorrect string value: '\x80<' for column 'a' at row 29
-Warning 1366 Incorrect string value: '\x80=' for column 'a' at row 30
-Warning 1366 Incorrect string value: '\x80>' for column 'a' at row 31
-Warning 1366 Incorrect string value: '\x80?' for column 'a' at row 32
-Warning 1366 Incorrect string value: '\x80@' for column 'a' at row 33
-Warning 1366 Incorrect string value: '\x80A' for column 'a' at row 34
-Warning 1366 Incorrect string value: '\x80B' for column 'a' at row 35
-Warning 1366 Incorrect string value: '\x80C' for column 'a' at row 36
-Warning 1366 Incorrect string value: '\x80D' for column 'a' at row 37
-Warning 1366 Incorrect string value: '\x80E' for column 'a' at row 38
-Warning 1366 Incorrect string value: '\x80F' for column 'a' at row 39
-Warning 1366 Incorrect string value: '\x80G' for column 'a' at row 40
-Warning 1366 Incorrect string value: '\x80H' for column 'a' at row 41
-Warning 1366 Incorrect string value: '\x80I' for column 'a' at row 42
-Warning 1366 Incorrect string value: '\x80J' for column 'a' at row 43
-Warning 1366 Incorrect string value: '\x80K' for column 'a' at row 44
-Warning 1366 Incorrect string value: '\x80L' for column 'a' at row 45
-Warning 1366 Incorrect string value: '\x80M' for column 'a' at row 46
-Warning 1366 Incorrect string value: '\x80N' for column 'a' at row 47
-Warning 1366 Incorrect string value: '\x80O' for column 'a' at row 48
-Warning 1366 Incorrect string value: '\x80P' for column 'a' at row 49
-Warning 1366 Incorrect string value: '\x80Q' for column 'a' at row 50
-Warning 1366 Incorrect string value: '\x80R' for column 'a' at row 51
-Warning 1366 Incorrect string value: '\x80S' for column 'a' at row 52
-Warning 1366 Incorrect string value: '\x80T' for column 'a' at row 53
-Warning 1366 Incorrect string value: '\x80U' for column 'a' at row 54
-Warning 1366 Incorrect string value: '\x80V' for column 'a' at row 55
-Warning 1366 Incorrect string value: '\x80W' for column 'a' at row 56
-Warning 1366 Incorrect string value: '\x80X' for column 'a' at row 57
-Warning 1366 Incorrect string value: '\x80Y' for column 'a' at row 58
-Warning 1366 Incorrect string value: '\x80Z' for column 'a' at row 59
-Warning 1366 Incorrect string value: '\x80[' for column 'a' at row 60
-Warning 1366 Incorrect string value: '\x80\' for column 'a' at row 61
-Warning 1366 Incorrect string value: '\x80]' for column 'a' at row 62
-Warning 1366 Incorrect string value: '\x80^' for column 'a' at row 63
-Warning 1366 Incorrect string value: '\x80_' for column 'a' at row 64
+Warning 1366 Incorrect string value: '\x80 ' for column 'test.t1.a' at row 1
+Warning 1366 Incorrect string value: '\x80!' for column 'test.t1.a' at row 2
+Warning 1366 Incorrect string value: '\x80"' for column 'test.t1.a' at row 3
+Warning 1366 Incorrect string value: '\x80#' for column 'test.t1.a' at row 4
+Warning 1366 Incorrect string value: '\x80$' for column 'test.t1.a' at row 5
+Warning 1366 Incorrect string value: '\x80%' for column 'test.t1.a' at row 6
+Warning 1366 Incorrect string value: '\x80&' for column 'test.t1.a' at row 7
+Warning 1366 Incorrect string value: '\x80'' for column 'test.t1.a' at row 8
+Warning 1366 Incorrect string value: '\x80(' for column 'test.t1.a' at row 9
+Warning 1366 Incorrect string value: '\x80)' for column 'test.t1.a' at row 10
+Warning 1366 Incorrect string value: '\x80*' for column 'test.t1.a' at row 11
+Warning 1366 Incorrect string value: '\x80+' for column 'test.t1.a' at row 12
+Warning 1366 Incorrect string value: '\x80,' for column 'test.t1.a' at row 13
+Warning 1366 Incorrect string value: '\x80-' for column 'test.t1.a' at row 14
+Warning 1366 Incorrect string value: '\x80.' for column 'test.t1.a' at row 15
+Warning 1366 Incorrect string value: '\x80/' for column 'test.t1.a' at row 16
+Warning 1366 Incorrect string value: '\x800' for column 'test.t1.a' at row 17
+Warning 1366 Incorrect string value: '\x801' for column 'test.t1.a' at row 18
+Warning 1366 Incorrect string value: '\x802' for column 'test.t1.a' at row 19
+Warning 1366 Incorrect string value: '\x803' for column 'test.t1.a' at row 20
+Warning 1366 Incorrect string value: '\x804' for column 'test.t1.a' at row 21
+Warning 1366 Incorrect string value: '\x805' for column 'test.t1.a' at row 22
+Warning 1366 Incorrect string value: '\x806' for column 'test.t1.a' at row 23
+Warning 1366 Incorrect string value: '\x807' for column 'test.t1.a' at row 24
+Warning 1366 Incorrect string value: '\x808' for column 'test.t1.a' at row 25
+Warning 1366 Incorrect string value: '\x809' for column 'test.t1.a' at row 26
+Warning 1366 Incorrect string value: '\x80:' for column 'test.t1.a' at row 27
+Warning 1366 Incorrect string value: '\x80;' for column 'test.t1.a' at row 28
+Warning 1366 Incorrect string value: '\x80<' for column 'test.t1.a' at row 29
+Warning 1366 Incorrect string value: '\x80=' for column 'test.t1.a' at row 30
+Warning 1366 Incorrect string value: '\x80>' for column 'test.t1.a' at row 31
+Warning 1366 Incorrect string value: '\x80?' for column 'test.t1.a' at row 32
+Warning 1366 Incorrect string value: '\x80@' for column 'test.t1.a' at row 33
+Warning 1366 Incorrect string value: '\x80A' for column 'test.t1.a' at row 34
+Warning 1366 Incorrect string value: '\x80B' for column 'test.t1.a' at row 35
+Warning 1366 Incorrect string value: '\x80C' for column 'test.t1.a' at row 36
+Warning 1366 Incorrect string value: '\x80D' for column 'test.t1.a' at row 37
+Warning 1366 Incorrect string value: '\x80E' for column 'test.t1.a' at row 38
+Warning 1366 Incorrect string value: '\x80F' for column 'test.t1.a' at row 39
+Warning 1366 Incorrect string value: '\x80G' for column 'test.t1.a' at row 40
+Warning 1366 Incorrect string value: '\x80H' for column 'test.t1.a' at row 41
+Warning 1366 Incorrect string value: '\x80I' for column 'test.t1.a' at row 42
+Warning 1366 Incorrect string value: '\x80J' for column 'test.t1.a' at row 43
+Warning 1366 Incorrect string value: '\x80K' for column 'test.t1.a' at row 44
+Warning 1366 Incorrect string value: '\x80L' for column 'test.t1.a' at row 45
+Warning 1366 Incorrect string value: '\x80M' for column 'test.t1.a' at row 46
+Warning 1366 Incorrect string value: '\x80N' for column 'test.t1.a' at row 47
+Warning 1366 Incorrect string value: '\x80O' for column 'test.t1.a' at row 48
+Warning 1366 Incorrect string value: '\x80P' for column 'test.t1.a' at row 49
+Warning 1366 Incorrect string value: '\x80Q' for column 'test.t1.a' at row 50
+Warning 1366 Incorrect string value: '\x80R' for column 'test.t1.a' at row 51
+Warning 1366 Incorrect string value: '\x80S' for column 'test.t1.a' at row 52
+Warning 1366 Incorrect string value: '\x80T' for column 'test.t1.a' at row 53
+Warning 1366 Incorrect string value: '\x80U' for column 'test.t1.a' at row 54
+Warning 1366 Incorrect string value: '\x80V' for column 'test.t1.a' at row 55
+Warning 1366 Incorrect string value: '\x80W' for column 'test.t1.a' at row 56
+Warning 1366 Incorrect string value: '\x80X' for column 'test.t1.a' at row 57
+Warning 1366 Incorrect string value: '\x80Y' for column 'test.t1.a' at row 58
+Warning 1366 Incorrect string value: '\x80Z' for column 'test.t1.a' at row 59
+Warning 1366 Incorrect string value: '\x80[' for column 'test.t1.a' at row 60
+Warning 1366 Incorrect string value: '\x80\' for column 'test.t1.a' at row 61
+Warning 1366 Incorrect string value: '\x80]' for column 'test.t1.a' at row 62
+Warning 1366 Incorrect string value: '\x80^' for column 'test.t1.a' at row 63
+Warning 1366 Incorrect string value: '\x80_' for column 'test.t1.a' at row 64
SELECT COUNT(*) FROM t1;
COUNT(*)
14623
diff --git a/mysql-test/r/ctype_eucjpms.result b/mysql-test/r/ctype_eucjpms.result
index 507d002..52dee73 100644
--- a/mysql-test/r/ctype_eucjpms.result
+++ b/mysql-test/r/ctype_eucjpms.result
@@ -10042,70 +10042,70 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1
UPDATE IGNORE t1 SET a=unhex(code) ORDER BY code;
Warnings:
-Warning 1366 Incorrect string value: '\x80 ' for column 'a' at row 1
-Warning 1366 Incorrect string value: '\x80!' for column 'a' at row 2
-Warning 1366 Incorrect string value: '\x80"' for column 'a' at row 3
-Warning 1366 Incorrect string value: '\x80#' for column 'a' at row 4
-Warning 1366 Incorrect string value: '\x80$' for column 'a' at row 5
-Warning 1366 Incorrect string value: '\x80%' for column 'a' at row 6
-Warning 1366 Incorrect string value: '\x80&' for column 'a' at row 7
-Warning 1366 Incorrect string value: '\x80'' for column 'a' at row 8
-Warning 1366 Incorrect string value: '\x80(' for column 'a' at row 9
-Warning 1366 Incorrect string value: '\x80)' for column 'a' at row 10
-Warning 1366 Incorrect string value: '\x80*' for column 'a' at row 11
-Warning 1366 Incorrect string value: '\x80+' for column 'a' at row 12
-Warning 1366 Incorrect string value: '\x80,' for column 'a' at row 13
-Warning 1366 Incorrect string value: '\x80-' for column 'a' at row 14
-Warning 1366 Incorrect string value: '\x80.' for column 'a' at row 15
-Warning 1366 Incorrect string value: '\x80/' for column 'a' at row 16
-Warning 1366 Incorrect string value: '\x800' for column 'a' at row 17
-Warning 1366 Incorrect string value: '\x801' for column 'a' at row 18
-Warning 1366 Incorrect string value: '\x802' for column 'a' at row 19
-Warning 1366 Incorrect string value: '\x803' for column 'a' at row 20
-Warning 1366 Incorrect string value: '\x804' for column 'a' at row 21
-Warning 1366 Incorrect string value: '\x805' for column 'a' at row 22
-Warning 1366 Incorrect string value: '\x806' for column 'a' at row 23
-Warning 1366 Incorrect string value: '\x807' for column 'a' at row 24
-Warning 1366 Incorrect string value: '\x808' for column 'a' at row 25
-Warning 1366 Incorrect string value: '\x809' for column 'a' at row 26
-Warning 1366 Incorrect string value: '\x80:' for column 'a' at row 27
-Warning 1366 Incorrect string value: '\x80;' for column 'a' at row 28
-Warning 1366 Incorrect string value: '\x80<' for column 'a' at row 29
-Warning 1366 Incorrect string value: '\x80=' for column 'a' at row 30
-Warning 1366 Incorrect string value: '\x80>' for column 'a' at row 31
-Warning 1366 Incorrect string value: '\x80?' for column 'a' at row 32
-Warning 1366 Incorrect string value: '\x80@' for column 'a' at row 33
-Warning 1366 Incorrect string value: '\x80A' for column 'a' at row 34
-Warning 1366 Incorrect string value: '\x80B' for column 'a' at row 35
-Warning 1366 Incorrect string value: '\x80C' for column 'a' at row 36
-Warning 1366 Incorrect string value: '\x80D' for column 'a' at row 37
-Warning 1366 Incorrect string value: '\x80E' for column 'a' at row 38
-Warning 1366 Incorrect string value: '\x80F' for column 'a' at row 39
-Warning 1366 Incorrect string value: '\x80G' for column 'a' at row 40
-Warning 1366 Incorrect string value: '\x80H' for column 'a' at row 41
-Warning 1366 Incorrect string value: '\x80I' for column 'a' at row 42
-Warning 1366 Incorrect string value: '\x80J' for column 'a' at row 43
-Warning 1366 Incorrect string value: '\x80K' for column 'a' at row 44
-Warning 1366 Incorrect string value: '\x80L' for column 'a' at row 45
-Warning 1366 Incorrect string value: '\x80M' for column 'a' at row 46
-Warning 1366 Incorrect string value: '\x80N' for column 'a' at row 47
-Warning 1366 Incorrect string value: '\x80O' for column 'a' at row 48
-Warning 1366 Incorrect string value: '\x80P' for column 'a' at row 49
-Warning 1366 Incorrect string value: '\x80Q' for column 'a' at row 50
-Warning 1366 Incorrect string value: '\x80R' for column 'a' at row 51
-Warning 1366 Incorrect string value: '\x80S' for column 'a' at row 52
-Warning 1366 Incorrect string value: '\x80T' for column 'a' at row 53
-Warning 1366 Incorrect string value: '\x80U' for column 'a' at row 54
-Warning 1366 Incorrect string value: '\x80V' for column 'a' at row 55
-Warning 1366 Incorrect string value: '\x80W' for column 'a' at row 56
-Warning 1366 Incorrect string value: '\x80X' for column 'a' at row 57
-Warning 1366 Incorrect string value: '\x80Y' for column 'a' at row 58
-Warning 1366 Incorrect string value: '\x80Z' for column 'a' at row 59
-Warning 1366 Incorrect string value: '\x80[' for column 'a' at row 60
-Warning 1366 Incorrect string value: '\x80\' for column 'a' at row 61
-Warning 1366 Incorrect string value: '\x80]' for column 'a' at row 62
-Warning 1366 Incorrect string value: '\x80^' for column 'a' at row 63
-Warning 1366 Incorrect string value: '\x80_' for column 'a' at row 64
+Warning 1366 Incorrect string value: '\x80 ' for column 'test.t1.a' at row 1
+Warning 1366 Incorrect string value: '\x80!' for column 'test.t1.a' at row 2
+Warning 1366 Incorrect string value: '\x80"' for column 'test.t1.a' at row 3
+Warning 1366 Incorrect string value: '\x80#' for column 'test.t1.a' at row 4
+Warning 1366 Incorrect string value: '\x80$' for column 'test.t1.a' at row 5
+Warning 1366 Incorrect string value: '\x80%' for column 'test.t1.a' at row 6
+Warning 1366 Incorrect string value: '\x80&' for column 'test.t1.a' at row 7
+Warning 1366 Incorrect string value: '\x80'' for column 'test.t1.a' at row 8
+Warning 1366 Incorrect string value: '\x80(' for column 'test.t1.a' at row 9
+Warning 1366 Incorrect string value: '\x80)' for column 'test.t1.a' at row 10
+Warning 1366 Incorrect string value: '\x80*' for column 'test.t1.a' at row 11
+Warning 1366 Incorrect string value: '\x80+' for column 'test.t1.a' at row 12
+Warning 1366 Incorrect string value: '\x80,' for column 'test.t1.a' at row 13
+Warning 1366 Incorrect string value: '\x80-' for column 'test.t1.a' at row 14
+Warning 1366 Incorrect string value: '\x80.' for column 'test.t1.a' at row 15
+Warning 1366 Incorrect string value: '\x80/' for column 'test.t1.a' at row 16
+Warning 1366 Incorrect string value: '\x800' for column 'test.t1.a' at row 17
+Warning 1366 Incorrect string value: '\x801' for column 'test.t1.a' at row 18
+Warning 1366 Incorrect string value: '\x802' for column 'test.t1.a' at row 19
+Warning 1366 Incorrect string value: '\x803' for column 'test.t1.a' at row 20
+Warning 1366 Incorrect string value: '\x804' for column 'test.t1.a' at row 21
+Warning 1366 Incorrect string value: '\x805' for column 'test.t1.a' at row 22
+Warning 1366 Incorrect string value: '\x806' for column 'test.t1.a' at row 23
+Warning 1366 Incorrect string value: '\x807' for column 'test.t1.a' at row 24
+Warning 1366 Incorrect string value: '\x808' for column 'test.t1.a' at row 25
+Warning 1366 Incorrect string value: '\x809' for column 'test.t1.a' at row 26
+Warning 1366 Incorrect string value: '\x80:' for column 'test.t1.a' at row 27
+Warning 1366 Incorrect string value: '\x80;' for column 'test.t1.a' at row 28
+Warning 1366 Incorrect string value: '\x80<' for column 'test.t1.a' at row 29
+Warning 1366 Incorrect string value: '\x80=' for column 'test.t1.a' at row 30
+Warning 1366 Incorrect string value: '\x80>' for column 'test.t1.a' at row 31
+Warning 1366 Incorrect string value: '\x80?' for column 'test.t1.a' at row 32
+Warning 1366 Incorrect string value: '\x80@' for column 'test.t1.a' at row 33
+Warning 1366 Incorrect string value: '\x80A' for column 'test.t1.a' at row 34
+Warning 1366 Incorrect string value: '\x80B' for column 'test.t1.a' at row 35
+Warning 1366 Incorrect string value: '\x80C' for column 'test.t1.a' at row 36
+Warning 1366 Incorrect string value: '\x80D' for column 'test.t1.a' at row 37
+Warning 1366 Incorrect string value: '\x80E' for column 'test.t1.a' at row 38
+Warning 1366 Incorrect string value: '\x80F' for column 'test.t1.a' at row 39
+Warning 1366 Incorrect string value: '\x80G' for column 'test.t1.a' at row 40
+Warning 1366 Incorrect string value: '\x80H' for column 'test.t1.a' at row 41
+Warning 1366 Incorrect string value: '\x80I' for column 'test.t1.a' at row 42
+Warning 1366 Incorrect string value: '\x80J' for column 'test.t1.a' at row 43
+Warning 1366 Incorrect string value: '\x80K' for column 'test.t1.a' at row 44
+Warning 1366 Incorrect string value: '\x80L' for column 'test.t1.a' at row 45
+Warning 1366 Incorrect string value: '\x80M' for column 'test.t1.a' at row 46
+Warning 1366 Incorrect string value: '\x80N' for column 'test.t1.a' at row 47
+Warning 1366 Incorrect string value: '\x80O' for column 'test.t1.a' at row 48
+Warning 1366 Incorrect string value: '\x80P' for column 'test.t1.a' at row 49
+Warning 1366 Incorrect string value: '\x80Q' for column 'test.t1.a' at row 50
+Warning 1366 Incorrect string value: '\x80R' for column 'test.t1.a' at row 51
+Warning 1366 Incorrect string value: '\x80S' for column 'test.t1.a' at row 52
+Warning 1366 Incorrect string value: '\x80T' for column 'test.t1.a' at row 53
+Warning 1366 Incorrect string value: '\x80U' for column 'test.t1.a' at row 54
+Warning 1366 Incorrect string value: '\x80V' for column 'test.t1.a' at row 55
+Warning 1366 Incorrect string value: '\x80W' for column 'test.t1.a' at row 56
+Warning 1366 Incorrect string value: '\x80X' for column 'test.t1.a' at row 57
+Warning 1366 Incorrect string value: '\x80Y' for column 'test.t1.a' at row 58
+Warning 1366 Incorrect string value: '\x80Z' for column 'test.t1.a' at row 59
+Warning 1366 Incorrect string value: '\x80[' for column 'test.t1.a' at row 60
+Warning 1366 Incorrect string value: '\x80\' for column 'test.t1.a' at row 61
+Warning 1366 Incorrect string value: '\x80]' for column 'test.t1.a' at row 62
+Warning 1366 Incorrect string value: '\x80^' for column 'test.t1.a' at row 63
+Warning 1366 Incorrect string value: '\x80_' for column 'test.t1.a' at row 64
SELECT COUNT(*) FROM t1;
COUNT(*)
56959
diff --git a/mysql-test/r/ctype_euckr.result b/mysql-test/r/ctype_euckr.result
index cc50ddd..31eda4c 100644
--- a/mysql-test/r/ctype_euckr.result
+++ b/mysql-test/r/ctype_euckr.result
@@ -389,22 +389,22 @@ insert into t1 values (0xA181);
insert into t1 values (0xA1FE);
insert ignore into t1 values (0xA140);
Warnings:
-Warning 1366 Incorrect string value: '\xA1@' for column 's1' at row 1
+Warning 1366 Incorrect string value: '\xA1@' for column 'test.t1.s1' at row 1
insert ignore into t1 values (0xA15B);
Warnings:
-Warning 1366 Incorrect string value: '\xA1[' for column 's1' at row 1
+Warning 1366 Incorrect string value: '\xA1[' for column 'test.t1.s1' at row 1
insert ignore into t1 values (0xA160);
Warnings:
-Warning 1366 Incorrect string value: '\xA1`' for column 's1' at row 1
+Warning 1366 Incorrect string value: '\xA1`' for column 'test.t1.s1' at row 1
insert ignore into t1 values (0xA17B);
Warnings:
-Warning 1366 Incorrect string value: '\xA1{' for column 's1' at row 1
+Warning 1366 Incorrect string value: '\xA1{' for column 'test.t1.s1' at row 1
insert ignore into t1 values (0xA180);
Warnings:
-Warning 1366 Incorrect string value: '\xA1\x80' for column 's1' at row 1
+Warning 1366 Incorrect string value: '\xA1\x80' for column 'test.t1.s1' at row 1
insert ignore into t1 values (0xA1FF);
Warnings:
-Warning 1366 Incorrect string value: '\xA1\xFF' for column 's1' at row 1
+Warning 1366 Incorrect string value: '\xA1\xFF' for column 'test.t1.s1' at row 1
select hex(s1), hex(convert(s1 using utf8)) from t1 order by binary s1;
hex(s1) hex(convert(s1 using utf8))
3F3F 3F3F
@@ -24428,70 +24428,70 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1
UPDATE IGNORE t1 SET a=unhex(code) ORDER BY code;
Warnings:
-Warning 1366 Incorrect string value: '\x80 ' for column 'a' at row 1
-Warning 1366 Incorrect string value: '\x80!' for column 'a' at row 2
-Warning 1366 Incorrect string value: '\x80"' for column 'a' at row 3
-Warning 1366 Incorrect string value: '\x80#' for column 'a' at row 4
-Warning 1366 Incorrect string value: '\x80$' for column 'a' at row 5
-Warning 1366 Incorrect string value: '\x80%' for column 'a' at row 6
-Warning 1366 Incorrect string value: '\x80&' for column 'a' at row 7
-Warning 1366 Incorrect string value: '\x80'' for column 'a' at row 8
-Warning 1366 Incorrect string value: '\x80(' for column 'a' at row 9
-Warning 1366 Incorrect string value: '\x80)' for column 'a' at row 10
-Warning 1366 Incorrect string value: '\x80*' for column 'a' at row 11
-Warning 1366 Incorrect string value: '\x80+' for column 'a' at row 12
-Warning 1366 Incorrect string value: '\x80,' for column 'a' at row 13
-Warning 1366 Incorrect string value: '\x80-' for column 'a' at row 14
-Warning 1366 Incorrect string value: '\x80.' for column 'a' at row 15
-Warning 1366 Incorrect string value: '\x80/' for column 'a' at row 16
-Warning 1366 Incorrect string value: '\x800' for column 'a' at row 17
-Warning 1366 Incorrect string value: '\x801' for column 'a' at row 18
-Warning 1366 Incorrect string value: '\x802' for column 'a' at row 19
-Warning 1366 Incorrect string value: '\x803' for column 'a' at row 20
-Warning 1366 Incorrect string value: '\x804' for column 'a' at row 21
-Warning 1366 Incorrect string value: '\x805' for column 'a' at row 22
-Warning 1366 Incorrect string value: '\x806' for column 'a' at row 23
-Warning 1366 Incorrect string value: '\x807' for column 'a' at row 24
-Warning 1366 Incorrect string value: '\x808' for column 'a' at row 25
-Warning 1366 Incorrect string value: '\x809' for column 'a' at row 26
-Warning 1366 Incorrect string value: '\x80:' for column 'a' at row 27
-Warning 1366 Incorrect string value: '\x80;' for column 'a' at row 28
-Warning 1366 Incorrect string value: '\x80<' for column 'a' at row 29
-Warning 1366 Incorrect string value: '\x80=' for column 'a' at row 30
-Warning 1366 Incorrect string value: '\x80>' for column 'a' at row 31
-Warning 1366 Incorrect string value: '\x80?' for column 'a' at row 32
-Warning 1366 Incorrect string value: '\x80@' for column 'a' at row 33
-Warning 1366 Incorrect string value: '\x80A' for column 'a' at row 34
-Warning 1366 Incorrect string value: '\x80B' for column 'a' at row 35
-Warning 1366 Incorrect string value: '\x80C' for column 'a' at row 36
-Warning 1366 Incorrect string value: '\x80D' for column 'a' at row 37
-Warning 1366 Incorrect string value: '\x80E' for column 'a' at row 38
-Warning 1366 Incorrect string value: '\x80F' for column 'a' at row 39
-Warning 1366 Incorrect string value: '\x80G' for column 'a' at row 40
-Warning 1366 Incorrect string value: '\x80H' for column 'a' at row 41
-Warning 1366 Incorrect string value: '\x80I' for column 'a' at row 42
-Warning 1366 Incorrect string value: '\x80J' for column 'a' at row 43
-Warning 1366 Incorrect string value: '\x80K' for column 'a' at row 44
-Warning 1366 Incorrect string value: '\x80L' for column 'a' at row 45
-Warning 1366 Incorrect string value: '\x80M' for column 'a' at row 46
-Warning 1366 Incorrect string value: '\x80N' for column 'a' at row 47
-Warning 1366 Incorrect string value: '\x80O' for column 'a' at row 48
-Warning 1366 Incorrect string value: '\x80P' for column 'a' at row 49
-Warning 1366 Incorrect string value: '\x80Q' for column 'a' at row 50
-Warning 1366 Incorrect string value: '\x80R' for column 'a' at row 51
-Warning 1366 Incorrect string value: '\x80S' for column 'a' at row 52
-Warning 1366 Incorrect string value: '\x80T' for column 'a' at row 53
-Warning 1366 Incorrect string value: '\x80U' for column 'a' at row 54
-Warning 1366 Incorrect string value: '\x80V' for column 'a' at row 55
-Warning 1366 Incorrect string value: '\x80W' for column 'a' at row 56
-Warning 1366 Incorrect string value: '\x80X' for column 'a' at row 57
-Warning 1366 Incorrect string value: '\x80Y' for column 'a' at row 58
-Warning 1366 Incorrect string value: '\x80Z' for column 'a' at row 59
-Warning 1366 Incorrect string value: '\x80[' for column 'a' at row 60
-Warning 1366 Incorrect string value: '\x80\' for column 'a' at row 61
-Warning 1366 Incorrect string value: '\x80]' for column 'a' at row 62
-Warning 1366 Incorrect string value: '\x80^' for column 'a' at row 63
-Warning 1366 Incorrect string value: '\x80_' for column 'a' at row 64
+Warning 1366 Incorrect string value: '\x80 ' for column 'test.t1.a' at row 1
+Warning 1366 Incorrect string value: '\x80!' for column 'test.t1.a' at row 2
+Warning 1366 Incorrect string value: '\x80"' for column 'test.t1.a' at row 3
+Warning 1366 Incorrect string value: '\x80#' for column 'test.t1.a' at row 4
+Warning 1366 Incorrect string value: '\x80$' for column 'test.t1.a' at row 5
+Warning 1366 Incorrect string value: '\x80%' for column 'test.t1.a' at row 6
+Warning 1366 Incorrect string value: '\x80&' for column 'test.t1.a' at row 7
+Warning 1366 Incorrect string value: '\x80'' for column 'test.t1.a' at row 8
+Warning 1366 Incorrect string value: '\x80(' for column 'test.t1.a' at row 9
+Warning 1366 Incorrect string value: '\x80)' for column 'test.t1.a' at row 10
+Warning 1366 Incorrect string value: '\x80*' for column 'test.t1.a' at row 11
+Warning 1366 Incorrect string value: '\x80+' for column 'test.t1.a' at row 12
+Warning 1366 Incorrect string value: '\x80,' for column 'test.t1.a' at row 13
+Warning 1366 Incorrect string value: '\x80-' for column 'test.t1.a' at row 14
+Warning 1366 Incorrect string value: '\x80.' for column 'test.t1.a' at row 15
+Warning 1366 Incorrect string value: '\x80/' for column 'test.t1.a' at row 16
+Warning 1366 Incorrect string value: '\x800' for column 'test.t1.a' at row 17
+Warning 1366 Incorrect string value: '\x801' for column 'test.t1.a' at row 18
+Warning 1366 Incorrect string value: '\x802' for column 'test.t1.a' at row 19
+Warning 1366 Incorrect string value: '\x803' for column 'test.t1.a' at row 20
+Warning 1366 Incorrect string value: '\x804' for column 'test.t1.a' at row 21
+Warning 1366 Incorrect string value: '\x805' for column 'test.t1.a' at row 22
+Warning 1366 Incorrect string value: '\x806' for column 'test.t1.a' at row 23
+Warning 1366 Incorrect string value: '\x807' for column 'test.t1.a' at row 24
+Warning 1366 Incorrect string value: '\x808' for column 'test.t1.a' at row 25
+Warning 1366 Incorrect string value: '\x809' for column 'test.t1.a' at row 26
+Warning 1366 Incorrect string value: '\x80:' for column 'test.t1.a' at row 27
+Warning 1366 Incorrect string value: '\x80;' for column 'test.t1.a' at row 28
+Warning 1366 Incorrect string value: '\x80<' for column 'test.t1.a' at row 29
+Warning 1366 Incorrect string value: '\x80=' for column 'test.t1.a' at row 30
+Warning 1366 Incorrect string value: '\x80>' for column 'test.t1.a' at row 31
+Warning 1366 Incorrect string value: '\x80?' for column 'test.t1.a' at row 32
+Warning 1366 Incorrect string value: '\x80@' for column 'test.t1.a' at row 33
+Warning 1366 Incorrect string value: '\x80A' for column 'test.t1.a' at row 34
+Warning 1366 Incorrect string value: '\x80B' for column 'test.t1.a' at row 35
+Warning 1366 Incorrect string value: '\x80C' for column 'test.t1.a' at row 36
+Warning 1366 Incorrect string value: '\x80D' for column 'test.t1.a' at row 37
+Warning 1366 Incorrect string value: '\x80E' for column 'test.t1.a' at row 38
+Warning 1366 Incorrect string value: '\x80F' for column 'test.t1.a' at row 39
+Warning 1366 Incorrect string value: '\x80G' for column 'test.t1.a' at row 40
+Warning 1366 Incorrect string value: '\x80H' for column 'test.t1.a' at row 41
+Warning 1366 Incorrect string value: '\x80I' for column 'test.t1.a' at row 42
+Warning 1366 Incorrect string value: '\x80J' for column 'test.t1.a' at row 43
+Warning 1366 Incorrect string value: '\x80K' for column 'test.t1.a' at row 44
+Warning 1366 Incorrect string value: '\x80L' for column 'test.t1.a' at row 45
+Warning 1366 Incorrect string value: '\x80M' for column 'test.t1.a' at row 46
+Warning 1366 Incorrect string value: '\x80N' for column 'test.t1.a' at row 47
+Warning 1366 Incorrect string value: '\x80O' for column 'test.t1.a' at row 48
+Warning 1366 Incorrect string value: '\x80P' for column 'test.t1.a' at row 49
+Warning 1366 Incorrect string value: '\x80Q' for column 'test.t1.a' at row 50
+Warning 1366 Incorrect string value: '\x80R' for column 'test.t1.a' at row 51
+Warning 1366 Incorrect string value: '\x80S' for column 'test.t1.a' at row 52
+Warning 1366 Incorrect string value: '\x80T' for column 'test.t1.a' at row 53
+Warning 1366 Incorrect string value: '\x80U' for column 'test.t1.a' at row 54
+Warning 1366 Incorrect string value: '\x80V' for column 'test.t1.a' at row 55
+Warning 1366 Incorrect string value: '\x80W' for column 'test.t1.a' at row 56
+Warning 1366 Incorrect string value: '\x80X' for column 'test.t1.a' at row 57
+Warning 1366 Incorrect string value: '\x80Y' for column 'test.t1.a' at row 58
+Warning 1366 Incorrect string value: '\x80Z' for column 'test.t1.a' at row 59
+Warning 1366 Incorrect string value: '\x80[' for column 'test.t1.a' at row 60
+Warning 1366 Incorrect string value: '\x80\' for column 'test.t1.a' at row 61
+Warning 1366 Incorrect string value: '\x80]' for column 'test.t1.a' at row 62
+Warning 1366 Incorrect string value: '\x80^' for column 'test.t1.a' at row 63
+Warning 1366 Incorrect string value: '\x80_' for column 'test.t1.a' at row 64
SELECT COUNT(*) FROM t1 WHERE a<>'?';
COUNT(*)
22428
diff --git a/mysql-test/r/ctype_gb2312.result b/mysql-test/r/ctype_gb2312.result
index c3c2eee..ccfdd33 100644
--- a/mysql-test/r/ctype_gb2312.result
+++ b/mysql-test/r/ctype_gb2312.result
@@ -489,70 +489,70 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1
UPDATE IGNORE t1 SET a=unhex(code) ORDER BY code;
Warnings:
-Warning 1366 Incorrect string value: '\x80 ' for column 'a' at row 1
-Warning 1366 Incorrect string value: '\x80!' for column 'a' at row 2
-Warning 1366 Incorrect string value: '\x80"' for column 'a' at row 3
-Warning 1366 Incorrect string value: '\x80#' for column 'a' at row 4
-Warning 1366 Incorrect string value: '\x80$' for column 'a' at row 5
-Warning 1366 Incorrect string value: '\x80%' for column 'a' at row 6
-Warning 1366 Incorrect string value: '\x80&' for column 'a' at row 7
-Warning 1366 Incorrect string value: '\x80'' for column 'a' at row 8
-Warning 1366 Incorrect string value: '\x80(' for column 'a' at row 9
-Warning 1366 Incorrect string value: '\x80)' for column 'a' at row 10
-Warning 1366 Incorrect string value: '\x80*' for column 'a' at row 11
-Warning 1366 Incorrect string value: '\x80+' for column 'a' at row 12
-Warning 1366 Incorrect string value: '\x80,' for column 'a' at row 13
-Warning 1366 Incorrect string value: '\x80-' for column 'a' at row 14
-Warning 1366 Incorrect string value: '\x80.' for column 'a' at row 15
-Warning 1366 Incorrect string value: '\x80/' for column 'a' at row 16
-Warning 1366 Incorrect string value: '\x800' for column 'a' at row 17
-Warning 1366 Incorrect string value: '\x801' for column 'a' at row 18
-Warning 1366 Incorrect string value: '\x802' for column 'a' at row 19
-Warning 1366 Incorrect string value: '\x803' for column 'a' at row 20
-Warning 1366 Incorrect string value: '\x804' for column 'a' at row 21
-Warning 1366 Incorrect string value: '\x805' for column 'a' at row 22
-Warning 1366 Incorrect string value: '\x806' for column 'a' at row 23
-Warning 1366 Incorrect string value: '\x807' for column 'a' at row 24
-Warning 1366 Incorrect string value: '\x808' for column 'a' at row 25
-Warning 1366 Incorrect string value: '\x809' for column 'a' at row 26
-Warning 1366 Incorrect string value: '\x80:' for column 'a' at row 27
-Warning 1366 Incorrect string value: '\x80;' for column 'a' at row 28
-Warning 1366 Incorrect string value: '\x80<' for column 'a' at row 29
-Warning 1366 Incorrect string value: '\x80=' for column 'a' at row 30
-Warning 1366 Incorrect string value: '\x80>' for column 'a' at row 31
-Warning 1366 Incorrect string value: '\x80?' for column 'a' at row 32
-Warning 1366 Incorrect string value: '\x80@' for column 'a' at row 33
-Warning 1366 Incorrect string value: '\x80A' for column 'a' at row 34
-Warning 1366 Incorrect string value: '\x80B' for column 'a' at row 35
-Warning 1366 Incorrect string value: '\x80C' for column 'a' at row 36
-Warning 1366 Incorrect string value: '\x80D' for column 'a' at row 37
-Warning 1366 Incorrect string value: '\x80E' for column 'a' at row 38
-Warning 1366 Incorrect string value: '\x80F' for column 'a' at row 39
-Warning 1366 Incorrect string value: '\x80G' for column 'a' at row 40
-Warning 1366 Incorrect string value: '\x80H' for column 'a' at row 41
-Warning 1366 Incorrect string value: '\x80I' for column 'a' at row 42
-Warning 1366 Incorrect string value: '\x80J' for column 'a' at row 43
-Warning 1366 Incorrect string value: '\x80K' for column 'a' at row 44
-Warning 1366 Incorrect string value: '\x80L' for column 'a' at row 45
-Warning 1366 Incorrect string value: '\x80M' for column 'a' at row 46
-Warning 1366 Incorrect string value: '\x80N' for column 'a' at row 47
-Warning 1366 Incorrect string value: '\x80O' for column 'a' at row 48
-Warning 1366 Incorrect string value: '\x80P' for column 'a' at row 49
-Warning 1366 Incorrect string value: '\x80Q' for column 'a' at row 50
-Warning 1366 Incorrect string value: '\x80R' for column 'a' at row 51
-Warning 1366 Incorrect string value: '\x80S' for column 'a' at row 52
-Warning 1366 Incorrect string value: '\x80T' for column 'a' at row 53
-Warning 1366 Incorrect string value: '\x80U' for column 'a' at row 54
-Warning 1366 Incorrect string value: '\x80V' for column 'a' at row 55
-Warning 1366 Incorrect string value: '\x80W' for column 'a' at row 56
-Warning 1366 Incorrect string value: '\x80X' for column 'a' at row 57
-Warning 1366 Incorrect string value: '\x80Y' for column 'a' at row 58
-Warning 1366 Incorrect string value: '\x80Z' for column 'a' at row 59
-Warning 1366 Incorrect string value: '\x80[' for column 'a' at row 60
-Warning 1366 Incorrect string value: '\x80\' for column 'a' at row 61
-Warning 1366 Incorrect string value: '\x80]' for column 'a' at row 62
-Warning 1366 Incorrect string value: '\x80^' for column 'a' at row 63
-Warning 1366 Incorrect string value: '\x80_' for column 'a' at row 64
+Warning 1366 Incorrect string value: '\x80 ' for column 'test.t1.a' at row 1
+Warning 1366 Incorrect string value: '\x80!' for column 'test.t1.a' at row 2
+Warning 1366 Incorrect string value: '\x80"' for column 'test.t1.a' at row 3
+Warning 1366 Incorrect string value: '\x80#' for column 'test.t1.a' at row 4
+Warning 1366 Incorrect string value: '\x80$' for column 'test.t1.a' at row 5
+Warning 1366 Incorrect string value: '\x80%' for column 'test.t1.a' at row 6
+Warning 1366 Incorrect string value: '\x80&' for column 'test.t1.a' at row 7
+Warning 1366 Incorrect string value: '\x80'' for column 'test.t1.a' at row 8
+Warning 1366 Incorrect string value: '\x80(' for column 'test.t1.a' at row 9
+Warning 1366 Incorrect string value: '\x80)' for column 'test.t1.a' at row 10
+Warning 1366 Incorrect string value: '\x80*' for column 'test.t1.a' at row 11
+Warning 1366 Incorrect string value: '\x80+' for column 'test.t1.a' at row 12
+Warning 1366 Incorrect string value: '\x80,' for column 'test.t1.a' at row 13
+Warning 1366 Incorrect string value: '\x80-' for column 'test.t1.a' at row 14
+Warning 1366 Incorrect string value: '\x80.' for column 'test.t1.a' at row 15
+Warning 1366 Incorrect string value: '\x80/' for column 'test.t1.a' at row 16
+Warning 1366 Incorrect string value: '\x800' for column 'test.t1.a' at row 17
+Warning 1366 Incorrect string value: '\x801' for column 'test.t1.a' at row 18
+Warning 1366 Incorrect string value: '\x802' for column 'test.t1.a' at row 19
+Warning 1366 Incorrect string value: '\x803' for column 'test.t1.a' at row 20
+Warning 1366 Incorrect string value: '\x804' for column 'test.t1.a' at row 21
+Warning 1366 Incorrect string value: '\x805' for column 'test.t1.a' at row 22
+Warning 1366 Incorrect string value: '\x806' for column 'test.t1.a' at row 23
+Warning 1366 Incorrect string value: '\x807' for column 'test.t1.a' at row 24
+Warning 1366 Incorrect string value: '\x808' for column 'test.t1.a' at row 25
+Warning 1366 Incorrect string value: '\x809' for column 'test.t1.a' at row 26
+Warning 1366 Incorrect string value: '\x80:' for column 'test.t1.a' at row 27
+Warning 1366 Incorrect string value: '\x80;' for column 'test.t1.a' at row 28
+Warning 1366 Incorrect string value: '\x80<' for column 'test.t1.a' at row 29
+Warning 1366 Incorrect string value: '\x80=' for column 'test.t1.a' at row 30
+Warning 1366 Incorrect string value: '\x80>' for column 'test.t1.a' at row 31
+Warning 1366 Incorrect string value: '\x80?' for column 'test.t1.a' at row 32
+Warning 1366 Incorrect string value: '\x80@' for column 'test.t1.a' at row 33
+Warning 1366 Incorrect string value: '\x80A' for column 'test.t1.a' at row 34
+Warning 1366 Incorrect string value: '\x80B' for column 'test.t1.a' at row 35
+Warning 1366 Incorrect string value: '\x80C' for column 'test.t1.a' at row 36
+Warning 1366 Incorrect string value: '\x80D' for column 'test.t1.a' at row 37
+Warning 1366 Incorrect string value: '\x80E' for column 'test.t1.a' at row 38
+Warning 1366 Incorrect string value: '\x80F' for column 'test.t1.a' at row 39
+Warning 1366 Incorrect string value: '\x80G' for column 'test.t1.a' at row 40
+Warning 1366 Incorrect string value: '\x80H' for column 'test.t1.a' at row 41
+Warning 1366 Incorrect string value: '\x80I' for column 'test.t1.a' at row 42
+Warning 1366 Incorrect string value: '\x80J' for column 'test.t1.a' at row 43
+Warning 1366 Incorrect string value: '\x80K' for column 'test.t1.a' at row 44
+Warning 1366 Incorrect string value: '\x80L' for column 'test.t1.a' at row 45
+Warning 1366 Incorrect string value: '\x80M' for column 'test.t1.a' at row 46
+Warning 1366 Incorrect string value: '\x80N' for column 'test.t1.a' at row 47
+Warning 1366 Incorrect string value: '\x80O' for column 'test.t1.a' at row 48
+Warning 1366 Incorrect string value: '\x80P' for column 'test.t1.a' at row 49
+Warning 1366 Incorrect string value: '\x80Q' for column 'test.t1.a' at row 50
+Warning 1366 Incorrect string value: '\x80R' for column 'test.t1.a' at row 51
+Warning 1366 Incorrect string value: '\x80S' for column 'test.t1.a' at row 52
+Warning 1366 Incorrect string value: '\x80T' for column 'test.t1.a' at row 53
+Warning 1366 Incorrect string value: '\x80U' for column 'test.t1.a' at row 54
+Warning 1366 Incorrect string value: '\x80V' for column 'test.t1.a' at row 55
+Warning 1366 Incorrect string value: '\x80W' for column 'test.t1.a' at row 56
+Warning 1366 Incorrect string value: '\x80X' for column 'test.t1.a' at row 57
+Warning 1366 Incorrect string value: '\x80Y' for column 'test.t1.a' at row 58
+Warning 1366 Incorrect string value: '\x80Z' for column 'test.t1.a' at row 59
+Warning 1366 Incorrect string value: '\x80[' for column 'test.t1.a' at row 60
+Warning 1366 Incorrect string value: '\x80\' for column 'test.t1.a' at row 61
+Warning 1366 Incorrect string value: '\x80]' for column 'test.t1.a' at row 62
+Warning 1366 Incorrect string value: '\x80^' for column 'test.t1.a' at row 63
+Warning 1366 Incorrect string value: '\x80_' for column 'test.t1.a' at row 64
SELECT COUNT(*) FROM t1 WHERE a<>'?';
COUNT(*)
8178
diff --git a/mysql-test/r/ctype_gbk.result b/mysql-test/r/ctype_gbk.result
index 4e5c969..408e79e 100644
--- a/mysql-test/r/ctype_gbk.result
+++ b/mysql-test/r/ctype_gbk.result
@@ -511,70 +511,70 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1
UPDATE IGNORE t1 SET a=unhex(code) ORDER BY code;
Warnings:
-Warning 1366 Incorrect string value: '\x80 ' for column 'a' at row 1
-Warning 1366 Incorrect string value: '\x80!' for column 'a' at row 2
-Warning 1366 Incorrect string value: '\x80"' for column 'a' at row 3
-Warning 1366 Incorrect string value: '\x80#' for column 'a' at row 4
-Warning 1366 Incorrect string value: '\x80$' for column 'a' at row 5
-Warning 1366 Incorrect string value: '\x80%' for column 'a' at row 6
-Warning 1366 Incorrect string value: '\x80&' for column 'a' at row 7
-Warning 1366 Incorrect string value: '\x80'' for column 'a' at row 8
-Warning 1366 Incorrect string value: '\x80(' for column 'a' at row 9
-Warning 1366 Incorrect string value: '\x80)' for column 'a' at row 10
-Warning 1366 Incorrect string value: '\x80*' for column 'a' at row 11
-Warning 1366 Incorrect string value: '\x80+' for column 'a' at row 12
-Warning 1366 Incorrect string value: '\x80,' for column 'a' at row 13
-Warning 1366 Incorrect string value: '\x80-' for column 'a' at row 14
-Warning 1366 Incorrect string value: '\x80.' for column 'a' at row 15
-Warning 1366 Incorrect string value: '\x80/' for column 'a' at row 16
-Warning 1366 Incorrect string value: '\x800' for column 'a' at row 17
-Warning 1366 Incorrect string value: '\x801' for column 'a' at row 18
-Warning 1366 Incorrect string value: '\x802' for column 'a' at row 19
-Warning 1366 Incorrect string value: '\x803' for column 'a' at row 20
-Warning 1366 Incorrect string value: '\x804' for column 'a' at row 21
-Warning 1366 Incorrect string value: '\x805' for column 'a' at row 22
-Warning 1366 Incorrect string value: '\x806' for column 'a' at row 23
-Warning 1366 Incorrect string value: '\x807' for column 'a' at row 24
-Warning 1366 Incorrect string value: '\x808' for column 'a' at row 25
-Warning 1366 Incorrect string value: '\x809' for column 'a' at row 26
-Warning 1366 Incorrect string value: '\x80:' for column 'a' at row 27
-Warning 1366 Incorrect string value: '\x80;' for column 'a' at row 28
-Warning 1366 Incorrect string value: '\x80<' for column 'a' at row 29
-Warning 1366 Incorrect string value: '\x80=' for column 'a' at row 30
-Warning 1366 Incorrect string value: '\x80>' for column 'a' at row 31
-Warning 1366 Incorrect string value: '\x80?' for column 'a' at row 32
-Warning 1366 Incorrect string value: '\x80@' for column 'a' at row 33
-Warning 1366 Incorrect string value: '\x80A' for column 'a' at row 34
-Warning 1366 Incorrect string value: '\x80B' for column 'a' at row 35
-Warning 1366 Incorrect string value: '\x80C' for column 'a' at row 36
-Warning 1366 Incorrect string value: '\x80D' for column 'a' at row 37
-Warning 1366 Incorrect string value: '\x80E' for column 'a' at row 38
-Warning 1366 Incorrect string value: '\x80F' for column 'a' at row 39
-Warning 1366 Incorrect string value: '\x80G' for column 'a' at row 40
-Warning 1366 Incorrect string value: '\x80H' for column 'a' at row 41
-Warning 1366 Incorrect string value: '\x80I' for column 'a' at row 42
-Warning 1366 Incorrect string value: '\x80J' for column 'a' at row 43
-Warning 1366 Incorrect string value: '\x80K' for column 'a' at row 44
-Warning 1366 Incorrect string value: '\x80L' for column 'a' at row 45
-Warning 1366 Incorrect string value: '\x80M' for column 'a' at row 46
-Warning 1366 Incorrect string value: '\x80N' for column 'a' at row 47
-Warning 1366 Incorrect string value: '\x80O' for column 'a' at row 48
-Warning 1366 Incorrect string value: '\x80P' for column 'a' at row 49
-Warning 1366 Incorrect string value: '\x80Q' for column 'a' at row 50
-Warning 1366 Incorrect string value: '\x80R' for column 'a' at row 51
-Warning 1366 Incorrect string value: '\x80S' for column 'a' at row 52
-Warning 1366 Incorrect string value: '\x80T' for column 'a' at row 53
-Warning 1366 Incorrect string value: '\x80U' for column 'a' at row 54
-Warning 1366 Incorrect string value: '\x80V' for column 'a' at row 55
-Warning 1366 Incorrect string value: '\x80W' for column 'a' at row 56
-Warning 1366 Incorrect string value: '\x80X' for column 'a' at row 57
-Warning 1366 Incorrect string value: '\x80Y' for column 'a' at row 58
-Warning 1366 Incorrect string value: '\x80Z' for column 'a' at row 59
-Warning 1366 Incorrect string value: '\x80[' for column 'a' at row 60
-Warning 1366 Incorrect string value: '\x80\' for column 'a' at row 61
-Warning 1366 Incorrect string value: '\x80]' for column 'a' at row 62
-Warning 1366 Incorrect string value: '\x80^' for column 'a' at row 63
-Warning 1366 Incorrect string value: '\x80_' for column 'a' at row 64
+Warning 1366 Incorrect string value: '\x80 ' for column 'test.t1.a' at row 1
+Warning 1366 Incorrect string value: '\x80!' for column 'test.t1.a' at row 2
+Warning 1366 Incorrect string value: '\x80"' for column 'test.t1.a' at row 3
+Warning 1366 Incorrect string value: '\x80#' for column 'test.t1.a' at row 4
+Warning 1366 Incorrect string value: '\x80$' for column 'test.t1.a' at row 5
+Warning 1366 Incorrect string value: '\x80%' for column 'test.t1.a' at row 6
+Warning 1366 Incorrect string value: '\x80&' for column 'test.t1.a' at row 7
+Warning 1366 Incorrect string value: '\x80'' for column 'test.t1.a' at row 8
+Warning 1366 Incorrect string value: '\x80(' for column 'test.t1.a' at row 9
+Warning 1366 Incorrect string value: '\x80)' for column 'test.t1.a' at row 10
+Warning 1366 Incorrect string value: '\x80*' for column 'test.t1.a' at row 11
+Warning 1366 Incorrect string value: '\x80+' for column 'test.t1.a' at row 12
+Warning 1366 Incorrect string value: '\x80,' for column 'test.t1.a' at row 13
+Warning 1366 Incorrect string value: '\x80-' for column 'test.t1.a' at row 14
+Warning 1366 Incorrect string value: '\x80.' for column 'test.t1.a' at row 15
+Warning 1366 Incorrect string value: '\x80/' for column 'test.t1.a' at row 16
+Warning 1366 Incorrect string value: '\x800' for column 'test.t1.a' at row 17
+Warning 1366 Incorrect string value: '\x801' for column 'test.t1.a' at row 18
+Warning 1366 Incorrect string value: '\x802' for column 'test.t1.a' at row 19
+Warning 1366 Incorrect string value: '\x803' for column 'test.t1.a' at row 20
+Warning 1366 Incorrect string value: '\x804' for column 'test.t1.a' at row 21
+Warning 1366 Incorrect string value: '\x805' for column 'test.t1.a' at row 22
+Warning 1366 Incorrect string value: '\x806' for column 'test.t1.a' at row 23
+Warning 1366 Incorrect string value: '\x807' for column 'test.t1.a' at row 24
+Warning 1366 Incorrect string value: '\x808' for column 'test.t1.a' at row 25
+Warning 1366 Incorrect string value: '\x809' for column 'test.t1.a' at row 26
+Warning 1366 Incorrect string value: '\x80:' for column 'test.t1.a' at row 27
+Warning 1366 Incorrect string value: '\x80;' for column 'test.t1.a' at row 28
+Warning 1366 Incorrect string value: '\x80<' for column 'test.t1.a' at row 29
+Warning 1366 Incorrect string value: '\x80=' for column 'test.t1.a' at row 30
+Warning 1366 Incorrect string value: '\x80>' for column 'test.t1.a' at row 31
+Warning 1366 Incorrect string value: '\x80?' for column 'test.t1.a' at row 32
+Warning 1366 Incorrect string value: '\x80@' for column 'test.t1.a' at row 33
+Warning 1366 Incorrect string value: '\x80A' for column 'test.t1.a' at row 34
+Warning 1366 Incorrect string value: '\x80B' for column 'test.t1.a' at row 35
+Warning 1366 Incorrect string value: '\x80C' for column 'test.t1.a' at row 36
+Warning 1366 Incorrect string value: '\x80D' for column 'test.t1.a' at row 37
+Warning 1366 Incorrect string value: '\x80E' for column 'test.t1.a' at row 38
+Warning 1366 Incorrect string value: '\x80F' for column 'test.t1.a' at row 39
+Warning 1366 Incorrect string value: '\x80G' for column 'test.t1.a' at row 40
+Warning 1366 Incorrect string value: '\x80H' for column 'test.t1.a' at row 41
+Warning 1366 Incorrect string value: '\x80I' for column 'test.t1.a' at row 42
+Warning 1366 Incorrect string value: '\x80J' for column 'test.t1.a' at row 43
+Warning 1366 Incorrect string value: '\x80K' for column 'test.t1.a' at row 44
+Warning 1366 Incorrect string value: '\x80L' for column 'test.t1.a' at row 45
+Warning 1366 Incorrect string value: '\x80M' for column 'test.t1.a' at row 46
+Warning 1366 Incorrect string value: '\x80N' for column 'test.t1.a' at row 47
+Warning 1366 Incorrect string value: '\x80O' for column 'test.t1.a' at row 48
+Warning 1366 Incorrect string value: '\x80P' for column 'test.t1.a' at row 49
+Warning 1366 Incorrect string value: '\x80Q' for column 'test.t1.a' at row 50
+Warning 1366 Incorrect string value: '\x80R' for column 'test.t1.a' at row 51
+Warning 1366 Incorrect string value: '\x80S' for column 'test.t1.a' at row 52
+Warning 1366 Incorrect string value: '\x80T' for column 'test.t1.a' at row 53
+Warning 1366 Incorrect string value: '\x80U' for column 'test.t1.a' at row 54
+Warning 1366 Incorrect string value: '\x80V' for column 'test.t1.a' at row 55
+Warning 1366 Incorrect string value: '\x80W' for column 'test.t1.a' at row 56
+Warning 1366 Incorrect string value: '\x80X' for column 'test.t1.a' at row 57
+Warning 1366 Incorrect string value: '\x80Y' for column 'test.t1.a' at row 58
+Warning 1366 Incorrect string value: '\x80Z' for column 'test.t1.a' at row 59
+Warning 1366 Incorrect string value: '\x80[' for column 'test.t1.a' at row 60
+Warning 1366 Incorrect string value: '\x80\' for column 'test.t1.a' at row 61
+Warning 1366 Incorrect string value: '\x80]' for column 'test.t1.a' at row 62
+Warning 1366 Incorrect string value: '\x80^' for column 'test.t1.a' at row 63
+Warning 1366 Incorrect string value: '\x80_' for column 'test.t1.a' at row 64
SELECT COUNT(*) FROM t1 WHERE a<>'?';
COUNT(*)
23940
@@ -5192,25 +5192,25 @@ INSERT IGNORE INTO t3 (b,c,comment) SELECT b,b,comment FROM t2
WHERE type1='tail' OR type1='bad' OR type2='bad'
ORDER BY b;
Warnings:
-Warning 1366 Incorrect string value: '\xFF' for column 'c' at row 1
-Warning 1366 Incorrect string value: '\x80@' for column 'c' at row 2
-Warning 1366 Incorrect string value: '\x80\x80' for column 'c' at row 3
-Warning 1366 Incorrect string value: '\x80\x81' for column 'c' at row 4
-Warning 1366 Incorrect string value: '\x80\xA1@' for column 'c' at row 5
-Warning 1366 Incorrect string value: '\x80\xA1\xA3' for column 'c' at row 6
-Warning 1366 Incorrect string value: '\x80\xFE@' for column 'c' at row 7
-Warning 1366 Incorrect string value: '\x80\xFF' for column 'c' at row 8
-Warning 1366 Incorrect string value: '\x81\xFF' for column 'c' at row 9
-Warning 1366 Incorrect string value: '\xFF' for column 'c' at row 10
-Warning 1366 Incorrect string value: '\xFF' for column 'c' at row 11
-Warning 1366 Incorrect string value: '\xFF' for column 'c' at row 12
-Warning 1366 Incorrect string value: '\xFF@' for column 'c' at row 13
-Warning 1366 Incorrect string value: '\xFF\x80' for column 'c' at row 14
-Warning 1366 Incorrect string value: '\xFF\x81' for column 'c' at row 15
-Warning 1366 Incorrect string value: '\xFF\xA1@' for column 'c' at row 16
-Warning 1366 Incorrect string value: '\xFF\xA1\xA3' for column 'c' at row 17
-Warning 1366 Incorrect string value: '\xFF\xFE@' for column 'c' at row 18
-Warning 1366 Incorrect string value: '\xFF\xFF' for column 'c' at row 19
+Warning 1366 Incorrect string value: '\xFF' for column 'test.t3.c' at row 1
+Warning 1366 Incorrect string value: '\x80@' for column 'test.t3.c' at row 2
+Warning 1366 Incorrect string value: '\x80\x80' for column 'test.t3.c' at row 3
+Warning 1366 Incorrect string value: '\x80\x81' for column 'test.t3.c' at row 4
+Warning 1366 Incorrect string value: '\x80\xA1@' for column 'test.t3.c' at row 5
+Warning 1366 Incorrect string value: '\x80\xA1\xA3' for column 'test.t3.c' at row 6
+Warning 1366 Incorrect string value: '\x80\xFE@' for column 'test.t3.c' at row 7
+Warning 1366 Incorrect string value: '\x80\xFF' for column 'test.t3.c' at row 8
+Warning 1366 Incorrect string value: '\x81\xFF' for column 'test.t3.c' at row 9
+Warning 1366 Incorrect string value: '\xFF' for column 'test.t3.c' at row 10
+Warning 1366 Incorrect string value: '\xFF' for column 'test.t3.c' at row 11
+Warning 1366 Incorrect string value: '\xFF' for column 'test.t3.c' at row 12
+Warning 1366 Incorrect string value: '\xFF@' for column 'test.t3.c' at row 13
+Warning 1366 Incorrect string value: '\xFF\x80' for column 'test.t3.c' at row 14
+Warning 1366 Incorrect string value: '\xFF\x81' for column 'test.t3.c' at row 15
+Warning 1366 Incorrect string value: '\xFF\xA1@' for column 'test.t3.c' at row 16
+Warning 1366 Incorrect string value: '\xFF\xA1\xA3' for column 'test.t3.c' at row 17
+Warning 1366 Incorrect string value: '\xFF\xFE@' for column 'test.t3.c' at row 18
+Warning 1366 Incorrect string value: '\xFF\xFF' for column 'test.t3.c' at row 19
SELECT COUNT(*) FROM t3;
COUNT(*)
19
@@ -5248,14 +5248,14 @@ WHERE (FIND_IN_SET('mb2',type1) OR FIND_IN_SET('ascii',type1))
AND (FIND_IN_SET('tail',type2) AND NOT FIND_IN_SET('ascii',type2))
ORDER BY b;
Warnings:
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 1
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 2
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 3
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 4
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 5
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 6
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 7
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 8
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 1
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 2
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 3
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 4
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 5
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 6
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 7
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 8
SELECT COUNT(*) FROM t3;
COUNT(*)
8
@@ -5278,7 +5278,7 @@ DELETE FROM t3;
#
INSERT INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 ORDER BY b;
Warnings:
-Warning 1366 Incorrect string value: '\xA3' for column 'c' at row 5
+Warning 1366 Incorrect string value: '\xA3' for column 'test.t3.c' at row 5
SELECT COUNT(*) FROM t3;
COUNT(*)
6
@@ -5401,70 +5401,70 @@ INSERT IGNORE INTO t3 (b,c,comment) SELECT b,b,comment FROM t2
WHERE type1='tail' OR type1='bad' OR type2='bad' OR type3='bad'
ORDER BY b;
Warnings:
-Warning 1366 Incorrect string value: '\xFF' for column 'c' at row 1
-Warning 1366 Incorrect string value: '\x80\xFF' for column 'c' at row 2
-Warning 1366 Incorrect string value: '\x81\xFF' for column 'c' at row 3
-Warning 1366 Incorrect string value: '\xFF' for column 'c' at row 4
-Warning 1366 Incorrect string value: '\xFF' for column 'c' at row 5
-Warning 1366 Incorrect string value: '\xFF' for column 'c' at row 6
-Warning 1366 Incorrect string value: '\xFF@' for column 'c' at row 7
-Warning 1366 Incorrect string value: '\xFF\x80' for column 'c' at row 8
-Warning 1366 Incorrect string value: '\xFF\x81' for column 'c' at row 9
-Warning 1366 Incorrect string value: '\xFF\xA1@' for column 'c' at row 10
-Warning 1366 Incorrect string value: '\xFF\xA1\xA3' for column 'c' at row 11
-Warning 1366 Incorrect string value: '\xFF\xFE@' for column 'c' at row 12
-Warning 1366 Incorrect string value: '\xFF\xFF' for column 'c' at row 13
-Warning 1366 Incorrect string value: '\x80@@' for column 'c' at row 14
-Warning 1366 Incorrect string value: '\x80@\x80' for column 'c' at row 15
-Warning 1366 Incorrect string value: '\x80@\x81' for column 'c' at row 16
-Warning 1366 Incorrect string value: '\x80@\xA1@' for column 'c' at row 17
-Warning 1366 Incorrect string value: '\x80@\xA1\xA3' for column 'c' at row 18
-Warning 1366 Incorrect string value: '\x80@\xFE@' for column 'c' at row 19
-Warning 1366 Incorrect string value: '\x80@\xFF' for column 'c' at row 20
-Warning 1366 Incorrect string value: '\x80\x80@' for column 'c' at row 21
-Warning 1366 Incorrect string value: '\x80\x80\x80' for column 'c' at row 22
-Warning 1366 Incorrect string value: '\x80\x80\x81' for column 'c' at row 23
-Warning 1366 Incorrect string value: '\x80\x80\xA1@' for column 'c' at row 24
-Warning 1366 Incorrect string value: '\x80\x80\xA1\xA3' for column 'c' at row 25
-Warning 1366 Incorrect string value: '\x80\x80\xFE@' for column 'c' at row 26
-Warning 1366 Incorrect string value: '\x80\x80\xFF' for column 'c' at row 27
-Warning 1366 Incorrect string value: '\x80\x81@' for column 'c' at row 28
-Warning 1366 Incorrect string value: '\x80\x81\x80' for column 'c' at row 29
-Warning 1366 Incorrect string value: '\x80\x81\x81' for column 'c' at row 30
-Warning 1366 Incorrect string value: '\x80\x81\xA1@' for column 'c' at row 31
-Warning 1366 Incorrect string value: '\x80\x81\xA1\xA3' for column 'c' at row 32
-Warning 1366 Incorrect string value: '\x80\x81\xFE@' for column 'c' at row 33
-Warning 1366 Incorrect string value: '\x80\x81\xFF' for column 'c' at row 34
-Warning 1366 Incorrect string value: '\x80\xA1@@' for column 'c' at row 35
-Warning 1366 Incorrect string value: '\x80\xA1@\x80' for column 'c' at row 36
-Warning 1366 Incorrect string value: '\x80\xA1@\x81' for column 'c' at row 37
-Warning 1366 Incorrect string value: '\x80\xA1@\xA1@' for column 'c' at row 38
-Warning 1366 Incorrect string value: '\x80\xA1@\xA1\xA3' for column 'c' at row 39
-Warning 1366 Incorrect string value: '\x80\xA1@\xFE@' for column 'c' at row 40
-Warning 1366 Incorrect string value: '\x80\xA1@\xFF' for column 'c' at row 41
-Warning 1366 Incorrect string value: '\x80\xA1\xA3@' for column 'c' at row 42
-Warning 1366 Incorrect string value: '\x80\xA1\xA3\x80' for column 'c' at row 43
-Warning 1366 Incorrect string value: '\x80\xA1\xA3\x81' for column 'c' at row 44
-Warning 1366 Incorrect string value: '\x80\xA1\xA3\xA1@' for column 'c' at row 45
-Warning 1366 Incorrect string value: '\x80\xA1\xA3\xA1\xA3' for column 'c' at row 46
-Warning 1366 Incorrect string value: '\x80\xA1\xA3\xFE@' for column 'c' at row 47
-Warning 1366 Incorrect string value: '\x80\xA1\xA3\xFF' for column 'c' at row 48
-Warning 1366 Incorrect string value: '\x80\xFE@@' for column 'c' at row 49
-Warning 1366 Incorrect string value: '\x80\xFE@\x80' for column 'c' at row 50
-Warning 1366 Incorrect string value: '\x80\xFE@\x81' for column 'c' at row 51
-Warning 1366 Incorrect string value: '\x80\xFE@\xA1@' for column 'c' at row 52
-Warning 1366 Incorrect string value: '\x80\xFE@\xA1\xA3' for column 'c' at row 53
-Warning 1366 Incorrect string value: '\x80\xFE@\xFE@' for column 'c' at row 54
-Warning 1366 Incorrect string value: '\x80\xFE@\xFF' for column 'c' at row 55
-Warning 1366 Incorrect string value: '\x80\xFF@' for column 'c' at row 56
-Warning 1366 Incorrect string value: '\x80\xFF\x80' for column 'c' at row 57
-Warning 1366 Incorrect string value: '\x80\xFF\x81' for column 'c' at row 58
-Warning 1366 Incorrect string value: '\x80\xFF\xA1@' for column 'c' at row 59
-Warning 1366 Incorrect string value: '\x80\xFF\xA1\xA3' for column 'c' at row 60
-Warning 1366 Incorrect string value: '\x80\xFF\xFE@' for column 'c' at row 61
-Warning 1366 Incorrect string value: '\x80\xFF\xFF' for column 'c' at row 62
-Warning 1366 Incorrect string value: '\xFF' for column 'c' at row 63
-Warning 1366 Incorrect string value: '\xFF' for column 'c' at row 64
+Warning 1366 Incorrect string value: '\xFF' for column 'test.t3.c' at row 1
+Warning 1366 Incorrect string value: '\x80\xFF' for column 'test.t3.c' at row 2
+Warning 1366 Incorrect string value: '\x81\xFF' for column 'test.t3.c' at row 3
+Warning 1366 Incorrect string value: '\xFF' for column 'test.t3.c' at row 4
+Warning 1366 Incorrect string value: '\xFF' for column 'test.t3.c' at row 5
+Warning 1366 Incorrect string value: '\xFF' for column 'test.t3.c' at row 6
+Warning 1366 Incorrect string value: '\xFF@' for column 'test.t3.c' at row 7
+Warning 1366 Incorrect string value: '\xFF\x80' for column 'test.t3.c' at row 8
+Warning 1366 Incorrect string value: '\xFF\x81' for column 'test.t3.c' at row 9
+Warning 1366 Incorrect string value: '\xFF\xA1@' for column 'test.t3.c' at row 10
+Warning 1366 Incorrect string value: '\xFF\xA1\xA3' for column 'test.t3.c' at row 11
+Warning 1366 Incorrect string value: '\xFF\xFE@' for column 'test.t3.c' at row 12
+Warning 1366 Incorrect string value: '\xFF\xFF' for column 'test.t3.c' at row 13
+Warning 1366 Incorrect string value: '\x80@@' for column 'test.t3.c' at row 14
+Warning 1366 Incorrect string value: '\x80@\x80' for column 'test.t3.c' at row 15
+Warning 1366 Incorrect string value: '\x80@\x81' for column 'test.t3.c' at row 16
+Warning 1366 Incorrect string value: '\x80@\xA1@' for column 'test.t3.c' at row 17
+Warning 1366 Incorrect string value: '\x80@\xA1\xA3' for column 'test.t3.c' at row 18
+Warning 1366 Incorrect string value: '\x80@\xFE@' for column 'test.t3.c' at row 19
+Warning 1366 Incorrect string value: '\x80@\xFF' for column 'test.t3.c' at row 20
+Warning 1366 Incorrect string value: '\x80\x80@' for column 'test.t3.c' at row 21
+Warning 1366 Incorrect string value: '\x80\x80\x80' for column 'test.t3.c' at row 22
+Warning 1366 Incorrect string value: '\x80\x80\x81' for column 'test.t3.c' at row 23
+Warning 1366 Incorrect string value: '\x80\x80\xA1@' for column 'test.t3.c' at row 24
+Warning 1366 Incorrect string value: '\x80\x80\xA1\xA3' for column 'test.t3.c' at row 25
+Warning 1366 Incorrect string value: '\x80\x80\xFE@' for column 'test.t3.c' at row 26
+Warning 1366 Incorrect string value: '\x80\x80\xFF' for column 'test.t3.c' at row 27
+Warning 1366 Incorrect string value: '\x80\x81@' for column 'test.t3.c' at row 28
+Warning 1366 Incorrect string value: '\x80\x81\x80' for column 'test.t3.c' at row 29
+Warning 1366 Incorrect string value: '\x80\x81\x81' for column 'test.t3.c' at row 30
+Warning 1366 Incorrect string value: '\x80\x81\xA1@' for column 'test.t3.c' at row 31
+Warning 1366 Incorrect string value: '\x80\x81\xA1\xA3' for column 'test.t3.c' at row 32
+Warning 1366 Incorrect string value: '\x80\x81\xFE@' for column 'test.t3.c' at row 33
+Warning 1366 Incorrect string value: '\x80\x81\xFF' for column 'test.t3.c' at row 34
+Warning 1366 Incorrect string value: '\x80\xA1@@' for column 'test.t3.c' at row 35
+Warning 1366 Incorrect string value: '\x80\xA1@\x80' for column 'test.t3.c' at row 36
+Warning 1366 Incorrect string value: '\x80\xA1@\x81' for column 'test.t3.c' at row 37
+Warning 1366 Incorrect string value: '\x80\xA1@\xA1@' for column 'test.t3.c' at row 38
+Warning 1366 Incorrect string value: '\x80\xA1@\xA1\xA3' for column 'test.t3.c' at row 39
+Warning 1366 Incorrect string value: '\x80\xA1@\xFE@' for column 'test.t3.c' at row 40
+Warning 1366 Incorrect string value: '\x80\xA1@\xFF' for column 'test.t3.c' at row 41
+Warning 1366 Incorrect string value: '\x80\xA1\xA3@' for column 'test.t3.c' at row 42
+Warning 1366 Incorrect string value: '\x80\xA1\xA3\x80' for column 'test.t3.c' at row 43
+Warning 1366 Incorrect string value: '\x80\xA1\xA3\x81' for column 'test.t3.c' at row 44
+Warning 1366 Incorrect string value: '\x80\xA1\xA3\xA1@' for column 'test.t3.c' at row 45
+Warning 1366 Incorrect string value: '\x80\xA1\xA3\xA1\xA3' for column 'test.t3.c' at row 46
+Warning 1366 Incorrect string value: '\x80\xA1\xA3\xFE@' for column 'test.t3.c' at row 47
+Warning 1366 Incorrect string value: '\x80\xA1\xA3\xFF' for column 'test.t3.c' at row 48
+Warning 1366 Incorrect string value: '\x80\xFE@@' for column 'test.t3.c' at row 49
+Warning 1366 Incorrect string value: '\x80\xFE@\x80' for column 'test.t3.c' at row 50
+Warning 1366 Incorrect string value: '\x80\xFE@\x81' for column 'test.t3.c' at row 51
+Warning 1366 Incorrect string value: '\x80\xFE@\xA1@' for column 'test.t3.c' at row 52
+Warning 1366 Incorrect string value: '\x80\xFE@\xA1\xA3' for column 'test.t3.c' at row 53
+Warning 1366 Incorrect string value: '\x80\xFE@\xFE@' for column 'test.t3.c' at row 54
+Warning 1366 Incorrect string value: '\x80\xFE@\xFF' for column 'test.t3.c' at row 55
+Warning 1366 Incorrect string value: '\x80\xFF@' for column 'test.t3.c' at row 56
+Warning 1366 Incorrect string value: '\x80\xFF\x80' for column 'test.t3.c' at row 57
+Warning 1366 Incorrect string value: '\x80\xFF\x81' for column 'test.t3.c' at row 58
+Warning 1366 Incorrect string value: '\x80\xFF\xA1@' for column 'test.t3.c' at row 59
+Warning 1366 Incorrect string value: '\x80\xFF\xA1\xA3' for column 'test.t3.c' at row 60
+Warning 1366 Incorrect string value: '\x80\xFF\xFE@' for column 'test.t3.c' at row 61
+Warning 1366 Incorrect string value: '\x80\xFF\xFF' for column 'test.t3.c' at row 62
+Warning 1366 Incorrect string value: '\xFF' for column 'test.t3.c' at row 63
+Warning 1366 Incorrect string value: '\xFF' for column 'test.t3.c' at row 64
SELECT COUNT(*) FROM t3;
COUNT(*)
163
@@ -5646,30 +5646,30 @@ WHERE (FIND_IN_SET('mb2',type1) OR FIND_IN_SET('ascii',type1))
AND type2='tail'
ORDER BY b;
Warnings:
-Warning 1366 Incorrect string value: '\x80@' for column 'c' at row 1
-Warning 1366 Incorrect string value: '\x80\x80' for column 'c' at row 2
-Warning 1366 Incorrect string value: '\x80\x81' for column 'c' at row 3
-Warning 1366 Incorrect string value: '\x80\xA1@' for column 'c' at row 4
-Warning 1366 Incorrect string value: '\x80\xA1\xA3' for column 'c' at row 5
-Warning 1366 Incorrect string value: '\x80\xFE@' for column 'c' at row 6
-Warning 1366 Incorrect string value: '\x80@' for column 'c' at row 7
-Warning 1366 Incorrect string value: '\x80\x80' for column 'c' at row 8
-Warning 1366 Incorrect string value: '\x80\x81' for column 'c' at row 9
-Warning 1366 Incorrect string value: '\x80\xA1@' for column 'c' at row 10
-Warning 1366 Incorrect string value: '\x80\xA1\xA3' for column 'c' at row 11
-Warning 1366 Incorrect string value: '\x80\xFE@' for column 'c' at row 12
-Warning 1366 Incorrect string value: '\x80@' for column 'c' at row 13
-Warning 1366 Incorrect string value: '\x80\x80' for column 'c' at row 14
-Warning 1366 Incorrect string value: '\x80\x81' for column 'c' at row 15
-Warning 1366 Incorrect string value: '\x80\xA1@' for column 'c' at row 16
-Warning 1366 Incorrect string value: '\x80\xA1\xA3' for column 'c' at row 17
-Warning 1366 Incorrect string value: '\x80\xFE@' for column 'c' at row 18
-Warning 1366 Incorrect string value: '\x80@' for column 'c' at row 19
-Warning 1366 Incorrect string value: '\x80\x80' for column 'c' at row 20
-Warning 1366 Incorrect string value: '\x80\x81' for column 'c' at row 21
-Warning 1366 Incorrect string value: '\x80\xA1@' for column 'c' at row 22
-Warning 1366 Incorrect string value: '\x80\xA1\xA3' for column 'c' at row 23
-Warning 1366 Incorrect string value: '\x80\xFE@' for column 'c' at row 24
+Warning 1366 Incorrect string value: '\x80@' for column 'test.t3.c' at row 1
+Warning 1366 Incorrect string value: '\x80\x80' for column 'test.t3.c' at row 2
+Warning 1366 Incorrect string value: '\x80\x81' for column 'test.t3.c' at row 3
+Warning 1366 Incorrect string value: '\x80\xA1@' for column 'test.t3.c' at row 4
+Warning 1366 Incorrect string value: '\x80\xA1\xA3' for column 'test.t3.c' at row 5
+Warning 1366 Incorrect string value: '\x80\xFE@' for column 'test.t3.c' at row 6
+Warning 1366 Incorrect string value: '\x80@' for column 'test.t3.c' at row 7
+Warning 1366 Incorrect string value: '\x80\x80' for column 'test.t3.c' at row 8
+Warning 1366 Incorrect string value: '\x80\x81' for column 'test.t3.c' at row 9
+Warning 1366 Incorrect string value: '\x80\xA1@' for column 'test.t3.c' at row 10
+Warning 1366 Incorrect string value: '\x80\xA1\xA3' for column 'test.t3.c' at row 11
+Warning 1366 Incorrect string value: '\x80\xFE@' for column 'test.t3.c' at row 12
+Warning 1366 Incorrect string value: '\x80@' for column 'test.t3.c' at row 13
+Warning 1366 Incorrect string value: '\x80\x80' for column 'test.t3.c' at row 14
+Warning 1366 Incorrect string value: '\x80\x81' for column 'test.t3.c' at row 15
+Warning 1366 Incorrect string value: '\x80\xA1@' for column 'test.t3.c' at row 16
+Warning 1366 Incorrect string value: '\x80\xA1\xA3' for column 'test.t3.c' at row 17
+Warning 1366 Incorrect string value: '\x80\xFE@' for column 'test.t3.c' at row 18
+Warning 1366 Incorrect string value: '\x80@' for column 'test.t3.c' at row 19
+Warning 1366 Incorrect string value: '\x80\x80' for column 'test.t3.c' at row 20
+Warning 1366 Incorrect string value: '\x80\x81' for column 'test.t3.c' at row 21
+Warning 1366 Incorrect string value: '\x80\xA1@' for column 'test.t3.c' at row 22
+Warning 1366 Incorrect string value: '\x80\xA1\xA3' for column 'test.t3.c' at row 23
+Warning 1366 Incorrect string value: '\x80\xFE@' for column 'test.t3.c' at row 24
SELECT COUNT(*) FROM t3;
COUNT(*)
24
@@ -5713,22 +5713,22 @@ WHERE (FIND_IN_SET('mb2',type1) OR FIND_IN_SET('ascii',type1)) AND
type3='tail'
ORDER BY b;
Warnings:
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 1
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 2
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 3
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 4
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 5
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 6
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 7
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 8
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 9
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 10
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 11
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 12
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 13
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 14
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 15
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 16
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 1
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 2
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 3
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 4
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 5
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 6
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 7
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 8
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 9
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 10
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 11
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 12
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 13
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 14
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 15
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 16
SELECT COUNT(*) FROM t3;
COUNT(*)
16
@@ -5764,15 +5764,15 @@ AND NOT FIND_IN_SET('ascii',type3)
AND NOT FIND_IN_SET('mb2',type3)
ORDER BY b;
Warnings:
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 1
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 2
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 3
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 4
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 5
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 6
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 7
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 8
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 9
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 1
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 2
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 3
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 4
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 5
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 6
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 7
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 8
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 9
SELECT COUNT(*) FROM t3;
COUNT(*)
9
@@ -5848,28 +5848,28 @@ DELETE FROM t2 WHERE b IN (SELECT b FROM t3);
DELETE FROM t3;
INSERT IGNORE INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 ORDER BY b;
Warnings:
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 1
-Warning 1366 Incorrect string value: '\xA3' for column 'c' at row 3
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 5
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 6
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 7
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 9
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 10
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 12
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 13
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 15
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 16
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 18
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 19
-Warning 1366 Incorrect string value: '\xA3' for column 'c' at row 27
-Warning 1366 Incorrect string value: '\x80' for column 'c' at row 30
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 31
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 35
-Warning 1366 Incorrect string value: '\xA3' for column 'c' at row 37
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 39
-Warning 1366 Incorrect string value: '\xA3' for column 'c' at row 41
-Warning 1366 Incorrect string value: '\x81' for column 'c' at row 43
-Warning 1366 Incorrect string value: '\xA3' for column 'c' at row 45
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 1
+Warning 1366 Incorrect string value: '\xA3' for column 'test.t3.c' at row 3
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 5
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 6
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 7
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 9
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 10
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 12
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 13
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 15
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 16
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 18
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 19
+Warning 1366 Incorrect string value: '\xA3' for column 'test.t3.c' at row 27
+Warning 1366 Incorrect string value: '\x80' for column 'test.t3.c' at row 30
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 31
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 35
+Warning 1366 Incorrect string value: '\xA3' for column 'test.t3.c' at row 37
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 39
+Warning 1366 Incorrect string value: '\xA3' for column 'test.t3.c' at row 41
+Warning 1366 Incorrect string value: '\x81' for column 'test.t3.c' at row 43
+Warning 1366 Incorrect string value: '\xA3' for column 'test.t3.c' at row 45
SELECT COUNT(*) FROM t3;
COUNT(*)
46
diff --git a/mysql-test/r/ctype_latin1.result b/mysql-test/r/ctype_latin1.result
index 9899342..4d496c7 100644
--- a/mysql-test/r/ctype_latin1.result
+++ b/mysql-test/r/ctype_latin1.result
@@ -7987,12 +7987,12 @@ SET NAMES utf8;
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1);
INSERT IGNORE INTO t1 VALUES ('�'),('�#');
Warnings:
-Warning 1366 Incorrect string value: '\xC2' for column 'a' at row 1
-Warning 1366 Incorrect string value: '\xC2#' for column 'a' at row 2
+Warning 1366 Incorrect string value: '\xC2' for column 'test.t1.a' at row 1
+Warning 1366 Incorrect string value: '\xC2#' for column 'test.t1.a' at row 2
SHOW WARNINGS;
Level Code Message
-Warning 1366 Incorrect string value: '\xC2' for column 'a' at row 1
-Warning 1366 Incorrect string value: '\xC2#' for column 'a' at row 2
+Warning 1366 Incorrect string value: '\xC2' for column 'test.t1.a' at row 1
+Warning 1366 Incorrect string value: '\xC2#' for column 'test.t1.a' at row 2
SELECT HEX(a),a FROM t1;
HEX(a) a
3F ?
diff --git a/mysql-test/r/ctype_many.result b/mysql-test/r/ctype_many.result
index d73a478..ce05015 100644
--- a/mysql-test/r/ctype_many.result
+++ b/mysql-test/r/ctype_many.result
@@ -1767,8 +1767,8 @@ CREATE TABLE t2 (a VARCHAR(10) CHARACTER SET ucs2);
INSERT INTO t1 VALUES (0x10082), (0x12345);
INSERT IGNORE INTO t2 SELECT * FROM t1;
Warnings:
-Warning 1366 Incorrect string value: '\x00\x01\x00\x82' for column 'a' at row 1
-Warning 1366 Incorrect string value: '\x00\x01\x23\x45' for column 'a' at row 2
+Warning 1366 Incorrect string value: '\x00\x01\x00\x82' for column 'test.t2.a' at row 1
+Warning 1366 Incorrect string value: '\x00\x01\x23\x45' for column 'test.t2.a' at row 2
SELECT HEX(a) FROM t2;
HEX(a)
003F
diff --git a/mysql-test/r/ctype_recoding.result b/mysql-test/r/ctype_recoding.result
index 806d9dc..40c67ad 100644
--- a/mysql-test/r/ctype_recoding.result
+++ b/mysql-test/r/ctype_recoding.result
@@ -171,8 +171,8 @@ create table t1 (a char(10) character set koi8r, b text character set koi8r);
insert into t1 values ('test','test');
insert ignore into t1 values ('����','����');
Warnings:
-Warning 1366 Incorrect string value: '\xCA\xC3\xD5\xCB' for column 'a' at row 1
-Warning 1366 Incorrect string value: '\xCA\xC3\xD5\xCB' for column 'b' at row 1
+Warning 1366 Incorrect string value: '\xCA\xC3\xD5\xCB' for column 'test.t1.a' at row 1
+Warning 1366 Incorrect string value: '\xCA\xC3\xD5\xCB' for column 'test.t1.b' at row 1
drop table t1;
set names koi8r;
create table t1 (a char(10) character set cp1251);
diff --git a/sql/field.cc b/sql/field.cc
index caa84dc..5a97deb 100644
--- a/sql/field.cc
+++ b/sql/field.cc
@@ -8599,6 +8599,24 @@ int Field_geom::store_decimal(const my_decimal *)
}
+static char *long_field_name(char *buf, size_t buf_len,
+ const TABLE_SHARE *s, const char *field_name)
+{
+ bool is_temp= !s||
+ (tmp_file_prefix_length < s->table_name.length &&
+ memcmp(s->table_name.str,
+ tmp_file_prefix, tmp_file_prefix_length) == 0);
+
+ if (is_temp)
+ strxnmov(buf, buf_len, "{temporary}.", field_name, NullS);
+ else
+ strxnmov(buf, buf_len,
+ s->db.str, ".", s->table_name.str, ".", field_name, NullS);
+
+ return buf;
+}
+
+
int Field_geom::store(const char *from, uint length, CHARSET_INFO *cs)
{
if (!length)
@@ -8620,10 +8638,11 @@ int Field_geom::store(const char *from, uint length, CHARSET_INFO *cs)
geom_type != Field::GEOM_GEOMETRYCOLLECTION &&
(uint32) geom_type != wkb_type)
{
+ char buf[193];
my_error(ER_TRUNCATED_WRONG_VALUE_FOR_FIELD, MYF(0),
Geometry::ci_collection[geom_type]->m_name.str,
Geometry::ci_collection[wkb_type]->m_name.str,
- field_name,
+ long_field_name(buf, sizeof(buf), table->s, field_name),
(ulong) table->in_use->get_stmt_da()->
current_row_for_warning());
goto err_exit;
@@ -10787,7 +10806,11 @@ void Field::set_datetime_warning(Sql_condition::enum_warning_level level,
{
THD *thd= get_thd();
if (thd->really_abort_on_warning() && level >= Sql_condition::WARN_LEVEL_WARN)
- make_truncated_value_warning(thd, level, str, ts_type, field_name);
+ {
+ char buf[193];
+ make_truncated_value_warning(thd, level, str, ts_type,
+ long_field_name(buf, sizeof(buf), table->s, field_name));
+ }
else
set_warning(level, code, cuted_increment);
}
@@ -10797,10 +10820,13 @@ void Field::set_warning_truncated_wrong_value(const char *type_arg,
const char *value)
{
THD *thd= get_thd();
+ char buf[193];
+
push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN,
ER_TRUNCATED_WRONG_VALUE_FOR_FIELD,
ER_THD(thd, ER_TRUNCATED_WRONG_VALUE_FOR_FIELD),
- type_arg, value, field_name,
+ type_arg, value,
+ long_field_name(buf, sizeof(buf), table->s, field_name),
static_cast<ulong>(thd->get_stmt_da()->
current_row_for_warning()));
}
1
0

[Commits] 621ade37706: MDEV-14791: Crash with order by expression containing window functions
by varunraiko1803@gmail.com 02 Nov '18
by varunraiko1803@gmail.com 02 Nov '18
02 Nov '18
revision-id: 621ade377068a00aa73502e75ae5ed0ccee9d573 (mariadb-10.2.16-222-g621ade37706)
parent(s): 1c6b982e02eeaa75bb6c2f2a3c2b64491dd6d3c8
author: Varun Gupta
committer: Varun Gupta
timestamp: 2018-11-02 22:25:11 +0530
message:
MDEV-14791: Crash with order by expression containing window functions
The issue here is that for a window function in the ORDER BY clause, we were not
creating an extra field in the temporary table for the window function
(which is contained in an expression).
So a call to split_sum_func is added to handle this case
Also we need to update all items that contain a window function
in the temp table during window function computation as filesort would need
these values to be updated to calculate the ORDER BY clause of the select
---
mysql-test/r/win.result | 29 +++++++++++++++++++++++++++++
mysql-test/t/win.test | 25 +++++++++++++++++++++++++
sql/sql_select.cc | 24 ++----------------------
sql/sql_window.cc | 27 +++++++++++++++++++++++++++
4 files changed, 83 insertions(+), 22 deletions(-)
diff --git a/mysql-test/r/win.result b/mysql-test/r/win.result
index 790b264fc09..905a7e49a06 100644
--- a/mysql-test/r/win.result
+++ b/mysql-test/r/win.result
@@ -3361,3 +3361,32 @@ Esben Tuning 31 68.7500
Kaolin Tuning 88 68.7500
Tatiana Tuning 83 68.7500
drop table t1;
+#
+# MDEV-14791: Crash with order by expression containing window functions
+#
+CREATE TABLE t1 (b1 int, b2 int);
+INSERT INTO t1 VALUES (1,1),(0,0);
+explain
+SELECT b1
+from t1
+order by row_number() over (ORDER BY b2) + 1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
+SELECT b1
+from t1
+order by row_number() over (ORDER BY b2) + 1;
+b1
+0
+1
+explain SELECT b1
+from t1
+order by row_number() over (ORDER BY b2);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
+SELECT b1
+from t1
+order by row_number() over (ORDER BY b2);
+b1
+0
+1
+DROP TABLE t1;
diff --git a/mysql-test/t/win.test b/mysql-test/t/win.test
index e9c8ee05773..b13c1471346 100644
--- a/mysql-test/t/win.test
+++ b/mysql-test/t/win.test
@@ -2119,3 +2119,28 @@ SELECT name, test, score,
FROM t1
ORDER BY test, name;
drop table t1;
+
+--echo #
+--echo # MDEV-14791: Crash with order by expression containing window functions
+--echo #
+
+CREATE TABLE t1 (b1 int, b2 int);
+INSERT INTO t1 VALUES (1,1),(0,0);
+
+explain
+SELECT b1
+from t1
+order by row_number() over (ORDER BY b2) + 1;
+
+SELECT b1
+from t1
+order by row_number() over (ORDER BY b2) + 1;
+
+explain SELECT b1
+from t1
+order by row_number() over (ORDER BY b2);
+
+SELECT b1
+from t1
+order by row_number() over (ORDER BY b2);
+DROP TABLE t1;
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 0cdecf1bf2e..70e4d1d37f8 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -933,7 +933,8 @@ JOIN::prepare(TABLE_LIST *tables_init,
item->max_length)))
real_order= TRUE;
- if (item->with_sum_func && item->type() != Item::SUM_FUNC_ITEM)
+ if ((item->with_sum_func && item->type() != Item::SUM_FUNC_ITEM) ||
+ item->with_window_func)
item->split_sum_func(thd, ref_ptrs, all_fields, 0);
}
if (!real_order)
@@ -26681,27 +26682,6 @@ AGGR_OP::end_send()
}
else
{
- /*
- In case we have window functions present, an extra step is required
- to compute all the fields from the temporary table.
- In case we have a compound expression such as: expr + expr,
- where one of the terms has a window function inside it, only
- after computing window function values we actually know the true
- final result of the compounded expression.
-
- Go through all the func items and save their values once again in the
- corresponding temp table fields. Do this for each row in the table.
- */
- if (join_tab->window_funcs_step)
- {
- Item **func_ptr= join_tab->tmp_table_param->items_to_copy;
- Item *func;
- for (; (func = *func_ptr) ; func_ptr++)
- {
- if (func->with_window_func)
- func->save_in_result_field(true);
- }
- }
rc= evaluate_join_record(join, join_tab, 0);
}
}
diff --git a/sql/sql_window.cc b/sql/sql_window.cc
index 465c6ae032c..9fb10339e35 100644
--- a/sql/sql_window.cc
+++ b/sql/sql_window.cc
@@ -2511,11 +2511,38 @@ bool save_window_function_values(List<Item_window_func>& window_functions,
TABLE *tbl, uchar *rowid_buf)
{
List_iterator_fast<Item_window_func> iter(window_functions);
+ JOIN_TAB *join_tab= tbl->reginfo.join_tab;
tbl->file->ha_rnd_pos(tbl->record[0], rowid_buf);
store_record(tbl, record[1]);
while (Item_window_func *item_win= iter++)
item_win->save_in_field(item_win->result_field, true);
+ /*
+ In case we have window functions present, an extra step is required
+ to compute all the fields from the temporary table.
+ In case we have a compound expression such as: expr + expr,
+ where one of the terms has a window function inside it, only
+ after computing window function values we actually know the true
+ final result of the compounded expression.
+
+ Go through all the func items and save their values once again in the
+ corresponding temp table fields. Do this for each row in the table.
+
+ This needs to be done earlier because ORDER BY clause can also have
+ a window function, so we need to make sure all the fields of the temp.table
+ are updated before we do the filesort. So is best to update the other fields
+ that contain the window functions along with the computation of window
+ functions.
+ */
+
+ Item **func_ptr= join_tab->tmp_table_param->items_to_copy;
+ Item *func;
+ for (; (func = *func_ptr) ; func_ptr++)
+ {
+ if (func->with_window_func)
+ func->save_in_result_field(true);
+ }
+
int err= tbl->file->ha_update_row(tbl->record[1], tbl->record[0]);
if (err && err != HA_ERR_RECORD_IS_THE_SAME)
return true;
1
0

[Commits] e9a7c9e28c8: MDEV-11167: InnoDB: Warning: using a partial-field key prefix in search, results in assertion failure or "Can't find record" error
by Oleksandr Byelkin 02 Nov '18
by Oleksandr Byelkin 02 Nov '18
02 Nov '18
revision-id: e9a7c9e28c8f28447a29c59585d08f88ce0772db (mariadb-10.1.35-40-ge9a7c9e28c8)
parent(s): 62dbf4f18d47a1e26f5fd7a0d6683494fb203a44
author: Oleksandr Byelkin
committer: Oleksandr Byelkin
timestamp: 2018-11-02 17:54:35 +0100
message:
MDEV-11167: InnoDB: Warning: using a partial-field key prefix in search, results in assertion failure or "Can't find record" error
Fix ha_rnd_init() argument (we do not doing scan but use rnd_pos)
---
mysql-test/r/partition_innodb.result | 26 ++++++++++++++++++++++++++
mysql-test/t/partition_innodb.test | 30 ++++++++++++++++++++++++++++++
sql/sql_update.cc | 2 +-
3 files changed, 57 insertions(+), 1 deletion(-)
diff --git a/mysql-test/r/partition_innodb.result b/mysql-test/r/partition_innodb.result
index b322d63a7e1..e08ee24bb69 100644
--- a/mysql-test/r/partition_innodb.result
+++ b/mysql-test/r/partition_innodb.result
@@ -892,3 +892,29 @@ ERROR HY000: Table definition has changed, please retry transaction
SELECT b FROM t1 WHERE b = 0;
ERROR HY000: Table definition has changed, please retry transaction
DROP TABLE t1;
+#
+# MDEV-11167: InnoDB: Warning: using a partial-field key prefix
+# in search, results in assertion failure or "Can't find record" error
+#
+CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+CREATE TABLE t2 (b INT, c INT, KEY(b)) ENGINE=InnoDB PARTITION BY HASH(c) PARTITIONS 2;
+CREATE ALGORITHM = MERGE VIEW v AS SELECT a, b FROM t1 STRAIGHT_JOIN t2 WHERE b = 'foo' WITH CHECK OPTION;
+INSERT INTO t1 VALUES (1),(2);
+INSERT IGNORE INTO t2 VALUES (2,2),('three',3),(4,4);
+Warnings:
+Warning 1366 Incorrect integer value: 'three' for column 'b' at row 2
+UPDATE v SET a = NULL ORDER BY a, b;
+Warnings:
+Warning 1292 Truncated incorrect DOUBLE value: 'foo'
+DROP view v;
+DROP TABLE t1, t2;
+SET @save_isp=@@innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent= ON;
+CREATE TABLE t (f1 INT, f2 INT, KEY(f2)) ENGINE=InnoDB PARTITION BY HASH (f1) PARTITIONS 2;
+INSERT IGNORE INTO t VALUES (NULL,0),(NULL,0),(0,21),(4,0),(1,8),(5,66);
+CREATE ALGORITHM=MERGE VIEW v AS SELECT t1.* FROM t t1 JOIN t t2 WHERE t1.f1 < t2.f2 WITH LOCAL CHECK OPTION;
+UPDATE v SET f2 = NULL;
+ERROR HY000: CHECK OPTION failed 'test.v'
+SET GLOBAL innodb_stats_persistent= @save_isp;
+DROP view v;
+DROP TABLE t;
diff --git a/mysql-test/t/partition_innodb.test b/mysql-test/t/partition_innodb.test
index 00af34f9d26..c6a94d17c04 100644
--- a/mysql-test/t/partition_innodb.test
+++ b/mysql-test/t/partition_innodb.test
@@ -998,3 +998,33 @@ SELECT b FROM t1 WHERE b = 0;
SELECT b FROM t1 WHERE b = 0;
--disconnect con1
DROP TABLE t1;
+
+--echo #
+--echo # MDEV-11167: InnoDB: Warning: using a partial-field key prefix
+--echo # in search, results in assertion failure or "Can't find record" error
+--echo #
+
+CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+CREATE TABLE t2 (b INT, c INT, KEY(b)) ENGINE=InnoDB PARTITION BY HASH(c) PARTITIONS 2;
+CREATE ALGORITHM = MERGE VIEW v AS SELECT a, b FROM t1 STRAIGHT_JOIN t2 WHERE b = 'foo' WITH CHECK OPTION;
+
+INSERT INTO t1 VALUES (1),(2);
+INSERT IGNORE INTO t2 VALUES (2,2),('three',3),(4,4);
+UPDATE v SET a = NULL ORDER BY a, b;
+
+DROP view v;
+DROP TABLE t1, t2;
+
+SET @save_isp=@@innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent= ON;
+
+CREATE TABLE t (f1 INT, f2 INT, KEY(f2)) ENGINE=InnoDB PARTITION BY HASH (f1) PARTITIONS 2;
+INSERT IGNORE INTO t VALUES (NULL,0),(NULL,0),(0,21),(4,0),(1,8),(5,66);
+CREATE ALGORITHM=MERGE VIEW v AS SELECT t1.* FROM t t1 JOIN t t2 WHERE t1.f1 < t2.f2 WITH LOCAL CHECK OPTION;
+--error ER_VIEW_CHECK_FAILED
+UPDATE v SET f2 = NULL;
+
+SET GLOBAL innodb_stats_persistent= @save_isp;
+DROP view v;
+DROP TABLE t;
+
diff --git a/sql/sql_update.cc b/sql/sql_update.cc
index db9f9013188..5df3f3db784 100644
--- a/sql/sql_update.cc
+++ b/sql/sql_update.cc
@@ -2347,7 +2347,7 @@ int multi_update::do_updates()
check_opt_it.rewind();
while(TABLE *tbl= check_opt_it++)
{
- if ((local_error= tbl->file->ha_rnd_init(1)))
+ if ((local_error= tbl->file->ha_rnd_init(0)))
{
err_table= tbl;
goto err;
1
0
revision-id: d9415d74fa9de87c50a9565521d923432f0d82b2 (mariadb-10.3.6-183-gd9415d74fa9)
parent(s): 4866bd24e1a02530eddeea3a733970259d646a86
author: Jan Lindström
committer: Jan Lindström
timestamp: 2018-11-02 16:10:45 +0200
message:
Fix embedded compilation.
---
sql/sql_alter.cc | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sql/sql_alter.cc b/sql/sql_alter.cc
index 958fc2c9566..b1dc1325870 100644
--- a/sql/sql_alter.cc
+++ b/sql/sql_alter.cc
@@ -476,6 +476,7 @@ bool Sql_cmd_alter_table::execute(THD *thd)
thd->work_part_info= 0;
#endif
+#ifdef WITH_WSREP
if (WSREP(thd) &&
(!thd->is_current_stmt_binlog_format_row() ||
!thd->find_temporary_table(first_table)))
@@ -487,6 +488,7 @@ bool Sql_cmd_alter_table::execute(THD *thd)
thd->variables.auto_increment_offset = 1;
thd->variables.auto_increment_increment = 1;
}
+#endif
result= mysql_alter_table(thd, &select_lex->db, &lex->name,
&create_info,
1
0
revision-id: 73c07803cb21f6818c675264faf705b53a2a1fc8 (mariadb-10.3.6-180-g73c07803cb2)
parent(s): a72d32f18de7f236a50dd6c63b538d6bae743cac
author: Jan Lindström
committer: Jan Lindström
timestamp: 2018-11-01 12:07:29 +0200
message:
Add wsrep-lib to source distribution.
---
cmake/make_dist.cmake.in | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/cmake/make_dist.cmake.in b/cmake/make_dist.cmake.in
index 6fad17137fd..8e77b700eb7 100644
--- a/cmake/make_dist.cmake.in
+++ b/cmake/make_dist.cmake.in
@@ -50,6 +50,14 @@ IF(GIT_EXECUTABLE)
IF(NOT RESULT EQUAL 0)
SET(GIT_EXECUTABLE)
ENDIF()
+ EXECUTE_PROCESS(
+ COMMAND "${GIT_EXECUTABLE}" submodule foreach "${GIT_EXECUTABLE} checkout-index --all --prefix=${PACKAGE_DIR}/wsrep-lib/$path/"
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/wsrep-lib
+ RESULT_VARIABLE RESULT
+ )
+ IF(NOT RESULT EQUAL 0)
+ SET(GIT_EXECUTABLE)
+ ENDIF()
ENDIF()
CONFIGURE_FILE(${CMAKE_BINARY_DIR}/include/source_revision.h
1
0
revision-id: b9a69f776d3dea825bc23759660258c28bf58cc7 (mariadb-galera-10.0.36-6-gb9a69f776d3)
parent(s): e16d91b889c3307ff1512d20221082e78cc8fcc0
author: Jan Lindström
committer: Jan Lindström
timestamp: 2018-11-01 10:49:53 +0200
message:
Fix wsrep.cnf installation.
---
support-files/CMakeLists.txt | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/support-files/CMakeLists.txt b/support-files/CMakeLists.txt
index c6ce2c04eb3..e51a78038ac 100644
--- a/support-files/CMakeLists.txt
+++ b/support-files/CMakeLists.txt
@@ -50,6 +50,13 @@ FOREACH(inifile my-huge my-innodb-heavy-4G my-large my-medium my-small)
ENDFOREACH()
ENDIF()
+IF(WITH_WSREP)
+ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/wsrep.cnf.sh
+ ${CMAKE_CURRENT_BINARY_DIR}/wsrep.${ini_file_extension} @ONLY)
+ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/wsrep.${ini_file_extension}
+ DESTINATION ${inst_location} COMPONENT IniFiles)
+ENDIF()
+
IF(UNIX)
SET(prefix ${CMAKE_INSTALL_PREFIX})
FOREACH(script mysqld_multi.server mysql-log-rotate binary-configure)
@@ -102,8 +109,6 @@ IF(UNIX)
DESTINATION ${inst_location} COMPONENT SupportFiles
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
- CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/wsrep.cnf.sh
- ${CMAKE_CURRENT_BINARY_DIR}/wsrep.cnf @ONLY)
IF (INSTALL_SYSCONFDIR)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mysql-log-rotate DESTINATION ${INSTALL_SYSCONFDIR}/logrotate.d
1
0