mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge 10.7 into 10.8
This commit is contained in:
@@ -46,7 +46,15 @@ show create table c;
|
||||
#
|
||||
# Note that column b has different type in parent table
|
||||
#
|
||||
--error 1005
|
||||
CREATE TABLE b (
|
||||
b bigint unsigned NOT NULL,
|
||||
d1 date NOT NULL,
|
||||
PRIMARY KEY (b,d1)
|
||||
) ENGINE=InnoDB;
|
||||
DROP TABLE b;
|
||||
|
||||
set foreign_key_checks = 1;
|
||||
--error ER_CANT_CREATE_TABLE
|
||||
CREATE TABLE b (
|
||||
b bigint unsigned NOT NULL,
|
||||
d1 date NOT NULL,
|
||||
@@ -54,6 +62,7 @@ CREATE TABLE b (
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
show warnings;
|
||||
set foreign_key_checks = 0;
|
||||
|
||||
DROP TABLE IF EXISTS d;
|
||||
|
||||
@@ -64,7 +73,7 @@ CREATE TABLE d (
|
||||
CONSTRAINT bd_fk FOREIGN KEY (b) REFERENCES b (b)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
show warnings;
|
||||
show warnings;
|
||||
|
||||
set foreign_key_checks = 1;
|
||||
|
||||
|
@@ -1598,12 +1598,22 @@ disconnect b;
|
||||
|
||||
set foreign_key_checks=0;
|
||||
create table t2 (a int primary key, b int, foreign key (b) references t1(a)) engine = innodb;
|
||||
create table t1(a char(10) primary key, b varchar(20)) engine = innodb;
|
||||
set foreign_key_checks=1;
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
insert into t2 values (1,1);
|
||||
set foreign_key_checks=0;
|
||||
drop table t1;
|
||||
set foreign_key_checks=1;
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
insert into t2 values (1,1);
|
||||
# Embedded server doesn't chdir to data directory
|
||||
--replace_result $MYSQLTEST_VARDIR . master-data/ ''
|
||||
--error ER_CANT_CREATE_TABLE
|
||||
create table t1(a char(10) primary key, b varchar(20)) engine = innodb;
|
||||
set foreign_key_checks=1;
|
||||
drop table t2;
|
||||
create table t1(a char(10) primary key, b varchar(20)) engine = innodb;
|
||||
drop table t1;
|
||||
|
||||
# test that FKs between different charsets are not accepted in CREATE even
|
||||
# when f_k_c is 0
|
||||
|
@@ -208,6 +208,8 @@ source include/wait_condition.inc;
|
||||
SELECT n_rows FROM mysql.innodb_table_stats WHERE TABLE_NAME="t1";
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo # End of 10.6 tests
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-26947 UNIQUE column checks fail in InnoDB resulting
|
||||
--echo # in table corruption
|
||||
@@ -375,3 +377,5 @@ INSERT IGNORE INTO t1 VALUES
|
||||
CHECK TABLE t1;
|
||||
DROP TABLE t1;
|
||||
SET GLOBAL INNODB_DEFAULT_ROW_FORMAT= @format;
|
||||
|
||||
--echo # End of 10.7 tests
|
||||
|
@@ -47,6 +47,9 @@ ROLLBACK;
|
||||
INSERT INTO t2 VALUES
|
||||
(16,1551,'Omnium enim rerum'),(128,1571,' principia parva sunt');
|
||||
|
||||
BEGIN;
|
||||
UPDATE t1 SET c2=c2+1;
|
||||
|
||||
connect ddl, localhost, root;
|
||||
SET DEBUG_SYNC='innodb_alter_inplace_before_commit SIGNAL ddl WAIT_FOR ever';
|
||||
--send
|
||||
@@ -55,7 +58,7 @@ ALTER TABLE t2 DROP COLUMN c3, ADD COLUMN c5 TEXT DEFAULT 'naturam abhorrere';
|
||||
connection default;
|
||||
SET DEBUG_SYNC='now WAIT_FOR ddl';
|
||||
SET GLOBAL innodb_flush_log_at_trx_commit=1;
|
||||
UPDATE t1 SET c2=c2+1;
|
||||
COMMIT;
|
||||
|
||||
--source include/kill_mysqld.inc
|
||||
disconnect ddl;
|
||||
@@ -73,6 +76,8 @@ ROLLBACK;
|
||||
--source include/wait_all_purged.inc
|
||||
|
||||
INSERT INTO t2 VALUES (64,42,'De finibus bonorum'), (347,33101,' et malorum');
|
||||
BEGIN;
|
||||
DELETE FROM t1;
|
||||
|
||||
connect ddl, localhost, root;
|
||||
ALTER TABLE t2 DROP COLUMN c3;
|
||||
@@ -83,7 +88,7 @@ ALTER TABLE t2 ADD COLUMN (c4 TEXT NOT NULL DEFAULT ' et malorum');
|
||||
connection default;
|
||||
SET DEBUG_SYNC='now WAIT_FOR ddl';
|
||||
SET GLOBAL innodb_flush_log_at_trx_commit=1;
|
||||
DELETE FROM t1;
|
||||
COMMIT;
|
||||
|
||||
--source include/kill_mysqld.inc
|
||||
disconnect ddl;
|
||||
@@ -177,6 +182,9 @@ DELETE FROM t2;
|
||||
--echo #
|
||||
--echo # MDEV-24323 Crash on recovery after kill during instant ADD COLUMN
|
||||
--echo #
|
||||
BEGIN;
|
||||
INSERT INTO t1 VALUES(0,0);
|
||||
|
||||
connect ddl, localhost, root;
|
||||
CREATE TABLE t3(id INT PRIMARY KEY, c2 INT, v2 INT AS(c2) VIRTUAL, UNIQUE(v2))
|
||||
ENGINE=InnoDB;
|
||||
@@ -189,7 +197,7 @@ ALTER TABLE t3 ADD COLUMN c3 TEXT NOT NULL DEFAULT 'sic transit gloria mundi';
|
||||
connection default;
|
||||
SET DEBUG_SYNC='now WAIT_FOR ddl';
|
||||
SET GLOBAL innodb_flush_log_at_trx_commit=1;
|
||||
INSERT INTO t1 VALUES(0,0);
|
||||
COMMIT;
|
||||
|
||||
--source include/kill_mysqld.inc
|
||||
disconnect ddl;
|
||||
@@ -207,6 +215,9 @@ DROP TABLE t2,t3;
|
||||
CREATE TABLE t2(a INT UNSIGNED PRIMARY KEY) ENGINE=InnoDB;
|
||||
INSERT INTO t2 VALUES (1),(2),(3),(4),(5),(6);
|
||||
|
||||
BEGIN;
|
||||
DELETE FROM t1;
|
||||
|
||||
connect ddl, localhost, root;
|
||||
SET DEBUG_SYNC='innodb_alter_inplace_before_commit SIGNAL ddl WAIT_FOR ever';
|
||||
--send
|
||||
@@ -215,7 +226,7 @@ ALTER TABLE t2 ADD COLUMN b TINYINT UNSIGNED NOT NULL DEFAULT 42 FIRST;
|
||||
connection default;
|
||||
SET DEBUG_SYNC='now WAIT_FOR ddl';
|
||||
SET GLOBAL innodb_flush_log_at_trx_commit=1;
|
||||
DELETE FROM t1;
|
||||
COMMIT;
|
||||
|
||||
--source include/kill_mysqld.inc
|
||||
disconnect ddl;
|
||||
|
@@ -92,8 +92,19 @@ SET FOREIGN_KEY_CHECKS=0;
|
||||
ALTER TABLE t1 ADD FOREIGN KEY (a) REFERENCES t1 (a), ALGORITHM=COPY;
|
||||
INSERT INTO t1 VALUES (1,1);
|
||||
LOCK TABLES t1 WRITE;
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
--error ER_CANNOT_ADD_FOREIGN
|
||||
TRUNCATE t1;
|
||||
# Whether TRUNCATE succeeds or fails, it will reload FOREIGN KEY constraints.
|
||||
# As a result, ha_innobase::referenced_by_foreign_key() will retun TRUE
|
||||
# (for the self-referential key), and the statement will fail.
|
||||
--error ER_TABLE_NOT_LOCKED
|
||||
INSERT INTO t1 VALUES (2,2);
|
||||
SELECT * FROM t1;
|
||||
UNLOCK TABLES;
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
INSERT INTO t1 VALUES (2,2);
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
INSERT INTO t1 VALUES (2,2);
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
Reference in New Issue
Block a user