Details

    Description

      We want to pass more structures through the Bison stack instead of using Lex members.

      In particular, we want to get rid of Lex->charset.

      Reasons:

      • The current implementation is hard to follow and change. It has caused a few bugs already. Passing data through the bison stack is much easier to follow!
      • We'll have contextually typed collations soon:

        -- Use the xxx_uca1400_as_ci collation of the column implicit character set:
        CREATE TABLE t1 (a CHAR(10) COLLATE uca1400_as_ci);
        

        The above will resolve to:

      • COLLATE utf8mb4_uca1400_as_ci (in case if the column character set is later resolved to utf8mb4)
      • COLLATE utf16_uca1400_as_ci (in case if the column character set is later resolved to utf16
      • and so on

      So the code logic must be simlified before this change.

      This change will also fix a few problems:

      Attachments

        Issue Links

          Activity

            bar Alexander Barkov created issue -
            bar Alexander Barkov made changes -
            Field Original Value New Value
            bar Alexander Barkov made changes -
            bar Alexander Barkov made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            serg Sergei Golubchik made changes -
            Assignee Alexander Barkov [ bar ] Sergei Golubchik [ serg ]
            serg Sergei Golubchik made changes -
            Status In Progress [ 3 ] In Review [ 10002 ]
            serg Sergei Golubchik made changes -
            Assignee Sergei Golubchik [ serg ] Alexander Barkov [ bar ]
            Status In Review [ 10002 ] Stalled [ 10000 ]
            bar Alexander Barkov made changes -
            bar Alexander Barkov made changes -
            bar Alexander Barkov made changes -
            bar Alexander Barkov made changes -
            Description We want to pass more structures through the Bison stack instead of using Lex members.

            In particular, we want to get rid of Lex->charset.

            Reasons:
            - The current implementation is hard to follow and change. It has caused a few bugs already. Passing data through the bison stack is much easier to follow!
            - We'll have contextually typed collations soon:
            {code:sql}
            -- Use the xxx_uca1400_as_ci collation of the column implicit character set:
            CREATE TABLE t1 (a CHAR(10) COLLATE uca1400_as_ci);
            {code}
            The above will resolve to:
            - {{COLLATE utf8mb4_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf8mb4}})
            - {{COLLATE utf16_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf16}}
            - and so on

            So the code logic must be simlified before this change.
            We want to pass more structures through the Bison stack instead of using Lex members.

            In particular, we want to get rid of Lex->charset.

            Reasons:
            - The current implementation is hard to follow and change. It has caused a few bugs already. Passing data through the bison stack is much easier to follow!
            - We'll have contextually typed collations soon:
            {code:sql}
            -- Use the xxx_uca1400_as_ci collation of the column implicit character set:
            CREATE TABLE t1 (a CHAR(10) COLLATE uca1400_as_ci);
            {code}
            The above will resolve to:
            - {{COLLATE utf8mb4_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf8mb4}})
            - {{COLLATE utf16_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf16}}
            - and so on

            So the code logic must be simlified before this change.

            This change will also fix a few problems:
            - MDEV-27853
            - MDEV-27782
            - MDEV-28067
            bar Alexander Barkov made changes -
            Description We want to pass more structures through the Bison stack instead of using Lex members.

            In particular, we want to get rid of Lex->charset.

            Reasons:
            - The current implementation is hard to follow and change. It has caused a few bugs already. Passing data through the bison stack is much easier to follow!
            - We'll have contextually typed collations soon:
            {code:sql}
            -- Use the xxx_uca1400_as_ci collation of the column implicit character set:
            CREATE TABLE t1 (a CHAR(10) COLLATE uca1400_as_ci);
            {code}
            The above will resolve to:
            - {{COLLATE utf8mb4_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf8mb4}})
            - {{COLLATE utf16_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf16}}
            - and so on

            So the code logic must be simlified before this change.

            This change will also fix a few problems:
            - MDEV-27853
            - MDEV-27782
            - MDEV-28067
            We want to pass more structures through the Bison stack instead of using Lex members.

            In particular, we want to get rid of Lex->charset.

            Reasons:
            - The current implementation is hard to follow and change. It has caused a few bugs already. Passing data through the bison stack is much easier to follow!
            - We'll have contextually typed collations soon:
            {code:sql}
            -- Use the xxx_uca1400_as_ci collation of the column implicit character set:
            CREATE TABLE t1 (a CHAR(10) COLLATE uca1400_as_ci);
            {code}
            The above will resolve to:
            - {{COLLATE utf8mb4_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf8mb4}})
            - {{COLLATE utf16_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf16}}
            - and so on

            So the code logic must be simlified before this change.

            This change will also fix a few problems:
            - MDEV-26790
            - MDEV-27853
            - MDEV-27782
            - MDEV-28067
            bar Alexander Barkov made changes -
            Description We want to pass more structures through the Bison stack instead of using Lex members.

            In particular, we want to get rid of Lex->charset.

            Reasons:
            - The current implementation is hard to follow and change. It has caused a few bugs already. Passing data through the bison stack is much easier to follow!
            - We'll have contextually typed collations soon:
            {code:sql}
            -- Use the xxx_uca1400_as_ci collation of the column implicit character set:
            CREATE TABLE t1 (a CHAR(10) COLLATE uca1400_as_ci);
            {code}
            The above will resolve to:
            - {{COLLATE utf8mb4_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf8mb4}})
            - {{COLLATE utf16_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf16}}
            - and so on

            So the code logic must be simlified before this change.

            This change will also fix a few problems:
            - MDEV-26790
            - MDEV-27853
            - MDEV-27782
            - MDEV-28067
            We want to pass more structures through the Bison stack instead of using Lex members.

            In particular, we want to get rid of Lex->charset.

            Reasons:
            - The current implementation is hard to follow and change. It has caused a few bugs already. Passing data through the bison stack is much easier to follow!
            - We'll have contextually typed collations soon:
            {code:sql}
            -- Use the xxx_uca1400_as_ci collation of the column implicit character set:
            CREATE TABLE t1 (a CHAR(10) COLLATE uca1400_as_ci);
            {code}
            The above will resolve to:
            - {{COLLATE utf8mb4_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf8mb4}})
            - {{COLLATE utf16_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf16}}
            - and so on

            So the code logic must be simlified before this change.

            This change will also fix a few problems:
            - MDEV-27690
            - MDEV-27853
            - MDEV-27782
            - MDEV-28067
            bar Alexander Barkov made changes -
            bar Alexander Barkov made changes -
            Description We want to pass more structures through the Bison stack instead of using Lex members.

            In particular, we want to get rid of Lex->charset.

            Reasons:
            - The current implementation is hard to follow and change. It has caused a few bugs already. Passing data through the bison stack is much easier to follow!
            - We'll have contextually typed collations soon:
            {code:sql}
            -- Use the xxx_uca1400_as_ci collation of the column implicit character set:
            CREATE TABLE t1 (a CHAR(10) COLLATE uca1400_as_ci);
            {code}
            The above will resolve to:
            - {{COLLATE utf8mb4_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf8mb4}})
            - {{COLLATE utf16_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf16}}
            - and so on

            So the code logic must be simlified before this change.

            This change will also fix a few problems:
            - MDEV-27690
            - MDEV-27853
            - MDEV-27782
            - MDEV-28067
            We want to pass more structures through the Bison stack instead of using Lex members.

            In particular, we want to get rid of Lex->charset.

            Reasons:
            - The current implementation is hard to follow and change. It has caused a few bugs already. Passing data through the bison stack is much easier to follow!
            - We'll have contextually typed collations soon:
            {code:sql}
            -- Use the xxx_uca1400_as_ci collation of the column implicit character set:
            CREATE TABLE t1 (a CHAR(10) COLLATE uca1400_as_ci);
            {code}
            The above will resolve to:
            - {{COLLATE utf8mb4_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf8mb4}})
            - {{COLLATE utf16_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf16}}
            - and so on

            So the code logic must be simlified before this change.

            This change will also fix a few problems:
            - MDEV-27690
            - MDEV-27853
            - MDEV-28067
            bar Alexander Barkov made changes -
            bar Alexander Barkov made changes -
            Description We want to pass more structures through the Bison stack instead of using Lex members.

            In particular, we want to get rid of Lex->charset.

            Reasons:
            - The current implementation is hard to follow and change. It has caused a few bugs already. Passing data through the bison stack is much easier to follow!
            - We'll have contextually typed collations soon:
            {code:sql}
            -- Use the xxx_uca1400_as_ci collation of the column implicit character set:
            CREATE TABLE t1 (a CHAR(10) COLLATE uca1400_as_ci);
            {code}
            The above will resolve to:
            - {{COLLATE utf8mb4_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf8mb4}})
            - {{COLLATE utf16_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf16}}
            - and so on

            So the code logic must be simlified before this change.

            This change will also fix a few problems:
            - MDEV-27690
            - MDEV-27853
            - MDEV-28067
            We want to pass more structures through the Bison stack instead of using Lex members.

            In particular, we want to get rid of Lex->charset.

            Reasons:
            - The current implementation is hard to follow and change. It has caused a few bugs already. Passing data through the bison stack is much easier to follow!
            - We'll have contextually typed collations soon:
            {code:sql}
            -- Use the xxx_uca1400_as_ci collation of the column implicit character set:
            CREATE TABLE t1 (a CHAR(10) COLLATE uca1400_as_ci);
            {code}
            The above will resolve to:
            - {{COLLATE utf8mb4_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf8mb4}})
            - {{COLLATE utf16_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf16}}
            - and so on

            So the code logic must be simlified before this change.

            This change will also fix a few problems:
            - MDEV-27690
            - MDEV-27853
            - MDEV-28067
            - MDEV-28117
            bar Alexander Barkov made changes -
            Description We want to pass more structures through the Bison stack instead of using Lex members.

            In particular, we want to get rid of Lex->charset.

            Reasons:
            - The current implementation is hard to follow and change. It has caused a few bugs already. Passing data through the bison stack is much easier to follow!
            - We'll have contextually typed collations soon:
            {code:sql}
            -- Use the xxx_uca1400_as_ci collation of the column implicit character set:
            CREATE TABLE t1 (a CHAR(10) COLLATE uca1400_as_ci);
            {code}
            The above will resolve to:
            - {{COLLATE utf8mb4_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf8mb4}})
            - {{COLLATE utf16_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf16}}
            - and so on

            So the code logic must be simlified before this change.

            This change will also fix a few problems:
            - MDEV-27690
            - MDEV-27853
            - MDEV-28067
            - MDEV-28117
            We want to pass more structures through the Bison stack instead of using Lex members.

            In particular, we want to get rid of Lex->charset.

            Reasons:
            - The current implementation is hard to follow and change. It has caused a few bugs already. Passing data through the bison stack is much easier to follow!
            - We'll have contextually typed collations soon:
            {code:sql}
            -- Use the xxx_uca1400_as_ci collation of the column implicit character set:
            CREATE TABLE t1 (a CHAR(10) COLLATE uca1400_as_ci);
            {code}
            The above will resolve to:
            - {{COLLATE utf8mb4_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf8mb4}})
            - {{COLLATE utf16_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf16}}
            - and so on

            So the code logic must be simlified before this change.

            This change will also fix a few problems:
            - MDEV-27690
            - MDEV-27853
            - MDEV-28067
            - MDEV-28118
            bar Alexander Barkov made changes -
            bar Alexander Barkov made changes -
            Description We want to pass more structures through the Bison stack instead of using Lex members.

            In particular, we want to get rid of Lex->charset.

            Reasons:
            - The current implementation is hard to follow and change. It has caused a few bugs already. Passing data through the bison stack is much easier to follow!
            - We'll have contextually typed collations soon:
            {code:sql}
            -- Use the xxx_uca1400_as_ci collation of the column implicit character set:
            CREATE TABLE t1 (a CHAR(10) COLLATE uca1400_as_ci);
            {code}
            The above will resolve to:
            - {{COLLATE utf8mb4_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf8mb4}})
            - {{COLLATE utf16_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf16}}
            - and so on

            So the code logic must be simlified before this change.

            This change will also fix a few problems:
            - MDEV-27690
            - MDEV-27853
            - MDEV-28067
            - MDEV-28118
            We want to pass more structures through the Bison stack instead of using Lex members.

            In particular, we want to get rid of Lex->charset.

            Reasons:
            - The current implementation is hard to follow and change. It has caused a few bugs already. Passing data through the bison stack is much easier to follow!
            - We'll have contextually typed collations soon:
            {code:sql}
            -- Use the xxx_uca1400_as_ci collation of the column implicit character set:
            CREATE TABLE t1 (a CHAR(10) COLLATE uca1400_as_ci);
            {code}
            The above will resolve to:
            - {{COLLATE utf8mb4_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf8mb4}})
            - {{COLLATE utf16_uca1400_as_ci}} (in case if the column character set is later resolved to {{utf16}}
            - and so on

            So the code logic must be simlified before this change.

            This change will also fix a few problems:
            - MDEV-27690
            - MDEV-27853
            - MDEV-28067
            - MDEV-28118
            - MDEV-28119

            serg, please check the patch with review suggestions addressed:

            https://github.com/MariaDB/server/tree/bb-10.9-bar-MDEV-27743

            Thanks.

            bar Alexander Barkov added a comment - serg , please check the patch with review suggestions addressed: https://github.com/MariaDB/server/tree/bb-10.9-bar-MDEV-27743 Thanks.
            bar Alexander Barkov made changes -
            Assignee Alexander Barkov [ bar ] Sergei Golubchik [ serg ]
            Status Stalled [ 10000 ] In Review [ 10002 ]
            bar Alexander Barkov made changes -
            Fix Version/s 10.9.0 [ 27113 ]
            Fix Version/s 10.9 [ 26905 ]
            Resolution Fixed [ 1 ]
            Status In Review [ 10002 ] Closed [ 6 ]
            bar Alexander Barkov made changes -
            bar Alexander Barkov made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            bar Alexander Barkov made changes -

            People

              serg Sergei Golubchik
              bar Alexander Barkov
              Votes:
              0 Vote for this issue
              Watchers:
              3 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.