Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
44f9736e
Commit
44f9736e
authored
Oct 27, 2021
by
Marko Mäkelä
Browse files
Options
Browse Files
Download
Plain Diff
Merge 10.4 into 10.5
parents
49098bfd
05a0eae3
Changes
32
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
1092 additions
and
221 deletions
+1092
-221
include/scope.h
include/scope.h
+8
-0
mysql-test/main/alias.result
mysql-test/main/alias.result
+151
-0
mysql-test/main/alias.test
mysql-test/main/alias.test
+83
-0
mysql-test/main/cast.result
mysql-test/main/cast.result
+1
-1
mysql-test/main/ctype_big5.result
mysql-test/main/ctype_big5.result
+1
-1
mysql-test/main/ctype_cp932_binlog_stm.result
mysql-test/main/ctype_cp932_binlog_stm.result
+1
-1
mysql-test/main/ctype_gbk.result
mysql-test/main/ctype_gbk.result
+1
-1
mysql-test/main/ctype_latin1.result
mysql-test/main/ctype_latin1.result
+10
-10
mysql-test/main/ctype_sjis.result
mysql-test/main/ctype_sjis.result
+1
-1
mysql-test/main/ctype_utf8.result
mysql-test/main/ctype_utf8.result
+4
-4
mysql-test/main/ctype_utf8mb4.result
mysql-test/main/ctype_utf8mb4.result
+4
-4
mysql-test/main/ctype_utf8mb4_heap.result
mysql-test/main/ctype_utf8mb4_heap.result
+4
-4
mysql-test/main/ctype_utf8mb4_innodb.result
mysql-test/main/ctype_utf8mb4_innodb.result
+4
-4
mysql-test/main/ctype_utf8mb4_myisam.result
mysql-test/main/ctype_utf8mb4_myisam.result
+4
-4
mysql-test/main/opt_trace.result
mysql-test/main/opt_trace.result
+35
-0
mysql-test/main/opt_trace.test
mysql-test/main/opt_trace.test
+9
-0
mysql-test/main/plugin.result
mysql-test/main/plugin.result
+1
-1
mysql-test/suite/encryption/r/instant_alter_import.result
mysql-test/suite/encryption/r/instant_alter_import.result
+24
-0
mysql-test/suite/encryption/t/instant_alter_import.test
mysql-test/suite/encryption/t/instant_alter_import.test
+52
-0
mysql-test/suite/innodb/r/default_row_format_compatibility.result
...st/suite/innodb/r/default_row_format_compatibility.result
+2
-1
mysql-test/suite/innodb/r/full_crc32_import.result
mysql-test/suite/innodb/r/full_crc32_import.result
+2
-2
mysql-test/suite/innodb/r/innodb-wl5522-debug.result
mysql-test/suite/innodb/r/innodb-wl5522-debug.result
+1
-1
mysql-test/suite/innodb/r/instant_alter_import.result
mysql-test/suite/innodb/r/instant_alter_import.result
+46
-6
mysql-test/suite/innodb/t/default_row_format_compatibility.test
...test/suite/innodb/t/default_row_format_compatibility.test
+4
-1
mysql-test/suite/innodb/t/innodb-wl5522-debug.test
mysql-test/suite/innodb/t/innodb-wl5522-debug.test
+1
-1
mysql-test/suite/innodb/t/instant_alter_import.test
mysql-test/suite/innodb/t/instant_alter_import.test
+86
-7
mysql-test/suite/innodb_zip/r/wl5522_debug_zip.result
mysql-test/suite/innodb_zip/r/wl5522_debug_zip.result
+1
-1
mysql-test/suite/innodb_zip/t/wl5522_debug_zip.test
mysql-test/suite/innodb_zip/t/wl5522_debug_zip.test
+1
-1
sql/item.cc
sql/item.cc
+76
-20
storage/innobase/handler/ha_innodb.cc
storage/innobase/handler/ha_innodb.cc
+0
-19
storage/innobase/include/fil0fil.h
storage/innobase/include/fil0fil.h
+21
-15
storage/innobase/row/row0import.cc
storage/innobase/row/row0import.cc
+453
-110
No files found.
include/scope.h
View file @
44f9736e
...
...
@@ -64,3 +64,11 @@ make_scope_exit(Callable &&f)
return
detail
::
scope_exit
<
typename
std
::
decay
<
Callable
>::
type
>
(
std
::
forward
<
Callable
>
(
f
));
}
#define CONCAT_IMPL(x, y) x##y
#define CONCAT(x, y) CONCAT_IMPL(x, y)
#define ANONYMOUS_VARIABLE CONCAT(_anonymous_variable, __LINE__)
#define SCOPE_EXIT auto ANONYMOUS_VARIABLE= make_scope_exit
mysql-test/main/alias.result
View file @
44f9736e
...
...
@@ -219,6 +219,157 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
connection default;
disconnect c1;
#
# MDEV-25399 Assertion `name.length == strlen(name.str)' failed in Item_func_sp::make_send_field
#
SET sql_mode='';
CREATE FUNCTION f(i INT) RETURNS INT RETURN 1;
PREPARE s FROM "SELECT f('\0')";
EXECUTE s;
f('\x00')
1
DROP FUNCTION f;
SET sql_mode=DEFAULT;
#
# MDEV-22380: Assertion `name.length == strlen(name.str)' failed
# in Item::print_item_w_name on SELECT w/ optimizer_trace enabled
#
SELECT '' LIMIT 0;
CREATE TABLE t1 AS SELECT '';
ERROR 42000: Incorrect column name ''
CREATE PROCEDURE test_inject(arg TEXT CHARACTER SET latin1)
BEGIN
SET @stmt=CONCAT('SELECT ''', arg, ''', CONCAT(''', arg, ''') LIMIT 0');
PREPARE stmt FROM @stmt;
EXECUTE stmt;
SET @stmt=CONCAT('CREATE TABLE t1 AS ', @stmt);
PREPARE stmt FROM @stmt;
EXECUTE stmt;
SHOW CREATE TABLE t1;
DROP TABLE t1;
END;
$$
SELECT x'FF32', CONCAT(x'FF32') LIMIT 0;
x'FF32' CONCAT(x'FF32')
CREATE TABLE t1 AS SELECT x'FF32', CONCAT(x'FF32');
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`x'FF32'` varbinary(2) NOT NULL,
`CONCAT(x'FF32')` varbinary(2) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
CALL test_inject(x'FF32');
2 CONCAT('2')
Table Create Table
t1 CREATE TABLE `t1` (
`2` varchar(2) NOT NULL,
`CONCAT('2')` varchar(2) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SELECT x'32FF', CONCAT(x'32FF') LIMIT 0;
x'32FF' CONCAT(x'32FF')
CREATE TABLE t1 AS SELECT x'32FF', CONCAT(x'32FF');
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`x'32FF'` varbinary(2) NOT NULL,
`CONCAT(x'32FF')` varbinary(2) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
CALL test_inject(x'32FF');
2 CONCAT('2')
Table Create Table
t1 CREATE TABLE `t1` (
`2` varchar(2) NOT NULL,
`CONCAT('2')` varchar(2) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SELECT x'0032', CONCAT(x'0032') LIMIT 0;
x'0032' CONCAT(x'0032')
CREATE TABLE t1 AS SELECT x'0032', CONCAT(x'0032');
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`x'0032'` varbinary(2) NOT NULL,
`CONCAT(x'0032')` varbinary(2) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
CALL test_inject(x'0032');
2 CONCAT('\x002')
Table Create Table
t1 CREATE TABLE `t1` (
`2` varchar(2) NOT NULL,
`CONCAT('\x002')` varchar(2) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SELECT x'3200', CONCAT(x'3200') LIMIT 0;
x'3200' CONCAT(x'3200')
CREATE TABLE t1 AS SELECT x'3200', CONCAT(x'3200');
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`x'3200'` varbinary(2) NOT NULL,
`CONCAT(x'3200')` varbinary(2) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
CALL test_inject(x'3200');
2\x00 CONCAT('2\x00')
Table Create Table
t1 CREATE TABLE `t1` (
`2\x00` varchar(2) NOT NULL,
`CONCAT('2\x00')` varchar(2) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SELECT '0\a', CONCAT('0\a') LIMIT 0;
0a CONCAT('0\a')
CREATE TABLE t1 AS SELECT '0\a', CONCAT('0\a');
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`0a` varchar(2) NOT NULL,
`CONCAT('0\a')` varchar(2) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
CALL test_inject('0\a');
0a CONCAT('0a')
Table Create Table
t1 CREATE TABLE `t1` (
`0a` varchar(2) NOT NULL,
`CONCAT('0a')` varchar(2) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SELECT 'a\0', CONCAT('a\0') LIMIT 0;
a\x00 CONCAT('a\0')
CREATE TABLE t1 AS SELECT 'a\0', CONCAT('a\0');
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a\x00` varchar(2) NOT NULL,
`CONCAT('a\0')` varchar(2) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
CALL test_inject('a\0');
a\x00 CONCAT('a\x00')
Table Create Table
t1 CREATE TABLE `t1` (
`a\x00` varchar(2) NOT NULL,
`CONCAT('a\x00')` varchar(2) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SELECT 'a\0b', CONCAT('a\0b') LIMIT 0;
a\x00b CONCAT('a\0b')
CREATE TABLE t1 AS SELECT 'a\0b', CONCAT('a\0b');
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a\x00b` varchar(3) NOT NULL,
`CONCAT('a\0b')` varchar(3) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
CALL test_inject('a\0b');
a\x00b CONCAT('a\x00b')
Table Create Table
t1 CREATE TABLE `t1` (
`a\x00b` varchar(3) NOT NULL,
`CONCAT('a\x00b')` varchar(3) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP PROCEDURE test_inject;
#
# MDEV-23519
#
create or replace table t1 (a int);
...
...
mysql-test/main/alias.test
View file @
44f9736e
This diff is collapsed.
Click to expand it.
mysql-test/main/cast.result
View file @
44f9736e
No preview for this file type
mysql-test/main/ctype_big5.result
View file @
44f9736e
...
...
@@ -4710,7 +4710,7 @@ SELECT @@character_set_client, @@character_set_connection, @@character_set_resul
@@character_set_client @@character_set_connection @@character_set_results
binary big5 binary
SELECT HEX('\['), HEX('\\[');
HEX('\
[') HEX('\
\[')
HEX('\
xE0\[') HEX('\\xE0
\[')
E05B E05B
CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0;
SHOW CREATE TABLE t1;
...
...
mysql-test/main/ctype_cp932_binlog_stm.result
View file @
44f9736e
...
...
@@ -20418,7 +20418,7 @@ SELECT @@character_set_client, @@character_set_connection, @@character_set_resul
@@character_set_client @@character_set_connection @@character_set_results
binary cp932 binary
SELECT HEX('à\['), HEX('\à\[');
HEX('à
\[') HEX('
\à\[')
HEX('\
xE0\[') HEX('\\xE0
\[')
E05B E05B
CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0;
SHOW CREATE TABLE t1;
...
...
mysql-test/main/ctype_gbk.result
View file @
44f9736e
...
...
@@ -5058,7 +5058,7 @@ SELECT @@character_set_client, @@character_set_connection, @@character_set_resul
@@character_set_client @@character_set_connection @@character_set_results
binary gbk binary
SELECT HEX('\['), HEX('\\[');
HEX('\
[') HEX('\
\[')
HEX('\
xE0\[') HEX('\\xE0
\[')
E05B E05B
CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0;
SHOW CREATE TABLE t1;
...
...
mysql-test/main/ctype_latin1.result
View file @
44f9736e
...
...
@@ -7965,37 +7965,37 @@ SELECT '
?
?
SELECT HEX('');
HEX('')
HEX('
\xC2
')
3F
SELECT HEX(CAST('' AS CHAR CHARACTER SET utf8));
HEX(CAST('' AS CHAR CHARACTER SET utf8))
HEX(CAST('
\xC2
' AS CHAR CHARACTER SET utf8))
3F
SELECT HEX(CAST('' AS CHAR CHARACTER SET latin1));
HEX(CAST('' AS CHAR CHARACTER SET latin1))
HEX(CAST('
\xC2
' AS CHAR CHARACTER SET latin1))
3F
SELECT HEX(CONVERT('' USING utf8));
HEX(CONVERT('' USING utf8))
HEX(CONVERT('
\xC2
' USING utf8))
3F
SELECT HEX(CONVERT('' USING latin1));
HEX(CONVERT('' USING latin1))
HEX(CONVERT('
\xC2
' USING latin1))
3F
SELECT 'x';
?x
?x
SELECT HEX('x');
HEX('x')
HEX('
\xC2
x')
3F78
SELECT HEX(CAST('x' AS CHAR CHARACTER SET utf8));
HEX(CAST('x' AS CHAR CHARACTER SET utf8))
HEX(CAST('
\xC2
x' AS CHAR CHARACTER SET utf8))
3F78
SELECT HEX(CAST('x' AS CHAR CHARACTER SET latin1));
HEX(CAST('x' AS CHAR CHARACTER SET latin1))
HEX(CAST('
\xC2
x' AS CHAR CHARACTER SET latin1))
3F78
SELECT HEX(CONVERT('x' USING utf8));
HEX(CONVERT('x' USING utf8))
HEX(CONVERT('
\xC2
x' USING utf8))
3F78
SELECT HEX(CONVERT('x' USING latin1));
HEX(CONVERT('x' USING latin1))
HEX(CONVERT('
\xC2
x' USING latin1))
3F78
SET NAMES utf8;
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1);
...
...
mysql-test/main/ctype_sjis.result
View file @
44f9736e
...
...
@@ -18682,7 +18682,7 @@ SELECT @@character_set_client, @@character_set_connection, @@character_set_resul
@@character_set_client @@character_set_connection @@character_set_results
binary sjis binary
SELECT HEX('\['), HEX('\\[');
HEX('\
[') HEX('\
\[')
HEX('\
xE0\[') HEX('\\xE0
\[')
E05B E05B
CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0;
SHOW CREATE TABLE t1;
...
...
mysql-test/main/ctype_utf8.result
View file @
44f9736e
...
...
@@ -67,13 +67,13 @@ select _utf8 0xD0B0D0B1D0B2 like concat(_utf8'%',_utf8 0xD0B1,_utf8 '%');
_utf8 0xD0B0D0B1D0B2 like concat(_utf8'%',_utf8 0xD0B1,_utf8 '%')
1
select convert(_latin1'Gnter Andr' using utf8) like CONVERT(_latin1'GNTER%' USING utf8);
convert(_latin1'G
nter Andr' using utf8) like CONVERT(_latin1'G
NTER%' USING utf8)
convert(_latin1'G
\xFCnter Andr\xE9' using utf8) like CONVERT(_latin1'G\xDC
NTER%' USING utf8)
1
select CONVERT(_koi8r'' USING utf8) LIKE CONVERT(_koi8r'' USING utf8);
CONVERT(_koi8r'
' USING utf8) LIKE CONVERT(_koi8r'
' USING utf8)
CONVERT(_koi8r'
\xD7\xC1\xD3\xD1' USING utf8) LIKE CONVERT(_koi8r'\xF7\xE1\xF3\xF1
' USING utf8)
1
select CONVERT(_koi8r'' USING utf8) LIKE CONVERT(_koi8r'' USING utf8);
CONVERT(_koi8r'
' USING utf8) LIKE CONVERT(_koi8r'
' USING utf8)
CONVERT(_koi8r'
\xF7\xE1\xF3\xF1' USING utf8) LIKE CONVERT(_koi8r'\xD7\xC1\xD3\xD1
' USING utf8)
1
SELECT 'a' = 'a ';
'a' = 'a '
...
...
@@ -1295,7 +1295,7 @@ concat(concat(_latin1'->',f1),_latin1'<-')
-><-
drop table t1;
select convert(_koi8r'' using utf8) < convert(_koi8r'' using utf8);
convert(_koi8r'
' using utf8) < convert(_koi8r'
' using utf8)
convert(_koi8r'
\xC9' using utf8) < convert(_koi8r'\xCA
' using utf8)
1
set names latin1;
create table t1 (a varchar(10)) character set utf8;
...
...
mysql-test/main/ctype_utf8mb4.result
View file @
44f9736e
...
...
@@ -67,13 +67,13 @@ select _utf8mb4 0xD0B0D0B1D0B2 like concat(_utf8mb4'%',_utf8mb4 0xD0B1,_utf8mb4
_utf8mb4 0xD0B0D0B1D0B2 like concat(_utf8mb4'%',_utf8mb4 0xD0B1,_utf8mb4 '%')
1
select convert(_latin1'Gnter Andr' using utf8mb4) like CONVERT(_latin1'GNTER%' USING utf8mb4);
convert(_latin1'G
?nter Andr?' using utf8mb4) like CONVERT(_latin1'G?
NTER%' USING utf8mb4)
convert(_latin1'G
\xFCnter Andr\xE9' using utf8mb4) like CONVERT(_latin1'G\xDC
NTER%' USING utf8mb4)
1
select CONVERT(_koi8r'' USING utf8mb4) LIKE CONVERT(_koi8r'' USING utf8mb4);
CONVERT(_koi8r'
????' USING utf8mb4) LIKE CONVERT(_koi8r'????
' USING utf8mb4)
CONVERT(_koi8r'
\xD7\xC1\xD3\xD1' USING utf8mb4) LIKE CONVERT(_koi8r'\xF7\xE1\xF3\xF1
' USING utf8mb4)
1
select CONVERT(_koi8r'' USING utf8mb4) LIKE CONVERT(_koi8r'' USING utf8mb4);
CONVERT(_koi8r'
????' USING utf8mb4) LIKE CONVERT(_koi8r'????
' USING utf8mb4)
CONVERT(_koi8r'
\xF7\xE1\xF3\xF1' USING utf8mb4) LIKE CONVERT(_koi8r'\xD7\xC1\xD3\xD1
' USING utf8mb4)
1
SELECT 'a' = 'a ';
'a' = 'a '
...
...
@@ -1316,7 +1316,7 @@ concat(concat(_latin1'->',f1),_latin1'<-')
-><-
drop table t1;
select convert(_koi8r'' using utf8mb4) < convert(_koi8r'' using utf8mb4);
convert(_koi8r'
?' using utf8mb4) < convert(_koi8r'?
' using utf8mb4)
convert(_koi8r'
\xC9' using utf8mb4) < convert(_koi8r'\xCA
' using utf8mb4)
1
set names latin1;
create table t1 (a varchar(10)) character set utf8mb4;
...
...
mysql-test/main/ctype_utf8mb4_heap.result
View file @
44f9736e
...
...
@@ -67,13 +67,13 @@ select _utf8mb4 0xD0B0D0B1D0B2 like concat(_utf8mb4'%',_utf8mb4 0xD0B1,_utf8mb4
_utf8mb4 0xD0B0D0B1D0B2 like concat(_utf8mb4'%',_utf8mb4 0xD0B1,_utf8mb4 '%')
1
select convert(_latin1'Gnter Andr' using utf8mb4) like CONVERT(_latin1'GNTER%' USING utf8mb4);
convert(_latin1'G
?nter Andr?' using utf8mb4) like CONVERT(_latin1'G?
NTER%' USING utf8mb4)
convert(_latin1'G
\xFCnter Andr\xE9' using utf8mb4) like CONVERT(_latin1'G\xDC
NTER%' USING utf8mb4)
1
select CONVERT(_koi8r'' USING utf8mb4) LIKE CONVERT(_koi8r'' USING utf8mb4);
CONVERT(_koi8r'
????' USING utf8mb4) LIKE CONVERT(_koi8r'????
' USING utf8mb4)
CONVERT(_koi8r'
\xD7\xC1\xD3\xD1' USING utf8mb4) LIKE CONVERT(_koi8r'\xF7\xE1\xF3\xF1
' USING utf8mb4)
1
select CONVERT(_koi8r'' USING utf8mb4) LIKE CONVERT(_koi8r'' USING utf8mb4);
CONVERT(_koi8r'
????' USING utf8mb4) LIKE CONVERT(_koi8r'????
' USING utf8mb4)
CONVERT(_koi8r'
\xF7\xE1\xF3\xF1' USING utf8mb4) LIKE CONVERT(_koi8r'\xD7\xC1\xD3\xD1
' USING utf8mb4)
1
SELECT 'a' = 'a ';
'a' = 'a '
...
...
@@ -1215,7 +1215,7 @@ concat(concat(_latin1'->',f1),_latin1'<-')
-><-
drop table t1;
select convert(_koi8r'' using utf8mb4) < convert(_koi8r'' using utf8mb4);
convert(_koi8r'
?' using utf8mb4) < convert(_koi8r'?
' using utf8mb4)
convert(_koi8r'
\xC9' using utf8mb4) < convert(_koi8r'\xCA
' using utf8mb4)
1
set names latin1;
create table t1 (a varchar(10)) character set utf8mb4 engine heap;
...
...
mysql-test/main/ctype_utf8mb4_innodb.result
View file @
44f9736e
...
...
@@ -67,13 +67,13 @@ select _utf8mb4 0xD0B0D0B1D0B2 like concat(_utf8mb4'%',_utf8mb4 0xD0B1,_utf8mb4
_utf8mb4 0xD0B0D0B1D0B2 like concat(_utf8mb4'%',_utf8mb4 0xD0B1,_utf8mb4 '%')
1
select convert(_latin1'Gnter Andr' using utf8mb4) like CONVERT(_latin1'GNTER%' USING utf8mb4);
convert(_latin1'G
?nter Andr?' using utf8mb4) like CONVERT(_latin1'G?
NTER%' USING utf8mb4)
convert(_latin1'G
\xFCnter Andr\xE9' using utf8mb4) like CONVERT(_latin1'G\xDC
NTER%' USING utf8mb4)
1
select CONVERT(_koi8r'' USING utf8mb4) LIKE CONVERT(_koi8r'' USING utf8mb4);
CONVERT(_koi8r'
????' USING utf8mb4) LIKE CONVERT(_koi8r'????
' USING utf8mb4)
CONVERT(_koi8r'
\xD7\xC1\xD3\xD1' USING utf8mb4) LIKE CONVERT(_koi8r'\xF7\xE1\xF3\xF1
' USING utf8mb4)
1
select CONVERT(_koi8r'' USING utf8mb4) LIKE CONVERT(_koi8r'' USING utf8mb4);
CONVERT(_koi8r'
????' USING utf8mb4) LIKE CONVERT(_koi8r'????
' USING utf8mb4)
CONVERT(_koi8r'
\xF7\xE1\xF3\xF1' USING utf8mb4) LIKE CONVERT(_koi8r'\xD7\xC1\xD3\xD1
' USING utf8mb4)
1
SELECT 'a' = 'a ';
'a' = 'a '
...
...
@@ -1278,7 +1278,7 @@ concat(concat(_latin1'->',f1),_latin1'<-')
-><-
drop table t1;
select convert(_koi8r'' using utf8mb4) < convert(_koi8r'' using utf8mb4);
convert(_koi8r'
?' using utf8mb4) < convert(_koi8r'?
' using utf8mb4)
convert(_koi8r'
\xC9' using utf8mb4) < convert(_koi8r'\xCA
' using utf8mb4)
1
set names latin1;
create table t1 (a varchar(10)) character set utf8mb4 engine InnoDB;
...
...
mysql-test/main/ctype_utf8mb4_myisam.result
View file @
44f9736e
...
...
@@ -67,13 +67,13 @@ select _utf8mb4 0xD0B0D0B1D0B2 like concat(_utf8mb4'%',_utf8mb4 0xD0B1,_utf8mb4
_utf8mb4 0xD0B0D0B1D0B2 like concat(_utf8mb4'%',_utf8mb4 0xD0B1,_utf8mb4 '%')
1
select convert(_latin1'Gnter Andr' using utf8mb4) like CONVERT(_latin1'GNTER%' USING utf8mb4);
convert(_latin1'G
?nter Andr?' using utf8mb4) like CONVERT(_latin1'G?
NTER%' USING utf8mb4)
convert(_latin1'G
\xFCnter Andr\xE9' using utf8mb4) like CONVERT(_latin1'G\xDC
NTER%' USING utf8mb4)
1
select CONVERT(_koi8r'' USING utf8mb4) LIKE CONVERT(_koi8r'' USING utf8mb4);
CONVERT(_koi8r'
????' USING utf8mb4) LIKE CONVERT(_koi8r'????
' USING utf8mb4)
CONVERT(_koi8r'
\xD7\xC1\xD3\xD1' USING utf8mb4) LIKE CONVERT(_koi8r'\xF7\xE1\xF3\xF1
' USING utf8mb4)
1
select CONVERT(_koi8r'' USING utf8mb4) LIKE CONVERT(_koi8r'' USING utf8mb4);
CONVERT(_koi8r'
????' USING utf8mb4) LIKE CONVERT(_koi8r'????
' USING utf8mb4)
CONVERT(_koi8r'
\xF7\xE1\xF3\xF1' USING utf8mb4) LIKE CONVERT(_koi8r'\xD7\xC1\xD3\xD1
' USING utf8mb4)
1
SELECT 'a' = 'a ';
'a' = 'a '
...
...
@@ -1281,7 +1281,7 @@ concat(concat(_latin1'->',f1),_latin1'<-')
-><-
drop table t1;
select convert(_koi8r'' using utf8mb4) < convert(_koi8r'' using utf8mb4);
convert(_koi8r'
?' using utf8mb4) < convert(_koi8r'?
' using utf8mb4)
convert(_koi8r'
\xC9' using utf8mb4) < convert(_koi8r'\xCA
' using utf8mb4)
1
set names latin1;
create table t1 (a varchar(10)) character set utf8mb4 engine MyISAM;
...
...
mysql-test/main/opt_trace.result
View file @
44f9736e
...
...
@@ -8563,6 +8563,41 @@ select count(*) from information_schema.optimizer_trace;
select * from information_schema.optimizer_trace;
set max_session_mem_used=default;
#
# MDEV-22380 Assertion `name.length == strlen(name.str)' failed in Item::print_item_w_name on SELECT w/ optimizer_trace enabled
#
SET optimizer_trace="enabled=on";
SELECT 'a\0' LIMIT 0;
a\x00
SELECT query, trace FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
query trace
SELECT 'a\0' LIMIT 0 {
"steps": [
{
"join_preparation": {
"select_id": 1,
"steps": [
{
"expanded_query": "select 'a\0' AS `a\x00` limit 0"
}
]
}
},
{
"join_optimization": {
"select_id": 1,
"steps": []
}
},
{
"join_execution": {
"select_id": 1,
"steps": []
}
}
]
}
SET optimizer_trace=DEFAULT;
#
# End of 10.4 tests
#
set optimizer_trace='enabled=on';
...
...
mysql-test/main/opt_trace.test
View file @
44f9736e
...
...
@@ -634,6 +634,15 @@ select * from information_schema.optimizer_trace;
--
enable_result_log
set
max_session_mem_used
=
default
;
--
echo
#
--
echo
# MDEV-22380 Assertion `name.length == strlen(name.str)' failed in Item::print_item_w_name on SELECT w/ optimizer_trace enabled
--
echo
#
SET
optimizer_trace
=
"enabled=on"
;
SELECT
'a\0'
LIMIT
0
;
SELECT
query
,
trace
FROM
INFORMATION_SCHEMA
.
OPTIMIZER_TRACE
;
SET
optimizer_trace
=
DEFAULT
;
--
echo
#
--
echo
# End of 10.4 tests
--
echo
#
...
...
mysql-test/main/plugin.result
View file @
44f9736e
...
...
@@ -320,7 +320,7 @@ select plugin_name from information_schema.plugins where plugin_library like 'ha
plugin_name
set names utf8;
select convert('admin𝌆' using utf8);
convert('admin
𝌆
' using utf8)
convert('admin
\xF0\x9D\x8C\x86
' using utf8)
admin????
Warnings:
Warning 1300 Invalid utf8 character string: '\xF0\x9D\x8C\x86'
...
...
mysql-test/suite/encryption/r/instant_alter_import.result
0 → 100644
View file @
44f9736e
SET GLOBAL innodb_encrypt_tables = ON;
SET GLOBAL innodb_encryption_threads = 4;
CREATE TABLE t1 (id INT PRIMARY KEY AUTO_INCREMENT, i2 INT, i1 INT)
ENGINE=INNODB ENCRYPTED=YES ENCRYPTION_KEY_ID=4;
INSERT INTO t1 (i2) SELECT 4 FROM seq_1_to_1024;
ALTER TABLE t1 DROP COLUMN i2, ALGORITHM=INSTANT;
CREATE TABLE t2 LIKE t1;
ALTER TABLE t2 DISCARD TABLESPACE;
FLUSH TABLE t1 FOR EXPORT;
UNLOCK TABLES;
ALTER TABLE t2 IMPORT TABLESPACE;
DROP TABLE t2, t1;
CREATE TABLE t1 (id INT PRIMARY KEY AUTO_INCREMENT, i2 INT, i1 INT)
ENGINE=INNODB ENCRYPTED=YES ENCRYPTION_KEY_ID=4 PAGE_COMPRESSED=1;
INSERT INTO t1 (i2) SELECT 4 FROM seq_1_to_1024;
ALTER TABLE t1 DROP COLUMN i2, ALGORITHM=INSTANT;
CREATE TABLE t2 LIKE t1;
ALTER TABLE t2 DISCARD TABLESPACE;
FLUSH TABLE t1 FOR EXPORT;
UNLOCK TABLES;
ALTER TABLE t2 IMPORT TABLESPACE;
DROP TABLE t2, t1;
SET GLOBAL innodb_encrypt_tables = OFF;
SET GLOBAL innodb_encryption_threads = 0;
mysql-test/suite/encryption/t/instant_alter_import.test
0 → 100644
View file @
44f9736e
--
source
include
/
have_innodb
.
inc
--
source
include
/
have_sequence
.
inc
--
source
include
/
have_file_key_management_plugin
.
inc
SET
GLOBAL
innodb_encrypt_tables
=
ON
;
SET
GLOBAL
innodb_encryption_threads
=
4
;
--
let
$MYSQLD_DATADIR
=
`SELECT @@datadir`
CREATE
TABLE
t1
(
id
INT
PRIMARY
KEY
AUTO_INCREMENT
,
i2
INT
,
i1
INT
)
ENGINE
=
INNODB
ENCRYPTED
=
YES
ENCRYPTION_KEY_ID
=
4
;
INSERT
INTO
t1
(
i2
)
SELECT
4
FROM
seq_1_to_1024
;
ALTER
TABLE
t1
DROP
COLUMN
i2
,
ALGORITHM
=
INSTANT
;
CREATE
TABLE
t2
LIKE
t1
;
ALTER
TABLE
t2
DISCARD
TABLESPACE
;
FLUSH
TABLE
t1
FOR
EXPORT
;
--
copy_file
$MYSQLD_DATADIR
/
test
/
t1
.
ibd
$MYSQLD_DATADIR
/
test
/
t2
.
ibd
--
copy_file
$MYSQLD_DATADIR
/
test
/
t1
.
cfg
$MYSQLD_DATADIR
/
test
/
t2
.
cfg
UNLOCK
TABLES
;
ALTER
TABLE
t2
IMPORT
TABLESPACE
;
DROP
TABLE
t2
,
t1
;
CREATE
TABLE
t1
(
id
INT
PRIMARY
KEY
AUTO_INCREMENT
,
i2
INT
,
i1
INT
)
ENGINE
=
INNODB
ENCRYPTED
=
YES
ENCRYPTION_KEY_ID
=
4
PAGE_COMPRESSED
=
1
;
INSERT
INTO
t1
(
i2
)
SELECT
4
FROM
seq_1_to_1024
;
ALTER
TABLE
t1
DROP
COLUMN
i2
,
ALGORITHM
=
INSTANT
;
CREATE
TABLE
t2
LIKE
t1
;
ALTER
TABLE
t2
DISCARD
TABLESPACE
;
FLUSH
TABLE
t1
FOR
EXPORT
;
--
copy_file
$MYSQLD_DATADIR
/
test
/
t1
.
ibd
$MYSQLD_DATADIR
/
test
/
t2
.
ibd
--
copy_file
$MYSQLD_DATADIR
/
test
/
t1
.
cfg
$MYSQLD_DATADIR
/
test
/
t2
.
cfg
UNLOCK
TABLES
;
ALTER
TABLE
t2
IMPORT
TABLESPACE
;
DROP
TABLE
t2
,
t1
;
SET
GLOBAL
innodb_encrypt_tables
=
OFF
;
SET
GLOBAL
innodb_encryption_threads
=
0
;
mysql-test/suite/innodb/r/default_row_format_compatibility.result
View file @
44f9736e
call mtr.add_suppression("Index for table 'tab' is corrupt; try to repair it");
SET @row_format = @@GLOBAL.innodb_default_row_format;
# ###########################################################
# Check with Import/Export tablespace with Default_row_format
...
...
@@ -38,7 +39,7 @@ tab InnoDB # Compact # # # # # # NULL # NULL NULL latin1_swedish_ci NULL 0 N
ALTER TABLE tab DISCARD TABLESPACE;
call mtr.add_suppression("InnoDB: Tried to read .* bytes at offset 0");
ALTER TABLE tab IMPORT TABLESPACE;
ERROR HY000: In
ternal error: Cannot reset LSNs in table `test`.`tab` : I/O error
ERROR HY000: In
dex for table 'tab' is corrupt; try to repair it
ALTER TABLE tab IMPORT TABLESPACE;
SELECT * FROM tab;
a
...
...
mysql-test/suite/innodb/r/full_crc32_import.result
View file @
44f9736e
...
...
@@ -46,7 +46,7 @@ t1 CREATE TABLE `t1` (
`b` blob DEFAULT NULL,
`c` blob DEFAULT NULL,
PRIMARY KEY (`a`)
) ENGINE=InnoDB AUTO_INCREMENT=
46
DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
) ENGINE=InnoDB AUTO_INCREMENT=
57
DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
UPDATE t1 set b = repeat("de", 100) where b = repeat("cd", 200);
explain SELECT a FROM t1 where b = repeat("de", 100);
id select_type table type possible_keys key key_len ref rows Extra
...
...
@@ -127,7 +127,7 @@ t1 CREATE TABLE `t1` (
`c2` point NOT NULL,
`c3` linestring NOT NULL,
PRIMARY KEY (`c1`)
) ENGINE=InnoDB AUTO_INCREMENT=1
4325
DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
) ENGINE=InnoDB AUTO_INCREMENT=1
6372
DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
UPDATE t1 SET C2 = ST_GeomFromText('POINT(0 0)');
SELECT COUNT(*) FROM t1;
COUNT(*)
...
...
mysql-test/suite/innodb/r/innodb-wl5522-debug.result
View file @
44f9736e
...
...
@@ -935,7 +935,7 @@ ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,fsp_flags_is_valid_failure";
ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: In
ternal error: Cannot reset LSNs in table `test`.`t1` : Data structure corruption
ERROR HY000: In
dex for table 't1' is corrupt; try to repair it
SET SESSION debug_dbug=@saved_debug_dbug;
DROP TABLE t1;
unlink: t1.ibd
...
...
mysql-test/suite/innodb/r/instant_alter_import.result
View file @
44f9736e
...
...
@@ -61,13 +61,10 @@ alter table t1 discard tablespace;
flush tables t2 for export;
unlock tables;
alter table t1 import tablespace;
ERROR HY000: Schema mismatch (Index field count 4 doesn't match tablespace metadata file value 5)
select * from t1;
ERROR HY000: Tablespace has been discarded for table `t1`
alter table t1 import tablespace;
ERROR HY000: Internal error: Cannot reset LSNs in table `test`.`t1` : Unsupported
select * from t1;
ERROR HY000: Tablespace has been discarded for table `t1`
z
42
41
drop table t2;
drop table t1;
CREATE TABLE t1 (id INT PRIMARY KEY AUTO_INCREMENT, i1 INT) ENGINE=INNODB;
...
...
@@ -78,3 +75,46 @@ FLUSH TABLE t1 FOR EXPORT;
UNLOCK TABLES;
ALTER TABLE t2 IMPORT TABLESPACE;
DROP TABLE t2, t1;
CREATE TABLE t1 (id INT PRIMARY KEY, i2 INT, i1 INT) ENGINE=INNODB;
INSERT INTO t1 VALUES (1, 1, 1);
ALTER TABLE t1 MODIFY COLUMN i2 INT AFTER i1, ALGORITHM=INSTANT;
CREATE TABLE t2 LIKE t1;
ALTER TABLE t2 DISCARD TABLESPACE;
FLUSH TABLE t1 FOR EXPORT;
UNLOCK TABLES;
ALTER TABLE t2 IMPORT TABLESPACE;
SELECT * FROM t2;
id i1 i2
1 1 1
DROP TABLE t2, t1;
CREATE TABLE t1 (id INT PRIMARY KEY, i2 INT, i1 INT) ENGINE=INNODB;
INSERT INTO t1 VALUES (1, 1, 1);
ALTER TABLE t1 DROP COLUMN i2, ALGORITHM=INSTANT;
CREATE TABLE t2 LIKE t1;
ALTER TABLE t2 DISCARD TABLESPACE;
FLUSH TABLE t1 FOR EXPORT;
UNLOCK TABLES;
ALTER TABLE t2 IMPORT TABLESPACE;
SELECT * FROM t2;
id i1
1 1
DROP TABLE t2, t1;
CREATE TABLE t1 (id INT PRIMARY KEY, i2 INT, i1 INT)
ENGINE=INNODB PAGE_COMPRESSED=1;
INSERT INTO t1 VALUES (1, 1, 1);
ALTER TABLE t1 DROP COLUMN i2, ALGORITHM=INSTANT;
CREATE TABLE t2 LIKE t1;
ALTER TABLE t2 DISCARD TABLESPACE;
FLUSH TABLE t1 FOR EXPORT;
UNLOCK TABLES;
ALTER TABLE t2 IMPORT TABLESPACE;
DROP TABLE t2, t1;
CREATE TABLE t1 (id INT PRIMARY KEY AUTO_INCREMENT, i2 INT, i1 INT) ENGINE=INNODB;
INSERT INTO t1 (i2) SELECT 4 FROM seq_1_to_1024;
ALTER TABLE t1 DROP COLUMN i2, ALGORITHM=INSTANT;
CREATE TABLE t2 LIKE t1;
ALTER TABLE t2 DISCARD TABLESPACE;
FLUSH TABLE t1 FOR EXPORT;
UNLOCK TABLES;
ALTER TABLE t2 IMPORT TABLESPACE;
DROP TABLE t2, t1;
mysql-test/suite/innodb/t/default_row_format_compatibility.test
View file @
44f9736e
--
source
include
/
have_innodb
.
inc
call
mtr
.
add_suppression
(
"Index for table 'tab' is corrupt; try to repair it"
);
SET
@
row_format
=
@@
GLOBAL
.
innodb_default_row_format
;
# set the variables
...
...
@@ -79,7 +82,7 @@ ALTER TABLE tab DISCARD TABLESPACE;
call
mtr
.
add_suppression
(
"InnoDB: Tried to read .* bytes at offset 0"
);
--
error
ER_
INTERNAL_ERROR
--
error
ER_
NOT_KEYFILE
ALTER
TABLE
tab
IMPORT
TABLESPACE
;
--
remove_file
$MYSQLD_DATADIR
/
test
/
tab
.
ibd
--
move_file
$MYSQLD_DATADIR
/
tab
.
ibd
$MYSQLD_DATADIR
/
test
/
tab
.
ibd
...
...
mysql-test/suite/innodb/t/innodb-wl5522-debug.test
View file @
44f9736e
...
...
@@ -1351,7 +1351,7 @@ SET SESSION debug_dbug="+d,fsp_flags_is_valid_failure";
--
replace_regex
/
'.*t1.cfg'
/
't1.cfg'
/
--
error
ER_
INTERNAL_ERROR
--
error
ER_
NOT_KEYFILE
ALTER
TABLE
t1
IMPORT
TABLESPACE
;
SET
SESSION
debug_dbug
=@
saved_debug_dbug
;
...
...
mysql-test/suite/innodb/t/instant_alter_import.test
View file @
44f9736e
--
source
include
/
have_innodb
.
inc
--
source
include
/
have_sequence
.
inc
--
source
include
/
innodb_checksum_algorithm
.
inc
set
default_storage_engine
=
innodb
;
--
echo
#
...
...
@@ -70,14 +73,7 @@ flush tables t2 for export;
--
copy_file
$MYSQLD_DATADIR
/
test
/
t2
.
ibd
$MYSQLD_DATADIR
/
test
/
t1
.
ibd
unlock
tables
;
--
error
ER_TABLE_SCHEMA_MISMATCH
alter
table
t1
import
tablespace
;
--
error
ER_TABLESPACE_DISCARDED
select
*
from
t1
;
--
remove_file
$MYSQLD_DATADIR
/
test
/
t1
.
cfg
--
error
ER_INTERNAL_ERROR
alter
table
t1
import
tablespace
;
--
error
ER_TABLESPACE_DISCARDED
select
*
from
t1
;
drop
table
t2
;
...
...
@@ -101,3 +97,86 @@ UNLOCK TABLES;
ALTER
TABLE
t2
IMPORT
TABLESPACE
;
DROP
TABLE
t2
,
t1
;
CREATE
TABLE
t1
(
id
INT
PRIMARY
KEY
,
i2
INT
,
i1
INT
)
ENGINE
=
INNODB
;
INSERT
INTO
t1
VALUES
(
1
,
1
,
1
);
ALTER
TABLE
t1
MODIFY
COLUMN
i2
INT
AFTER
i1
,
ALGORITHM
=
INSTANT
;
CREATE
TABLE
t2
LIKE
t1
;
ALTER
TABLE
t2
DISCARD
TABLESPACE
;
FLUSH
TABLE
t1
FOR
EXPORT
;
--
copy_file
$MYSQLD_DATADIR
/
test
/
t1
.
ibd
$MYSQLD_DATADIR
/
test
/
t2
.
ibd
--
copy_file
$MYSQLD_DATADIR
/
test
/
t1
.
cfg
$MYSQLD_DATADIR
/
test
/
t2
.
cfg
UNLOCK
TABLES
;
ALTER
TABLE
t2
IMPORT
TABLESPACE
;
SELECT
*
FROM
t2
;
DROP
TABLE
t2
,
t1
;
CREATE
TABLE
t1
(
id
INT
PRIMARY
KEY
,
i2
INT
,
i1
INT
)
ENGINE
=
INNODB
;
INSERT
INTO
t1
VALUES
(
1
,
1
,
1
);
ALTER
TABLE
t1
DROP
COLUMN
i2
,
ALGORITHM
=
INSTANT
;
CREATE
TABLE
t2
LIKE
t1
;
ALTER
TABLE
t2
DISCARD
TABLESPACE
;
FLUSH
TABLE
t1
FOR
EXPORT
;
--
copy_file
$MYSQLD_DATADIR
/
test
/
t1
.
ibd
$MYSQLD_DATADIR
/
test
/
t2
.
ibd
--
copy_file
$MYSQLD_DATADIR
/
test
/
t1
.
cfg
$MYSQLD_DATADIR
/
test
/
t2
.
cfg
UNLOCK
TABLES
;
ALTER
TABLE
t2
IMPORT
TABLESPACE
;
SELECT
*
FROM
t2
;
DROP
TABLE
t2
,
t1
;
CREATE
TABLE
t1
(
id
INT
PRIMARY
KEY
,
i2
INT
,
i1
INT
)
ENGINE
=
INNODB
PAGE_COMPRESSED
=
1
;
INSERT
INTO
t1
VALUES
(
1
,
1
,
1
);
ALTER
TABLE
t1
DROP
COLUMN
i2
,
ALGORITHM
=
INSTANT
;
CREATE
TABLE
t2
LIKE
t1
;
ALTER
TABLE
t2
DISCARD
TABLESPACE
;
FLUSH
TABLE
t1
FOR
EXPORT
;
--
copy_file
$MYSQLD_DATADIR
/
test
/
t1
.
ibd
$MYSQLD_DATADIR
/
test
/
t2
.
ibd
--
copy_file
$MYSQLD_DATADIR
/
test
/
t1
.
cfg
$MYSQLD_DATADIR
/
test
/
t2
.
cfg
UNLOCK
TABLES
;
ALTER
TABLE
t2
IMPORT
TABLESPACE
;
DROP
TABLE
t2
,
t1
;
CREATE
TABLE
t1
(
id
INT
PRIMARY
KEY
AUTO_INCREMENT
,
i2
INT
,
i1
INT
)
ENGINE
=
INNODB
;
INSERT
INTO
t1
(
i2
)
SELECT
4
FROM
seq_1_to_1024
;
ALTER
TABLE
t1
DROP
COLUMN
i2
,
ALGORITHM
=
INSTANT
;
CREATE
TABLE
t2
LIKE
t1
;
ALTER
TABLE
t2
DISCARD
TABLESPACE
;
FLUSH
TABLE
t1
FOR
EXPORT
;
--
copy_file
$MYSQLD_DATADIR
/
test
/
t1
.
ibd
$MYSQLD_DATADIR
/
test
/
t2
.
ibd
--
copy_file
$MYSQLD_DATADIR
/
test
/
t1
.
cfg
$MYSQLD_DATADIR
/
test
/
t2
.
cfg
UNLOCK
TABLES
;
ALTER
TABLE
t2
IMPORT
TABLESPACE
;
DROP
TABLE
t2
,
t1
;
mysql-test/suite/innodb_zip/r/wl5522_debug_zip.result
View file @
44f9736e
...
...
@@ -402,7 +402,7 @@ ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files
SET SESSION debug_dbug="+d,fsp_flags_is_valid_failure";
ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: In
ternal error: Cannot reset LSNs in table `test`.`t1` : Data structure corruption
ERROR HY000: In
dex for table 't1' is corrupt; try to repair it
SET SESSION debug_dbug=@saved_debug_dbug;
DROP TABLE t1;
unlink: t1.ibd
...
...
mysql-test/suite/innodb_zip/t/wl5522_debug_zip.test
View file @
44f9736e
...
...
@@ -611,7 +611,7 @@ EOF
SET
SESSION
debug_dbug
=
"+d,fsp_flags_is_valid_failure"
;
--
error
ER_
INTERNAL_ERROR
--
error
ER_
NOT_KEYFILE
ALTER
TABLE
t1
IMPORT
TABLESPACE
;
SET
SESSION
debug_dbug
=@
saved_debug_dbug
;
...
...
sql/item.cc
View file @
44f9736e
...
...
@@ -1119,6 +1119,80 @@ bool Item::check_type_scalar(const char *opname) const
}
extern
"C"
{
/*
All values greater than MY_NAME_BINARY_VALUE are
interpreted as binary bytes.
The exact constant value does not matter,
but it must be greater than 0x10FFFF,
which is the maximum possible character in Unicode.
*/
#define MY_NAME_BINARY_VALUE 0x200000
/*
Print all binary bytes as well as zero character U+0000 in hex notation.
Print other characters normally.
*/
static
int
my_wc_mb_item_name
(
CHARSET_INFO
*
cs
,
my_wc_t
wc
,
uchar
*
str
,
uchar
*
end
)
{
if
(
wc
==
0
||
wc
>=
MY_NAME_BINARY_VALUE
)
{
if
(
str
+
4
>=
end
)
return
MY_CS_TOOSMALL3
;
str
[
0
]
=
'\\'
;
str
[
1
]
=
'x'
;
str
[
2
]
=
_dig_vec_upper
[(
uchar
)
(
wc
>>
4
)];
str
[
3
]
=
_dig_vec_upper
[(
uchar
)
wc
&
0x0F
];
return
4
;
}
return
my_charset_utf8mb3_handler
.
wc_mb
(
cs
,
wc
,
str
,
end
);
}
/*
Scan characters and mark all illegal sequences as binary byte values,
to have my_wc_mb_utf8_escape_name() print them using HEX notation.
*/
static
int
my_mb_wc_item_name
(
CHARSET_INFO
*
cs
,
my_wc_t
*
pwc
,
const
uchar
*
str
,
const
uchar
*
end
)
{
int
rc
=
cs
->
cset
->
mb_wc
(
cs
,
pwc
,
str
,
end
);
if
(
rc
==
MY_CS_ILSEQ
)
{
*
pwc
=
MY_NAME_BINARY_VALUE
+
*
str
;
return
1
;
}
return
rc
;
}
}
static
LEX_CSTRING
make_name
(
THD
*
thd
,
const
char
*
str
,
size_t
length
,
CHARSET_INFO
*
cs
,
size_t
max_octet_length
)
{
uint
errors
;
size_t
dst_nbytes
=
length
*
system_charset_info
->
mbmaxlen
;
set_if_smaller
(
dst_nbytes
,
max_octet_length
);
char
*
dst
=
(
char
*
)
thd
->
alloc
(
dst_nbytes
+
1
);
if
(
!
dst
)
return
null_clex_str
;
uint32
cnv_length
=
my_convert_using_func
(
dst
,
dst_nbytes
,
system_charset_info
,
my_wc_mb_item_name
,
str
,
length
,
cs
==
&
my_charset_bin
?
system_charset_info
:
cs
,
my_mb_wc_item_name
,
&
errors
);
dst
[
cnv_length
]
=
'\0'
;
return
Lex_cstring
(
dst
,
cnv_length
);
}
void
Item
::
set_name
(
THD
*
thd
,
const
char
*
str
,
size_t
length
,
CHARSET_INFO
*
cs
)
{
if
(
!
length
)
...
...
@@ -1169,32 +1243,14 @@ void Item::set_name(THD *thd, const char *str, size_t length, CHARSET_INFO *cs)
ER_REMOVED_SPACES
,
ER_THD
(
thd
,
ER_REMOVED_SPACES
),
buff
);
}
if
(
!
my_charset_same
(
cs
,
system_charset_info
))
{
size_t
res_length
;
name
.
str
=
sql_strmake_with_convert
(
thd
,
str
,
length
,
cs
,
MAX_ALIAS_NAME
,
system_charset_info
,
&
res_length
);
name
.
length
=
res_length
;
}
else
name
.
str
=
thd
->
strmake
(
str
,
(
name
.
length
=
MY_MIN
(
length
,
MAX_ALIAS_NAME
)));
name
=
make_name
(
thd
,
str
,
length
,
cs
,
MAX_ALIAS_NAME
-
1
);
}
void
Item
::
set_name_no_truncate
(
THD
*
thd
,
const
char
*
str
,
uint
length
,
CHARSET_INFO
*
cs
)
{
if
(
!
my_charset_same
(
cs
,
system_charset_info
))
{
size_t
res_length
;
name
.
str
=
sql_strmake_with_convert
(
thd
,
str
,
length
,
cs
,
UINT_MAX
,
system_charset_info
,
&
res_length
);
name
.
length
=
res_length
;
}
else
name
.
str
=
thd
->
strmake
(
str
,
(
name
.
length
=
length
));
name
=
make_name
(
thd
,
str
,
length
,
cs
,
UINT_MAX
-
1
);
}
...
...
storage/innobase/handler/ha_innodb.cc
View file @
44f9736e
...
...
@@ -13163,25 +13163,6 @@ ha_innobase::discard_or_import_tablespace(
err
,
m_prebuilt
->
table
->
flags
,
NULL
));
}
/* Evict and reload the table definition in order to invoke
btr_cur_instant_init(). */
table_id_t
id
=
m_prebuilt
->
table
->
id
;
ut_ad
(
id
);
mutex_enter
(
&
dict_sys
.
mutex
);
dict_table_close
(
m_prebuilt
->
table
,
TRUE
,
FALSE
);
dict_sys
.
remove
(
m_prebuilt
->
table
);
m_prebuilt
->
table
=
dict_table_open_on_id
(
id
,
TRUE
,
DICT_TABLE_OP_NORMAL
);
mutex_exit
(
&
dict_sys
.
mutex
);
if
(
!
m_prebuilt
->
table
)
{
err
=
DB_TABLE_NOT_FOUND
;
}
else
{
if
(
const
Field
*
ai
=
table
->
found_next_number_field
)
{
initialize_auto_increment
(
m_prebuilt
->
table
,
ai
);
}
dict_stats_init
(
m_prebuilt
->
table
);
}
if
(
dict_stats_is_persistent_enabled
(
m_prebuilt
->
table
))
{
dberr_t
ret
;
...
...
storage/innobase/include/fil0fil.h
View file @
44f9736e
...
...
@@ -633,6 +633,18 @@ struct fil_space_t final
static
bool
full_crc32
(
ulint
flags
)
{
return
flags
&
FSP_FLAGS_FCRC32_MASK_MARKER
;
}
/** Determine if full_crc32 is used along with compression */
static
bool
is_full_crc32_compressed
(
ulint
flags
)
{
if
(
full_crc32
(
flags
))
{
ulint
algo
=
FSP_FLAGS_FCRC32_GET_COMPRESSED_ALGO
(
flags
);
DBUG_ASSERT
(
algo
<=
PAGE_ALGORITHM_LAST
);
return
algo
>
0
;
}
return
false
;
}
/** @return whether innodb_checksum_algorithm=full_crc32 is active */
bool
full_crc32
()
const
{
return
full_crc32
(
flags
);
}
/** Determine the logical page size.
...
...
@@ -694,21 +706,15 @@ struct fil_space_t final
unsigned
zip_size
()
const
{
return
zip_size
(
flags
);
}
/** @return the physical page size */
unsigned
physical_size
()
const
{
return
physical_size
(
flags
);
}
/** Check whether the compression enabled in tablespace.
@param[in] flags tablespace flags */
static
bool
is_compressed
(
ulint
flags
)
{
if
(
full_crc32
(
flags
))
{
ulint
algo
=
FSP_FLAGS_FCRC32_GET_COMPRESSED_ALGO
(
flags
);
DBUG_ASSERT
(
algo
<=
PAGE_ALGORITHM_LAST
);
return
algo
>
0
;
}
return
FSP_FLAGS_HAS_PAGE_COMPRESSION
(
flags
);
}
/** @return whether the compression enabled for the tablespace. */
bool
is_compressed
()
const
{
return
is_compressed
(
flags
);
}
/** Check whether the compression enabled in tablespace.
@param[in] flags tablespace flags */
static
bool
is_compressed
(
ulint
flags
)
{
return
is_full_crc32_compressed
(
flags
)
||
FSP_FLAGS_HAS_PAGE_COMPRESSION
(
flags
);
}
/** @return whether the compression enabled for the tablespace. */
bool
is_compressed
()
const
{
return
is_compressed
(
flags
);
}
/** Get the compression algorithm for full crc32 format.
@param[in] flags tablespace flags
...
...
storage/innobase/row/row0import.cc
View file @
44f9736e
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment