Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
25161e62
Commit
25161e62
authored
Jan 24, 2019
by
Marko Mäkelä
Browse files
Options
Browse Files
Download
Plain Diff
Merge 10.1 into 10.2
parents
7930ab7e
65350042
Changes
23
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
397 additions
and
61 deletions
+397
-61
client/CMakeLists.txt
client/CMakeLists.txt
+1
-1
libmysqld/examples/CMakeLists.txt
libmysqld/examples/CMakeLists.txt
+1
-1
mysql-test/mysql-test-run.pl
mysql-test/mysql-test-run.pl
+1
-0
mysql-test/r/connect.result
mysql-test/r/connect.result
+12
-0
mysql-test/r/mysqlbinlog_row_compressed.result
mysql-test/r/mysqlbinlog_row_compressed.result
+8
-8
mysql-test/r/mysqlbinlog_row_minimal.result
mysql-test/r/mysqlbinlog_row_minimal.result
+8
-8
mysql-test/suite/galera/disabled.def
mysql-test/suite/galera/disabled.def
+0
-1
mysql-test/suite/galera/r/galera_drop_database.result
mysql-test/suite/galera/r/galera_drop_database.result
+6
-0
mysql-test/suite/galera/t/galera_drop_database.test
mysql-test/suite/galera/t/galera_drop_database.test
+4
-22
mysql-test/suite/innodb/r/alter_candidate_key.result
mysql-test/suite/innodb/r/alter_candidate_key.result
+114
-0
mysql-test/suite/innodb/r/innodb-index.result
mysql-test/suite/innodb/r/innodb-index.result
+1
-0
mysql-test/suite/innodb/r/innodb-table-online.result
mysql-test/suite/innodb/r/innodb-table-online.result
+0
-11
mysql-test/suite/innodb/t/alter_candidate_key.test
mysql-test/suite/innodb/t/alter_candidate_key.test
+72
-0
mysql-test/suite/innodb/t/innodb-index.test
mysql-test/suite/innodb/t/innodb-index.test
+2
-1
mysql-test/suite/innodb/t/innodb-table-online.test
mysql-test/suite/innodb/t/innodb-table-online.test
+0
-4
mysql-test/suite/rpl/r/rpl_row_big_table_id,32bit.rdiff
mysql-test/suite/rpl/r/rpl_row_big_table_id,32bit.rdiff
+31
-0
mysql-test/suite/rpl/r/rpl_row_big_table_id.result
mysql-test/suite/rpl/r/rpl_row_big_table_id.result
+46
-0
mysql-test/suite/rpl/t/rpl_row_big_table_id.test
mysql-test/suite/rpl/t/rpl_row_big_table_id.test
+57
-0
mysql-test/t/connect.test
mysql-test/t/connect.test
+5
-0
sql/sql_acl.cc
sql/sql_acl.cc
+6
-2
sql/sql_table.cc
sql/sql_table.cc
+16
-0
sql/table.cc
sql/table.cc
+5
-1
sql/table.h
sql/table.h
+1
-1
No files found.
client/CMakeLists.txt
View file @
25161e62
...
...
@@ -46,7 +46,7 @@ ENDIF(UNIX)
MYSQL_ADD_EXECUTABLE
(
mysqltest mysqltest.cc COMPONENT Test
)
SET_SOURCE_FILES_PROPERTIES
(
mysqltest.cc PROPERTIES COMPILE_FLAGS
"-DTHREADS"
)
TARGET_LINK_LIBRARIES
(
mysqltest
${
CLIENT_LIB
}
pcre
pcreposix
)
TARGET_LINK_LIBRARIES
(
mysqltest
${
CLIENT_LIB
}
pcre
posix pcre
)
SET_TARGET_PROPERTIES
(
mysqltest PROPERTIES ENABLE_EXPORTS TRUE
)
...
...
libmysqld/examples/CMakeLists.txt
View file @
25161e62
...
...
@@ -34,7 +34,7 @@ ENDIF(UNIX)
MYSQL_ADD_EXECUTABLE
(
mysqltest_embedded ../../client/mysqltest.cc
COMPONENT Test
)
TARGET_LINK_LIBRARIES
(
mysqltest_embedded mysqlserver pcre
pcreposix
)
TARGET_LINK_LIBRARIES
(
mysqltest_embedded mysqlserver pcre
posix pcre
)
IF
(
CMAKE_GENERATOR MATCHES
"Xcode"
)
# It does not seem possible to tell Xcode the resulting target might need
...
...
mysql-test/mysql-test-run.pl
View file @
25161e62
...
...
@@ -5270,6 +5270,7 @@ sub server_need_restart {
exists
$server
->
{'
restart_opts
'})
{
my
$use_dynamic_option_switch
=
0
;
delete
$server
->
{'
restart_opts
'};
if
(
!
$use_dynamic_option_switch
)
{
mtr_verbose_restart
(
$server
,
"
running with different options '
"
.
...
...
mysql-test/r/connect.result
View file @
25161e62
...
...
@@ -98,8 +98,20 @@ ERROR 28000: Access denied for user 'test'@'localhost' (using password: YES)
connect(localhost,test,zorro,test,MASTER_PORT,MASTER_SOCKET);
connect fail_con,localhost,test,zorro,;
ERROR 28000: Access denied for user 'test'@'localhost' (using password: YES)
select user,host,password,plugin,authentication_string from mysql.user where user='test';
user host password plugin authentication_string
test localhost *5FDFF3268A50F41C5D18D2CA2F754D7BDB9B3E59
test 127.0.0.1 *5FDFF3268A50F41C5D18D2CA2F754D7BDB9B3E59
update mysql.user set password=old_password("gambling2") where user=_binary"test";
flush privileges;
show grants for test@localhost;
Grants for test@localhost
GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost' IDENTIFIED BY PASSWORD '2f27438961437573'
update mysql.user set plugin='mysql_old_password' where user='test';
flush privileges;
show grants for test@localhost;
Grants for test@localhost
GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost' IDENTIFIED BY PASSWORD '2f27438961437573'
connect con10,localhost,test,gambling2,;
connect con5,localhost,test,gambling2,mysql;
connection con5;
...
...
mysql-test/r/mysqlbinlog_row_compressed.result
View file @
25161e62
...
...
@@ -61,7 +61,7 @@ BEGIN
#Q> INSERT INTO t1 VALUES (10, 1, 2, 3, 4, 5, 6, 7, "")
#<date> server id 1 end_log_pos 899 CRC32 XXX Table_map: `test`.`t1` mapped to number num
# at 899
#<date> server id 1 end_log_pos 967 CRC32 XXX Write_compressed_rows: table id 3
0
flags: STMT_END_F
#<date> server id 1 end_log_pos 967 CRC32 XXX Write_compressed_rows: table id 3
1
flags: STMT_END_F
### INSERT INTO `test`.`t1`
### SET
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
...
...
@@ -89,7 +89,7 @@ BEGIN
#Q> INSERT INTO t1 VALUES (11, 1, 2, 3, 4, 5, 6, 7, NULL)
#<date> server id 1 end_log_pos 1214 CRC32 XXX Table_map: `test`.`t1` mapped to number num
# at 1214
#<date> server id 1 end_log_pos 1281 CRC32 XXX Write_compressed_rows: table id 3
0
flags: STMT_END_F
#<date> server id 1 end_log_pos 1281 CRC32 XXX Write_compressed_rows: table id 3
1
flags: STMT_END_F
### INSERT INTO `test`.`t1`
### SET
### @1=11 /* INT meta=0 nullable=0 is_null=0 */
...
...
@@ -117,7 +117,7 @@ BEGIN
#Q> INSERT INTO t1 VALUES (12, 1, 2, 3, NULL, 5, 6, 7, "A")
#<date> server id 1 end_log_pos 1530 CRC32 XXX Table_map: `test`.`t1` mapped to number num
# at 1530
#<date> server id 1 end_log_pos 1596 CRC32 XXX Write_compressed_rows: table id 3
0
flags: STMT_END_F
#<date> server id 1 end_log_pos 1596 CRC32 XXX Write_compressed_rows: table id 3
1
flags: STMT_END_F
### INSERT INTO `test`.`t1`
### SET
### @1=12 /* INT meta=0 nullable=0 is_null=0 */
...
...
@@ -145,7 +145,7 @@ BEGIN
#Q> INSERT INTO t1 VALUES (13, 1, 2, 3, 0, 5, 6, 7, "A")
#<date> server id 1 end_log_pos 1842 CRC32 XXX Table_map: `test`.`t1` mapped to number num
# at 1842
#<date> server id 1 end_log_pos 1909 CRC32 XXX Write_compressed_rows: table id 3
0
flags: STMT_END_F
#<date> server id 1 end_log_pos 1909 CRC32 XXX Write_compressed_rows: table id 3
1
flags: STMT_END_F
### INSERT INTO `test`.`t1`
### SET
### @1=13 /* INT meta=0 nullable=0 is_null=0 */
...
...
@@ -173,7 +173,7 @@ BEGIN
#Q> INSERT INTO t2 SELECT * FROM t1
#<date> server id 1 end_log_pos 2134 CRC32 XXX Table_map: `test`.`t2` mapped to number num
# at 2134
#<date> server id 1 end_log_pos 2225 CRC32 XXX Write_compressed_rows: table id 3
1
flags: STMT_END_F
#<date> server id 1 end_log_pos 2225 CRC32 XXX Write_compressed_rows: table id 3
2
flags: STMT_END_F
### INSERT INTO `test`.`t2`
### SET
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
...
...
@@ -234,7 +234,7 @@ BEGIN
#Q> UPDATE t2 SET f4=5 WHERE f4>0 or f4 is NULL
#<date> server id 1 end_log_pos 2462 CRC32 XXX Table_map: `test`.`t2` mapped to number num
# at 2462
#<date> server id 1 end_log_pos 2561 CRC32 XXX Update_compressed_rows: table id 3
1
flags: STMT_END_F
#<date> server id 1 end_log_pos 2561 CRC32 XXX Update_compressed_rows: table id 3
2
flags: STMT_END_F
### UPDATE `test`.`t2`
### WHERE
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
...
...
@@ -314,7 +314,7 @@ BEGIN
#Q> DELETE FROM t1
#<date> server id 1 end_log_pos 2769 CRC32 XXX Table_map: `test`.`t1` mapped to number num
# at 2769
#<date> server id 1 end_log_pos 2861 CRC32 XXX Delete_compressed_rows: table id 3
0
flags: STMT_END_F
#<date> server id 1 end_log_pos 2861 CRC32 XXX Delete_compressed_rows: table id 3
1
flags: STMT_END_F
### DELETE FROM `test`.`t1`
### WHERE
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
...
...
@@ -375,7 +375,7 @@ BEGIN
#Q> DELETE FROM t2
#<date> server id 1 end_log_pos 3069 CRC32 XXX Table_map: `test`.`t2` mapped to number num
# at 3069
#<date> server id 1 end_log_pos 3154 CRC32 XXX Delete_compressed_rows: table id 3
1
flags: STMT_END_F
#<date> server id 1 end_log_pos 3154 CRC32 XXX Delete_compressed_rows: table id 3
2
flags: STMT_END_F
### DELETE FROM `test`.`t2`
### WHERE
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
...
...
mysql-test/r/mysqlbinlog_row_minimal.result
View file @
25161e62
...
...
@@ -59,7 +59,7 @@ BEGIN
#Q> INSERT INTO t1 VALUES (10, 1, 2, 3, 4, 5, 6, 7, "")
#<date> server id 1 end_log_pos 946 CRC32 XXX Table_map: `test`.`t1` mapped to number num
# at 946
#<date> server id 1 end_log_pos 1015 CRC32 XXX Write_rows: table id 3
0
flags: STMT_END_F
#<date> server id 1 end_log_pos 1015 CRC32 XXX Write_rows: table id 3
1
flags: STMT_END_F
### INSERT INTO `test`.`t1`
### SET
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
...
...
@@ -87,7 +87,7 @@ BEGIN
#Q> INSERT INTO t1 VALUES (11, 1, 2, 3, 4, 5, 6, 7, NULL)
#<date> server id 1 end_log_pos 1262 CRC32 XXX Table_map: `test`.`t1` mapped to number num
# at 1262
#<date> server id 1 end_log_pos 1330 CRC32 XXX Write_rows: table id 3
0
flags: STMT_END_F
#<date> server id 1 end_log_pos 1330 CRC32 XXX Write_rows: table id 3
1
flags: STMT_END_F
### INSERT INTO `test`.`t1`
### SET
### @1=11 /* INT meta=0 nullable=0 is_null=0 */
...
...
@@ -115,7 +115,7 @@ BEGIN
#Q> INSERT INTO t1 VALUES (12, 1, 2, 3, NULL, 5, 6, 7, "A")
#<date> server id 1 end_log_pos 1579 CRC32 XXX Table_map: `test`.`t1` mapped to number num
# at 1579
#<date> server id 1 end_log_pos 1646 CRC32 XXX Write_rows: table id 3
0
flags: STMT_END_F
#<date> server id 1 end_log_pos 1646 CRC32 XXX Write_rows: table id 3
1
flags: STMT_END_F
### INSERT INTO `test`.`t1`
### SET
### @1=12 /* INT meta=0 nullable=0 is_null=0 */
...
...
@@ -143,7 +143,7 @@ BEGIN
#Q> INSERT INTO t1 VALUES (13, 1, 2, 3, 0, 5, 6, 7, "A")
#<date> server id 1 end_log_pos 1892 CRC32 XXX Table_map: `test`.`t1` mapped to number num
# at 1892
#<date> server id 1 end_log_pos 1962 CRC32 XXX Write_rows: table id 3
0
flags: STMT_END_F
#<date> server id 1 end_log_pos 1962 CRC32 XXX Write_rows: table id 3
1
flags: STMT_END_F
### INSERT INTO `test`.`t1`
### SET
### @1=13 /* INT meta=0 nullable=0 is_null=0 */
...
...
@@ -171,7 +171,7 @@ BEGIN
#Q> INSERT INTO t2 SELECT * FROM t1
#<date> server id 1 end_log_pos 2187 CRC32 XXX Table_map: `test`.`t2` mapped to number num
# at 2187
#<date> server id 1 end_log_pos 2354 CRC32 XXX Write_rows: table id 3
1
flags: STMT_END_F
#<date> server id 1 end_log_pos 2354 CRC32 XXX Write_rows: table id 3
2
flags: STMT_END_F
### INSERT INTO `test`.`t2`
### SET
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
...
...
@@ -232,7 +232,7 @@ BEGIN
#Q> UPDATE t2 SET f4=5 WHERE f4>0 or f4 is NULL
#<date> server id 1 end_log_pos 2591 CRC32 XXX Table_map: `test`.`t2` mapped to number num
# at 2591
#<date> server id 1 end_log_pos 2665 CRC32 XXX Update_rows: table id 3
1
flags: STMT_END_F
#<date> server id 1 end_log_pos 2665 CRC32 XXX Update_rows: table id 3
2
flags: STMT_END_F
### UPDATE `test`.`t2`
### WHERE
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
...
...
@@ -267,7 +267,7 @@ BEGIN
#Q> DELETE FROM t1
#<date> server id 1 end_log_pos 2873 CRC32 XXX Table_map: `test`.`t1` mapped to number num
# at 2873
#<date> server id 1 end_log_pos 2927 CRC32 XXX Delete_rows: table id 3
0
flags: STMT_END_F
#<date> server id 1 end_log_pos 2927 CRC32 XXX Delete_rows: table id 3
1
flags: STMT_END_F
### DELETE FROM `test`.`t1`
### WHERE
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
...
...
@@ -296,7 +296,7 @@ BEGIN
#Q> DELETE FROM t2
#<date> server id 1 end_log_pos 3135 CRC32 XXX Table_map: `test`.`t2` mapped to number num
# at 3135
#<date> server id 1 end_log_pos 3189 CRC32 XXX Delete_rows: table id 3
1
flags: STMT_END_F
#<date> server id 1 end_log_pos 3189 CRC32 XXX Delete_rows: table id 3
2
flags: STMT_END_F
### DELETE FROM `test`.`t2`
### WHERE
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
...
...
mysql-test/suite/galera/disabled.def
View file @
25161e62
...
...
@@ -26,7 +26,6 @@ MW-416 : MDEV-13549 Galera test failures
MW-388 : MDEV-13549 Galera test failures
galera.MW-44 : MDEV-15809 Test failure on galera.MW-44
galera.galera_pc_ignore_sb : MDEV-15811 Test failure on galera_pc_ignore_sb
galera_drop_database : MDEV-17421 mtr does not restart the server whose parameters were changed
galera_kill_applier : race condition at the start of the test
galera_ist_progress: MDEV-15236 galera_ist_progress fails when trying to read transfer status
pxc-421: Lock timeout exceeded
...
...
mysql-test/suite/galera/r/galera_drop_database.result
View file @
25161e62
connection node_1;
connection node_2;
CREATE DATABASE fts;
USE fts;
CREATE TABLE fts_t1 (f1 INT PRIMARY KEY AUTO_INCREMENT, f2 VARCHAR(100), FULLTEXT (f2)) ENGINE=InnoDB;
...
...
@@ -9,6 +11,10 @@ INSERT INTO fts_t2 (f2) SELECT 'foobarbaz' FROM ten AS a1, ten AS a2, ten AS a3;
DROP TABLE ten;
UPDATE fts_t1 SET f2 = 'abcd';
UPDATE fts_t2 SET f2 = 'efjh';
connection node_2;
connection node_1;
connection node_2;
connection node_1;
USE fts;
DROP TABLE fts_t1;
DROP TABLE fts_t2;
...
...
mysql-test/suite/galera/t/galera_drop_database.test
View file @
25161e62
...
...
@@ -9,6 +9,7 @@
--
let
$node_2
=
node_2
--
source
include
/
auto_increment_offset_save
.
inc
# Create test database with two sets of the FTS indexes:
CREATE
DATABASE
fts
;
USE
fts
;
CREATE
TABLE
fts_t1
(
f1
INT
PRIMARY
KEY
AUTO_INCREMENT
,
f2
VARCHAR
(
100
),
FULLTEXT
(
f2
))
ENGINE
=
InnoDB
;
...
...
@@ -23,34 +24,19 @@ DROP TABLE ten;
UPDATE
fts_t1
SET
f2
=
'abcd'
;
UPDATE
fts_t2
SET
f2
=
'efjh'
;
# Restart the second node:
--
connection
node_2
let
$wsrep_cluster_address
=
`SELECT @@global.wsrep_node_incoming_address`
;
--
source
include
/
restart_mysqld
.
inc
--
connection
node_1
--
let
$wait_condition
=
SELECT
VARIABLE_VALUE
=
2
FROM
INFORMATION_SCHEMA
.
GLOBAL_STATUS
WHERE
VARIABLE_NAME
=
'wsrep_cluster_size'
;
--
source
include
/
wait_condition
.
inc
--
let
$galera_connection_name
=
node_2a
--
let
$galera_server_number
=
2
--
source
include
/
galera_connect
.
inc
--
connection
node_2a
--
connection
node_2
--
source
include
/
wait_until_ready
.
inc
# Drop the tables and database after nodes restarted:
--
connection
node_1
--
let
$restart_parameters
=
--
wsrep
-
cluster
-
address
=
gcomm
://
$wsrep_cluster_address
--
source
include
/
restart_mysqld
.
inc
--
connection
node_2a
--
let
$wait_condition
=
SELECT
VARIABLE_VALUE
=
2
FROM
INFORMATION_SCHEMA
.
GLOBAL_STATUS
WHERE
VARIABLE_NAME
=
'wsrep_cluster_size'
;
--
source
include
/
wait_condition
.
inc
--
let
$galera_connection_name
=
node_1a
--
let
$galera_server_number
=
1
--
source
include
/
galera_connect
.
inc
--
connection
node_1a
--
source
include
/
wait_until_ready
.
inc
USE
fts
;
DROP
TABLE
fts_t1
;
DROP
TABLE
fts_t2
;
...
...
@@ -58,8 +44,4 @@ SHOW TABLES;
DROP
DATABASE
fts
;
# Restore original auto_increment_offset values.
--
let
$node_1
=
node_1a
--
let
$node_2
=
node_2a
--
source
include
/
auto_increment_offset_restore
.
inc
--
source
include
/
galera_end
.
inc
mysql-test/suite/innodb/r/alter_candidate_key.result
0 → 100644
View file @
25161e62
CREATE TABLE t1 (f1 INT NOT NULL, f2 INT NOT NULL,
UNIQUE KEY uidx2(f1,f2),
UNIQUE KEY uidx1(f2)) ENGINE=InnoDB;
INSERT INTO t1 VALUES(1, 1);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`f1` int(11) NOT NULL,
`f2` int(11) NOT NULL,
UNIQUE KEY `uidx2` (`f1`,`f2`),
UNIQUE KEY `uidx1` (`f2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SET DEBUG_SYNC = 'innodb_inplace_alter_table_enter
SIGNAL conc_dml WAIT_FOR go_ahead';
ALTER TABLE t1 CHANGE COLUMN f1 f11 INT, ALGORITHM=INPLACE;
connect con1,localhost,root,,;
SET DEBUG_SYNC = 'now WAIT_FOR conc_dml';
DELETE FROM t1;
SET DEBUG_SYNC = 'now SIGNAL go_ahead';
connection default;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`f11` int(11) DEFAULT NULL,
`f2` int(11) NOT NULL,
UNIQUE KEY `uidx1` (`f2`),
UNIQUE KEY `uidx2` (`f11`,`f2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check status OK
DROP TABLE t1;
CREATE TABLE t1(f1 INT, f2 INT,
PRIMARY KEY(f1, f2),
UNIQUE INDEX uidx2 (f1, f2),
UNIQUE INDEX uidx1 (f2))ENGINE=InnoDB;
ALTER TABLE t1 DROP PRIMARY KEY;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`f1` int(11) NOT NULL,
`f2` int(11) NOT NULL,
UNIQUE KEY `uidx2` (`f1`,`f2`),
UNIQUE KEY `uidx1` (`f2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SET DEBUG_SYNC = 'innodb_inplace_alter_table_enter
SIGNAL conc_dml WAIT_FOR go_ahead';
ALTER TABLE t1 CHANGE COLUMN f1 f11 INT, ALGORITHM=INPLACE;
connection con1;
SET DEBUG_SYNC = 'now WAIT_FOR conc_dml';
INSERT INTO t1 VALUES(1, 1), (1, 1);
ERROR 23000: Duplicate entry '1-1' for key 'uidx2'
SET DEBUG_SYNC = 'now SIGNAL go_ahead';
connection default;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`f11` int(11) DEFAULT NULL,
`f2` int(11) NOT NULL,
UNIQUE KEY `uidx1` (`f2`),
UNIQUE KEY `uidx2` (`f11`,`f2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check status OK
DROP TABLE t1;
SET SQL_MODE= strict_trans_tables;
CREATE TABLE t1(a INT UNIQUE) ENGINE=InnoDB;
SET DEBUG_SYNC='row_log_table_apply1_before SIGNAL dml WAIT_FOR dml_done';
ALTER TABLE t1 MODIFY COLUMN a INT NOT NULL;
connection con1;
SET DEBUG_SYNC='now WAIT_FOR dml';
BEGIN;
INSERT INTO t1 SET a=NULL;
ROLLBACK;
set DEBUG_SYNC='now SIGNAL dml_done';
connection default;
ERROR 22004: Invalid use of NULL value
DROP TABLE t1;
disconnect con1;
SET DEBUG_SYNC="RESET";
SET SQL_MODE=DEFAULT;
CREATE TABLE t1(f1 INT NOT NULL, f2 INT NOT NULL, PRIMARY KEY(f1, f2),
UNIQUE KEY(f2))ENGINE=InnoDB;
ALTER TABLE t1 DROP PRIMARY KEY;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`f1` int(11) NOT NULL,
`f2` int(11) NOT NULL,
UNIQUE KEY `f2` (`f2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
DROP TABLE t1;
CREATE TABLE t1(f1 INT NOT NULL, f2 INT NOT NULL,
UNIQUE KEY(f2), UNIQUE KEY(f2))ENGINE=InnoDB;
Warnings:
Note 1831 Duplicate index `f2_2`. This is deprecated and will be disallowed in a future release
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`f1` int(11) NOT NULL,
`f2` int(11) NOT NULL,
UNIQUE KEY `f2` (`f2`),
UNIQUE KEY `f2_2` (`f2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
ALTER TABLE t1 DROP INDEX f2, ALGORITHM=INPLACE;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`f1` int(11) NOT NULL,
`f2` int(11) NOT NULL,
UNIQUE KEY `f2_2` (`f2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
DROP TABLE t1;
mysql-test/suite/innodb/r/innodb-index.result
View file @
25161e62
...
...
@@ -1567,6 +1567,7 @@ create table t1(f1 int not null, f2 int not null,
primary key (f1), unique key(f1, f2))engine=innodb;
insert into t1 values(1,3), (2,2);
alter table t1 drop primary key, lock=none;
alter table t1 drop index f1, lock=none;
ERROR 0A000: LOCK=NONE is not supported. Reason: Dropping a primary key is not allowed without also adding a new primary key. Try LOCK=SHARED
drop table t1;
#
...
...
mysql-test/suite/innodb/r/innodb-table-online.result
View file @
25161e62
...
...
@@ -99,17 +99,6 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `c2` (`c2`),
UNIQUE KEY `c2_2` (`c2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT
ALTER TABLE t1 DROP INDEX c2, ALGORITHM = INPLACE;
ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Dropping a primary key is not allowed without also adding a new primary key. Try ALGORITHM=COPY
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL,
`c2` int(11) NOT NULL,
`c3` char(255) NOT NULL,
UNIQUE KEY `c2` (`c2`),
UNIQUE KEY `c2_2` (`c2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT
ALTER TABLE t1 DROP INDEX c2, ADD PRIMARY KEY(c1);
# session default
connection default;
...
...
mysql-test/suite/innodb/t/alter_candidate_key.test
0 → 100644
View file @
25161e62
--
source
include
/
have_innodb
.
inc
--
source
include
/
have_debug
.
inc
--
source
include
/
have_debug_sync
.
inc
CREATE
TABLE
t1
(
f1
INT
NOT
NULL
,
f2
INT
NOT
NULL
,
UNIQUE
KEY
uidx2
(
f1
,
f2
),
UNIQUE
KEY
uidx1
(
f2
))
ENGINE
=
InnoDB
;
INSERT
INTO
t1
VALUES
(
1
,
1
);
SHOW
CREATE
TABLE
t1
;
SET
DEBUG_SYNC
=
'innodb_inplace_alter_table_enter
SIGNAL conc_dml WAIT_FOR go_ahead'
;
--
send
ALTER
TABLE
t1
CHANGE
COLUMN
f1
f11
INT
,
ALGORITHM
=
INPLACE
connect
(
con1
,
localhost
,
root
,,);
SET
DEBUG_SYNC
=
'now WAIT_FOR conc_dml'
;
DELETE
FROM
t1
;
SET
DEBUG_SYNC
=
'now SIGNAL go_ahead'
;
connection
default
;
reap
;
SHOW
CREATE
TABLE
t1
;
CHECK
TABLE
t1
;
DROP
TABLE
t1
;
CREATE
TABLE
t1
(
f1
INT
,
f2
INT
,
PRIMARY
KEY
(
f1
,
f2
),
UNIQUE
INDEX
uidx2
(
f1
,
f2
),
UNIQUE
INDEX
uidx1
(
f2
))
ENGINE
=
InnoDB
;
ALTER
TABLE
t1
DROP
PRIMARY
KEY
;
SHOW
CREATE
TABLE
t1
;
SET
DEBUG_SYNC
=
'innodb_inplace_alter_table_enter
SIGNAL conc_dml WAIT_FOR go_ahead'
;
--
send
ALTER
TABLE
t1
CHANGE
COLUMN
f1
f11
INT
,
ALGORITHM
=
INPLACE
connection
con1
;
SET
DEBUG_SYNC
=
'now WAIT_FOR conc_dml'
;
--
error
ER_DUP_ENTRY
INSERT
INTO
t1
VALUES
(
1
,
1
),
(
1
,
1
);
SET
DEBUG_SYNC
=
'now SIGNAL go_ahead'
;
connection
default
;
reap
;
SHOW
CREATE
TABLE
t1
;
CHECK
TABLE
t1
;
DROP
TABLE
t1
;
SET
SQL_MODE
=
strict_trans_tables
;
CREATE
TABLE
t1
(
a
INT
UNIQUE
)
ENGINE
=
InnoDB
;
SET
DEBUG_SYNC
=
'row_log_table_apply1_before SIGNAL dml WAIT_FOR dml_done'
;
--
send
ALTER
TABLE
t1
MODIFY
COLUMN
a
INT
NOT
NULL
connection
con1
;
SET
DEBUG_SYNC
=
'now WAIT_FOR dml'
;
BEGIN
;
INSERT
INTO
t1
SET
a
=
NULL
;
ROLLBACK
;
set
DEBUG_SYNC
=
'now SIGNAL dml_done'
;
connection
default
;
--
error
ER_INVALID_USE_OF_NULL
reap
;
DROP
TABLE
t1
;
disconnect
con1
;
SET
DEBUG_SYNC
=
"RESET"
;
SET
SQL_MODE
=
DEFAULT
;
CREATE
TABLE
t1
(
f1
INT
NOT
NULL
,
f2
INT
NOT
NULL
,
PRIMARY
KEY
(
f1
,
f2
),
UNIQUE
KEY
(
f2
))
ENGINE
=
InnoDB
;
ALTER
TABLE
t1
DROP
PRIMARY
KEY
;
SHOW
CREATE
TABLE
t1
;
DROP
TABLE
t1
;
CREATE
TABLE
t1
(
f1
INT
NOT
NULL
,
f2
INT
NOT
NULL
,
UNIQUE
KEY
(
f2
),
UNIQUE
KEY
(
f2
))
ENGINE
=
InnoDB
;
SHOW
CREATE
TABLE
t1
;
ALTER
TABLE
t1
DROP
INDEX
f2
,
ALGORITHM
=
INPLACE
;
SHOW
CREATE
TABLE
t1
;
DROP
TABLE
t1
;
mysql-test/suite/innodb/t/innodb-index.test
View file @
25161e62
...
...
@@ -905,8 +905,9 @@ drop table t1;
create
table
t1
(
f1
int
not
null
,
f2
int
not
null
,
primary
key
(
f1
),
unique
key
(
f1
,
f2
))
engine
=
innodb
;
insert
into
t1
values
(
1
,
3
),
(
2
,
2
);
--
error
ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
alter
table
t1
drop
primary
key
,
lock
=
none
;
--
error
ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
alter
table
t1
drop
index
f1
,
lock
=
none
;
drop
table
t1
;
--
echo
#
...
...
mysql-test/suite/innodb/t/innodb-table-online.test
View file @
25161e62
...
...
@@ -101,10 +101,6 @@ LOCK = SHARED, ALGORITHM = INPLACE;
ALTER
TABLE
t1
ADD
UNIQUE
INDEX
(
c2
),
LOCK
=
EXCLUSIVE
,
ALGORITHM
=
INPLACE
;
SHOW
CREATE
TABLE
t1
;
# We do not support plain DROP_PK_INDEX without ADD_PK_INDEX.
--
error
ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
ALTER
TABLE
t1
DROP
INDEX
c2
,
ALGORITHM
=
INPLACE
;
SHOW
CREATE
TABLE
t1
;
# Now the previous DEBUG_SYNC should kick in.
--
send
...
...
mysql-test/suite/rpl/r/rpl_row_big_table_id,32bit.rdiff
0 → 100644
View file @
25161e62
--- r/rpl_row_big_table_id.result 2019-01-23 19:58:07.204914873 +0200
+++ r/rpl_row_big_table_id_32bit.result 2019-01-23 19:43:54.590640934 +0200
@@ -22,22 +22,22 @@
master-bin.000002 # Query 1 # use `test`; ALTER TABLE t comment ''
master-bin.000002 # Gtid 1 # BEGIN GTID #-#-#
master-bin.000002 # Annotate_rows 1 # INSERT INTO t SET a= 1
-master-bin.000002 # Table_map 1 # table_id: 4294967295 (test.t)
-master-bin.000002 # Write_rows_v1 1 # table_id: 4294967295 flags: STMT_END_F
+master-bin.000002 # Table_map 1 # table_id: 1 (test.t)
+master-bin.000002 # Write_rows_v1 1 # table_id: 1 flags: STMT_END_F
master-bin.000002 # Query 1 # COMMIT
master-bin.000002 # Gtid 1 # GTID #-#-#
master-bin.000002 # Query 1 # use `test`; ALTER TABLE t comment ''
master-bin.000002 # Gtid 1 # BEGIN GTID #-#-#
master-bin.000002 # Annotate_rows 1 # INSERT INTO t SET a= 2
-master-bin.000002 # Table_map 1 # table_id: 4294967296 (test.t)
-master-bin.000002 # Write_rows_v1 1 # table_id: 4294967296 flags: STMT_END_F
+master-bin.000002 # Table_map 1 # table_id: 2 (test.t)
+master-bin.000002 # Write_rows_v1 1 # table_id: 2 flags: STMT_END_F
master-bin.000002 # Query 1 # COMMIT
master-bin.000002 # Gtid 1 # GTID #-#-#
master-bin.000002 # Query 1 # use `test`; ALTER TABLE t comment ''
master-bin.000002 # Gtid 1 # BEGIN GTID #-#-#
master-bin.000002 # Annotate_rows 1 # INSERT INTO t SET a= 3
-master-bin.000002 # Table_map 1 # table_id: 4294967297 (test.t)
-master-bin.000002 # Write_rows_v1 1 # table_id: 4294967297 flags: STMT_END_F
+master-bin.000002 # Table_map 1 # table_id: 3 (test.t)
+master-bin.000002 # Write_rows_v1 1 # table_id: 3 flags: STMT_END_F
master-bin.000002 # Query 1 # COMMIT
connection slave;
connection master;
mysql-test/suite/rpl/r/rpl_row_big_table_id.result
0 → 100644
View file @
25161e62
include/master-slave.inc
[connection master]
connection master;
include/rpl_restart_server.inc [server_number=1]
SET @@debug_dbug="d,simulate_big_table_id";
CREATE TABLE t (a int);
INSERT INTO t SET a= 0;
ALTER TABLE t comment '';
INSERT INTO t SET a= 1;
ALTER TABLE t comment '';
INSERT INTO t SET a= 2;
ALTER TABLE t comment '';
INSERT INTO t SET a= 3;
show binlog events in <file> from <pos>;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000002 # Gtid 1 # BEGIN GTID #-#-#
master-bin.000002 # Annotate_rows 1 # INSERT INTO t SET a= 0
master-bin.000002 # Table_map 1 # table_id: 4294967294 (test.t)
master-bin.000002 # Write_rows_v1 1 # table_id: 4294967294 flags: STMT_END_F
master-bin.000002 # Query 1 # COMMIT
master-bin.000002 # Gtid 1 # GTID #-#-#
master-bin.000002 # Query 1 # use `test`; ALTER TABLE t comment ''
master-bin.000002 # Gtid 1 # BEGIN GTID #-#-#
master-bin.000002 # Annotate_rows 1 # INSERT INTO t SET a= 1
master-bin.000002 # Table_map 1 # table_id: 4294967295 (test.t)
master-bin.000002 # Write_rows_v1 1 # table_id: 4294967295 flags: STMT_END_F
master-bin.000002 # Query 1 # COMMIT
master-bin.000002 # Gtid 1 # GTID #-#-#
master-bin.000002 # Query 1 # use `test`; ALTER TABLE t comment ''
master-bin.000002 # Gtid 1 # BEGIN GTID #-#-#
master-bin.000002 # Annotate_rows 1 # INSERT INTO t SET a= 2
master-bin.000002 # Table_map 1 # table_id: 4294967296 (test.t)
master-bin.000002 # Write_rows_v1 1 # table_id: 4294967296 flags: STMT_END_F
master-bin.000002 # Query 1 # COMMIT
master-bin.000002 # Gtid 1 # GTID #-#-#
master-bin.000002 # Query 1 # use `test`; ALTER TABLE t comment ''
master-bin.000002 # Gtid 1 # BEGIN GTID #-#-#
master-bin.000002 # Annotate_rows 1 # INSERT INTO t SET a= 3
master-bin.000002 # Table_map 1 # table_id: 4294967297 (test.t)
master-bin.000002 # Write_rows_v1 1 # table_id: 4294967297 flags: STMT_END_F
master-bin.000002 # Query 1 # COMMIT
connection slave;
connection master;
DROP TABLE t;
connection slave;
include/rpl_end.inc
mysql-test/suite/rpl/t/rpl_row_big_table_id.test
0 → 100644
View file @
25161e62
##################################################################
# rpl_row_big_table_id
#
# MDEV-17803 Row-based event is not applied when
# table map id is greater 32 bit int
#
# Verify row-based events applying when table map id value is about and greater
# than 1 << 32.
##################################################################
--
source
include
/
word_size
.
inc
--
source
include
/
have_debug
.
inc
--
source
include
/
have_binlog_format_row
.
inc
--
source
include
/
master
-
slave
.
inc
--
connection
master
# To reset last table id
--
let
$rpl_server_number
=
1
--
source
include
/
rpl_restart_server
.
inc
SET
@@
debug_dbug
=
"d,simulate_big_table_id"
;
CREATE
TABLE
t
(
a
int
);
--
let
$binlog_file
=
query_get_value
(
SHOW
MASTER
STATUS
,
File
,
1
)
--
let
$binlog_pos
=
query_get_value
(
SHOW
MASTER
STATUS
,
Position
,
1
)
INSERT
INTO
t
SET
a
=
0
;
ALTER
TABLE
t
comment
''
;
INSERT
INTO
t
SET
a
=
1
;
ALTER
TABLE
t
comment
''
;
INSERT
INTO
t
SET
a
=
2
;
ALTER
TABLE
t
comment
''
;
INSERT
INTO
t
SET
a
=
3
;
# display simulated big table_id
--
let
$_in_from
=
in
'$binlog_file'
from
$binlog_pos
--
replace_result
"
$_in_from
"
"in <file> from <pos>"
--
replace_column
2
# 5 #
--
replace_regex
/
\
/
\
*
xid
=.*
\
*
\
//\/* XID *\// /file_id=[0-9]+/file_id=#/ /GTID [0-9]+-[0-9]+-[0-9]+/GTID #-#-#/
--
eval
show
binlog
events
in
'$binlog_file'
from
$binlog_pos
--
sync_slave_with_master
if
(
`SELECT sum(a) != 6 FROM t`
)
{
--
echo
***
unexpected
result
;
check
slave
applier
***
--
die
}
# Cleanup
--
connection
master
DROP
TABLE
t
;
--
sync_slave_with_master
--
source
include
/
rpl_end
.
inc
mysql-test/t/connect.test
View file @
25161e62
...
...
@@ -66,8 +66,13 @@ connect (fail_con,localhost,test,zorro,test2);
connect
(
fail_con
,
localhost
,
test
,
zorro
,);
# check if old password version also works
select
user
,
host
,
password
,
plugin
,
authentication_string
from
mysql
.
user
where
user
=
'test'
;
update
mysql
.
user
set
password
=
old_password
(
"gambling2"
)
where
user
=
_binary
"test"
;
flush
privileges
;
show
grants
for
test
@
localhost
;
update
mysql
.
user
set
plugin
=
'mysql_old_password'
where
user
=
'test'
;
flush
privileges
;
show
grants
for
test
@
localhost
;
connect
(
con10
,
localhost
,
test
,
gambling2
,);
connect
(
con5
,
localhost
,
test
,
gambling2
,
mysql
);
...
...
sql/sql_acl.cc
View file @
25161e62
...
...
@@ -1593,8 +1593,7 @@ static bool fix_user_plugin_ptr(ACL_USER *user)
else
return
true
;
if
(
user
->
auth_string
.
length
)
set_user_salt
(
user
,
user
->
auth_string
.
str
,
user
->
auth_string
.
length
);
set_user_salt
(
user
,
user
->
auth_string
.
str
,
user
->
auth_string
.
length
);
return
false
;
}
...
...
@@ -2068,6 +2067,11 @@ static bool acl_load(THD *thd, const Grant_tables& tables)
safe_str
(
user
.
user
.
str
),
safe_str
(
user
.
host
.
hostname
));
}
else
if
(
password_len
)
{
user
.
auth_string
.
str
=
password
;
user
.
auth_string
.
length
=
password_len
;
}
fix_user_plugin_ptr
(
&
user
);
}
...
...
sql/sql_table.cc
View file @
25161e62
...
...
@@ -6634,6 +6634,12 @@ static bool fill_alter_inplace_info(THD *thd,
KEY
*
new_key
;
KEY
*
new_key_end
=
ha_alter_info
->
key_info_buffer
+
ha_alter_info
->
key_count
;
/*
Primary key index for the new table
*/
const
KEY
*
const
new_pk
=
(
ha_alter_info
->
key_count
>
0
&&
is_candidate_key
(
ha_alter_info
->
key_info_buffer
))
?
ha_alter_info
->
key_info_buffer
:
NULL
;
DBUG_PRINT
(
"info"
,
(
"index count old: %d new: %d"
,
table
->
s
->
keys
,
ha_alter_info
->
key_count
));
...
...
@@ -6709,6 +6715,16 @@ static bool fill_alter_inplace_info(THD *thd,
goto
index_changed
;
}
/*
Rebuild the index if following condition get satisfied:
(i) Old table doesn't have primary key, new table has it and vice-versa
(ii) Primary key changed to another existing index
*/
if
((
new_key
==
new_pk
)
!=
((
uint
)
(
table_key
-
table
->
key_info
)
==
table
->
s
->
primary_key
))
goto
index_changed
;
/* Check that key comment is not changed. */
if
(
table_key
->
comment
.
length
!=
new_key
->
comment
.
length
||
(
table_key
->
comment
.
length
&&
...
...
sql/table.cc
View file @
25161e62
...
...
@@ -337,6 +337,9 @@ TABLE_SHARE *alloc_table_share(const char *db, const char *table_name,
mysql_mutex_init
(
key_TABLE_SHARE_LOCK_ha_data
,
&
share
->
LOCK_ha_data
,
MY_MUTEX_INIT_FAST
);
DBUG_EXECUTE_IF
(
"simulate_big_table_id"
,
if
(
last_table_id
<
UINT_MAX32
)
last_table_id
=
UINT_MAX32
-
1
;);
/*
There is one reserved number that cannot be used. Remember to
change this when 6-byte global table id's are introduced.
...
...
@@ -345,7 +348,8 @@ TABLE_SHARE *alloc_table_share(const char *db, const char *table_name,
{
share
->
table_map_id
=
(
ulong
)
my_atomic_add64_explicit
(
&
last_table_id
,
1
,
MY_MEMORY_ORDER_RELAXED
);
}
while
(
unlikely
(
share
->
table_map_id
==
~
0UL
));
}
while
(
unlikely
(
share
->
table_map_id
==
~
0UL
||
share
->
table_map_id
==
0
));
}
DBUG_RETURN
(
share
);
}
...
...
sql/table.h
View file @
25161e62
...
...
@@ -1892,7 +1892,7 @@ struct TABLE_LIST
/* Index names in a "... JOIN ... USE/IGNORE INDEX ..." clause. */
List
<
Index_hint
>
*
index_hints
;
TABLE
*
table
;
/* opened table */
u
int
table_id
;
/* table id (from binlog) for opened table */
u
longlong
table_id
;
/* table id (from binlog) for opened table */
/*
select_result for derived table to pass it from table creation to table
filling procedure
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment