mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
Merge 10.4 into 10.5
This commit is contained in:
commit
f4425d3a3d
28 changed files with 181 additions and 50 deletions
|
@ -1,4 +1,4 @@
|
||||||
if(JAVA_AWT_LIBRARY)
|
if(JAVA_AWT_LIBRARY AND JAVA_INCLUDE_PATH)
|
||||||
set(JNI_FOUND TRUE)
|
set(JNI_FOUND TRUE)
|
||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
|
|
4
debian/mariadb-plugin-connect.install
vendored
4
debian/mariadb-plugin-connect.install
vendored
|
@ -1,6 +1,2 @@
|
||||||
etc/mysql/mariadb.conf.d/connect.cnf
|
etc/mysql/mariadb.conf.d/connect.cnf
|
||||||
usr/lib/mysql/plugin/ha_connect.so
|
usr/lib/mysql/plugin/ha_connect.so
|
||||||
usr/share/mysql/Mongo2.jar
|
|
||||||
usr/share/mysql/Mongo3.jar
|
|
||||||
usr/share/mysql/JavaWrappers.jar
|
|
||||||
usr/share/mysql/JdbcInterface.jar
|
|
||||||
|
|
|
@ -10607,6 +10607,45 @@ m
|
||||||
7
|
7
|
||||||
drop view v1;
|
drop view v1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
#
|
||||||
|
# MDEV-25635: pushdown into grouping view using aggregate functions
|
||||||
|
# with constant arguments via a mergeable derived table
|
||||||
|
#
|
||||||
|
create table t1 (a int);
|
||||||
|
insert into t1 values (3), (7), (1), (3), (7), (7), (3);
|
||||||
|
create view v1 as select a, sum(1) as f, sum(1) as g from t1 group by a;
|
||||||
|
select * from v1;
|
||||||
|
a f g
|
||||||
|
1 1 1
|
||||||
|
3 3 3
|
||||||
|
7 3 3
|
||||||
|
select * from (select * from v1) as dt where a=f and a=g;
|
||||||
|
a f g
|
||||||
|
1 1 1
|
||||||
|
3 3 3
|
||||||
|
explain extended select * from (select * from v1) as dt where a=f and a=g;
|
||||||
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
|
1 PRIMARY <derived3> ALL NULL NULL NULL NULL 7 100.00 Using where
|
||||||
|
3 DERIVED t1 ALL NULL NULL NULL NULL 7 100.00 Using temporary; Using filesort
|
||||||
|
Warnings:
|
||||||
|
Note 1003 /* select#1 */ select `v1`.`a` AS `a`,`v1`.`f` AS `f`,`v1`.`g` AS `g` from `test`.`v1` where `v1`.`a` = `v1`.`f` and `v1`.`a` = `v1`.`g`
|
||||||
|
create view v2 as select a, min(1) as f, min(1) as g from t1 group by a;
|
||||||
|
select * from v2;
|
||||||
|
a f g
|
||||||
|
1 1 1
|
||||||
|
3 1 1
|
||||||
|
7 1 1
|
||||||
|
select * from (select * from v2) as dt where a=f and a=g;
|
||||||
|
a f g
|
||||||
|
1 1 1
|
||||||
|
explain extended select * from (select * from v2) as dt where a=f and a=g;
|
||||||
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
|
1 PRIMARY <derived3> ALL NULL NULL NULL NULL 7 100.00 Using where
|
||||||
|
3 DERIVED t1 ALL NULL NULL NULL NULL 7 100.00 Using temporary; Using filesort
|
||||||
|
Warnings:
|
||||||
|
Note 1003 /* select#1 */ select `v2`.`a` AS `a`,`v2`.`f` AS `f`,`v2`.`g` AS `g` from `test`.`v2` where `v2`.`a` = `v2`.`f` and `v2`.`a` = `v2`.`g`
|
||||||
|
drop view v1,v2;
|
||||||
|
drop table t1;
|
||||||
# End of 10.2 tests
|
# End of 10.2 tests
|
||||||
#
|
#
|
||||||
# MDEV-14579: pushdown conditions into materialized views/derived tables
|
# MDEV-14579: pushdown conditions into materialized views/derived tables
|
||||||
|
|
|
@ -2213,6 +2213,31 @@ select * from v1 where m > 0;
|
||||||
drop view v1;
|
drop view v1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-25635: pushdown into grouping view using aggregate functions
|
||||||
|
--echo # with constant arguments via a mergeable derived table
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
create table t1 (a int);
|
||||||
|
insert into t1 values (3), (7), (1), (3), (7), (7), (3);
|
||||||
|
|
||||||
|
create view v1 as select a, sum(1) as f, sum(1) as g from t1 group by a;
|
||||||
|
select * from v1;
|
||||||
|
let $q1=
|
||||||
|
select * from (select * from v1) as dt where a=f and a=g;
|
||||||
|
eval $q1;
|
||||||
|
eval explain extended $q1;
|
||||||
|
|
||||||
|
create view v2 as select a, min(1) as f, min(1) as g from t1 group by a;
|
||||||
|
select * from v2;
|
||||||
|
let $q2=
|
||||||
|
select * from (select * from v2) as dt where a=f and a=g;
|
||||||
|
eval $q2;
|
||||||
|
eval explain extended $q2;
|
||||||
|
|
||||||
|
drop view v1,v2;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
--echo # End of 10.2 tests
|
--echo # End of 10.2 tests
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
|
|
|
@ -3537,6 +3537,31 @@ SET max_length_for_sort_data=@save_max_length_for_sort_data;
|
||||||
SET max_sort_length= @save_max_sort_length;
|
SET max_sort_length= @save_max_sort_length;
|
||||||
SET sql_select_limit= @save_sql_select_limit;
|
SET sql_select_limit= @save_sql_select_limit;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# MDEV-25682: EXPLAIN for SELECT with ORDER BY after [ORDER BY] LIMIT
|
||||||
|
#
|
||||||
|
create table t1 (a int);
|
||||||
|
insert into t1 values (3), (7), (1);
|
||||||
|
explain (select a from t1 limit 2) order by a desc;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 Using filesort
|
||||||
|
2 DERIVED t1 ALL NULL NULL NULL NULL 3
|
||||||
|
(select a from t1 limit 2) order by a desc;
|
||||||
|
a
|
||||||
|
7
|
||||||
|
3
|
||||||
|
create table t2 (a int, b int);
|
||||||
|
insert into t2 values (3,70), (7,10), (1,40), (4,30);
|
||||||
|
explain (select b,a from t2 order by a limit 3) order by b desc;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 3 Using filesort
|
||||||
|
2 DERIVED t2 ALL NULL NULL NULL NULL 4 Using filesort
|
||||||
|
(select b,a from t2 order by a limit 3) order by b desc;
|
||||||
|
b a
|
||||||
|
70 3
|
||||||
|
40 1
|
||||||
|
30 4
|
||||||
|
drop table t1,t2;
|
||||||
# End of 10.2 tests
|
# End of 10.2 tests
|
||||||
#
|
#
|
||||||
# MDEV-16214: Incorrect plan taken by the optimizer , uses INDEX instead of ref access with ORDER BY
|
# MDEV-16214: Incorrect plan taken by the optimizer , uses INDEX instead of ref access with ORDER BY
|
||||||
|
|
|
@ -2295,6 +2295,22 @@ SET max_sort_length= @save_max_sort_length;
|
||||||
SET sql_select_limit= @save_sql_select_limit;
|
SET sql_select_limit= @save_sql_select_limit;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-25682: EXPLAIN for SELECT with ORDER BY after [ORDER BY] LIMIT
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
create table t1 (a int);
|
||||||
|
insert into t1 values (3), (7), (1);
|
||||||
|
explain (select a from t1 limit 2) order by a desc;
|
||||||
|
(select a from t1 limit 2) order by a desc;
|
||||||
|
|
||||||
|
create table t2 (a int, b int);
|
||||||
|
insert into t2 values (3,70), (7,10), (1,40), (4,30);
|
||||||
|
explain (select b,a from t2 order by a limit 3) order by b desc;
|
||||||
|
(select b,a from t2 order by a limit 3) order by b desc;
|
||||||
|
|
||||||
|
drop table t1,t2;
|
||||||
|
|
||||||
--echo # End of 10.2 tests
|
--echo # End of 10.2 tests
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
|
|
|
@ -65,7 +65,7 @@ INSERT INTO table1_no_encryption SELECT NULL,NOW(),b FROM table1_no_encryption;
|
||||||
--echo # Part 2: restart master, now with binlog encryption
|
--echo # Part 2: restart master, now with binlog encryption
|
||||||
--echo #####################################################
|
--echo #####################################################
|
||||||
|
|
||||||
--let $rpl_server_parameters= --encrypt-binlog=1 --plugin-load-add=$FILE_KEY_MANAGEMENT_SO --file-key-management --loose-file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys.txt
|
--let $rpl_server_parameters= --encrypt-binlog=1 --plugin-load-add=file_key_management --file-key-management --loose-file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys.txt
|
||||||
|
|
||||||
--let $rpl_server_number= 1
|
--let $rpl_server_number= 1
|
||||||
--source restart_server.inc
|
--source restart_server.inc
|
||||||
|
|
|
@ -7,12 +7,12 @@ call mtr.add_suppression("InnoDB: Table `test`\\.`t1` is corrupted");
|
||||||
call mtr.add_suppression("InnoDB: Cannot delete tablespace .* because it is not found in the tablespace memory cache");
|
call mtr.add_suppression("InnoDB: Cannot delete tablespace .* because it is not found in the tablespace memory cache");
|
||||||
call mtr.add_suppression("InnoDB: ALTER TABLE `test`\\.`t1` DISCARD TABLESPACE failed to find tablespace");
|
call mtr.add_suppression("InnoDB: ALTER TABLE `test`\\.`t1` DISCARD TABLESPACE failed to find tablespace");
|
||||||
call mtr.add_suppression("\\[ERROR\\] InnoDB: Cannot decrypt \\[page id: space=");
|
call mtr.add_suppression("\\[ERROR\\] InnoDB: Cannot decrypt \\[page id: space=");
|
||||||
# restart: --plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt
|
# restart: --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt
|
||||||
SET GLOBAL innodb_file_per_table = ON;
|
SET GLOBAL innodb_file_per_table = ON;
|
||||||
CREATE TABLE t1 (pk INT PRIMARY KEY, f VARCHAR(8)) ENGINE=InnoDB
|
CREATE TABLE t1 (pk INT PRIMARY KEY, f VARCHAR(8)) ENGINE=InnoDB
|
||||||
ENCRYPTED=YES ENCRYPTION_KEY_ID=4;
|
ENCRYPTED=YES ENCRYPTION_KEY_ID=4;
|
||||||
INSERT INTO t1 VALUES (1,'foo'),(2,'bar');
|
INSERT INTO t1 VALUES (1,'foo'),(2,'bar');
|
||||||
# restart: --plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys3.txt
|
# restart: --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys3.txt
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
ERROR 42S02: Table 'test.t1' doesn't exist in engine
|
ERROR 42S02: Table 'test.t1' doesn't exist in engine
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
|
@ -35,11 +35,11 @@ test.t1 check Error Table 'test.t1' doesn't exist in engine
|
||||||
test.t1 check status Operation failed
|
test.t1 check status Operation failed
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
# restart: --plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt
|
# restart: --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt
|
||||||
FLUSH TABLES t1 FOR EXPORT;
|
FLUSH TABLES t1 FOR EXPORT;
|
||||||
backup: t1
|
backup: t1
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
# restart: --plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys3.txt
|
# restart: --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys3.txt
|
||||||
ALTER TABLE t1 DISCARD TABLESPACE;
|
ALTER TABLE t1 DISCARD TABLESPACE;
|
||||||
ERROR 42S02: Table 'test.t1' doesn't exist in engine
|
ERROR 42S02: Table 'test.t1' doesn't exist in engine
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
@ -47,7 +47,7 @@ CREATE TABLE t1 (pk INT PRIMARY KEY, f VARCHAR(8)) ENGINE=InnoDB
|
||||||
ENCRYPTED=YES ENCRYPTION_KEY_ID=4;
|
ENCRYPTED=YES ENCRYPTION_KEY_ID=4;
|
||||||
ALTER TABLE t1 DISCARD TABLESPACE;
|
ALTER TABLE t1 DISCARD TABLESPACE;
|
||||||
restore: t1 .ibd and .cfg files
|
restore: t1 .ibd and .cfg files
|
||||||
# restart: --plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt
|
# restart: --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt
|
||||||
ALTER TABLE t1 DISCARD TABLESPACE;
|
ALTER TABLE t1 DISCARD TABLESPACE;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1814 Tablespace has been discarded for table `t1`
|
Warning 1814 Tablespace has been discarded for table `t1`
|
||||||
|
@ -61,7 +61,7 @@ t1 CREATE TABLE `t1` (
|
||||||
`f` varchar(8) DEFAULT NULL,
|
`f` varchar(8) DEFAULT NULL,
|
||||||
PRIMARY KEY (`pk`)
|
PRIMARY KEY (`pk`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `ENCRYPTED`=YES `ENCRYPTION_KEY_ID`=4
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `ENCRYPTED`=YES `ENCRYPTION_KEY_ID`=4
|
||||||
# restart: --innodb-encrypt-tables --plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys3.txt
|
# restart: --innodb-encrypt-tables --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys3.txt
|
||||||
RENAME TABLE t1 TO t1new;
|
RENAME TABLE t1 TO t1new;
|
||||||
ERROR HY000: Error on rename of './test/t1' to './test/t1new' (errno: 155 "The table does not exist in the storage engine")
|
ERROR HY000: Error on rename of './test/t1' to './test/t1new' (errno: 155 "The table does not exist in the storage engine")
|
||||||
ALTER TABLE t1 RENAME TO t1new;
|
ALTER TABLE t1 RENAME TO t1new;
|
||||||
|
|
|
@ -4,12 +4,12 @@ call mtr.add_suppression("failed to read or decrypt \\[page id: space=[1-9][0-9]
|
||||||
call mtr.add_suppression("Couldn't load plugins from 'file_key_management");
|
call mtr.add_suppression("Couldn't load plugins from 'file_key_management");
|
||||||
call mtr.add_suppression("InnoDB: Table `test`\\.`t1` is corrupted");
|
call mtr.add_suppression("InnoDB: Table `test`\\.`t1` is corrupted");
|
||||||
call mtr.add_suppression("\\[ERROR\\] InnoDB: Cannot decrypt \\[page id: space=");
|
call mtr.add_suppression("\\[ERROR\\] InnoDB: Cannot decrypt \\[page id: space=");
|
||||||
# restart: --plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt
|
# restart: --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt
|
||||||
SET GLOBAL innodb_file_per_table = ON;
|
SET GLOBAL innodb_file_per_table = ON;
|
||||||
CREATE TABLE t1 (pk INT PRIMARY KEY, f VARCHAR(8)) ENGINE=InnoDB
|
CREATE TABLE t1 (pk INT PRIMARY KEY, f VARCHAR(8)) ENGINE=InnoDB
|
||||||
ENCRYPTED=YES ENCRYPTION_KEY_ID=4;
|
ENCRYPTED=YES ENCRYPTION_KEY_ID=4;
|
||||||
INSERT INTO t1 VALUES (1,'foo'),(2,'bar');
|
INSERT INTO t1 VALUES (1,'foo'),(2,'bar');
|
||||||
# restart: --plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys3.txt
|
# restart: --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys3.txt
|
||||||
OPTIMIZE TABLE t1;
|
OPTIMIZE TABLE t1;
|
||||||
Table Op Msg_type Msg_text
|
Table Op Msg_type Msg_text
|
||||||
test.t1 optimize Error Table 'test.t1' doesn't exist in engine
|
test.t1 optimize Error Table 'test.t1' doesn't exist in engine
|
||||||
|
@ -22,5 +22,5 @@ test.t1 check Error Table 'test.t1' doesn't exist in engine
|
||||||
test.t1 check status Operation failed
|
test.t1 check status Operation failed
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
# restart: --plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt
|
# restart: --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
|
@ -4,7 +4,7 @@ call mtr.add_suppression("failed to read or decrypt \\[page id: space=[1-9][0-9]
|
||||||
call mtr.add_suppression("InnoDB: Encrypted page \\[page id: space=[1-9][0-9]*, page number=3\\] in file .*test.t[15].ibd looks corrupted; key_version=1");
|
call mtr.add_suppression("InnoDB: Encrypted page \\[page id: space=[1-9][0-9]*, page number=3\\] in file .*test.t[15].ibd looks corrupted; key_version=1");
|
||||||
call mtr.add_suppression("InnoDB: Table `test`\\.`t[15]` is corrupted");
|
call mtr.add_suppression("InnoDB: Table `test`\\.`t[15]` is corrupted");
|
||||||
call mtr.add_suppression("Couldn't load plugins from 'file_key_management");
|
call mtr.add_suppression("Couldn't load plugins from 'file_key_management");
|
||||||
# restart: --innodb-encrypt-tables=ON --plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt
|
# restart: --innodb-encrypt-tables=ON --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt
|
||||||
create table t5 (
|
create table t5 (
|
||||||
`intcol1` int(32) DEFAULT NULL,
|
`intcol1` int(32) DEFAULT NULL,
|
||||||
`intcol2` int(32) DEFAULT NULL,
|
`intcol2` int(32) DEFAULT NULL,
|
||||||
|
@ -27,6 +27,6 @@ select * from t1;
|
||||||
ERROR 42S02: Table 'test.t1' doesn't exist in engine
|
ERROR 42S02: Table 'test.t1' doesn't exist in engine
|
||||||
select * from t5;
|
select * from t5;
|
||||||
ERROR 42S02: Table 'test.t5' doesn't exist in engine
|
ERROR 42S02: Table 'test.t5' doesn't exist in engine
|
||||||
# restart: --innodb-encrypt-tables=ON --plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt
|
# restart: --innodb-encrypt-tables=ON --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt
|
||||||
drop table t1;
|
drop table t1;
|
||||||
drop table t5;
|
drop table t5;
|
||||||
|
|
|
@ -6,7 +6,7 @@ flush tables;
|
||||||
create table t1(a int not null primary key, b char(200)) engine=innodb;
|
create table t1(a int not null primary key, b char(200)) engine=innodb;
|
||||||
|
|
||||||
# Restart server with encryption
|
# Restart server with encryption
|
||||||
# restart: --plugin-load-add=file_key_management.so --loose-file-key-management --loose-file-key-management-filename=MYSQL_TEST_DIR/std_data/keys.txt --file-key-management-encryption-algorithm=aes_cbc --innodb-encrypt-tables=ON --innodb-encryption-threads=4 --innodb-tablespaces-encryption --innodb-encryption-rotate-key-age=15
|
# restart: --plugin-load-add=file_key_management --loose-file-key-management --loose-file-key-management-filename=MYSQL_TEST_DIR/std_data/keys.txt --file-key-management-encryption-algorithm=aes_cbc --innodb-encrypt-tables=ON --innodb-encryption-threads=4 --innodb-tablespaces-encryption --innodb-encryption-rotate-key-age=15
|
||||||
# Wait until encryption threads have encrypted all tablespaces
|
# Wait until encryption threads have encrypted all tablespaces
|
||||||
SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0;
|
SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0;
|
||||||
NAME
|
NAME
|
||||||
|
|
|
@ -20,7 +20,7 @@ call mtr.add_suppression("InnoDB: ALTER TABLE `test`\\.`t1` DISCARD TABLESPACE f
|
||||||
# for innodb_checksum_algorithm=full_crc32 only
|
# for innodb_checksum_algorithm=full_crc32 only
|
||||||
call mtr.add_suppression("\\[ERROR\\] InnoDB: Cannot decrypt \\[page id: space=");
|
call mtr.add_suppression("\\[ERROR\\] InnoDB: Cannot decrypt \\[page id: space=");
|
||||||
|
|
||||||
--let $restart_parameters=--plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt
|
--let $restart_parameters=--plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt
|
||||||
--source include/restart_mysqld.inc
|
--source include/restart_mysqld.inc
|
||||||
|
|
||||||
SET GLOBAL innodb_file_per_table = ON;
|
SET GLOBAL innodb_file_per_table = ON;
|
||||||
|
@ -29,7 +29,7 @@ CREATE TABLE t1 (pk INT PRIMARY KEY, f VARCHAR(8)) ENGINE=InnoDB
|
||||||
ENCRYPTED=YES ENCRYPTION_KEY_ID=4;
|
ENCRYPTED=YES ENCRYPTION_KEY_ID=4;
|
||||||
INSERT INTO t1 VALUES (1,'foo'),(2,'bar');
|
INSERT INTO t1 VALUES (1,'foo'),(2,'bar');
|
||||||
|
|
||||||
--let $restart_parameters=--plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys3.txt
|
--let $restart_parameters=--plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys3.txt
|
||||||
--source include/restart_mysqld.inc
|
--source include/restart_mysqld.inc
|
||||||
|
|
||||||
--error ER_NO_SUCH_TABLE_IN_ENGINE
|
--error ER_NO_SUCH_TABLE_IN_ENGINE
|
||||||
|
@ -48,7 +48,7 @@ CHECK TABLE t1;
|
||||||
--replace_regex /key_id [1-9][0-9]*/\1 /
|
--replace_regex /key_id [1-9][0-9]*/\1 /
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
|
|
||||||
--let $restart_parameters=--plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt
|
--let $restart_parameters=--plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt
|
||||||
--source include/restart_mysqld.inc
|
--source include/restart_mysqld.inc
|
||||||
|
|
||||||
let MYSQLD_DATADIR =`SELECT @@datadir`;
|
let MYSQLD_DATADIR =`SELECT @@datadir`;
|
||||||
|
@ -60,7 +60,7 @@ ib_backup_tablespaces("test", "t1");
|
||||||
EOF
|
EOF
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
|
|
||||||
--let $restart_parameters=--plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys3.txt
|
--let $restart_parameters=--plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys3.txt
|
||||||
--source include/restart_mysqld.inc
|
--source include/restart_mysqld.inc
|
||||||
|
|
||||||
--error ER_NO_SUCH_TABLE_IN_ENGINE
|
--error ER_NO_SUCH_TABLE_IN_ENGINE
|
||||||
|
@ -78,7 +78,7 @@ ib_discard_tablespaces("test", "t1");
|
||||||
ib_restore_tablespaces("test", "t1");
|
ib_restore_tablespaces("test", "t1");
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
--let $restart_parameters=--plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt
|
--let $restart_parameters=--plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt
|
||||||
--source include/restart_mysqld.inc
|
--source include/restart_mysqld.inc
|
||||||
|
|
||||||
ALTER TABLE t1 DISCARD TABLESPACE;
|
ALTER TABLE t1 DISCARD TABLESPACE;
|
||||||
|
@ -92,7 +92,7 @@ EOF
|
||||||
ALTER TABLE t1 IMPORT TABLESPACE;
|
ALTER TABLE t1 IMPORT TABLESPACE;
|
||||||
SHOW CREATE TABLE t1;
|
SHOW CREATE TABLE t1;
|
||||||
|
|
||||||
--let $restart_parameters= --innodb-encrypt-tables --plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys3.txt
|
--let $restart_parameters= --innodb-encrypt-tables --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys3.txt
|
||||||
--source include/restart_mysqld.inc
|
--source include/restart_mysqld.inc
|
||||||
|
|
||||||
--error ER_ERROR_ON_RENAME
|
--error ER_ERROR_ON_RENAME
|
||||||
|
|
|
@ -25,7 +25,7 @@ call mtr.add_suppression("InnoDB: Cannot calculate statistics for table .* becau
|
||||||
4;770A8A65DA156D24EE2A093277530143
|
4;770A8A65DA156D24EE2A093277530143
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
--exec echo "restart:--innodb-encrypt-tables --innodb-stats-persistent --plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys1.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
--exec echo "restart:--innodb-encrypt-tables --innodb-stats-persistent --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys1.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
--enable_reconnect
|
--enable_reconnect
|
||||||
--source include/wait_until_connected_again.inc
|
--source include/wait_until_connected_again.inc
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ ib_discard_tablespaces("test", "t1");
|
||||||
ib_restore_tablespaces("test", "t1");
|
ib_restore_tablespaces("test", "t1");
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
--exec echo "restart:--innodb-encrypt-tables --innodb-stats-persistent --plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys2.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
--exec echo "restart:--innodb-encrypt-tables --innodb-stats-persistent --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys2.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
--enable_reconnect
|
--enable_reconnect
|
||||||
--source include/wait_until_connected_again.inc
|
--source include/wait_until_connected_again.inc
|
||||||
--source include/restart_mysqld.inc
|
--source include/restart_mysqld.inc
|
||||||
|
@ -89,7 +89,7 @@ SELECT * FROM t1;
|
||||||
4;770A8A65DA156D24EE2A093277530143
|
4;770A8A65DA156D24EE2A093277530143
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
--exec echo "restart:--innodb-encrypt-tables --innodb-stats-persistent --plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys1.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
--exec echo "restart:--innodb-encrypt-tables --innodb-stats-persistent --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys1.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
--enable_reconnect
|
--enable_reconnect
|
||||||
--source include/wait_until_connected_again.inc
|
--source include/wait_until_connected_again.inc
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
|
@ -16,7 +16,7 @@ call mtr.add_suppression("InnoDB: Table `test`\\.`t1` is corrupted");
|
||||||
# for innodb_checksum_algorithm=full_crc32 only
|
# for innodb_checksum_algorithm=full_crc32 only
|
||||||
call mtr.add_suppression("\\[ERROR\\] InnoDB: Cannot decrypt \\[page id: space=");
|
call mtr.add_suppression("\\[ERROR\\] InnoDB: Cannot decrypt \\[page id: space=");
|
||||||
|
|
||||||
--let $restart_parameters=--plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt
|
--let $restart_parameters=--plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt
|
||||||
--source include/restart_mysqld.inc
|
--source include/restart_mysqld.inc
|
||||||
|
|
||||||
SET GLOBAL innodb_file_per_table = ON;
|
SET GLOBAL innodb_file_per_table = ON;
|
||||||
|
@ -25,7 +25,7 @@ CREATE TABLE t1 (pk INT PRIMARY KEY, f VARCHAR(8)) ENGINE=InnoDB
|
||||||
ENCRYPTED=YES ENCRYPTION_KEY_ID=4;
|
ENCRYPTED=YES ENCRYPTION_KEY_ID=4;
|
||||||
INSERT INTO t1 VALUES (1,'foo'),(2,'bar');
|
INSERT INTO t1 VALUES (1,'foo'),(2,'bar');
|
||||||
|
|
||||||
--let $restart_parameters=--plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys3.txt
|
--let $restart_parameters=--plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys3.txt
|
||||||
--source include/restart_mysqld.inc
|
--source include/restart_mysqld.inc
|
||||||
|
|
||||||
--replace_regex /key_id [1-9][0-9]*/\1 /
|
--replace_regex /key_id [1-9][0-9]*/\1 /
|
||||||
|
@ -38,7 +38,7 @@ CHECK TABLE t1;
|
||||||
--replace_regex /key_id [1-9][0-9]*/\1 /
|
--replace_regex /key_id [1-9][0-9]*/\1 /
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
|
|
||||||
--let $restart_parameters=--plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt
|
--let $restart_parameters=--plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt
|
||||||
--source include/restart_mysqld.inc
|
--source include/restart_mysqld.inc
|
||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
|
@ -16,7 +16,7 @@ call mtr.add_suppression("InnoDB: Table `test`\\.`t[15]` is corrupted");
|
||||||
# Suppression for builds where file_key_management plugin is linked statically
|
# Suppression for builds where file_key_management plugin is linked statically
|
||||||
call mtr.add_suppression("Couldn't load plugins from 'file_key_management");
|
call mtr.add_suppression("Couldn't load plugins from 'file_key_management");
|
||||||
|
|
||||||
--let $restart_parameters=--innodb-encrypt-tables=ON --plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt
|
--let $restart_parameters=--innodb-encrypt-tables=ON --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt
|
||||||
--source include/restart_mysqld.inc
|
--source include/restart_mysqld.inc
|
||||||
|
|
||||||
create table t5 (
|
create table t5 (
|
||||||
|
@ -48,7 +48,7 @@ select * from t1;
|
||||||
--error ER_NO_SUCH_TABLE_IN_ENGINE
|
--error ER_NO_SUCH_TABLE_IN_ENGINE
|
||||||
select * from t5;
|
select * from t5;
|
||||||
|
|
||||||
--let $restart_parameters=--innodb-encrypt-tables=ON --plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt
|
--let $restart_parameters=--innodb-encrypt-tables=ON --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt
|
||||||
--source include/restart_mysqld.inc
|
--source include/restart_mysqld.inc
|
||||||
|
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
|
@ -18,7 +18,7 @@ create table t1(a int not null primary key, b char(200)) engine=innodb;
|
||||||
|
|
||||||
--echo
|
--echo
|
||||||
--echo # Restart server with encryption
|
--echo # Restart server with encryption
|
||||||
-- let $restart_parameters=--plugin-load-add=$FILE_KEY_MANAGEMENT_SO --loose-file-key-management --loose-file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys.txt --file-key-management-encryption-algorithm=aes_cbc --innodb-encrypt-tables=ON --innodb-encryption-threads=4 --innodb-tablespaces-encryption --innodb-encryption-rotate-key-age=15
|
-- let $restart_parameters=--plugin-load-add=file_key_management --loose-file-key-management --loose-file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys.txt --file-key-management-encryption-algorithm=aes_cbc --innodb-encrypt-tables=ON --innodb-encryption-threads=4 --innodb-tablespaces-encryption --innodb-encryption-rotate-key-age=15
|
||||||
-- source include/restart_mysqld.inc
|
-- source include/restart_mysqld.inc
|
||||||
|
|
||||||
--echo # Wait until encryption threads have encrypted all tablespaces
|
--echo # Wait until encryption threads have encrypted all tablespaces
|
||||||
|
|
|
@ -17,7 +17,7 @@ call mtr.add_suppression("Failed to decrypt");
|
||||||
1;770A8A65DA156D24EE2A093277530142
|
1;770A8A65DA156D24EE2A093277530142
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
--exec echo "restart:--aria-encrypt-tables=1 --plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys1.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
--exec echo "restart:--aria-encrypt-tables=1 --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys1.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
--enable_reconnect
|
--enable_reconnect
|
||||||
--source include/wait_until_connected_again.inc
|
--source include/wait_until_connected_again.inc
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ INSERT INTO t1 VALUES (1);
|
||||||
2;770A8A65DA156D24EE2A093277530143
|
2;770A8A65DA156D24EE2A093277530143
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
--exec echo "restart:--aria-encrypt-tables=1 --plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys2.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
--exec echo "restart:--aria-encrypt-tables=1 --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys2.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
--enable_reconnect
|
--enable_reconnect
|
||||||
--source include/wait_until_connected_again.inc
|
--source include/wait_until_connected_again.inc
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ INSERT INTO t1 VALUES (2);
|
||||||
--shutdown_server
|
--shutdown_server
|
||||||
--source include/wait_until_disconnected.inc
|
--source include/wait_until_disconnected.inc
|
||||||
|
|
||||||
--exec echo "restart:--aria-encrypt-tables=1 --plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys1.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
--exec echo "restart:--aria-encrypt-tables=1 --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys1.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
--enable_reconnect
|
--enable_reconnect
|
||||||
--source include/wait_until_connected_again.inc
|
--source include/wait_until_connected_again.inc
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
drop table if exists t1;
|
|
||||||
set @OLD_SQL_MODE=@@SESSION.SQL_MODE;
|
set @OLD_SQL_MODE=@@SESSION.SQL_MODE;
|
||||||
create table t1 (a int, b int generated always as (a+1));
|
create table t1 (a int, b int generated always as (a+1));
|
||||||
show create table t1;
|
show create table t1;
|
||||||
|
@ -88,3 +87,13 @@ create table t1 (x int, y int default test2.t1.x);
|
||||||
ERROR 42S22: Unknown column '`test2`.`t1`.`x`' in 'DEFAULT'
|
ERROR 42S22: Unknown column '`test2`.`t1`.`x`' in 'DEFAULT'
|
||||||
create table t1 (x int, check (test2.t1.x > 0));
|
create table t1 (x int, check (test2.t1.x > 0));
|
||||||
ERROR 42S22: Unknown column '`test2`.`t1`.`x`' in 'CHECK'
|
ERROR 42S22: Unknown column '`test2`.`t1`.`x`' in 'CHECK'
|
||||||
|
#
|
||||||
|
# MDEV-25672 table alias from previous statement interferes later commands
|
||||||
|
#
|
||||||
|
create table t1 (a int, v_a int generated always as (a));
|
||||||
|
update t1 as x set a = 1;
|
||||||
|
alter table t1 force;
|
||||||
|
drop table t1;
|
||||||
|
#
|
||||||
|
# End of 10.2 tests
|
||||||
|
#
|
||||||
|
|
|
@ -1,10 +1,6 @@
|
||||||
#
|
#
|
||||||
# test syntax
|
# test syntax
|
||||||
#
|
#
|
||||||
--disable_warnings
|
|
||||||
drop table if exists t1;
|
|
||||||
--enable_warnings
|
|
||||||
|
|
||||||
set @OLD_SQL_MODE=@@SESSION.SQL_MODE;
|
set @OLD_SQL_MODE=@@SESSION.SQL_MODE;
|
||||||
create table t1 (a int, b int generated always as (a+1));
|
create table t1 (a int, b int generated always as (a+1));
|
||||||
show create table t1;
|
show create table t1;
|
||||||
|
@ -72,3 +68,16 @@ create table t1 (x int, y int check (y > test2.t1.x));
|
||||||
create table t1 (x int, y int default test2.t1.x);
|
create table t1 (x int, y int default test2.t1.x);
|
||||||
--error ER_BAD_FIELD_ERROR
|
--error ER_BAD_FIELD_ERROR
|
||||||
create table t1 (x int, check (test2.t1.x > 0));
|
create table t1 (x int, check (test2.t1.x > 0));
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-25672 table alias from previous statement interferes later commands
|
||||||
|
--echo #
|
||||||
|
create table t1 (a int, v_a int generated always as (a));
|
||||||
|
update t1 as x set a = 1;
|
||||||
|
alter table t1 force;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # End of 10.2 tests
|
||||||
|
--echo #
|
||||||
|
|
|
@ -3562,7 +3562,7 @@ public:
|
||||||
bool check_table_name_processor(void *arg) override
|
bool check_table_name_processor(void *arg) override
|
||||||
{
|
{
|
||||||
Check_table_name_prm &p= *static_cast<Check_table_name_prm*>(arg);
|
Check_table_name_prm &p= *static_cast<Check_table_name_prm*>(arg);
|
||||||
if (p.table_name.length && table_name.length)
|
if (!field && p.table_name.length && table_name.length)
|
||||||
{
|
{
|
||||||
DBUG_ASSERT(p.db.length);
|
DBUG_ASSERT(p.db.length);
|
||||||
if ((db_name.length &&
|
if ((db_name.length &&
|
||||||
|
@ -5865,7 +5865,10 @@ public:
|
||||||
table_map used_tables() const override;
|
table_map used_tables() const override;
|
||||||
void update_used_tables() override;
|
void update_used_tables() override;
|
||||||
table_map not_null_tables() const override;
|
table_map not_null_tables() const override;
|
||||||
bool const_item() const override { return used_tables() == 0; }
|
bool const_item() const override
|
||||||
|
{
|
||||||
|
return (*ref)->const_item() && (null_ref_table == NO_NULL_TABLE);
|
||||||
|
}
|
||||||
TABLE *get_null_ref_table() const { return null_ref_table; }
|
TABLE *get_null_ref_table() const { return null_ref_table; }
|
||||||
bool walk(Item_processor processor, bool walk_subquery, void *arg) override
|
bool walk(Item_processor processor, bool walk_subquery, void *arg) override
|
||||||
{
|
{
|
||||||
|
|
|
@ -283,6 +283,8 @@ bool Item_subselect::fix_fields(THD *thd_param, Item **ref)
|
||||||
res= TRUE;
|
res= TRUE;
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
if (sl == unit->first_select() && !sl->next_select())
|
||||||
|
unit->fake_select_lex= 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27416,7 +27416,7 @@ bool mysql_explain_union(THD *thd, SELECT_LEX_UNIT *unit, select_result *result)
|
||||||
sl->options|= SELECT_DESCRIBE;
|
sl->options|= SELECT_DESCRIBE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unit->is_unit_op())
|
if (unit->is_unit_op() || unit->fake_select_lex)
|
||||||
{
|
{
|
||||||
if (unit->union_needs_tmp_table() && unit->fake_select_lex)
|
if (unit->union_needs_tmp_table() && unit->fake_select_lex)
|
||||||
{
|
{
|
||||||
|
|
|
@ -13,6 +13,10 @@
|
||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
|
||||||
|
|
||||||
|
IF(WITHOUT_DYNAMIC_PLUGINS OR WITH_NONE OR ("${PLUGIN_CONNECT}" STREQUAL "NO"))
|
||||||
|
RETURN()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
SET(CONNECT_PLUGIN_STATIC "connect")
|
SET(CONNECT_PLUGIN_STATIC "connect")
|
||||||
SET(CONNECT_PLUGIN_DYNAMIC "connect")
|
SET(CONNECT_PLUGIN_DYNAMIC "connect")
|
||||||
|
|
||||||
|
|
|
@ -427,7 +427,7 @@ int ha_heap::reset_auto_increment(ulonglong value)
|
||||||
|
|
||||||
int ha_heap::external_lock(THD *thd, int lock_type)
|
int ha_heap::external_lock(THD *thd, int lock_type)
|
||||||
{
|
{
|
||||||
#ifndef DBUG_OFF
|
#if !defined(DBUG_OFF) && defined(EXTRA_DEBUG)
|
||||||
if (lock_type == F_UNLCK && file->s->changed && heap_check_heap(file, 0))
|
if (lock_type == F_UNLCK && file->s->changed && heap_check_heap(file, 0))
|
||||||
return HA_ERR_CRASHED;
|
return HA_ERR_CRASHED;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
|
||||||
Copyright (c) 1995, 2017, Oracle and/or its affiliates. All Rights Reserved.
|
Copyright (c) 1995, 2017, Oracle and/or its affiliates. All Rights Reserved.
|
||||||
Copyright (c) 2015, 2020, MariaDB Corporation.
|
Copyright (c) 2015, 2021, MariaDB Corporation.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it under
|
This program is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU General Public License as published by the Free Software
|
the terms of the GNU General Public License as published by the Free Software
|
||||||
|
|
|
@ -2527,8 +2527,8 @@ dict_index_build_internal_clust(
|
||||||
ulint i;
|
ulint i;
|
||||||
ibool* indexed;
|
ibool* indexed;
|
||||||
|
|
||||||
ut_ad(dict_index_is_clust(index));
|
ut_ad(index->is_primary());
|
||||||
ut_ad(!dict_index_is_ibuf(index));
|
ut_ad(!index->has_virtual());
|
||||||
|
|
||||||
ut_ad(mutex_own(&dict_sys.mutex));
|
ut_ad(mutex_own(&dict_sys.mutex));
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
SET(HEIDISQL_BASE_NAME "HeidiSQL_11.2_32_Portable")
|
SET(HEIDISQL_BASE_NAME "HeidiSQL_11.3_32_Portable")
|
||||||
SET(HEIDISQL_ZIP "${HEIDISQL_BASE_NAME}.zip")
|
SET(HEIDISQL_ZIP "${HEIDISQL_BASE_NAME}.zip")
|
||||||
SET(HEIDISQL_URL "http://www.heidisql.com/downloads/releases/${HEIDISQL_ZIP}")
|
SET(HEIDISQL_URL "http://www.heidisql.com/downloads/releases/${HEIDISQL_ZIP}")
|
||||||
SET(HEIDISQL_DOWNLOAD_DIR ${THIRD_PARTY_DOWNLOAD_LOCATION}/${HEIDISQL_BASE_NAME})
|
SET(HEIDISQL_DOWNLOAD_DIR ${THIRD_PARTY_DOWNLOAD_LOCATION}/${HEIDISQL_BASE_NAME})
|
||||||
|
|
|
@ -367,7 +367,10 @@ void CUpgradeDlg::UpgradeOneService(const string& servicename)
|
||||||
ErrorExit("Stdout SetHandleInformation");
|
ErrorExit("Stdout SetHandleInformation");
|
||||||
|
|
||||||
string commandline("mysql_upgrade_service.exe --service=");
|
string commandline("mysql_upgrade_service.exe --service=");
|
||||||
|
commandline += "\"";
|
||||||
commandline += servicename;
|
commandline += servicename;
|
||||||
|
commandline += "\"";
|
||||||
|
|
||||||
si.cb = sizeof(si);
|
si.cb = sizeof(si);
|
||||||
si.hStdInput= GetStdHandle(STD_INPUT_HANDLE);
|
si.hStdInput= GetStdHandle(STD_INPUT_HANDLE);
|
||||||
si.hStdOutput= hPipeWrite;
|
si.hStdOutput= hPipeWrite;
|
||||||
|
@ -397,7 +400,7 @@ void CUpgradeDlg::UpgradeOneService(const string& servicename)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
Creating a process with CREATE_BREAKAWAY_FROM_JOB, reset this flag
|
Creating a process with CREATE_BREAKAWAY_FROM_JOB failed, reset this flag
|
||||||
and retry.
|
and retry.
|
||||||
*/
|
*/
|
||||||
if (!CreateProcess(NULL, (LPSTR)commandline.c_str(), NULL, NULL, TRUE,
|
if (!CreateProcess(NULL, (LPSTR)commandline.c_str(), NULL, NULL, TRUE,
|
||||||
|
|
Loading…
Reference in a new issue