File: MDEV-27276.test

package info (click to toggle)
mariadb-10.5 1%3A10.5.23-0%2Bdeb11u1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 712,240 kB
  • sloc: ansic: 2,158,658; cpp: 1,843,101; asm: 297,745; perl: 59,967; sh: 53,869; pascal: 38,348; java: 33,919; yacc: 19,639; python: 11,119; xml: 10,126; sql: 10,027; ruby: 8,544; makefile: 6,343; cs: 2,866; lex: 1,205; javascript: 1,037; objc: 80; tcl: 73; awk: 46; php: 22; sed: 16
file content (44 lines) | stat: -rw-r--r-- 1,383 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
--source include/galera_cluster.inc
--source include/have_innodb.inc
--source include/have_debug_sync.inc
--source include/galera_have_debug_sync.inc

#
# Testing CREATE TABLE statement having foreign key constraint,
# while having concurrent DML for the referenced parent table.
#
# The replication of CREATE TABLE should have all referenced table names
# appended in the key set, and DML on the parent table should be considered as
# conflicting.
# 
# There are related test scenarios in test mysql-wsrep#332, where a regular table
# is altered by adding new foreign key reference.
#
# We use concurrency facility of test MW-369 to setup the conflict between DDL and DML
#

# Open connection node_1a here, MW-369.inc will use it later
--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1

# create FK parent table
--connection node_1
CREATE TABLE p (id INTEGER PRIMARY KEY, f2 INTEGER) ENGINE=INNODB;

# setup conflicting queries
--let $mw_369_parent_query = INSERT INTO p VALUES(1,0)
--let $mw_369_child_query = CREATE TABLE c(id INT NOT NULL PRIMARY KEY, p_id INT,  FOREIGN KEY (p_id)  REFERENCES p(id)  ON DELETE CASCADE) ENGINE=InnoDB

# execute above queries through separate nodes
--source MW-369.inc

# Expect certification failure
--connection node_1
--error ER_LOCK_DEADLOCK
--reap

--connection node_2
SELECT * FROM p;
SELECT * FROM c;

DROP TABLE c;
DROP TABLE p;