Details

    Description

      Many triggers for the same event per table (e.g. many BEFORE DELETE triggerts).
      This can be ported from 5.7

      Looked at the MySQL 5.7 implementation. Too complex and too many not needed changed and moving of things to different files that make it very hard to follow code changes over time.

      Will do this with new code, but will take test cases from MySQL 5.7

      New functionality:

      • "Any" amount of same events
      • New syntax with { FOLLOWS | PRECEDES } trigger_name

        CREATE [OR REPLACE]
        [DEFINER = { user | CURRENT_USER }]
        TRIGGER [IF NOT EXISTS] trigger_name trigger_time trigger_event
        ON tbl_name FOR EACH ROW
        [{ FOLLOWS | PRECEDES }

        other_trigger_name ]
        trigger_stmt

      Attachments

        Issue Links

          Activity

            serg Sergei Golubchik created issue -
            serg Sergei Golubchik made changes -
            Field Original Value New Value
            Description this can be ported form 5.7 Many triggers for the same event per table (e.g. many BEFORE DELETE triggerts).
            This can be ported form 5.7
            serg Sergei Golubchik made changes -
            Description Many triggers for the same event per table (e.g. many BEFORE DELETE triggerts).
            This can be ported form 5.7
            Many triggers for the same event per table (e.g. many BEFORE DELETE triggerts).
            This can be ported from 5.7
            serg Sergei Golubchik made changes -
            Assignee Sergei Golubchik [ serg ]
            dbart Daniel Bartholomew made changes -
            Priority Critical [ 2 ] Major [ 3 ]
            dbart Daniel Bartholomew made changes -
            Fix Version/s 10.1.1 [ 16100 ]
            Fix Version/s 10.1.0 [ 12200 ]
            serg Sergei Golubchik made changes -
            Workflow defaullt [ 38928 ] MariaDB v2 [ 42494 ]
            ratzpo Rasmus Johansson (Inactive) made changes -
            Workflow MariaDB v2 [ 42494 ] MariaDB v3 [ 61457 ]
            serg Sergei Golubchik made changes -
            Fix Version/s 10.2 [ 14601 ]
            Fix Version/s 10.1 [ 16100 ]
            serg Sergei Golubchik made changes -
            Fix Version/s 10.2 [ 14601 ]
            monty Michael Widenius made changes -
            alvinr Alvin Richards (Inactive) made changes -
            Labels Compatibility
            alvinr Alvin Richards (Inactive) made changes -
            Sprint 10.2.2-2 [ 92 ]
            alvinr Alvin Richards (Inactive) made changes -
            Rank Ranked lower
            alvinr Alvin Richards (Inactive) made changes -
            Sprint 10.2.2-2 [ 92 ] 10.2.2-3, 10.2.2-2 [ 83, 92 ]
            alvinr Alvin Richards (Inactive) made changes -
            Sprint 10.2.2-3, 10.2.2-2 [ 83, 92 ] 10.2.2-3, 10.2.2-2, 10.2.2-4 [ 83, 92, 96 ]
            monty Michael Widenius made changes -
            Assignee Sergei Golubchik [ serg ] Michael Widenius [ monty ]
            monty Michael Widenius made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            monty Michael Widenius made changes -
            Description Many triggers for the same event per table (e.g. many BEFORE DELETE triggerts).
            This can be ported from 5.7
            Many triggers for the same event per table (e.g. many BEFORE DELETE triggerts).
            This can be ported from 5.7

            monty Michael Widenius made changes -
            Description Many triggers for the same event per table (e.g. many BEFORE DELETE triggerts).
            This can be ported from 5.7

            Many triggers for the same event per table (e.g. many BEFORE DELETE triggerts).
            This can be ported from 5.7

            Looked at the MySQL 5.7 implementation. Too complex and too many not needed changed and moving of things to different files that make it very hard to follow code changes over time.

            Will do this with new code, but will take test cases from MySQL 5.7

            Can this be disabled? Multiple triggers of the same type can be useful, but can also be chaotic and hard to debug...

            f_razzoli Federico Razzoli added a comment - Can this be disabled? Multiple triggers of the same type can be useful, but can also be chaotic and hard to debug...
            alvinr Alvin Richards (Inactive) made changes -
            Epic Link MDEV-10872 [ 58182 ]

            ready for review and testing

            monty Michael Widenius added a comment - ready for review and testing
            monty Michael Widenius made changes -
            Status In Progress [ 3 ] In Review [ 10002 ]

            As it's completely optional to add a trigger for table, I don't see any reason to disable this.
            We already have way too many startup options for MariaDB.
            If one doesn't think a person is capable of using TRIGGER's, then one shouldn't give him the TRIGGER privilege.

            monty Michael Widenius added a comment - As it's completely optional to add a trigger for table, I don't see any reason to disable this. We already have way too many startup options for MariaDB. If one doesn't think a person is capable of using TRIGGER's, then one shouldn't give him the TRIGGER privilege.
            monty Michael Widenius made changes -
            Description Many triggers for the same event per table (e.g. many BEFORE DELETE triggerts).
            This can be ported from 5.7

            Looked at the MySQL 5.7 implementation. Too complex and too many not needed changed and moving of things to different files that make it very hard to follow code changes over time.

            Will do this with new code, but will take test cases from MySQL 5.7
            Many triggers for the same event per table (e.g. many BEFORE DELETE triggerts).
            This can be ported from 5.7

            Looked at the MySQL 5.7 implementation. Too complex and too many not needed changed and moving of things to different files that make it very hard to follow code changes over time.

            Will do this with new code, but will take test cases from MySQL 5.7

            New functionality:
            - "Any" amount of same events
            - New syntax with { FOLLOWS | PRECEDES } trigger_name

            CREATE [OR REPLACE]
                [DEFINER = { user | CURRENT_USER }]
                TRIGGER [IF NOT EXISTS] trigger_name trigger_time trigger_event
                ON tbl_name FOR EACH ROW
                [{ FOLLOWS | PRECEDES } other_trigger_name ]
                trigger_stmt

            Almost every feature can be limited in some way, the strangest example is sql_safe_updates.
            But I realized that my proposal would add an incompatibility with MySQL, so it isn't a good idea.

            f_razzoli Federico Razzoli added a comment - Almost every feature can be limited in some way, the strangest example is sql_safe_updates. But I realized that my proposal would add an incompatibility with MySQL, so it isn't a good idea.
            elenst Elena Stepanova made changes -
            elenst Elena Stepanova made changes -

            Another reason for not adding an option for this is that multiple triggers per table is standard ANSI SQL feature.

            Optionally disabling all features in SQL that may be problematic for some users is task independent of this one. For example, I think a lot of people would find it useful if DROP TABLE was disabled after they have dropped an important table

            monty Michael Widenius added a comment - Another reason for not adding an option for this is that multiple triggers per table is standard ANSI SQL feature. Optionally disabling all features in SQL that may be problematic for some users is task independent of this one. For example, I think a lot of people would find it useful if DROP TABLE was disabled after they have dropped an important table
            elenst Elena Stepanova made changes -
            elenst Elena Stepanova made changes -
            elenst Elena Stepanova made changes -
            elenst Elena Stepanova made changes -

            Feature pushed into 10.2

            monty Michael Widenius added a comment - Feature pushed into 10.2
            monty Michael Widenius made changes -
            Component/s Triggers [ 10109 ]
            Fix Version/s 10.2.3 [ 22115 ]
            Resolution Fixed [ 1 ]
            Status In Review [ 10002 ] Closed [ 6 ]
            alvinr Alvin Richards (Inactive) made changes -
            alvinr Alvin Richards (Inactive) made changes -
            Labels Compatibility Compatibility NRE-307517
            alvinr Alvin Richards (Inactive) made changes -
            Labels Compatibility NRE-307517 Approved Compatibility NRE-307517
            alvinr Alvin Richards (Inactive) made changes -
            NRE Projects NRE-307517
            alvinr Alvin Richards (Inactive) made changes -
            Labels Approved Compatibility NRE-307517 Approved Compatibility
            alvinr Alvin Richards (Inactive) made changes -
            NRE Approved Yes [ 10304 ]
            alvinr Alvin Richards (Inactive) made changes -
            Labels Approved Compatibility Compatibility
            serg Sergei Golubchik made changes -
            Workflow MariaDB v3 [ 61457 ] MariaDB v4 [ 132321 ]

            People

              monty Michael Widenius
              serg Sergei Golubchik
              Votes:
              2 Vote for this issue
              Watchers:
              4 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.