Details
Description
In MariaDB 10.5.28, INNODB, when executing an INSERT ... SELECT statement on a table that has a BEFORE INSERT trigger, certain (foreign key) column values are unexpectedly set to NULL. This issue does not occur in MariaDB 10.5.27 or earlier versions, making it a potential regression.
Easy to reproduce:
CREATE TABLE vendor ( |
id INT PRIMARY KEY AUTO_INCREMENT |
);
|
INSERT INTO vendor (id) VALUES (1), (2), (3); |
|
CREATE TABLE customer_X ( |
id INT PRIMARY KEY AUTO_INCREMENT, |
vendor_id INT NOT NULL, |
is_active BOOLEAN
|
);
|
ALTER TABLE `customer_X` |
ADD CONSTRAINT `customer_X_ibfk_1` FOREIGN KEY (`vendor_id`) REFERENCES `vendor` (`id`); |
CREATE TABLE customer_base ( |
id INT PRIMARY KEY AUTO_INCREMENT, |
vendor_id INT NOT NULL, |
is_active BOOLEAN
|
);
|
ALTER TABLE `customer_base` |
ADD CONSTRAINT `customer_base_ibfk_1` FOREIGN KEY (`vendor_id`) REFERENCES `vendor` (`id`); |
|
INSERT INTO customer_X (vendor_id, is_active) VALUES (1, 1), (2, 0), (3, 1); |
|
CREATE TRIGGER cbbi |
BEFORE INSERT ON customer_base |
FOR EACH ROW |
BEGIN
|
IF FALSE THEN SET @x = 1; END IF; |
END; |
|
INSERT INTO customer_base (id, vendor_id, is_active) (SELECT id, vendor_id, is_active FROM customer_X); |
Attachments
Issue Links
- duplicates
-
MDEV-36026 Problem with INSERT SELECT on NOT NULL columns while having BEFORE UPDATE trigger
-
- Closed
-
Activity
Transition | Time In Source Status | Execution Times |
---|
|
17h 59m | 1 |