mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge 10.1 into 10.2
This commit is contained in:
@ -448,9 +448,10 @@ UPDATE t1 SET a=@c,b=@c,c=@c,d=@c,e=@c,f=@c,g=@c,h=@c,i=@c,j=@c,
|
||||
# But a single transaction can update the columns in separate statements.
|
||||
# because the UNDO records will be smaller.
|
||||
CREATE INDEX t1f ON t1 (f(767));
|
||||
--error ER_UNDO_RECORD_TOO_BIG
|
||||
BEGIN;
|
||||
UPDATE t1 SET a=@d,b=@d,c=@d,d=@d,e=@d,f=@d,g=@d,h=@d,i=@d,j=@d,
|
||||
k=@d,l=@d,m=@d,n=@d,o=@d,p=@d,q=@d,r=@d,s=@d,t=@d,u=@d;
|
||||
ROLLBACK;
|
||||
BEGIN;
|
||||
UPDATE t1 SET a=@d,b=@d,c=@d,d=@d,e=@d;
|
||||
UPDATE t1 SET f=@d,g=@d,h=@d,i=@d,j=@d,k=@d,l=@d,m=@d,
|
||||
@ -489,8 +490,9 @@ UPDATE t1 SET s=@e;
|
||||
# This is a problem. It means that the DDL is allowed to create a table
|
||||
# that CANNOT be updated. See bug#12953735.
|
||||
CREATE INDEX t1t ON t1 (t(767));
|
||||
--error ER_UNDO_RECORD_TOO_BIG
|
||||
BEGIN;
|
||||
UPDATE t1 SET t=@e;
|
||||
ROLLBACK;
|
||||
|
||||
CREATE INDEX t1u ON t1 (u(767));
|
||||
CREATE INDEX t1ut ON t1 (u(767), t(767));
|
||||
@ -627,9 +629,10 @@ PRIMARY KEY (b(10), a), INDEX (c(767)), INDEX(b(767))
|
||||
INSERT INTO bug12547647 VALUES (5,REPEAT('khdfo5AlOq',1900),REPEAT('g',7751));
|
||||
COMMIT;
|
||||
# The following used to cause a hang while doing infinite undo log allocation.
|
||||
--error ER_UNDO_RECORD_TOO_BIG
|
||||
BEGIN;
|
||||
UPDATE bug12547647 SET c = REPEAT('b',16928);
|
||||
SHOW WARNINGS;
|
||||
ROLLBACK;
|
||||
DROP TABLE bug12547647;
|
||||
|
||||
# The following should fail in non-strict mode too.
|
||||
|
@ -19,7 +19,7 @@ SELECT variable_value FROM information_schema.global_status
|
||||
|
||||
--echo # Test 2) The number of buffer pool pages is dependent upon the page size.
|
||||
--disable_warnings
|
||||
--replace_result 6144 {checked_valid}
|
||||
--replace_result 2048 {checked_valid}
|
||||
SELECT variable_value FROM information_schema.global_status
|
||||
WHERE LOWER(variable_name) = 'innodb_buffer_pool_pages_total';
|
||||
--enable_warnings
|
||||
@ -285,9 +285,10 @@ UPDATE t1 SET a=@c,b=@c,c=@c,d=@c,e=@c,f=@c,g=@c,h=@c,i=@c,j=@c,
|
||||
# But a single transaction can update the columns in separate statements.
|
||||
# because the UNDO records will be smaller.
|
||||
CREATE INDEX t1b ON t1 (b(767));
|
||||
--error ER_UNDO_RECORD_TOO_BIG
|
||||
BEGIN;
|
||||
UPDATE t1 SET a=@d,b=@d,c=@d,d=@d,e=@d,f=@d,g=@d,h=@d,i=@d,j=@d,
|
||||
k=@d,l=@d,m=@d,n=@d,o=@d,p=@d,q=@d,r=@d,s=@d,t=@d,u=@d;
|
||||
ROLLBACK;
|
||||
BEGIN;
|
||||
UPDATE t1 SET a=@d,b=@d,c=@d,d=@d,e=@d;
|
||||
UPDATE t1 SET f=@d,g=@d,h=@d,i=@d,j=@d,k=@d,l=@d,m=@d,
|
||||
@ -302,8 +303,9 @@ UPDATE t1 SET c=@e;
|
||||
# This is a problem. It means that the DDL is allowed to create a table
|
||||
# that CANNOT be updated. See bug#12953735.
|
||||
CREATE INDEX t1d ON t1 (d(767));
|
||||
--error ER_UNDO_RECORD_TOO_BIG
|
||||
BEGIN;
|
||||
UPDATE t1 SET d=@e;
|
||||
ROLLBACK;
|
||||
|
||||
--replace_regex /> [0-9]*/> max_row_size/
|
||||
CREATE INDEX t1e ON t1 (e(767));
|
||||
|
@ -19,7 +19,7 @@ SELECT variable_value FROM information_schema.global_status
|
||||
|
||||
--echo # Test 2) The number of buffer pool pages is dependent upon the page size.
|
||||
--disable_warnings
|
||||
--replace_result 3071 {checked_valid} 3072 {checked_valid}
|
||||
--replace_result 1023 {checked_valid} 1024 {checked_valid}
|
||||
SELECT variable_value FROM information_schema.global_status
|
||||
WHERE LOWER(variable_name) = 'innodb_buffer_pool_pages_total';
|
||||
--enable_warnings
|
||||
@ -303,9 +303,10 @@ UPDATE t1 SET a=@c,b=@c,c=@c,d=@c,e=@c,f=@c,g=@c,h=@c,i=@c,j=@c,
|
||||
# But a single transaction can update the columns in separate statements.
|
||||
# because the UNDO records will be smaller.
|
||||
CREATE INDEX t1c ON t1 (c(767));
|
||||
--error ER_UNDO_RECORD_TOO_BIG
|
||||
BEGIN;
|
||||
UPDATE t1 SET a=@d,b=@d,c=@d,d=@d,e=@d,f=@d,g=@d,h=@d,i=@d,j=@d,
|
||||
k=@d,l=@d,m=@d,n=@d,o=@d,p=@d,q=@d,r=@d,s=@d,t=@d,u=@d;
|
||||
ROLLBACK;
|
||||
BEGIN;
|
||||
UPDATE t1 SET a=@d,b=@d,c=@d,d=@d,e=@d;
|
||||
UPDATE t1 SET f=@d,g=@d,h=@d,i=@d,j=@d,k=@d,l=@d,m=@d,
|
||||
@ -335,8 +336,9 @@ CREATE INDEX t1k ON t1 (j(767));
|
||||
# See bug#12953735
|
||||
--replace_regex /> [0-9]*/> max_row_size/
|
||||
CREATE INDEX t1j ON t1 (j(500));
|
||||
--error ER_UNDO_RECORD_TOO_BIG
|
||||
BEGIN;
|
||||
UPDATE t1 SET j=@e;
|
||||
ROLLBACK;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
@ -137,7 +137,7 @@ create table worklog5743_4(a1 int, a2 TEXT not null) KEY_BLOCK_SIZE=4;
|
||||
|
||||
# Test edge cases for indexes using key_block_size=1
|
||||
set global innodb_large_prefix=0;
|
||||
-- error ER_TOO_LONG_KEY
|
||||
-- error ER_TOO_BIG_ROWSIZE
|
||||
create index idx1 on worklog5743_1(a2(4000));
|
||||
show warnings;
|
||||
-- error ER_TOO_BIG_ROWSIZE
|
||||
|
@ -139,11 +139,11 @@ create table worklog5743_8(a1 int, a2 TEXT, a3 TEXT) KEY_BLOCK_SIZE=8;
|
||||
|
||||
# Test edge cases for indexes using key_block_size=1
|
||||
set global innodb_large_prefix=0;
|
||||
-- error ER_TOO_LONG_KEY
|
||||
-- error ER_TOO_BIG_ROWSIZE
|
||||
create index idx1 on worklog5743_1(a2(4000));
|
||||
show warnings;
|
||||
set global innodb_large_prefix=1;
|
||||
-- error ER_TOO_LONG_KEY
|
||||
-- error ER_TOO_BIG_ROWSIZE
|
||||
create index idx2 on worklog5743_1(a2(4000));
|
||||
show warnings;
|
||||
-- error ER_TOO_BIG_ROWSIZE
|
||||
|
Reference in New Issue
Block a user