mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
Merge 10.5 into 10.6
This commit is contained in:
@@ -105,7 +105,7 @@ ERROR 42000: Row size too large. The maximum row size for the used table type, n
|
||||
show warnings;
|
||||
Level Code Message
|
||||
Error 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 1982. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
|
||||
create index idx4 on worklog5743_1(a2(434));
|
||||
create index idx4 on worklog5743_1(a2(290));
|
||||
show warnings;
|
||||
Level Code Message
|
||||
create index idx5 on worklog5743_1(a1, a2(430));
|
||||
@@ -113,27 +113,42 @@ ERROR 42000: Row size too large. The maximum row size for the used table type, n
|
||||
show warnings;
|
||||
Level Code Message
|
||||
Error 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 1982. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
|
||||
create index idx6 on worklog5743_1(a1, a2(428));
|
||||
create index idx6 on worklog5743_1(a1, a2(283));
|
||||
show warnings;
|
||||
Level Code Message
|
||||
SET sql_mode= '';
|
||||
set innodb_strict_mode=off;
|
||||
create index idx1 on worklog5743_2(a2(4000));
|
||||
ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 1982. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
|
||||
Warnings:
|
||||
Note 1071 Specified key was too long; max key length is 1173 bytes
|
||||
Warning 139 Row size too large (> 1982). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
|
||||
set innodb_strict_mode=on;
|
||||
show warnings;
|
||||
Level Code Message
|
||||
Note 1071 Specified key was too long; max key length is 1173 bytes
|
||||
Warning 139 Row size too large (> 1982). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
|
||||
show create table worklog5743_2;
|
||||
Table Create Table
|
||||
worklog5743_2 CREATE TABLE `worklog5743_2` (
|
||||
`a1` int(11) DEFAULT NULL,
|
||||
`a2` text NOT NULL,
|
||||
KEY `idx1` (`a2`(1173))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci KEY_BLOCK_SIZE=2
|
||||
drop index idx1 on worklog5743_2;
|
||||
create index idx3 on worklog5743_2(a2(769));
|
||||
show warnings;
|
||||
Level Code Message
|
||||
create index idx4 on worklog5743_2(a2(768));
|
||||
show warnings;
|
||||
Level Code Message
|
||||
create index idx5 on worklog5743_2(a1, a2(765));
|
||||
show warnings;
|
||||
Level Code Message
|
||||
create index idx6 on worklog5743_2(a1, a2(764));
|
||||
create index idx6 on worklog5743_2(a1, a2(768));
|
||||
show warnings;
|
||||
Level Code Message
|
||||
set innodb_strict_mode=off;
|
||||
create index idx1 on worklog5743_4(a2(4000));
|
||||
Warnings:
|
||||
Note 1071 Specified key was too long; max key length is 1173 bytes
|
||||
set innodb_strict_mode=on;
|
||||
show warnings;
|
||||
Level Code Message
|
||||
Note 1071 Specified key was too long; max key length is 1173 bytes
|
||||
@@ -143,16 +158,13 @@ worklog5743_4 CREATE TABLE `worklog5743_4` (
|
||||
`a1` int(11) DEFAULT NULL,
|
||||
`a2` text NOT NULL,
|
||||
KEY `idx1` (`a2`(1173))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=4
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci KEY_BLOCK_SIZE=4
|
||||
create index idx3 on worklog5743_4(a2(769));
|
||||
show warnings;
|
||||
Level Code Message
|
||||
create index idx4 on worklog5743_4(a2(768));
|
||||
show warnings;
|
||||
Level Code Message
|
||||
create index idx5 on worklog5743_4(a1, a2(765));
|
||||
show warnings;
|
||||
Level Code Message
|
||||
create index idx6 on worklog5743_4(a1, a2(764));
|
||||
show warnings;
|
||||
Level Code Message
|
||||
@@ -191,10 +203,10 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE worklog5743_1 ref idx6 idx6 5 const 1
|
||||
explain select a1, left(a2, 20) from worklog5743_2 where a1 = 9;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE worklog5743_2 ref idx5,idx6 idx5 5 const 1
|
||||
1 SIMPLE worklog5743_2 ref idx6 idx6 5 const 1
|
||||
explain select a1, left(a2, 20) from worklog5743_4 where a1 = 9;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE worklog5743_4 ref idx5,idx6 idx5 5 const 1
|
||||
1 SIMPLE worklog5743_4 ref idx6 idx6 5 const 1
|
||||
select a1, left(a2, 20) from worklog5743_1 where a1 = 9;
|
||||
a1 left(a2, 20)
|
||||
9 aaaaaaaaaaaaaaaaaaaa
|
||||
@@ -226,7 +238,7 @@ create index idx1 on worklog5743(a2);
|
||||
ERROR 42000: Specified key was too long; max key length is 1173 bytes
|
||||
show warnings;
|
||||
Level Code Message
|
||||
Warning 1071 Specified key was too long; max key length is 3072 bytes
|
||||
Note 1071 Specified key was too long; max key length is 3072 bytes
|
||||
Error 1071 Specified key was too long; max key length is 1173 bytes
|
||||
drop table worklog5743;
|
||||
create table worklog5743(a1 int, a2 varchar(3072)) ROW_FORMAT=DYNAMIC;
|
||||
@@ -281,6 +293,8 @@ connection default;
|
||||
rollback;
|
||||
drop table worklog5743;
|
||||
### Test 6 ###
|
||||
create table worklog5743(a TEXT not null, primary key (a(1000)));
|
||||
drop table worklog5743;
|
||||
create table worklog5743(a TEXT) ROW_FORMAT=COMPACT;
|
||||
create index idx on worklog5743(a(768));
|
||||
ERROR HY000: Index column size too large. The maximum column size is 767 bytes
|
||||
@@ -326,7 +340,7 @@ worklog5743 CREATE TABLE `worklog5743` (
|
||||
`a` text NOT NULL,
|
||||
KEY `idx1` (`a`(769)),
|
||||
KEY `idx2` (`a`(768))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ROW_FORMAT=DYNAMIC
|
||||
insert into worklog5743 values(repeat("a", 768));
|
||||
drop table worklog5743;
|
||||
create table worklog5743(a TEXT not null) ROW_FORMAT=REDUNDANT;
|
||||
|
@@ -109,7 +109,7 @@ ERROR 42000: Row size too large. The maximum row size for the used table type, n
|
||||
show warnings;
|
||||
Level Code Message
|
||||
Error 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 4030. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
|
||||
create index idx4 on worklog5743_1(a2(434));
|
||||
create index idx4 on worklog5743_1(a2(290));
|
||||
show warnings;
|
||||
Level Code Message
|
||||
create index idx5 on worklog5743_1(a1, a2(430));
|
||||
@@ -117,7 +117,7 @@ ERROR 42000: Row size too large. The maximum row size for the used table type, n
|
||||
show warnings;
|
||||
Level Code Message
|
||||
Error 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 4030. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
|
||||
create index idx6 on worklog5743_1(a1, a2(428));
|
||||
create index idx6 on worklog5743_1(a1, a2(283));
|
||||
show warnings;
|
||||
Level Code Message
|
||||
create index idx2 on worklog5743_2(a2(4000));
|
||||
@@ -131,7 +131,7 @@ ERROR 42000: Row size too large. The maximum row size for the used table type, n
|
||||
show warnings;
|
||||
Level Code Message
|
||||
Error 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 4030. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
|
||||
create index idx4 on worklog5743_2(a2(946));
|
||||
create index idx4 on worklog5743_2(a2(802));
|
||||
show warnings;
|
||||
Level Code Message
|
||||
create index idx5 on worklog5743_2(a1, a2(942));
|
||||
@@ -139,7 +139,7 @@ ERROR 42000: Row size too large. The maximum row size for the used table type, n
|
||||
show warnings;
|
||||
Level Code Message
|
||||
Error 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 4030. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
|
||||
create index idx6 on worklog5743_2(a1, a2(940));
|
||||
create index idx6 on worklog5743_2(a1, a2(795));
|
||||
show warnings;
|
||||
Level Code Message
|
||||
create index idx3 on worklog5743_4(a2(1537));
|
||||
@@ -362,7 +362,7 @@ worklog5743 CREATE TABLE `worklog5743` (
|
||||
`a` text NOT NULL,
|
||||
KEY `idx1` (`a`(1536)),
|
||||
KEY `idx2` (`a`(1536))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ROW_FORMAT=DYNAMIC
|
||||
drop table worklog5743;
|
||||
create table worklog5743(a TEXT not null) ROW_FORMAT=REDUNDANT;
|
||||
create index idx on worklog5743(a(768));
|
||||
|
@@ -6,8 +6,6 @@ SET default_storage_engine=InnoDB;
|
||||
|
||||
--disable_query_log
|
||||
call mtr.add_suppression("Cannot add field .* in table .* because after adding it, the row size is");
|
||||
SET @save_innodb_read_only_compressed=@@GLOBAL.innodb_read_only_compressed;
|
||||
SET GLOBAL innodb_read_only_compressed=OFF;
|
||||
--enable_query_log
|
||||
|
||||
let $innodb_file_per_table_orig=`select @@innodb_file_per_table`;
|
||||
@@ -144,38 +142,40 @@ show warnings;
|
||||
-- error ER_TOO_BIG_ROWSIZE
|
||||
create index idx3 on worklog5743_1(a2(436));
|
||||
show warnings;
|
||||
# Bug#13391353 Limit is one byte less on on 32bit-Linux only
|
||||
create index idx4 on worklog5743_1(a2(434));
|
||||
# MDEV-27634 innodb_zip tests failing on s390x
|
||||
create index idx4 on worklog5743_1(a2(290));
|
||||
show warnings;
|
||||
-- error ER_TOO_BIG_ROWSIZE
|
||||
create index idx5 on worklog5743_1(a1, a2(430));
|
||||
show warnings;
|
||||
# Bug#13391353 Limit is one byte less on on 32bit-Linux only
|
||||
create index idx6 on worklog5743_1(a1, a2(428));
|
||||
# MDEV-27634 innodb_zip tests failing on s390x
|
||||
create index idx6 on worklog5743_1(a1, a2(283));
|
||||
show warnings;
|
||||
|
||||
# Test edge cases for indexes using key_block_size=2
|
||||
SET sql_mode= '';
|
||||
--error ER_TOO_BIG_ROWSIZE
|
||||
set innodb_strict_mode=off;
|
||||
create index idx1 on worklog5743_2(a2(4000));
|
||||
set innodb_strict_mode=on;
|
||||
show warnings;
|
||||
show create table worklog5743_2;
|
||||
drop index idx1 on worklog5743_2;
|
||||
create index idx3 on worklog5743_2(a2(769));
|
||||
show warnings;
|
||||
create index idx4 on worklog5743_2(a2(768));
|
||||
show warnings;
|
||||
create index idx5 on worklog5743_2(a1, a2(765));
|
||||
show warnings;
|
||||
create index idx6 on worklog5743_2(a1, a2(764));
|
||||
create index idx6 on worklog5743_2(a1, a2(768));
|
||||
show warnings;
|
||||
# Test edge cases for indexes using key_block_size=4
|
||||
set innodb_strict_mode=off;
|
||||
create index idx1 on worklog5743_4(a2(4000));
|
||||
set innodb_strict_mode=on;
|
||||
show warnings;
|
||||
show create table worklog5743_4;
|
||||
create index idx3 on worklog5743_4(a2(769));
|
||||
show warnings;
|
||||
create index idx4 on worklog5743_4(a2(768));
|
||||
show warnings;
|
||||
create index idx5 on worklog5743_4(a1, a2(765));
|
||||
show warnings;
|
||||
create index idx6 on worklog5743_4(a1, a2(764));
|
||||
show warnings;
|
||||
SET sql_mode= default;
|
||||
@@ -313,6 +313,9 @@ rollback;
|
||||
drop table worklog5743;
|
||||
|
||||
-- echo ### Test 6 ###
|
||||
create table worklog5743(a TEXT not null, primary key (a(1000)));
|
||||
drop table worklog5743;
|
||||
|
||||
create table worklog5743(a TEXT) ROW_FORMAT=COMPACT;
|
||||
|
||||
# Excercise the column length check in ha_innobase::add_index()
|
||||
@@ -376,9 +379,7 @@ create table worklog5743(a TEXT not null) ROW_FORMAT=COMPACT;
|
||||
-- error ER_INDEX_COLUMN_TOO_LONG
|
||||
create index idx on worklog5743(a(768));
|
||||
create index idx2 on worklog5743(a(767));
|
||||
--disable_query_log
|
||||
SET GLOBAL innodb_read_only_compressed=@save_innodb_read_only_compressed;
|
||||
--enable_query_log
|
||||
drop table worklog5743;
|
||||
|
||||
|
||||
eval SET GLOBAL innodb_file_per_table=$innodb_file_per_table_orig;
|
||||
|
@@ -6,8 +6,6 @@ SET default_storage_engine=InnoDB;
|
||||
|
||||
--disable_query_log
|
||||
call mtr.add_suppression("Cannot add field .* in table .* because after adding it, the row size is");
|
||||
SET @save_innodb_read_only_compressed=@@GLOBAL.innodb_read_only_compressed;
|
||||
SET GLOBAL innodb_read_only_compressed=OFF;
|
||||
--enable_query_log
|
||||
|
||||
let $innodb_file_per_table_orig=`select @@innodb_file_per_table`;
|
||||
@@ -146,14 +144,14 @@ show warnings;
|
||||
-- error ER_TOO_BIG_ROWSIZE
|
||||
create index idx3 on worklog5743_1(a2(436));
|
||||
show warnings;
|
||||
# Bug#13391353 Limit is one byte less on on 32bit-Linux only
|
||||
create index idx4 on worklog5743_1(a2(434));
|
||||
# MDEV-27634 innodb_zip tests failing on s390x
|
||||
create index idx4 on worklog5743_1(a2(290));
|
||||
show warnings;
|
||||
-- error ER_TOO_BIG_ROWSIZE
|
||||
create index idx5 on worklog5743_1(a1, a2(430));
|
||||
show warnings;
|
||||
# Bug#13391353 Limit is one byte less on on 32bit-Linux only
|
||||
create index idx6 on worklog5743_1(a1, a2(428));
|
||||
# MDEV-27634 innodb_zip tests failing on s390x
|
||||
create index idx6 on worklog5743_1(a1, a2(283));
|
||||
show warnings;
|
||||
|
||||
# Test edge cases for indexes using key_block_size=2
|
||||
@@ -163,14 +161,14 @@ show warnings;
|
||||
-- error ER_TOO_BIG_ROWSIZE
|
||||
create index idx3 on worklog5743_2(a2(948));
|
||||
show warnings;
|
||||
# Bug#13391353 Limit is one byte less on on 32bit-Linux only
|
||||
create index idx4 on worklog5743_2(a2(946));
|
||||
# MDEV-27634 innodb_zip tests failing on s390x
|
||||
create index idx4 on worklog5743_2(a2(802));
|
||||
show warnings;
|
||||
-- error ER_TOO_BIG_ROWSIZE
|
||||
create index idx5 on worklog5743_2(a1, a2(942));
|
||||
show warnings;
|
||||
# Bug#13391353 Limit is one byte less on on 32bit-Linux only
|
||||
create index idx6 on worklog5743_2(a1, a2(940));
|
||||
# MDEV-27634 innodb_zip tests failing on s390x
|
||||
create index idx6 on worklog5743_2(a1, a2(795));
|
||||
show warnings;
|
||||
|
||||
# Test edge cases for indexes using key_block_size=4
|
||||
@@ -398,9 +396,7 @@ create table worklog5743(a TEXT not null) ROW_FORMAT=COMPACT;
|
||||
-- error ER_INDEX_COLUMN_TOO_LONG
|
||||
create index idx on worklog5743(a(768));
|
||||
create index idx2 on worklog5743(a(767));
|
||||
--disable_query_log
|
||||
SET GLOBAL innodb_read_only_compressed=@save_innodb_read_only_compressed;
|
||||
--enable_query_log
|
||||
drop table worklog5743;
|
||||
|
||||
|
||||
eval SET GLOBAL innodb_file_per_table=$innodb_file_per_table_orig;
|
||||
|
Reference in New Issue
Block a user