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
ef44ec4a
Commit
ef44ec4a
authored
Jul 19, 2019
by
Marko Mäkelä
Browse files
Options
Browse Files
Download
Plain Diff
Merge 10.2 into 10.3
parents
7e4ea418
d9dcb8ba
Changes
36
Hide whitespace changes
Inline
Side-by-side
Showing
36 changed files
with
869 additions
and
50 deletions
+869
-50
client/mysqlbinlog.cc
client/mysqlbinlog.cc
+1
-0
mysql-test/include/have_xtrabackup.inc
mysql-test/include/have_xtrabackup.inc
+4
-0
mysql-test/main/mysqld--help.result
mysql-test/main/mysqld--help.result
+1
-1
mysql-test/main/mysqld--help.test
mysql-test/main/mysqld--help.test
+1
-1
mysql-test/suite/binlog/r/binlog_mysqlbinlog_stop_never.result
...-test/suite/binlog/r/binlog_mysqlbinlog_stop_never.result
+16
-0
mysql-test/suite/binlog/t/binlog_mysqlbinlog_stop_never.test
mysql-test/suite/binlog/t/binlog_mysqlbinlog_stop_never.test
+66
-0
mysql-test/suite/innodb/r/check_ibd_filesize,32k.rdiff
mysql-test/suite/innodb/r/check_ibd_filesize,32k.rdiff
+25
-0
mysql-test/suite/innodb/r/check_ibd_filesize,4k.rdiff
mysql-test/suite/innodb/r/check_ibd_filesize,4k.rdiff
+25
-0
mysql-test/suite/innodb/r/check_ibd_filesize,64k.rdiff
mysql-test/suite/innodb/r/check_ibd_filesize,64k.rdiff
+25
-0
mysql-test/suite/innodb/r/check_ibd_filesize,8k.rdiff
mysql-test/suite/innodb/r/check_ibd_filesize,8k.rdiff
+25
-0
mysql-test/suite/innodb/r/check_ibd_filesize.result
mysql-test/suite/innodb/r/check_ibd_filesize.result
+20
-0
mysql-test/suite/innodb/r/innodb-system-table-view.result
mysql-test/suite/innodb/r/innodb-system-table-view.result
+178
-0
mysql-test/suite/innodb/r/innodb-wl5980-debug.result
mysql-test/suite/innodb/r/innodb-wl5980-debug.result
+27
-0
mysql-test/suite/innodb/r/trx_id_future.result
mysql-test/suite/innodb/r/trx_id_future.result
+13
-0
mysql-test/suite/innodb/t/check_ibd_filesize.test
mysql-test/suite/innodb/t/check_ibd_filesize.test
+53
-0
mysql-test/suite/innodb/t/innodb-system-table-view.opt
mysql-test/suite/innodb/t/innodb-system-table-view.opt
+10
-0
mysql-test/suite/innodb/t/innodb-system-table-view.test
mysql-test/suite/innodb/t/innodb-system-table-view.test
+136
-0
mysql-test/suite/innodb/t/innodb-wl5980-debug.test
mysql-test/suite/innodb/t/innodb-wl5980-debug.test
+51
-0
mysql-test/suite/innodb/t/trx_id_future.test
mysql-test/suite/innodb/t/trx_id_future.test
+58
-0
mysql-test/suite/rpl/r/mdev_17588.result
mysql-test/suite/rpl/r/mdev_17588.result
+36
-0
mysql-test/suite/rpl/t/mdev_17588-slave.opt
mysql-test/suite/rpl/t/mdev_17588-slave.opt
+1
-0
mysql-test/suite/rpl/t/mdev_17588.test
mysql-test/suite/rpl/t/mdev_17588.test
+39
-0
sql/log_event.cc
sql/log_event.cc
+1
-1
sql/table.cc
sql/table.cc
+3
-3
storage/connect/CMakeLists.txt
storage/connect/CMakeLists.txt
+0
-9
storage/innobase/buf/buf0buf.cc
storage/innobase/buf/buf0buf.cc
+16
-16
storage/innobase/fil/fil0fil.cc
storage/innobase/fil/fil0fil.cc
+9
-3
storage/innobase/row/row0merge.cc
storage/innobase/row/row0merge.cc
+2
-0
storage/maria/ha_maria.cc
storage/maria/ha_maria.cc
+4
-1
storage/rocksdb/mysql-test/rocksdb/r/unique_check.result
storage/rocksdb/mysql-test/rocksdb/r/unique_check.result
+5
-5
storage/rocksdb/mysql-test/rocksdb/t/disabled.def
storage/rocksdb/mysql-test/rocksdb/t/disabled.def
+3
-1
storage/rocksdb/mysql-test/rocksdb/t/tbl_opt_data_index_dir.test
.../rocksdb/mysql-test/rocksdb/t/tbl_opt_data_index_dir.test
+4
-0
storage/rocksdb/mysql-test/rocksdb/t/unique_check.test
storage/rocksdb/mysql-test/rocksdb/t/unique_check.test
+6
-5
storage/rocksdb/mysql-test/rocksdb_rpl/t/disabled.def
storage/rocksdb/mysql-test/rocksdb_rpl/t/disabled.def
+2
-0
support-files/rpm/server-postin.sh
support-files/rpm/server-postin.sh
+1
-1
zlib/CMakeLists.txt
zlib/CMakeLists.txt
+2
-3
No files found.
client/mysqlbinlog.cc
View file @
ef44ec4a
...
...
@@ -1548,6 +1548,7 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
{
my_fwrite
(
result_file
,
(
const
uchar
*
)
tmp_str
.
str
,
tmp_str
.
length
,
MYF
(
MY_NABP
));
fflush
(
result_file
);
my_free
(
tmp_str
.
str
);
}
}
...
...
mysql-test/include/have_xtrabackup.inc
0 → 100644
View file @
ef44ec4a
#
# suite.pm will make sure that all tests including this file
# will be skipped as needed
#
mysql-test/main/mysqld--help.result
View file @
ef44ec4a
Windows bug:
happens when a new line
is exactly at the right offset.
Windows bug:
new line disappears when it
is exactly at the right offset.
The following options may be given as the first argument:
--print-defaults Print the program argument list and exit.
--no-defaults Don't read default options from any option file.
...
...
mysql-test/main/mysqld--help.test
View file @
ef44ec4a
...
...
@@ -42,7 +42,7 @@ perl;
$re2
=
join
(
'|'
,
@
plugins
);
$skip
=
0
;
open
(
F
,
'<'
,
"
$ENV
{
MYSQL_TMP_DIR
}
/mysqld--help.txt"
)
or
die
;
print
"Windows bug:
happens when a new line
is exactly at the right offset.
\n
"
;
print
"Windows bug:
new line disappears when it
is exactly at the right offset.
\n
"
;
while
(
<
F
>
)
{
next
if
1.
./
The
following
groups
are
read
/
;
# formatting, skip line consisting entirely of dashes and blanks
...
...
mysql-test/suite/binlog/r/binlog_mysqlbinlog_stop_never.result
0 → 100644
View file @
ef44ec4a
RESET MASTER;
include/stop_dump_threads.inc
# Step-1: Execute some dummy statements.
CREATE TABLE t1(i int);
INSERT INTO t1 values (1);
# Step-2: Disable binary log temporarily and drop the table 't1'.
set @@SESSION.SQL_LOG_BIN = 0;
DROP TABLE t1;
set @@SESSION.SQL_LOG_BIN = 1;
# Step-3: Execute MYSQL_BINLOG with --stop-never and source it to mysql client.
# Step-4: Wait till dump thread transfer is completed.
# Step-5: Check that the data is there.
# Step-6: Cleanup
# kill the dump thread serving the mysqlbinlog --stop-never process
include/stop_dump_threads.inc
DROP TABLE t1;
mysql-test/suite/binlog/t/binlog_mysqlbinlog_stop_never.test
0 → 100644
View file @
ef44ec4a
# ==== Purpose ====
#
# Test verifies that continuous streaming of binary log content using the
# "mysqlbinlog --stop-never" option and sourcing it to mysql client works
# fine.
#
# ==== Implementation ====
#
# Steps:
# 1 - Create a table on a server on which binary log is enabled and insert
# a row.
# 2 - Disable the binary log on the server and drop the table.
# 3 - Capture the binary log output using "mysqlbinlog --stop_never" option
# and source it to mysql client.
# 4 - Query the PROCESSLIST table to ensure that the dump thread which is
# serving "stop_never" option has read entire binlog.
# 5 - Verify that the table is populated on the server.
# 6 - Cleanup.
#
# ==== References ====
#
# MDEV-11154: Write_on_release_cache(log_event.cc) function will not write
# "COMMIT", if use "mysqlbinlog ... | mysql ..."
--
source
include
/
not_windows
.
inc
# Test is not specific to any binlog format. Hence Running only for 'row'.
--
source
include
/
have_binlog_format_row
.
inc
# binlog file name is needed in the test. To use master-bin.000001,
# RESET MASTER is needed.
RESET
MASTER
;
# kill the dump threads if there any dump threads (may be from previous test)
--
source
include
/
stop_dump_threads
.
inc
--
echo
# Step-1: Execute some dummy statements.
CREATE
TABLE
t1
(
i
int
);
INSERT
INTO
t1
values
(
1
);
--
echo
# Step-2: Disable binary log temporarily and drop the table 't1'.
set
@@
SESSION
.
SQL_LOG_BIN
=
0
;
DROP
TABLE
t1
;
set
@@
SESSION
.
SQL_LOG_BIN
=
1
;
--
echo
# Step-3: Execute MYSQL_BINLOG with --stop-never and source it to mysql client.
--
write_file
$MYSQL_TMP_DIR
/
mysqlbinlog_stop_never
.
sh
(
`$MYSQL_BINLOG --read-from-remote-server --stop-never --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 | $MYSQL --user=root --protocol=tcp --host=127.0.0.1 --port=$MASTER_MYPORT`
)
<
/
dev
/
null
>
/
dev
/
null
2
>&
1
&
EOF
--
exec
/
bin
/
bash
$MYSQL_TMP_DIR
/
mysqlbinlog_stop_never
.
sh
--
echo
# Step-4: Wait till dump thread transfer is completed.
let
$wait_condition
=
SELECT
id
from
information_schema
.
processlist
where
processlist
.
command
like
'%Binlog%'
and
state
like
'%Master has sent%'
;
--
source
include
/
wait_condition
.
inc
--
echo
# Step-5: Check that the data is there.
let
$count
=
1
;
let
$table
=
test
.
t1
;
source
include
/
wait_until_rows_count
.
inc
;
--
echo
# Step-6: Cleanup
--
echo
# kill the dump thread serving the mysqlbinlog --stop-never process
--
source
include
/
stop_dump_threads
.
inc
DROP
TABLE
t1
;
--
remove_file
$MYSQL_TMP_DIR
/
mysqlbinlog_stop_never
.
sh
mysql-test/suite/innodb/r/check_ibd_filesize,32k.rdiff
0 → 100644
View file @
ef44ec4a
--- check_ibd_filesize.result
+++ check_ibd_filesize.result,32k
@@ -3,18 +3,12 @@
# SPACE IN 5.7 THAN IN 5.6
#
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
-# bytes: 98304
+# bytes: 196608
INSERT INTO t1 SELECT * FROM seq_1_to_25000;
-# bytes: 9437184
+# bytes: 786432
DROP TABLE t1;
CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB) ENGINE=InnoDB;
-# bytes: 98304
+# bytes: 196608
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
-# bytes: 4194304
-DROP TABLE t1;
-CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB)
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
-# bytes: 65536
-INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
-# bytes: 65536
+# bytes: 786432
DROP TABLE t1;
mysql-test/suite/innodb/r/check_ibd_filesize,4k.rdiff
0 → 100644
View file @
ef44ec4a
--- check_ibd_filesize.result
+++ check_ibd_filesize.result,4k
@@ -3,18 +3,18 @@
# SPACE IN 5.7 THAN IN 5.6
#
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
-# bytes: 98304
+# bytes: 24576
INSERT INTO t1 SELECT * FROM seq_1_to_25000;
# bytes: 9437184
DROP TABLE t1;
CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB) ENGINE=InnoDB;
-# bytes: 98304
+# bytes: 24576
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
# bytes: 4194304
DROP TABLE t1;
CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB)
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
-# bytes: 65536
+# bytes: 16384
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
-# bytes: 65536
+# bytes: 25600
DROP TABLE t1;
mysql-test/suite/innodb/r/check_ibd_filesize,64k.rdiff
0 → 100644
View file @
ef44ec4a
--- check_ibd_filesize.result
+++ check_ibd_filesize.result,64k
@@ -3,18 +3,12 @@
# SPACE IN 5.7 THAN IN 5.6
#
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
-# bytes: 98304
+# bytes: 393216
INSERT INTO t1 SELECT * FROM seq_1_to_25000;
-# bytes: 9437184
+# bytes: 983040
DROP TABLE t1;
CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB) ENGINE=InnoDB;
-# bytes: 98304
+# bytes: 393216
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
-# bytes: 4194304
-DROP TABLE t1;
-CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB)
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
-# bytes: 65536
-INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
-# bytes: 65536
+# bytes: 1572864
DROP TABLE t1;
mysql-test/suite/innodb/r/check_ibd_filesize,8k.rdiff
0 → 100644
View file @
ef44ec4a
--- check_ibd_filesize.result
+++ check_ibd_filesize.result,8k
@@ -3,18 +3,18 @@
# SPACE IN 5.7 THAN IN 5.6
#
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
-# bytes: 98304
+# bytes: 49152
INSERT INTO t1 SELECT * FROM seq_1_to_25000;
# bytes: 9437184
DROP TABLE t1;
CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB) ENGINE=InnoDB;
-# bytes: 98304
+# bytes: 49152
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
# bytes: 4194304
DROP TABLE t1;
CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB)
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
-# bytes: 65536
+# bytes: 32768
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
-# bytes: 65536
+# bytes: 32768
DROP TABLE t1;
mysql-test/suite/innodb/r/check_ibd_filesize.result
0 → 100644
View file @
ef44ec4a
#
# Bug #21950389 SMALL TABLESPACES WITH BLOBS TAKE UP TO 80 TIMES MORE
# SPACE IN 5.7 THAN IN 5.6
#
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
# bytes: 98304
INSERT INTO t1 SELECT * FROM seq_1_to_25000;
# bytes: 9437184
DROP TABLE t1;
CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB) ENGINE=InnoDB;
# bytes: 98304
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
# bytes: 4194304
DROP TABLE t1;
CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB)
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
# bytes: 65536
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
# bytes: 65536
DROP TABLE t1;
mysql-test/suite/innodb/r/innodb-system-table-view.result
0 → 100644
View file @
ef44ec4a
SELECT table_id INTO @table_stats_id FROM information_schema.innodb_sys_tables
WHERE name = 'mysql/innodb_table_stats';
SELECT table_id INTO @index_stats_id FROM information_schema.innodb_sys_tables
WHERE name = 'mysql/innodb_index_stats';
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES
WHERE table_id NOT IN (@table_stats_id, @index_stats_id) ORDER BY table_id;
TABLE_ID NAME FLAG N_COLS SPACE ROW_FORMAT ZIP_PAGE_SIZE SPACE_TYPE
11 SYS_FOREIGN 0 7 0 Redundant 0 System
12 SYS_FOREIGN_COLS 0 7 0 Redundant 0 System
13 SYS_TABLESPACES 0 6 0 Redundant 0 System
14 SYS_DATAFILES 0 5 0 Redundant 0 System
15 SYS_VIRTUAL 0 6 0 Redundant 0 System
18 mysql/transaction_registry 33 8 3 Dynamic 0 Single
SELECT table_id,pos,mtype,prtype,len,name
FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS
WHERE table_id NOT IN (@table_stats_id, @index_stats_id)
ORDER BY table_id, pos;
table_id pos mtype prtype len name
11 0 1 524292 0 ID
11 1 1 524292 0 FOR_NAME
11 2 1 524292 0 REF_NAME
11 3 6 0 4 N_COLS
12 0 1 524292 0 ID
12 1 6 0 4 POS
12 2 1 524292 0 FOR_COL_NAME
12 3 1 524292 0 REF_COL_NAME
13 0 6 0 4 SPACE
13 1 1 524292 0 NAME
13 2 6 0 4 FLAGS
14 0 6 0 4 SPACE
14 1 1 524292 0 PATH
15 0 6 0 8 TABLE_ID
15 1 6 0 4 POS
15 2 6 0 4 BASE_POS
18 0 6 1800 8 transaction_id
18 1 6 1800 8 commit_id
18 2 3 526087 7 begin_timestamp
18 3 3 526087 7 commit_timestamp
18 4 6 1022 1 isolation_level
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES
WHERE table_id NOT IN (@table_stats_id, @index_stats_id) ORDER BY index_id;
INDEX_ID NAME TABLE_ID TYPE N_FIELDS PAGE_NO SPACE MERGE_THRESHOLD
# ID_IND # 3 1 # # 50
# FOR_IND # 0 1 # # 50
# REF_IND # 0 1 # # 50
# ID_IND # 3 2 # # 50
# SYS_TABLESPACES_SPACE # 3 1 # # 50
# SYS_DATAFILES_SPACE # 3 1 # # 50
# BASE_IDX # 3 3 # # 50
# PRIMARY # 3 1 # # 50
# commit_id # 2 1 # # 50
# begin_timestamp # 0 1 # # 50
# commit_timestamp # 0 2 # # 50
SELECT index_id,pos,name FROM INFORMATION_SCHEMA.INNODB_SYS_FIELDS
WHERE name NOT IN ('database_name', 'table_name', 'index_name', 'stat_name')
ORDER BY index_id, pos;
index_id pos name
11 0 ID
12 0 FOR_NAME
13 0 REF_NAME
14 0 ID
14 1 POS
15 0 SPACE
16 0 SPACE
17 0 TABLE_ID
17 1 POS
17 2 BASE_POS
20 0 transaction_id
21 0 commit_id
22 0 begin_timestamp
23 0 commit_timestamp
23 1 transaction_id
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
ID FOR_NAME REF_NAME N_COLS TYPE
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
ID FOR_COL_NAME REF_COL_NAME POS
CREATE TABLE t_redundant (a INT KEY, b TEXT) ROW_FORMAT=REDUNDANT ENGINE=innodb;
CREATE TABLE t_compact (a INT KEY, b TEXT) ROW_FORMAT=COMPACT ENGINE=innodb;
CREATE TABLE t_compressed (a INT KEY, b TEXT) ROW_FORMAT=COMPRESSED ENGINE=innodb KEY_BLOCK_SIZE=2;
CREATE TABLE t_dynamic (a INT KEY, b TEXT) ROW_FORMAT=DYNAMIC ENGINE=innodb;
=== information_schema.innodb_sys_tables and innodb_sys_tablespaces ===
Table Name Tablespace Table Flags Columns Row Format Zip Size Space Type
test/t_compact test/t_compact 1 5 Compact 0 Single
test/t_compressed test/t_compressed 37 5 Compressed 2048 Single
test/t_dynamic test/t_dynamic 33 5 Dynamic 0 Single
test/t_redundant test/t_redundant 0 5 Redundant 0 Single
=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
Space_Name Space_Type Page_Size Zip_Size Formats_Permitted Path
test/t_redundant Single DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t_redundant.ibd
test/t_compact Single DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t_compact.ibd
test/t_compressed Single DEFAULT 2048 Compressed MYSQLD_DATADIR/test/t_compressed.ibd
test/t_dynamic Single DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t_dynamic.ibd
DROP TABLE t_redundant, t_compact, t_compressed, t_dynamic;
SELECT count(*) FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS;
count(*)
8
CREATE TABLE parent (id INT NOT NULL,
PRIMARY KEY (id)) ENGINE=INNODB;
CREATE TABLE child (id INT, parent_id INT,
INDEX par_ind (parent_id),
CONSTRAINT constraint_test
FOREIGN KEY (parent_id) REFERENCES parent(id)
ON DELETE CASCADE) ENGINE=INNODB;
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
ID FOR_NAME REF_NAME N_COLS TYPE
test/constraint_test test/child test/parent 1 1
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
ID FOR_COL_NAME REF_COL_NAME POS
test/constraint_test parent_id id 0
INSERT INTO parent VALUES(1);
SELECT name, num_rows, ref_count
FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name LIKE "%parent";
name num_rows ref_count
test/parent 1 1
SELECT NAME, FLAG, N_COLS FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES
WHERE name NOT LIKE 'sys/%';
NAME FLAG N_COLS
SYS_DATAFILES 0 5
SYS_FOREIGN 0 7
SYS_FOREIGN_COLS 0 7
SYS_TABLESPACES 0 6
SYS_VIRTUAL 0 6
mysql/innodb_index_stats 33 11
mysql/innodb_table_stats 33 9
mysql/transaction_registry 33 8
test/child 33 5
test/parent 33 4
SELECT name, n_fields
from INFORMATION_SCHEMA.INNODB_SYS_INDEXES
WHERE table_id In (SELECT table_id from
INFORMATION_SCHEMA.INNODB_SYS_TABLES
WHERE name LIKE "%parent%");
name n_fields
PRIMARY 1
SELECT name, n_fields
from INFORMATION_SCHEMA.INNODB_SYS_INDEXES
WHERE table_id In (SELECT table_id from
INFORMATION_SCHEMA.INNODB_SYS_TABLES
WHERE name LIKE "%child%");
name n_fields
GEN_CLUST_INDEX 0
par_ind 1
SELECT name, pos, mtype, len
from INFORMATION_SCHEMA.INNODB_SYS_COLUMNS
WHERE table_id In (SELECT table_id from
INFORMATION_SCHEMA.INNODB_SYS_TABLES
WHERE name LIKE "%child%");
name pos mtype len
id 0 6 4
parent_id 1 6 4
DROP TABLE child;
DROP TABLE parent;
CREATE TABLE parent (id INT NOT NULL, newid INT NOT NULL,
PRIMARY KEY (id, newid)) ENGINE=INNODB;
CREATE TABLE child (id INT, parent_id INT,
INDEX par_ind (parent_id),
CONSTRAINT constraint_test
FOREIGN KEY (id, parent_id) REFERENCES parent(id, newid)
ON DELETE CASCADE) ENGINE=INNODB;
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
ID FOR_NAME REF_NAME N_COLS TYPE
test/constraint_test test/child test/parent 2 1
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
ID FOR_COL_NAME REF_COL_NAME POS
test/constraint_test id id 0
test/constraint_test parent_id newid 1
INSERT INTO parent VALUES(1, 9);
SELECT * FROM parent WHERE id IN (SELECT id FROM parent);
id newid
1 9
SELECT name, num_rows, ref_count
FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name LIKE "%parent";
name num_rows ref_count
test/parent 1 2
DROP TABLE child;
DROP TABLE parent;
mysql-test/suite/innodb/r/innodb-wl5980-debug.result
0 → 100644
View file @
ef44ec4a
call mtr.add_suppression("Cannot find space id [0-9]+ in the tablespace memory cache");
call mtr.add_suppression("Cannot rename table 'test/t1' to 'test/t2' since the dictionary cache already contains 'test/t2'.");
#
# WL5980 Remote tablespace debug error injection tests.
#
CREATE TABLE t1 (a int KEY, b text) ENGINE=Innodb DATA DIRECTORY='MYSQL_TMP_DIR/alt_dir' ;
INSERT INTO t1 VALUES (1, 'tablespace');
SELECT * FROM t1;
a b
1 tablespace
#
# Test the second injection point in fil_rename_tablespace().
# Make sure the table is useable after this failure.
#
SET @save_dbug=@@debug_dbug;
SET debug_dbug="+d,fil_rename_tablespace_failure_2";
RENAME TABLE t1 TO t2;
SET debug_dbug=@save_dbug;
INSERT INTO t1 VALUES (2, 'tablespace');
SELECT * FROM t1;
a b
1 tablespace
2 tablespace
#
# Cleanup
#
DROP TABLE t1;
mysql-test/suite/innodb/r/trx_id_future.result
0 → 100644
View file @
ef44ec4a
#
# Bug #20445525 ADD A CONSISTENCY CHECK AGAINST DB_TRX_ID BEING
# IN THE FUTURE
#
CREATE TABLE t1(a INT) row_format=redundant engine=innoDB;
INSERT INTO t1 VALUES(1);
NOT FOUND /\[Warning\] InnoDB: A transaction id in a record of table `test`\.`t1` is newer than the system-wide maximum/ in mysqld.1.err
call mtr.add_suppression("\\[Warning\\] InnoDB: A transaction id in a record of table `test`\\.`t1` is newer than the system-wide maximum");
SELECT * FROM t1;
a
Warnings:
Warning 1642 InnoDB: Transaction id in a record of table `test`.`t1` is newer than system-wide maximum.
DROP TABLE t1;
mysql-test/suite/innodb/t/check_ibd_filesize.test
0 → 100644
View file @
ef44ec4a
--
source
include
/
innodb_page_size
.
inc
--
source
include
/
have_sequence
.
inc
--
echo
#
--
echo
# Bug #21950389 SMALL TABLESPACES WITH BLOBS TAKE UP TO 80 TIMES MORE
--
echo
# SPACE IN 5.7 THAN IN 5.6
--
echo
#
#
# Table 1: small rows
#
CREATE
TABLE
t1
(
a
INT
PRIMARY
KEY
)
ENGINE
=
InnoDB
;
let
MYSQLD_DATADIR
=
`select @@datadir`
;
perl
;
print
"# bytes: "
,
(
-
s
"
$ENV
{
MYSQLD_DATADIR
}
/test/t1.ibd"
),
"
\n
"
;
EOF
INSERT
INTO
t1
SELECT
*
FROM
seq_1_to_25000
;
perl
;
print
"# bytes: "
,
(
-
s
"
$ENV
{
MYSQLD_DATADIR
}
/test/t1.ibd"
),
"
\n
"
;
EOF
DROP
TABLE
t1
;
#
# Table 2: BLOB
#
CREATE
TABLE
t1
(
a
INT
PRIMARY
KEY
,
b
BLOB
)
ENGINE
=
InnoDB
;
perl
;
print
"# bytes: "
,
(
-
s
"
$ENV
{
MYSQLD_DATADIR
}
/test/t1.ibd"
),
"
\n
"
;
EOF
INSERT
INTO
t1
SELECT
seq
,
REPEAT
(
'a'
,
30000
)
FROM
seq_1_to_20
;
perl
;
print
"# bytes: "
,
(
-
s
"
$ENV
{
MYSQLD_DATADIR
}
/test/t1.ibd"
),
"
\n
"
;
EOF
DROP
TABLE
t1
;
let
$page_size
=
`SELECT @@innodb_page_size`
;
if
(
$page_size
<
32768
)
{
#
# Table 3: compressed BLOB
#
CREATE
TABLE
t1
(
a
INT
PRIMARY
KEY
,
b
BLOB
)
ENGINE
=
InnoDB
ROW_FORMAT
=
COMPRESSED
KEY_BLOCK_SIZE
=
1
;
perl
;
print
"# bytes: "
,
(
-
s
"
$ENV
{
MYSQLD_DATADIR
}
/test/t1.ibd"
),
"
\n
"
;
EOF
INSERT
INTO
t1
SELECT
seq
,
REPEAT
(
'a'
,
30000
)
FROM
seq_1_to_20
;
perl
;
print
"# bytes: "
,
(
-
s
"
$ENV
{
MYSQLD_DATADIR
}
/test/t1.ibd"
),
"
\n
"
;
EOF
DROP
TABLE
t1
;
}
mysql-test/suite/innodb/t/innodb-system-table-view.opt
0 → 100644
View file @
ef44ec4a
--innodb
--innodb-sys-tablespaces
--innodb-sys-datafiles
--innodb-sys-tablestats
--innodb-sys-tables
--innodb-sys-columns
--innodb-sys-indexes
--innodb-sys-fields
--innodb-sys-foreign
--innodb-sys-foreign-cols
mysql-test/suite/innodb/t/innodb-system-table-view.test
0 → 100644
View file @
ef44ec4a
# This is the test for Information Schema System Table View
# that displays the InnoDB system table content through
# information schema tables.
--
source
include
/
innodb_page_size_small
.
inc
LET
$MYSQLD_DATADIR
=
`select @@datadir`
;
LET
$INNODB_PAGE_SIZE
=
`select @@innodb_page_size`
;
# The IDs of mysql.innodb_table_stats and mysql.innodb_index_stats may
# vary depending on whether the tables have been rebuilt
# by previously run tests.
SELECT
table_id
INTO
@
table_stats_id
FROM
information_schema
.
innodb_sys_tables
WHERE
name
=
'mysql/innodb_table_stats'
;
SELECT
table_id
INTO
@
index_stats_id
FROM
information_schema
.
innodb_sys_tables
WHERE
name
=
'mysql/innodb_index_stats'
;
SELECT
*
FROM
INFORMATION_SCHEMA
.
INNODB_SYS_TABLES
WHERE
table_id
NOT
IN
(
@
table_stats_id
,
@
index_stats_id
)
ORDER
BY
table_id
;
SELECT
table_id
,
pos
,
mtype
,
prtype
,
len
,
name
FROM
INFORMATION_SCHEMA
.
INNODB_SYS_COLUMNS
WHERE
table_id
NOT
IN
(
@
table_stats_id
,
@
index_stats_id
)
ORDER
BY
table_id
,
pos
;
--
replace_column
1
# 3 # 6 # 7 #
SELECT
*
FROM
INFORMATION_SCHEMA
.
INNODB_SYS_INDEXES
WHERE
table_id
NOT
IN
(
@
table_stats_id
,
@
index_stats_id
)
ORDER
BY
index_id
;
SELECT
index_id
,
pos
,
name
FROM
INFORMATION_SCHEMA
.
INNODB_SYS_FIELDS
WHERE
name
NOT
IN
(
'database_name'
,
'table_name'
,
'index_name'
,
'stat_name'
)
ORDER
BY
index_id
,
pos
;
--
sorted_result
SELECT
*
FROM
INFORMATION_SCHEMA
.
INNODB_SYS_FOREIGN
;
--
sorted_result
SELECT
*
FROM
INFORMATION_SCHEMA
.
INNODB_SYS_FOREIGN_COLS
;
CREATE
TABLE
t_redundant
(
a
INT
KEY
,
b
TEXT
)
ROW_FORMAT
=
REDUNDANT
ENGINE
=
innodb
;
CREATE
TABLE
t_compact
(
a
INT
KEY
,
b
TEXT
)
ROW_FORMAT
=
COMPACT
ENGINE
=
innodb
;
CREATE
TABLE
t_compressed
(
a
INT
KEY
,
b
TEXT
)
ROW_FORMAT
=
COMPRESSED
ENGINE
=
innodb
KEY_BLOCK_SIZE
=
2
;
CREATE
TABLE
t_dynamic
(
a
INT
KEY
,
b
TEXT
)
ROW_FORMAT
=
DYNAMIC
ENGINE
=
innodb
;
--
source
suite
/
innodb
/
include
/
show_i_s_tables
.
inc
--
source
suite
/
innodb
/
include
/
show_i_s_tablespaces
.
inc
DROP
TABLE
t_redundant
,
t_compact
,
t_compressed
,
t_dynamic
;
SELECT
count
(
*
)
FROM
INFORMATION_SCHEMA
.
INNODB_SYS_TABLESTATS
;
# Create a foreign key constraint, and verify the information
# in INFORMATION_SCHEMA.INNODB_SYS_FOREIGN and
# INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS
CREATE
TABLE
parent
(
id
INT
NOT
NULL
,
PRIMARY
KEY
(
id
))
ENGINE
=
INNODB
;
CREATE
TABLE
child
(
id
INT
,
parent_id
INT
,
INDEX
par_ind
(
parent_id
),
CONSTRAINT
constraint_test
FOREIGN
KEY
(
parent_id
)
REFERENCES
parent
(
id
)
ON
DELETE
CASCADE
)
ENGINE
=
INNODB
;
--
sorted_result
SELECT
*
FROM
INFORMATION_SCHEMA
.
INNODB_SYS_FOREIGN
;
--
sorted_result
SELECT
*
FROM
INFORMATION_SCHEMA
.
INNODB_SYS_FOREIGN_COLS
;
# Insert a row in the table "parent", and see whether that reflected in
# INNODB_SYS_TABLESTATS
INSERT
INTO
parent
VALUES
(
1
);
--
sorted_result
SELECT
name
,
num_rows
,
ref_count
FROM
INFORMATION_SCHEMA
.
INNODB_SYS_TABLESTATS
WHERE
name
LIKE
"%parent"
;
--
sorted_result
SELECT
NAME
,
FLAG
,
N_COLS
FROM
INFORMATION_SCHEMA
.
INNODB_SYS_TABLES
WHERE
name
NOT
LIKE
'sys/%'
;
--
sorted_result
SELECT
name
,
n_fields
from
INFORMATION_SCHEMA
.
INNODB_SYS_INDEXES
WHERE
table_id
In
(
SELECT
table_id
from
INFORMATION_SCHEMA
.
INNODB_SYS_TABLES
WHERE
name
LIKE
"%parent%"
);
--
sorted_result
SELECT
name
,
n_fields
from
INFORMATION_SCHEMA
.
INNODB_SYS_INDEXES
WHERE
table_id
In
(
SELECT
table_id
from
INFORMATION_SCHEMA
.
INNODB_SYS_TABLES
WHERE
name
LIKE
"%child%"
);
--
sorted_result
SELECT
name
,
pos
,
mtype
,
len
from
INFORMATION_SCHEMA
.
INNODB_SYS_COLUMNS
WHERE
table_id
In
(
SELECT
table_id
from
INFORMATION_SCHEMA
.
INNODB_SYS_TABLES
WHERE
name
LIKE
"%child%"
);
DROP
TABLE
child
;
DROP
TABLE
parent
;
# Create table with 2 columns in the foreign key constraint
CREATE
TABLE
parent
(
id
INT
NOT
NULL
,
newid
INT
NOT
NULL
,
PRIMARY
KEY
(
id
,
newid
))
ENGINE
=
INNODB
;
CREATE
TABLE
child
(
id
INT
,
parent_id
INT
,
INDEX
par_ind
(
parent_id
),
CONSTRAINT
constraint_test
FOREIGN
KEY
(
id
,
parent_id
)
REFERENCES
parent
(
id
,
newid
)
ON
DELETE
CASCADE
)
ENGINE
=
INNODB
;
--
sorted_result
SELECT
*
FROM
INFORMATION_SCHEMA
.
INNODB_SYS_FOREIGN
;
--
sorted_result
SELECT
*
FROM
INFORMATION_SCHEMA
.
INNODB_SYS_FOREIGN_COLS
;
INSERT
INTO
parent
VALUES
(
1
,
9
);
# Nested query will open the table handle twice
--
sorted_result
SELECT
*
FROM
parent
WHERE
id
IN
(
SELECT
id
FROM
parent
);
--
sorted_result
SELECT
name
,
num_rows
,
ref_count
FROM
INFORMATION_SCHEMA
.
INNODB_SYS_TABLESTATS
WHERE
name
LIKE
"%parent"
;
DROP
TABLE
child
;
DROP
TABLE
parent
;
mysql-test/suite/innodb/t/innodb-wl5980-debug.test
0 → 100644
View file @
ef44ec4a
#
# This testcase is to check the various debug injection points
# to make sure error conditions react corectly and acheive
# better code coverage.
#
# Not supported in embedded
--
source
include
/
not_embedded
.
inc
--
source
include
/
have_debug
.
inc
--
source
include
/
have_innodb
.
inc
# These messages are expected in the log
call
mtr
.
add_suppression
(
"Cannot find space id [0-9]+ in the tablespace memory cache"
);
call
mtr
.
add_suppression
(
"Cannot rename table 'test/t1' to 'test/t2' since the dictionary cache already contains 'test/t2'."
);
# Set up some variables
LET
$MYSQL_DATA_DIR
=
`select @@datadir`
;
LET
$data_directory_clause
=
DATA
DIRECTORY
=
'$MYSQL_TMP_DIR/alt_dir'
;
--
enable_query_log
--
echo
#
--
echo
# WL5980 Remote tablespace debug error injection tests.
--
echo
#
--
replace_result
$MYSQL_TMP_DIR
MYSQL_TMP_DIR
eval
CREATE
TABLE
t1
(
a
int
KEY
,
b
text
)
ENGINE
=
Innodb
$data_directory_clause
;
INSERT
INTO
t1
VALUES
(
1
,
'tablespace'
);
SELECT
*
FROM
t1
;
--
echo
#
--
echo
# Test the second injection point in fil_rename_tablespace().
--
echo
# Make sure the table is useable after this failure.
--
echo
#
SET
@
save_dbug
=@@
debug_dbug
;
SET
debug_dbug
=
"+d,fil_rename_tablespace_failure_2"
;
--
disable_result_log
--
error
ER_ERROR_ON_RENAME
RENAME
TABLE
t1
TO
t2
;
--
enable_result_log
SET
debug_dbug
=@
save_dbug
;
INSERT
INTO
t1
VALUES
(
2
,
'tablespace'
);
SELECT
*
FROM
t1
;
--
echo
#
--
echo
# Cleanup
--
echo
#
DROP
TABLE
t1
;
--
rmdir
$MYSQL_TMP_DIR
/
alt_dir
/
test
--
rmdir
$MYSQL_TMP_DIR
/
alt_dir
mysql-test/suite/innodb/t/trx_id_future.test
0 → 100644
View file @
ef44ec4a
--
echo
#
--
echo
# Bug #20445525 ADD A CONSISTENCY CHECK AGAINST DB_TRX_ID BEING
--
echo
# IN THE FUTURE
--
echo
#
--
source
include
/
not_debug
.
inc
--
source
include
/
have_innodb
.
inc
--
source
include
/
not_embedded
.
inc
let
PAGE_SIZE
=
`select @@innodb_page_size`
;
CREATE
TABLE
t1
(
a
INT
)
row_format
=
redundant
engine
=
innoDB
;
INSERT
INTO
t1
VALUES
(
1
);
let
MYSQLD_DATADIR
=
`select @@datadir`
;
--
source
include
/
shutdown_mysqld
.
inc
perl
;
do
"
$ENV
{
MTR_SUITE_DIR
}
/include/crc32.pl"
;
my
$file
=
"
$ENV
{
MYSQLD_DATADIR
}
/test/t1.ibd"
;
open
(
FILE
,
"+<"
,
$file
)
||
die
"Unable to open
$file
"
;
binmode
FILE
;
#Seek the the infimum record and get the offset to next record
#Infimum record exist at offset 101 for redundant format
#And offset to the next record is present 2 bytes prior to
#infimum record
my
$ps
=
$ENV
{
PAGE_SIZE
};
my
$page
;
sysseek
(
FILE
,
3
*
$ps
,
0
)
||
die
"Unable to seek
$file
\n
"
;
die
"Unable to read
$file
"
unless
sysread
(
FILE
,
$page
,
$ps
)
==
$ps
;
#In this case the first record should be at offset 135
die
unless
unpack
(
"n"
,
substr
(
$page
,
99
,
2
))
==
135
;
substr
(
$page
,
135
+
6
,
6
)
=
"
\xff
"
x
6
;
my
$polynomial
=
0x82f63b78
;
# CRC-32C
my
$ck
=
pack
(
"N"
,
mycrc32
(
substr
(
$page
,
4
,
22
),
0
,
$polynomial
)
^
mycrc32
(
substr
(
$page
,
38
,
$ps
-
38
-
8
),
0
,
$polynomial
));
substr
(
$page
,
0
,
4
)
=
$ck
;
substr
(
$page
,
$ps
-
8
,
4
)
=
$ck
;
sysseek
(
FILE
,
3
*
$ps
,
0
)
||
die
"Unable to rewind
$file
\n
"
;
syswrite
(
FILE
,
$page
,
$ps
)
==
$ps
||
die
"Unable to write
$file
\n
"
;
close
(
FILE
)
||
die
"Unable to close
$file
"
;
EOF
--
source
include
/
start_mysqld
.
inc
let
SEARCH_FILE
=
$MYSQLTEST_VARDIR
/
log
/
mysqld
.
1.
err
;
let
SEARCH_PATTERN
=
\
[
Warning
\
]
InnoDB
:
A
transaction
id
in
a
record
of
table
`test`
\
.
`t1`
is
newer
than
the
system
-
wide
maximum
;
--
source
include
/
search_pattern_in_file
.
inc
call
mtr
.
add_suppression
(
"
\\
[Warning
\\
] InnoDB: A transaction id in a record of table `test`
\\
.`t1` is newer than the system-wide maximum"
);
SELECT
*
FROM
t1
;
DROP
TABLE
t1
;
mysql-test/suite/rpl/r/mdev_17588.result
0 → 100644
View file @
ef44ec4a
include/master-slave.inc
[connection master]
connection master;
create table t1 (a int) engine=innodb;
create table t2 (a int);
create table t3 (a int) engine=innodb;
include/save_master_gtid.inc
connection slave;
include/wait_for_slave_sql_error.inc [errno=1286]
Last_Error = 'Error 'Unknown storage engine 'innodb'' on query. Default database: 'test'. Query: 'create table t1 (a int) engine=innodb''
STOP SLAVE IO_THREAD;
include/wait_for_slave_to_stop.inc
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
include/start_slave.inc
include/sync_with_master_gtid.inc
show tables;
Tables_in_test
t2
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
`a` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show create table t1;
ERROR 42S02: Table 'test.t1' doesn't exist
show create table t3;
ERROR 42S02: Table 'test.t3' doesn't exist
connection master;
drop table if exists t1;
drop table if exists t2;
drop table if exists t3;
include/save_master_gtid.inc
connection slave;
include/sync_with_master_gtid.inc
CALL mtr.add_suppression('Slave: Unknown storage engine .* Error_code: 1286');
include/rpl_end.inc
mysql-test/suite/rpl/t/mdev_17588-slave.opt
0 → 100644
View file @
ef44ec4a
--loose-disable-innodb --replicate-ignore-table=test.t3
mysql-test/suite/rpl/t/mdev_17588.test
0 → 100644
View file @
ef44ec4a
--
source
include
/
master
-
slave
.
inc
--
source
include
/
have_innodb
.
inc
--
connection
master
create
table
t1
(
a
int
)
engine
=
innodb
;
create
table
t2
(
a
int
);
create
table
t3
(
a
int
)
engine
=
innodb
;
--
source
include
/
save_master_gtid
.
inc
--
connection
slave
# Using ER_UNKNOWN_STORAGE_ENGINE wont work
let
$slave_sql_errno
=
1286
;
--
source
include
/
wait_for_slave_sql_error
.
inc
--
let
$status_items
=
Last_Error
--
source
include
/
show_slave_status
.
inc
STOP
SLAVE
IO_THREAD
;
source
include
/
wait_for_slave_to_stop
.
inc
;
SET
GLOBAL
SQL_SLAVE_SKIP_COUNTER
=
1
;
--
source
include
/
start_slave
.
inc
--
source
include
/
sync_with_master_gtid
.
inc
show
tables
;
show
create
table
t2
;
--
error
ER_NO_SUCH_TABLE
show
create
table
t1
;
--
error
ER_NO_SUCH_TABLE
show
create
table
t3
;
--
connection
master
drop
table
if
exists
t1
;
drop
table
if
exists
t2
;
drop
table
if
exists
t3
;
--
source
include
/
save_master_gtid
.
inc
--
connection
slave
--
source
include
/
sync_with_master_gtid
.
inc
CALL
mtr
.
add_suppression
(
'Slave: Unknown storage engine .* Error_code: 1286'
);
--
source
include
/
rpl_end
.
inc
sql/log_event.cc
View file @
ef44ec4a
...
...
@@ -298,7 +298,7 @@ class Write_on_release_cache
public:
enum
flag
{
FLUSH_F
FLUSH_F
=
1
};
typedef
unsigned
short
flag_set
;
...
...
sql/table.cc
View file @
ef44ec4a
...
...
@@ -567,14 +567,14 @@ inline bool is_system_table_name(const char *name, size_t length)
SYNOPSIS
open_table_def()
thd Thread handler
thd
Thread handler
share Fill this with table definition
db_flags
Bit mask of the following flags: OPEN_VIEW
flags
Bit mask of the following flags: OPEN_VIEW
NOTES
This function is called when the table definition is not cached in
table definition cache
The data is returned in 'share', which is alloced by
The data is returned in 'share', which is alloc
at
ed by
alloc_table_share().. The code assumes that share is initialized.
*/
...
...
storage/connect/CMakeLists.txt
View file @
ef44ec4a
...
...
@@ -118,7 +118,6 @@ IF(CONNECT_WITH_LIBXML2)
FIND_PACKAGE
(
LibXml2
)
IF
(
LIBXML2_FOUND
)
INCLUDE_DIRECTORIES
(
${
LIBXML2_INCLUDE_DIR
}
)
SET
(
ZLIB_LIBRARY
"z"
)
# see ZLIB_INCLUDE_DIR below
SET
(
XML_LIBRARY
${
LIBXML2_LIBRARIES
}
)
SET
(
CONNECT_SOURCES
${
CONNECT_SOURCES
}
libdoc.cpp libdoc.h
)
add_definitions
(
-DLIBXML2_SUPPORT
)
...
...
@@ -337,14 +336,6 @@ IF(NOT TARGET connect)
RETURN
()
ENDIF
()
# Don't link with bundled zlib and systel libxml2 at the same time.
# System libxml2 uses system zlib, might conflict with the bundled one.
IF
(
XML_LIBRARY AND BUILD_BUNDLED_ZLIB
)
GET_PROPERTY
(
INCS TARGET connect PROPERTY INCLUDE_DIRECTORIES
)
LIST
(
REMOVE_ITEM INCS
${
ZLIB_INCLUDE_DIR
}
)
SET_PROPERTY
(
TARGET connect PROPERTY INCLUDE_DIRECTORIES
${
INCS
}
)
ENDIF
()
IF
(
WIN32
)
IF
(
libmongoc-1.0_FOUND
)
SET_TARGET_PROPERTIES
(
connect PROPERTIES LINK_FLAGS
...
...
storage/innobase/buf/buf0buf.cc
View file @
ef44ec4a
...
...
@@ -1109,26 +1109,26 @@ buf_page_is_corrupted(
the first page of each file of the system tablespace.
Ignore it for the system tablespace. */
if
(
!
checksum_field1
&&
!
checksum_field2
)
{
ulint
i
=
0
;
do
{
if
(
read_buf
[
i
])
{
return
true
;
}
}
while
(
++
i
<
FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION
);
/* Checksum fields can have valid value as zero.
If the page is not empty then do the checksum
calculation for the page. */
bool
all_zeroes
=
true
;
for
(
size_t
i
=
0
;
i
<
srv_page_size
;
i
++
)
{
#ifndef UNIV_INNOCHECKSUM
if
(
!
space
||
!
space
->
id
)
{
/* Skip FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION
in the system tablespace. */
i
+=
8
;
}
if
(
i
==
FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION
&&
(
!
space
||
!
space
->
id
))
{
i
+=
8
;
}
#endif
do
{
if
(
read_buf
[
i
])
{
return
true
;
all_zeroes
=
false
;
break
;
}
}
while
(
++
i
<
srv_page_size
);
return
false
;
}
if
(
all_zeroes
)
{
return
false
;
}
}
switch
(
curr_algo
)
{
...
...
storage/innobase/fil/fil0fil.cc
View file @
ef44ec4a
...
...
@@ -2923,9 +2923,15 @@ fil_rename_tablespace(
space
->
n_pending_ops
--
;
ut_ad
(
space
->
name
==
old_space_name
);
ut_ad
(
node
->
name
==
old_file_name
);
bool
success
=
os_file_rename
(
innodb_data_file_key
,
old_file_name
,
new_file_name
);
bool
success
;
DBUG_EXECUTE_IF
(
"fil_rename_tablespace_failure_2"
,
goto
skip_second_rename
;
);
success
=
os_file_rename
(
innodb_data_file_key
,
old_file_name
,
new_file_name
);
DBUG_EXECUTE_IF
(
"fil_rename_tablespace_failure_2"
,
skip_second_rename:
success
=
false
;
);
ut_ad
(
node
->
name
==
old_file_name
);
...
...
storage/innobase/row/row0merge.cc
View file @
ef44ec4a
...
...
@@ -2559,6 +2559,7 @@ row_merge_read_clustered_index(
BTR_SEARCH_LEAF
,
&
pcur
,
&
mtr
);
buf
=
row_merge_buf_empty
(
buf
);
merge_buf
[
i
]
=
buf
;
/* Restart the outer loop on the
record. We did not insert it
into any index yet. */
...
...
@@ -2684,6 +2685,7 @@ row_merge_read_clustered_index(
}
}
merge_buf
[
i
]
=
row_merge_buf_empty
(
buf
);
buf
=
merge_buf
[
i
];
if
(
UNIV_LIKELY
(
row
!=
NULL
))
{
/* Try writing the record again, now
...
...
storage/maria/ha_maria.cc
View file @
ef44ec4a
...
...
@@ -355,10 +355,12 @@ static PSI_file_info all_aria_files[]=
{
&
key_file_control
,
"control"
,
PSI_FLAG_GLOBAL
}
};
# ifdef HAVE_PSI_STAGE_INTERFACE
static
PSI_stage_info
*
all_aria_stages
[]
=
{
&
stage_waiting_for_a_resource
};
# endif
/* HAVE_PSI_STAGE_INTERFACE */
static
void
init_aria_psi_keys
(
void
)
{
...
...
@@ -379,9 +381,10 @@ static void init_aria_psi_keys(void)
count
=
array_elements
(
all_aria_files
);
mysql_file_register
(
category
,
all_aria_files
,
count
);
# ifdef HAVE_PSI_STAGE_INTERFACE
count
=
array_elements
(
all_aria_stages
);
mysql_stage_register
(
category
,
all_aria_stages
,
count
);
# endif
/* HAVE_PSI_STAGE_INTERFACE */
}
#else
#define init_aria_psi_keys()
/* no-op */
...
...
storage/rocksdb/mysql-test/rocksdb/r/unique_check.result
View file @
ef44ec4a
...
...
@@ -66,13 +66,14 @@ id id2 value
2 1 2
truncate table t2;
connection con1;
set debug_sync='rocksdb.update_write_row_after_unique_check SIGNAL parked1 WAIT_FOR go
1
';
set debug_sync='rocksdb.update_write_row_after_unique_check SIGNAL parked1 WAIT_FOR go';
insert into t1 values (1,1);
connection default;
set debug_sync='now WAIT_FOR parked1';
connection con2;
set debug_sync='rocksdb.update_write_row_after_unique_check SIGNAL parked2 WAIT_FOR go
2
';
set debug_sync='rocksdb.update_write_row_after_unique_check SIGNAL parked2 WAIT_FOR go';
insert into t2 values (1,1,1);
connection default;
set debug_sync='now WAIT_FOR parked1';
set debug_sync='now WAIT_FOR parked2';
connection con3;
set session rocksdb_lock_wait_timeout=1;
...
...
@@ -81,8 +82,7 @@ ERROR HY000: Lock wait timeout exceeded; try restarting transaction
insert into t2 values (2,1,2);
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
connection default;
set debug_sync='now SIGNAL go1';
set debug_sync='now SIGNAL go2';
set debug_sync='now SIGNAL go';
connection con1;
connection con2;
connection default;
...
...
storage/rocksdb/mysql-test/rocksdb/t/disabled.def
View file @
ef44ec4a
...
...
@@ -38,7 +38,7 @@ rocksdb_read_free_rpl_stress : Read-Free replication is not supported
blind_delete_rr : Read-Free replication is not supported
blind_delete_rc : Read-Free replication is not supported
shutdown: requires support for SHUTDOWN statement which calls exit().
force_
shutdown: requires support for SHUTDOWN statement which calls exit().
##
## Tests that do not fit MariaDB's test environment. Upstream seems to test
...
...
@@ -70,6 +70,8 @@ gap_lock_raise_error: MDEV-11735: MyRocks: Gap Lock detector support
show_engine : MariaRocks: MariaDB doesnt support SHOW ENGINE rocksdb TRANSACTION STATUS
issue243_transactionStatus: MariaDB doesnt support SHOW ENGINE rocksdb TRANSACTION STATUS
rpl_row_not_found : MariaDB doesnt support slave_exec_mode='SEMI_STRICT'
rpl_row_not_found_rc : MariaDB doesnt support slave_exec_mode='SEMI_STRICT'
ddl_high_priority: Needs fractional @@lock_wait_timeout
deadlock_tracking : Needs SHOW ENGINE ROCKSDB TRANSACTION STATUS
bytes_written: Needs I_S.TABLE_STATISTICS.IO_WRITE_BYTES
...
...
storage/rocksdb/mysql-test/rocksdb/t/tbl_opt_data_index_dir.test
View file @
ef44ec4a
...
...
@@ -20,11 +20,13 @@ DROP TABLE IF EXISTS t1;
--
replace_result
error
:
error
--
error
ER_CANT_CREATE_TABLE
CREATE
TABLE
t1
(
a
INT
PRIMARY
KEY
,
b
CHAR
(
8
))
ENGINE
=
rocksdb
DATA
DIRECTORY
=
'/foo/bar/data'
;
--
replace_result
error
:
error
show
warnings
;
--
replace_result
error
:
error
--
error
ER_CANT_CREATE_TABLE
CREATE
TABLE
t1
(
a
INT
PRIMARY
KEY
,
b
CHAR
(
8
))
ENGINE
=
rocksdb
INDEX
DIRECTORY
=
'/foo/bar/index'
;
--
replace_result
error
:
error
show
warnings
;
#
...
...
@@ -41,6 +43,7 @@ CREATE TABLE t1 (id INT NOT NULL PRIMARY KEY) ENGINE=rocksdb PARTITION BY RANGE
DATA
DIRECTORY
=
'/foo/bar/data/'
,
PARTITION
P2
VALUES
LESS
THAN
(
MAXVALUE
)
);
--
replace_result
error
:
error
show
warnings
;
--
replace_result
error
:
error
...
...
@@ -53,4 +56,5 @@ CREATE TABLE t1 (id int not null primary key) ENGINE=rocksdb PARTITION BY RANGE
INDEX
DIRECTORY
=
'/foo/bar/data/'
,
PARTITION
P2
VALUES
LESS
THAN
(
MAXVALUE
)
);
--
replace_result
error
:
error
show
warnings
;
storage/rocksdb/mysql-test/rocksdb/t/unique_check.test
View file @
ef44ec4a
...
...
@@ -102,15 +102,17 @@ truncate table t2;
# 4) simulating T1 GetForUpdate() -> T2 GetForUpdate(). T2 should fail with lock wait timeout.
connection
con1
;
set
debug_sync
=
'rocksdb.update_write_row_after_unique_check SIGNAL parked1 WAIT_FOR go
1
'
;
set
debug_sync
=
'rocksdb.update_write_row_after_unique_check SIGNAL parked1 WAIT_FOR go'
;
send
insert
into
t1
values
(
1
,
1
);
connection
default
;
set
debug_sync
=
'now WAIT_FOR parked1'
;
connection
con2
;
set
debug_sync
=
'rocksdb.update_write_row_after_unique_check SIGNAL parked2 WAIT_FOR go
2
'
;
set
debug_sync
=
'rocksdb.update_write_row_after_unique_check SIGNAL parked2 WAIT_FOR go'
;
send
insert
into
t2
values
(
1
,
1
,
1
);
connection
default
;
set
debug_sync
=
'now WAIT_FOR parked1'
;
set
debug_sync
=
'now WAIT_FOR parked2'
;
connection
con3
;
...
...
@@ -121,8 +123,7 @@ insert into t1 values (1,2);
insert
into
t2
values
(
2
,
1
,
2
);
connection
default
;
set
debug_sync
=
'now SIGNAL go1'
;
set
debug_sync
=
'now SIGNAL go2'
;
set
debug_sync
=
'now SIGNAL go'
;
connection
con1
;
reap
;
...
...
storage/rocksdb/mysql-test/rocksdb_rpl/t/disabled.def
View file @
ef44ec4a
...
...
@@ -11,6 +11,8 @@ rpl_gtid_rocksdb_sys_header : MariaDB doesn't support printing "RocksDB: Last My
singledelete_idempotent_recovery: MariaDB doesn't support --slave-use-idempotent-for-recovery
rpl_mts_dependency_unique_key_conflicts: MariaDB doesn't support --slave-use-idempotent-for-recovery
rpl_missing_columns_sk_update : Uses log_column_names=ON feature which is only present in FB/MySQL
optimize_myrocks_replace_into: requires @@enable_blind_replace support.
rpl_gtid_crash_safe_optimized: requires slave_gtid_info=optimized
##
## Tests that do not fit MariaDB's test environment (Functional tests only,
...
...
support-files/rpm/server-postin.sh
View file @
ef44ec4a
...
...
@@ -50,7 +50,7 @@ if [ $1 = 1 ] ; then
# Change permissions so that the user that will run the MySQL daemon
# owns all database files.
chown
-R
%
{
mysqld_user
}
:%
{
mysqld_group
}
$datadir
chown
-R
-f
%
{
mysqld_user
}
:%
{
mysqld_group
}
$datadir
if
[
!
-e
$datadir
/mysql
]
;
then
# Create data directory
...
...
zlib/CMakeLists.txt
View file @
ef44ec4a
...
...
@@ -124,6 +124,8 @@ string(REGEX REPLACE ".*#define[ \t]+ZLIB_VERSION[ \t]+\"([-0-9A-Za-z.]+)\".*"
ADD_CONVENIENCE_LIBRARY
(
zlib STATIC
${
ZLIB_SRCS
}
${
ZLIB_PUBLIC_HDRS
}
${
ZLIB_PRIVATE_HDRS
}
)
RESTRICT_SYMBOL_EXPORTS
(
zlib
)
if
(
NOT CYGWIN
)
# This property causes shared libraries on Linux to have the full version
...
...
@@ -142,7 +144,4 @@ if(CMAKE_SYSTEM_NAME MATCHES "SunOS")
elseif
(
UNIX
)
# On unix-like platforms the library is almost always called libz
set_target_properties
(
zlib PROPERTIES OUTPUT_NAME z
)
if
(
NOT APPLE
)
set_target_properties
(
zlib PROPERTIES LINK_FLAGS
"-Wl,--version-script,
\"
${
CMAKE_CURRENT_SOURCE_DIR
}
/zlib.map
\"
"
)
endif
()
endif
()
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