mariadb/mysql-test/suite/galera/t/galera_table_with_hyphen.inc
sjaakola 2fcf2ec229 MDEV-33749 hyphen in table name can cause galera certification failures
Fix in this commit handles foreign key value appending into write set
so that db and table names are converted from the filepath format
to tablename format. This is compatible with key values appended from
elsewhere in the code base

There is a mtr test galera.galera_table_with_hyphen for regression testing

Reviewer: monty@mariadb.com
2024-04-04 17:12:09 +03:00

48 lines
1.5 KiB
SQL

#
# parameters:
# $fk_child - child table name
# $fk_parent - parent table name
#
--connection node_1
SET GLOBAL wsrep_slave_threads=2;
--eval CREATE TABLE `$fk_parent` ( id INT AUTO_INCREMENT PRIMARY KEY, j INT) ENGINE=InnoDB
--eval CREATE TABLE `$fk_child` (id INT AUTO_INCREMENT PRIMARY KEY, parent_id INT, j INT, FOREIGN KEY (parent_id) REFERENCES `$fk_parent`(id)) ENGINE=InnoDB
--eval INSERT INTO `$fk_parent` VALUES (23,0)
--connection node_2
--let $wait_condition = SELECT COUNT(*) = 1 FROM `$fk_parent`;
--source include/wait_condition.inc
--connection node_1a
SET GLOBAL DEBUG_DBUG='+d,wsrep_ha_write_row';
--connection node_2
--eval INSERT INTO `$fk_child` VALUES (21,23,0),(22,23,0),(23,23,0)
--connection node_1a
SET DEBUG_SYNC='now WAIT_FOR wsrep_ha_write_row_reached';
--let $wsrep_received_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_received'`
--connection node_2
--eval UPDATE `$fk_parent` SET j=2 WHERE id=23
--connection node_1a
--let $wait_condition = SELECT VARIABLE_VALUE = $wsrep_received_before + 1 FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_received'
--source include/wait_condition.inc
SET GLOBAL DEBUG_DBUG='-d,wsrep_ha_write_row';
SET DEBUG_SYNC='now SIGNAL wsrep_ha_write_row_continue';
SET GLOBAL DEBUG_DBUG="RESET";
SET DEBUG_SYNC = 'RESET';
SET GLOBAL wsrep_slave_threads=DEFAULT;
--connection node_2
--eval drop table `$fk_child`
--eval drop table `$fk_parent`