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

Virtual Columns are always NULL is Triggers

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • 10.0.0, 5.5.28, 5.3.8, 5.2.12
    • 10.0.1, 5.5.28a, 5.3.10, 5.2.13
    • None
    • None

    Description

      Virtual columns are always NULL in Triggers. I beilive this is a bug, because documentation says:
      "Triggers, stored procedures, informational commands (...), and partitioning based on virtual columns are all fully supported."

      Example:

      DROP VIEW   IF EXISTS  `t1`;
      DROP TABLE  IF EXISTS  `t1`;
      CREATE TABLE `t1` (
      	`a`      INTEGER UNSIGNED  NULL  DEFAULT NULL,
      	`b`      INTEGER UNSIGNED  GENERATED ALWAYS AS (`a`) VIRTUAL
      )
      	ENGINE      = MyISAM;
      DROP VIEW   IF EXISTS  `t2`;
      DROP TABLE  IF EXISTS  `t2`;
      CREATE TABLE `t2` (
      	`c1`      INTEGER UNSIGNED  NOT NULL
      )
      	ENGINE      = MyISAM;
       
       
      DELIMITER ||
       
      CREATE TRIGGER `t1_ins_aft`
      	AFTER INSERT
      	ON `t1`
      	FOR EACH ROW
      BEGIN
      	INSERT INTO `t2` (`c1`) VALUES (NEW.`b`);
      END ||
       
      CREATE TRIGGER `t1_del_bef`
      	BEFORE DELETE
      	ON `t1`
      	FOR EACH ROW
      BEGIN
      	INSERT INTO `t2` (`c1`) VALUES (OLD.`b`);
      END ||
       
      DELIMITER ;

      – Then I try those:

      INSERT INTO `t1` (`a`) VALUES (1), (2), (3);
      DELETE FROM t1;

      It looks that b is treated as NULL.

      Attachments

        Activity

          People

            igor Igor Babaev
            f_razzoli Federico Razzoli
            Votes:
            0 Vote for this issue
            Watchers:
            5 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.