mirror of
https://github.com/MariaDB/server.git
synced 2025-02-22 05:13:08 +01:00

-----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEF39AEP5WyjM2MAMF8WVvJMdM0dgFAmck77AACgkQ8WVvJMdM 0dgccQ/+Lls8fWt4D+gMPP7x+drJSO/IE/gZFt3ugbWF+/p3B2xXAs5AAE83wxEh QSbp4DCkb/9PnuakhLmzg0lFbxMUlh4rsJ1YyiuLB2J+YgKbAc36eQQf+rtYSipd DT5uRk36c9wOcOXo/mMv4APEvpPXBIBdIL4VvpKFbIOE7xT24Sp767zWXdXqrB1f JgOQdM2ct+bvSPC55oZ5p1kqyxwvd6K6+3RB3CIpwW9zrVSLg7enT3maLjj/761s jvlRae+Cv+r+Hit9XpmEH6n2FYVgIJ3o3WhdAHwN0kxKabXYTg7OCB7QxDZiUHI9 C/5goKmKaPB1PCQyuTQyLSyyK9a8nPfgn6tqw/p/ZKDQhKT9sWJv/5bSWecrVndx LLYifSTrFC/eXLzgPvCnNv/U8SjsZaAdMIKS681+qDJ0P5abghUIlGnMYTjYXuX1 1B6Vrr0bdrQ3V1CLB3tpkRjpUvicrsabtuAUAP65QnEG2G9UJXklOer+DE291Gsl f1I0o6C1zVGAOkUUD3QEYaHD8w7hlvyfKme5oXKUm3DOjaAar5UUKLdr6prxRZL4 ebhmGEy42Mf8fBYoeohIxmxgvv6h2Xd9xCukgPp8hFpqJGw8abg7JNZTTKH4h2IY J51RpD10h4eoi6WRn3opEcjexTGvZ+xNR7yYO5WxWw6VIre9IUA= =s+WW -----END PGP SIGNATURE----- Merge tag '11.4' into 11.6 MariaDB 11.4.4 release
86 lines
3.1 KiB
Text
86 lines
3.1 KiB
Text
--source include/have_innodb.inc
|
|
--source include/have_partition.inc
|
|
--source include/have_sequence.inc
|
|
|
|
SET @default_stats_persistent= @@global.innodb_stats_persistent;
|
|
SET GLOBAL innodb_stats_persistent= 0;
|
|
CREATE TABLE t1(f1 CHAR(200), f2 INT NOT NULL)engine=InnoDB;
|
|
INSERT INTO t1 SELECT repeat('a', 200), seq FROM seq_1_to_2;
|
|
# Buffer fits in the memory
|
|
ALTER TABLE t1 ALGORITHM=COPY, FORCE;
|
|
|
|
# Insert more entries
|
|
INSERT INTO t1 SELECT repeat('b', 200), seq FROM seq_3_to_65536;
|
|
# Alter should use temporary file for sorting
|
|
ALTER TABLE t1 ALGORITHM=COPY, ADD INDEX(f2);
|
|
|
|
# Error while buffering the insert operation
|
|
--error ER_DUP_ENTRY
|
|
ALTER TABLE t1 ALGORITHM=COPY, ADD PRIMARY KEY(f1(2));
|
|
|
|
INSERT INTO t1 VALUES(repeat('a', 200), 1);
|
|
# Error while applying the bulk insert operation
|
|
--error ER_DUP_ENTRY
|
|
ALTER TABLE t1 ALGORITHM=COPY, ADD UNIQUE KEY(f2);
|
|
|
|
# Ignore shouldn't go through bulk operation
|
|
ALTER IGNORE TABLE t1 MODIFY f1 CHAR(200) NOT NULL;
|
|
|
|
CREATE TABLE t2(f1 INT NOT NULL,
|
|
FOREIGN KEY(f1) REFERENCES t1(f2))ENGINE=InnoDB;
|
|
INSERT INTO t2 VALUES(1);
|
|
# Bulk operation shouldn't happen because of foreign key constraints
|
|
ALTER TABLE t2 ALGORITHM=COPY, FORCE;
|
|
DROP TABLE t2, t1;
|
|
|
|
CREATE TABLE t1 (f1 INT, f2 INT) ENGINE=InnoDB PARTITION BY HASH(f1) PARTITIONS 2;
|
|
INSERT INTO t1 VALUES(1, 1);
|
|
INSERT INTO t1 SELECT seq, seq * 2 FROM seq_1_to_2;
|
|
# Buffer fits in the memory
|
|
ALTER TABLE t1 ALGORITHM=COPY, FORCE;
|
|
# Insert more entries
|
|
INSERT INTO t1 SELECT seq, seq * 2 FROM seq_3_to_65536;
|
|
# Alter should use temporary file for sorting
|
|
ALTER TABLE t1 ALGORITHM=COPY, ADD INDEX(f2);
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # MDEV-34756 Validation of new foreign key skipped
|
|
--echo # if innodb_alter_copy_bulk=ON
|
|
--echo #
|
|
CREATE TABLE t1(f1 INT NOT NULL PRIMARY KEY,
|
|
f2 INT NOT NULL)ENGINE=InnoDB;
|
|
CREATE TABLE t2(f1 INT NOT NULL PRIMARY KEY,
|
|
f2 INT NOT NULL)ENGINE=InnoDB;
|
|
--enable_info
|
|
ALTER TABLE t2 ADD CONSTRAINT FOREIGN KEY(f1) REFERENCES t1(f1);
|
|
--disable_info
|
|
INSERT INTO t1 VALUES (1, 1);
|
|
INSERT INTO t2 VALUES (1, 2);
|
|
--replace_regex /#sql-alter-[0-9a-f-]*/#sql-alter/
|
|
--error ER_NO_REFERENCED_ROW_2
|
|
ALTER TABLE t2 ADD CONSTRAINT FOREIGN KEY(f2) REFERENCES t1(f1);
|
|
INSERT INTO t1 VALUES(3, 1);
|
|
--enable_info
|
|
SET STATEMENT foreign_key_checks=0 FOR
|
|
ALTER TABLE t2 ALGORITHM=COPY, ADD CONSTRAINT FOREIGN KEY(f2) REFERENCES t1(f1);
|
|
ALTER TABLE t1 ALGORITHM=COPY, FORCE;
|
|
ALTER TABLE t2 ALGORITHM=COPY, FORCE;
|
|
--disable_info
|
|
DROP TABLE t2, t1;
|
|
|
|
--echo #
|
|
--echo # MDEV-35237 Bulk insert fails to apply buffered
|
|
--echo # operation during copy alter
|
|
--echo #
|
|
CREATE TABLE t1 (f1 int NOT NULL, f2 tinyint(1) NOT NULL,
|
|
f3 varchar(80) NOT NULL, PRIMARY KEY(f1),
|
|
KEY(f2), KEY(f3))ENGINE=InnoDB;
|
|
INSERT INTO t1 VALUES(1,1,''),(2,0,''), (4,1,'e');
|
|
CREATE TABLE t2 (f1 int NOT NULL, f2 int NOT NULL,KEY(f1))ENGINE=InnoDB;
|
|
INSERT INTO t2 VALUES (1,0),(1,0);
|
|
CREATE TABLE t engine=innodb
|
|
SELECT t2.f2 FROM t2 JOIN t1 ON t1.f1 = t2.f1 AND t1.f3 = '' AND t1.f2=1 ;
|
|
SELECT COUNT(*) FROM t;
|
|
DROP TABLE t1, t2, t;
|
|
SET GLOBAL innodb_stats_persistent=@default_stats_persistent;
|