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
699de65d
Commit
699de65d
authored
Sep 17, 2021
by
Marko Mäkelä
Browse files
Options
Browse Files
Download
Plain Diff
Merge 10.4 into 10.5
parents
c430aa72
03a10706
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
140 additions
and
32 deletions
+140
-32
include/wsrep.h
include/wsrep.h
+0
-7
mysql-test/main/alias.result
mysql-test/main/alias.result
+6
-6
mysql-test/main/alias.test
mysql-test/main/alias.test
+1
-1
mysql-test/suite/galera/disabled.def
mysql-test/suite/galera/disabled.def
+0
-1
mysql-test/suite/galera/r/galera_fk_truncate.result
mysql-test/suite/galera/r/galera_fk_truncate.result
+47
-0
mysql-test/suite/galera/r/galera_ssl_upgrade.result
mysql-test/suite/galera/r/galera_ssl_upgrade.result
+3
-0
mysql-test/suite/galera/t/galera_fk_truncate.test
mysql-test/suite/galera/t/galera_fk_truncate.test
+39
-0
mysql-test/suite/innodb/r/instant_alter_import.result
mysql-test/suite/innodb/r/instant_alter_import.result
+8
-0
mysql-test/suite/innodb/t/instant_alter_import.test
mysql-test/suite/innodb/t/instant_alter_import.test
+19
-0
sql/sql_admin.cc
sql/sql_admin.cc
+8
-7
sql/sql_truncate.cc
sql/sql_truncate.cc
+5
-7
sql/wsrep_mysqld.cc
sql/wsrep_mysqld.cc
+3
-2
storage/innobase/include/dict0mem.h
storage/innobase/include/dict0mem.h
+1
-1
No files found.
include/wsrep.h
View file @
699de65d
...
@@ -25,8 +25,6 @@
...
@@ -25,8 +25,6 @@
#define DBUG_ASSERT_IF_WSREP(A) DBUG_ASSERT(A)
#define DBUG_ASSERT_IF_WSREP(A) DBUG_ASSERT(A)
#define WSREP_MYSQL_DB (char *)"mysql"
#define WSREP_MYSQL_DB (char *)"mysql"
#define WSREP_TO_ISOLATION_BEGIN_IF(db_, table_, table_list_) \
if (WSREP_ON && WSREP(thd) && wsrep_to_isolation_begin(thd, db_, table_, table_list_))
#define WSREP_TO_ISOLATION_BEGIN(db_, table_, table_list_) \
#define WSREP_TO_ISOLATION_BEGIN(db_, table_, table_list_) \
if (WSREP_ON && WSREP(thd) && wsrep_to_isolation_begin(thd, db_, table_, table_list_)) \
if (WSREP_ON && WSREP(thd) && wsrep_to_isolation_begin(thd, db_, table_, table_list_)) \
...
@@ -58,10 +56,6 @@
...
@@ -58,10 +56,6 @@
if (WSREP(thd) && !thd->lex->no_write_to_binlog \
if (WSREP(thd) && !thd->lex->no_write_to_binlog \
&& wsrep_to_isolation_begin(thd, db_, table_, table_list_)) goto wsrep_error_label;
&& wsrep_to_isolation_begin(thd, db_, table_, table_list_)) goto wsrep_error_label;
#define WSREP_TO_ISOLATION_BEGIN_FK_TABLES(db_, table_, table_list_, fk_tables) \
if (WSREP(thd) && !thd->lex->no_write_to_binlog \
&& wsrep_to_isolation_begin(thd, db_, table_, table_list_, NULL, fk_tables))
#define WSREP_SYNC_WAIT(thd_, before_) \
#define WSREP_SYNC_WAIT(thd_, before_) \
{ if (WSREP_CLIENT(thd_) && \
{ if (WSREP_CLIENT(thd_) && \
wsrep_sync_wait(thd_, before_)) goto wsrep_error_label; }
wsrep_sync_wait(thd_, before_)) goto wsrep_error_label; }
...
@@ -76,7 +70,6 @@
...
@@ -76,7 +70,6 @@
#define WSREP_ERROR(...)
#define WSREP_ERROR(...)
#define WSREP_TO_ISOLATION_BEGIN(db_, table_, table_list_) do { } while(0)
#define WSREP_TO_ISOLATION_BEGIN(db_, table_, table_list_) do { } while(0)
#define WSREP_TO_ISOLATION_BEGIN_ALTER(db_, table_, table_list_, alter_info_, fk_tables_, create_info_)
#define WSREP_TO_ISOLATION_BEGIN_ALTER(db_, table_, table_list_, alter_info_, fk_tables_, create_info_)
#define WSREP_TO_ISOLATION_BEGIN_FK_TABLES(db_, table_, table_list_, fk_tables_)
#define WSREP_TO_ISOLATION_END
#define WSREP_TO_ISOLATION_END
#define WSREP_TO_ISOLATION_BEGIN_CREATE(db_, table_, table_list_, create_info_)
#define WSREP_TO_ISOLATION_BEGIN_CREATE(db_, table_, table_list_, create_info_)
#define WSREP_TO_ISOLATION_BEGIN_WRTCHK(db_, table_, table_list_)
#define WSREP_TO_ISOLATION_BEGIN_WRTCHK(db_, table_, table_list_)
...
...
mysql-test/main/alias.result
View file @
699de65d
...
@@ -223,16 +223,16 @@ disconnect c1;
...
@@ -223,16 +223,16 @@ disconnect c1;
#
#
create or replace table t1 (a int);
create or replace table t1 (a int);
create or replace table t2 (b int);
create or replace table t2 (b int);
insert into t1 values(1
),(2
);
insert into t1 values(1
<<30),(1<<29
);
insert into t2 values(1),(2);
insert into t2 values(1),(2);
select t1.a as a1 from t1 as t1,t2 order by t2.b,t1.a;
select t1.a as a1 from t1 as t1,t2 order by t2.b,t1.a;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def test t1 t1 a a1 3 11 1 Y 32768 0 63
def test t1 t1 a a1 3 11 1
0
Y 32768 0 63
a1
a1
1
536870912
2
1073741824
1
536870912
2
1073741824
drop table t1,t2;
drop table t1,t2;
#
#
# End of 10.4 tests
# End of 10.4 tests
...
...
mysql-test/main/alias.test
View file @
699de65d
...
@@ -231,7 +231,7 @@ disconnect c1;
...
@@ -231,7 +231,7 @@ disconnect c1;
--
echo
#
--
echo
#
create
or
replace
table
t1
(
a
int
);
create
or
replace
table
t1
(
a
int
);
create
or
replace
table
t2
(
b
int
);
create
or
replace
table
t2
(
b
int
);
insert
into
t1
values
(
1
),(
2
);
insert
into
t1
values
(
1
<<
30
),(
1
<<
29
);
insert
into
t2
values
(
1
),(
2
);
insert
into
t2
values
(
1
),(
2
);
--
enable_metadata
--
enable_metadata
select
t1
.
a
as
a1
from
t1
as
t1
,
t2
order
by
t2
.
b
,
t1
.
a
;
select
t1
.
a
as
a1
from
t1
as
t1
,
t2
order
by
t2
.
b
,
t1
.
a
;
...
...
mysql-test/suite/galera/disabled.def
View file @
699de65d
...
@@ -32,7 +32,6 @@ galera_parallel_simple : MDEV-20318 galera.galera_parallel_simple fails
...
@@ -32,7 +32,6 @@ galera_parallel_simple : MDEV-20318 galera.galera_parallel_simple fails
galera_pc_ignore_sb : MDEV-20888 galera.galera_pc_ignore_sb
galera_pc_ignore_sb : MDEV-20888 galera.galera_pc_ignore_sb
galera_pc_recovery : MDEV-25199 cluster fails to start up
galera_pc_recovery : MDEV-25199 cluster fails to start up
galera_shutdown_nonprim : MDEV-21493 galera.galera_shutdown_nonprim
galera_shutdown_nonprim : MDEV-21493 galera.galera_shutdown_nonprim
galera_ssl_upgrade : MDEV-19950 Galera test failure on galera_ssl_upgrade
galera_toi_ddl_nonconflicting : MDEV-21518 galera.galera_toi_ddl_nonconflicting
galera_toi_ddl_nonconflicting : MDEV-21518 galera.galera_toi_ddl_nonconflicting
galera_toi_truncate : MDEV-22996 Hang on galera_toi_truncate test case
galera_toi_truncate : MDEV-22996 Hang on galera_toi_truncate test case
galera_trigger : MDEV-24048 galera.galera_trigger MTR fails: Result content mismatch
galera_trigger : MDEV-24048 galera.galera_trigger MTR fails: Result content mismatch
...
...
mysql-test/suite/galera/r/galera_fk_truncate.result
0 → 100644
View file @
699de65d
connection node_2;
connection node_1;
CREATE TABLE author (
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL
) ENGINE = InnoDB;
CREATE TABLE book (
id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(200) NOT NULL,
author_id SMALLINT UNSIGNED NOT NULL,
CONSTRAINT `fk_book_author`
FOREIGN KEY (author_id) REFERENCES author (id)
ON DELETE CASCADE
ON UPDATE RESTRICT
) ENGINE = InnoDB;
INSERT INTO author (name) VALUES ('Abdul Alhazred');
INSERT INTO book (title, author_id) VALUES ('Necronomicon', LAST_INSERT_ID());
TRUNCATE TABLE book;
SELECT * FROM author;
id name
1 Abdul Alhazred
SELECT * FROM book;
id title author_id
connection node_2;
SELECT * FROM author;
id name
1 Abdul Alhazred
SELECT * FROM book;
id title author_id
INSERT INTO author (name) VALUES ('Abdul Alhazred');
INSERT INTO book (title, author_id) VALUES ('Necronomicon', LAST_INSERT_ID());
TRUNCATE TABLE book;
SELECT * FROM author;
id name
1 Abdul Alhazred
2 Abdul Alhazred
SELECT * FROM book;
id title author_id
connection node_1;
TRUNCATE TABLE book;
SELECT * FROM author;
id name
1 Abdul Alhazred
2 Abdul Alhazred
SELECT * FROM book;
id title author_id
DROP TABLE book, author;
mysql-test/suite/galera/r/galera_ssl_upgrade.result
View file @
699de65d
connection node_2;
connection node_1;
connection node_1;
connection node_1;
call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*");
call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*");
connection node_2;
connection node_2;
...
@@ -24,5 +26,6 @@ connection node_1;
...
@@ -24,5 +26,6 @@ connection node_1;
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
VARIABLE_VALUE = 2
VARIABLE_VALUE = 2
1
1
connection node_2;
disconnect node_2;
disconnect node_2;
disconnect node_1;
disconnect node_1;
mysql-test/suite/galera/t/galera_fk_truncate.test
0 → 100644
View file @
699de65d
--
source
include
/
galera_cluster
.
inc
CREATE
TABLE
author
(
id
SMALLINT
UNSIGNED
NOT
NULL
AUTO_INCREMENT
PRIMARY
KEY
,
name
VARCHAR
(
100
)
NOT
NULL
)
ENGINE
=
InnoDB
;
CREATE
TABLE
book
(
id
MEDIUMINT
UNSIGNED
NOT
NULL
AUTO_INCREMENT
PRIMARY
KEY
,
title
VARCHAR
(
200
)
NOT
NULL
,
author_id
SMALLINT
UNSIGNED
NOT
NULL
,
CONSTRAINT
`fk_book_author`
FOREIGN
KEY
(
author_id
)
REFERENCES
author
(
id
)
ON
DELETE
CASCADE
ON
UPDATE
RESTRICT
)
ENGINE
=
InnoDB
;
INSERT
INTO
author
(
name
)
VALUES
(
'Abdul Alhazred'
);
INSERT
INTO
book
(
title
,
author_id
)
VALUES
(
'Necronomicon'
,
LAST_INSERT_ID
());
TRUNCATE
TABLE
book
;
SELECT
*
FROM
author
;
SELECT
*
FROM
book
;
--
connection
node_2
SELECT
*
FROM
author
;
SELECT
*
FROM
book
;
INSERT
INTO
author
(
name
)
VALUES
(
'Abdul Alhazred'
);
INSERT
INTO
book
(
title
,
author_id
)
VALUES
(
'Necronomicon'
,
LAST_INSERT_ID
());
TRUNCATE
TABLE
book
;
SELECT
*
FROM
author
;
SELECT
*
FROM
book
;
--
connection
node_1
TRUNCATE
TABLE
book
;
SELECT
*
FROM
author
;
SELECT
*
FROM
book
;
DROP
TABLE
book
,
author
;
mysql-test/suite/innodb/r/instant_alter_import.result
View file @
699de65d
...
@@ -70,3 +70,11 @@ select * from t1;
...
@@ -70,3 +70,11 @@ select * from t1;
ERROR HY000: Tablespace has been discarded for table `t1`
ERROR HY000: Tablespace has been discarded for table `t1`
drop table t2;
drop table t2;
drop table t1;
drop table t1;
CREATE TABLE t1 (id INT PRIMARY KEY AUTO_INCREMENT, i1 INT) ENGINE=INNODB;
CREATE TABLE t2 (id INT PRIMARY KEY AUTO_INCREMENT, i1 INT, i2 INT) ENGINE=INNODB;
ALTER TABLE t2 DROP COLUMN i2, ALGORITHM=INSTANT;
ALTER TABLE t2 DISCARD TABLESPACE;
FLUSH TABLE t1 FOR EXPORT;
UNLOCK TABLES;
ALTER TABLE t2 IMPORT TABLESPACE;
DROP TABLE t2, t1;
mysql-test/suite/innodb/t/instant_alter_import.test
View file @
699de65d
...
@@ -82,3 +82,22 @@ select * from t1;
...
@@ -82,3 +82,22 @@ select * from t1;
drop
table
t2
;
drop
table
t2
;
drop
table
t1
;
drop
table
t1
;
--
let
$MYSQLD_DATADIR
=
`SELECT @@datadir`
CREATE
TABLE
t1
(
id
INT
PRIMARY
KEY
AUTO_INCREMENT
,
i1
INT
)
ENGINE
=
INNODB
;
CREATE
TABLE
t2
(
id
INT
PRIMARY
KEY
AUTO_INCREMENT
,
i1
INT
,
i2
INT
)
ENGINE
=
INNODB
;
ALTER
TABLE
t2
DROP
COLUMN
i2
,
ALGORITHM
=
INSTANT
;
ALTER
TABLE
t2
DISCARD
TABLESPACE
;
FLUSH
TABLE
t1
FOR
EXPORT
;
--
copy_file
$MYSQLD_DATADIR
/
test
/
t1
.
ibd
$MYSQLD_DATADIR
/
test
/
t2
.
ibd
--
copy_file
$MYSQLD_DATADIR
/
test
/
t1
.
cfg
$MYSQLD_DATADIR
/
test
/
t2
.
cfg
UNLOCK
TABLES
;
ALTER
TABLE
t2
IMPORT
TABLESPACE
;
DROP
TABLE
t2
,
t1
;
sql/sql_admin.cc
View file @
699de65d
...
@@ -462,16 +462,17 @@ static bool wsrep_toi_replication(THD *thd, TABLE_LIST *tables)
...
@@ -462,16 +462,17 @@ static bool wsrep_toi_replication(THD *thd, TABLE_LIST *tables)
/* now TOI replication, with no locks held */
/* now TOI replication, with no locks held */
if
(
keys
.
empty
())
if
(
keys
.
empty
())
{
{
WSREP_TO_ISOLATION_BEGIN_WRTCHK
(
NULL
,
NULL
,
tables
);
if
(
!
thd
->
lex
->
no_write_to_binlog
&&
}
else
{
wsrep_to_isolation_begin
(
thd
,
NULL
,
NULL
,
tables
))
WSREP_TO_ISOLATION_BEGIN_FK_TABLES
(
NULL
,
NULL
,
tables
,
&
keys
)
{
return
true
;
}
else
{
if
(
!
thd
->
lex
->
no_write_to_binlog
&&
wsrep_to_isolation_begin
(
thd
,
NULL
,
NULL
,
tables
,
NULL
,
&
keys
))
return
true
;
return
true
;
}
}
}
return
false
;
return
false
;
wsrep_error_label:
return
true
;
}
}
#endif
/* WITH_WSREP */
#endif
/* WITH_WSREP */
...
...
sql/sql_truncate.cc
View file @
699de65d
...
@@ -435,15 +435,13 @@ bool Sql_cmd_truncate_table::truncate_table(THD *thd, TABLE_LIST *table_ref)
...
@@ -435,15 +435,13 @@ bool Sql_cmd_truncate_table::truncate_table(THD *thd, TABLE_LIST *table_ref)
{
{
if
(
keys
.
empty
())
if
(
keys
.
empty
())
{
{
WSREP_TO_ISOLATION_BEGIN_IF
(
table_ref
->
db
.
str
,
table_ref
->
table_name
.
str
,
NULL
)
if
(
wsrep_to_isolation_begin
(
thd
,
table_ref
->
db
.
str
,
table_ref
->
table_name
.
str
,
NULL
))
{
DBUG_RETURN
(
TRUE
);
DBUG_RETURN
(
TRUE
);
}
}
}
else
{
else
WSREP_TO_ISOLATION_BEGIN_FK_TABLES
(
NULL
,
NULL
,
table_ref
,
&
keys
)
{
{
if
(
wsrep_to_isolation_begin
(
thd
,
NULL
,
NULL
,
table_ref
,
NULL
,
&
keys
))
DBUG_RETURN
(
TRUE
);
DBUG_RETURN
(
TRUE
);
}
}
}
}
}
}
}
...
...
sql/wsrep_mysqld.cc
View file @
699de65d
...
@@ -2389,8 +2389,9 @@ int wsrep_to_isolation_begin(THD *thd, const char *db_, const char *table_,
...
@@ -2389,8 +2389,9 @@ int wsrep_to_isolation_begin(THD *thd, const char *db_, const char *table_,
{
{
/*
/*
No isolation for applier or replaying threads.
No isolation for applier or replaying threads.
*/
*/
if
(
!
wsrep_thd_is_local
(
thd
))
return
0
;
if
(
!
wsrep_thd_is_local
(
thd
))
return
0
;
int
ret
=
0
;
int
ret
=
0
;
mysql_mutex_lock
(
&
thd
->
LOCK_thd_data
);
mysql_mutex_lock
(
&
thd
->
LOCK_thd_data
);
...
...
storage/innobase/include/dict0mem.h
View file @
699de65d
...
@@ -2454,7 +2454,7 @@ inline void dict_index_t::clear_instant_alter()
...
@@ -2454,7 +2454,7 @@ inline void dict_index_t::clear_instant_alter()
{
return
a
.
col
->
ind
<
b
.
col
->
ind
;
});
{
return
a
.
col
->
ind
<
b
.
col
->
ind
;
});
table
->
instant
=
NULL
;
table
->
instant
=
NULL
;
if
(
ai_col
)
{
if
(
ai_col
)
{
auto
a
=
std
::
find_if
(
begin
,
end
,
auto
a
=
std
::
find_if
(
fields
,
end
,
[
ai_col
](
const
dict_field_t
&
f
)
[
ai_col
](
const
dict_field_t
&
f
)
{
return
f
.
col
==
ai_col
;
});
{
return
f
.
col
==
ai_col
;
});
table
->
persistent_autoinc
=
(
a
==
end
)
table
->
persistent_autoinc
=
(
a
==
end
)
...
...
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