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

Add keywords "SQL_BEFORE_GTIDS" and "SQL_AFTER_GTIDS" for START SLAVE UNTIL

Details

    Description

      In MariaDB the UNTIL keyword is inclusive.

      "The replica will start replication from the current GTID position, run up to and including the event with the GTID specified, and then stop. "
      https://mariadb.com/kb/en/gtid/#start-slave-until-master_gtid_posxxx

      Keyword UNTIL origin is form imperative languages, where UNTIL is the end condition of a loop.

      Depending from the position of the counter (before or after reply), the UNTIL condition will be processed or not.

      SQL is a declarative language, so the counter position in the loop is hidden, so maybe UNTIL is different implemented in different databases (if used in an SQL-statement, not procedures). Procedures are also based on imperative paradigm.

      So I suggest to add keywords EXCLUSIVE and INCLUSIVE.

      The default would be INCLUSIVE, which is the current MariaDB behaviour.

      Example:

      START SLAVE UNTIL EXCLUSIVE master_gtid_pos = <GTID position>;
      

      Attachments

        Issue Links

          Activity

            Richard Richard Stracke created issue -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            Field Original Value New Value
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            julien.fritsch Julien Fritsch made changes -
            Assignee Ralf Gebhardt [ ralf.gebhardt@mariadb.com ]
            ralf.gebhardt Ralf Gebhardt made changes -
            Assignee Ralf Gebhardt [ ralf.gebhardt@mariadb.com ] Richard Stracke [ richard ]
            Status Open [ 1 ] Needs Feedback [ 10501 ]
            Richard Richard Stracke made changes -
            Status Needs Feedback [ 10501 ] Open [ 1 ]
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            AirFocus AirFocus made changes -
            Description In MariaDB the until keyword is inclusive.

            "The replica will start replication from the current GTID position, run up to and including the event with the GTID specified, and then stop. "

            https://mariadb.com/kb/en/gtid/#start-slave-until-master_gtid_posxxx

            Keyword "UNTIL" origin is form imperative languages,
            where UNTIL is the end condition of a loop.

            Depending from the position of the counter (before or after reply), the UNTIL condition wlll be processed or not.

            SQL is a declarative language, so the counter position in the loop is hidden,
            so maybe "UNTIL" is different implemented in different Databases. (if used in a SQL-statement, not procedures. Procedures also based on imperative paradigma.

            So I suggest to add keywords "exclusive" and "inclusive".

            Default is "inclusive" , which is the current MariaDB behaviour.
            example:

            {code:java}

            START SLAVE UNTIL EXLUSIVE master_gtid_pos = <GTID position>
            {code}

            In MariaDB the until keyword is inclusive.

            "The replica will start replication from the current GTID position, run up to and including the event with the GTID specified, and then stop. "

            https://mariadb.com/kb/en/gtid/#start-slave-until\-master_gtid_posxxx

            Keyword "UNTIL" origin is form imperative languages,
            where UNTIL is the end condition of a loop.

            Depending from the position of the counter (before or after reply), the UNTIL condition wlll be processed or not.

            SQL is a declarative language, so the counter position in the loop is hidden,
            so maybe "UNTIL" is different implemented in different Databases. (if used in a SQL\-statement, not procedures. Procedures also based on imperative paradigma.

            So I suggest to add keywords "exclusive" and "inclusive".

            Default is "inclusive" , which is the current MariaDB behaviour.
            example:

            {code:java}

            START SLAVE UNTIL EXLUSIVE master_gtid_pos = <GTID position>
            {code}
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            julien.fritsch Julien Fritsch made changes -
            Assignee Richard Stracke [ richard ] Ralf Gebhardt [ ralf.gebhardt@mariadb.com ]
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            ralf.gebhardt Ralf Gebhardt made changes -
            Assignee Ralf Gebhardt [ ralf.gebhardt@mariadb.com ] Andrei Elkin [ elkin ]
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            Elkin Andrei Elkin made changes -
            Assignee Andrei Elkin [ elkin ] Brandon Nesterenko [ JIRAUSER48702 ]
            ralf.gebhardt Ralf Gebhardt made changes -
            Fix Version/s 11.2 [ 28603 ]
            ralf.gebhardt Ralf Gebhardt made changes -
            Priority Major [ 3 ] Critical [ 2 ]
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            ralf.gebhardt Ralf Gebhardt made changes -
            Fix Version/s 11.3 [ 28565 ]
            Fix Version/s 11.2 [ 28603 ]
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            bnestere Brandon Nesterenko made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            bnestere Brandon Nesterenko made changes -
            Summary Add keywords "exclusive" and "inclusive" for START SLAVE UNTIL Add keywords "SQL_BEFORE_GTIDS" and "SQL_AFTER_GTIDS" for START SLAVE UNTIL
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            bnestere Brandon Nesterenko made changes -
            Assignee Brandon Nesterenko [ JIRAUSER48702 ] Andrei Elkin [ elkin ]
            Status In Progress [ 3 ] In Review [ 10002 ]
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            Elkin Andrei Elkin made changes -
            Assignee Andrei Elkin [ elkin ] Brandon Nesterenko [ JIRAUSER48702 ]
            Status In Review [ 10002 ] Stalled [ 10000 ]
            bnestere Brandon Nesterenko made changes -
            Status Stalled [ 10000 ] In Testing [ 10301 ]
            bnestere Brandon Nesterenko made changes -
            Assignee Brandon Nesterenko [ JIRAUSER48702 ] Roel Van de Paar [ roel ]
            Roel Roel Van de Paar made changes -
            Description In MariaDB the until keyword is inclusive.

            "The replica will start replication from the current GTID position, run up to and including the event with the GTID specified, and then stop. "

            https://mariadb.com/kb/en/gtid/#start-slave-until\-master_gtid_posxxx

            Keyword "UNTIL" origin is form imperative languages,
            where UNTIL is the end condition of a loop.

            Depending from the position of the counter (before or after reply), the UNTIL condition wlll be processed or not.

            SQL is a declarative language, so the counter position in the loop is hidden,
            so maybe "UNTIL" is different implemented in different Databases. (if used in a SQL\-statement, not procedures. Procedures also based on imperative paradigma.

            So I suggest to add keywords "exclusive" and "inclusive".

            Default is "inclusive" , which is the current MariaDB behaviour.
            example:

            {code:java}

            START SLAVE UNTIL EXLUSIVE master_gtid_pos = <GTID position>
            {code}
            In MariaDB the {{UNTIL}} keyword is inclusive.

            "The replica will start replication from the current GTID position, run up to and including the event with the GTID specified, and then stop. "
            https://mariadb.com/kb/en/gtid/#start-slave-until\-master_gtid_posxxx

            Keyword {{UNTIL}} origin is form imperative languages, where {{UNTIL}} is the end condition of a loop.

            Depending from the position of the counter (before or after reply), the {{UNTIL}} condition will be processed or not.

            SQL is a declarative language, so the counter position in the loop is hidden, so maybe {{UNTIL}} is different implemented in different databases (if used in an SQL\-statement, not procedures). Procedures are also based on imperative paradigm.

            So I suggest to add keywords {{EXCLUSIVE}} and {{INCLUSIVE}}.

            The default would be {{INCLUSIVE}}, which is the current MariaDB behaviour.

            Example:
            {code:sql}
            START SLAVE UNTIL EXCLUSIVE master_gtid_pos = <GTID position>;
            {code}
            serg Sergei Golubchik made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            ralf.gebhardt Ralf Gebhardt made changes -
            Labels Preview_11.3
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            Roel Roel Van de Paar made changes -
            Assignee Roel Van de Paar [ roel ] Brandon Nesterenko [ JIRAUSER48702 ]
            Status In Testing [ 10301 ] Stalled [ 10000 ]
            Roel Roel Van de Paar made changes -
            Comment [ Testing completed ]
            bnestere Brandon Nesterenko made changes -
            Fix Version/s 11.3.1 [ 29416 ]
            Fix Version/s 11.3 [ 28565 ]
            Resolution Fixed [ 1 ]
            Status Stalled [ 10000 ] Closed [ 6 ]
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            mariadb-jira-automation Jira Automation (IT) made changes -
            Zendesk Related Tickets 201658 201791 122248
            Zendesk active tickets 201658 201791
            mariadb-jira-automation Jira Automation (IT) made changes -
            Zendesk active tickets 201658 201791 201658

            People

              bnestere Brandon Nesterenko
              Richard Richard Stracke
              Votes:
              2 Vote for this issue
              Watchers:
              11 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.