Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-36262

INSERT ... SELECT fails with BEFORE INSERT trigger in MariaDB 10.5.28 (NULL values for foreign-key fields)

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

          Activity

            Transition Time In Source Status Execution Times
            Sergei Golubchik made transition -
            Open Closed
            17h 59m 1

            People

              serg Sergei Golubchik
              cefaclor Patrick Burghard
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.