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

Implement 2-ary CRC32() and the CRC32C() function

Details

    Description

      The SQL parser defines the unary function crc32() that computes the CRC-32 of a string using the ISO 3309 polynomial that is being used by zlib and many others.

      Often, CRC is computed in pieces. To faciliate this, we introduce an optional second parameter: crc32('MariaDB') is equal to crc32(crc32('Maria','DB')).

      InnoDB files use a different polynomial, which is used by the special instructions that the Intel Nehalem microarchitecture introduced in SSE4.2. This is commonly called CRC-32C.

      It would be very convenient to introduce an SQL function crc32c() that would compute CRC-32C checksums. Then we could could define simple SQL function that would generate a logically empty InnoDB redo log corresponding to a particular checkpoint LSN. Starting with MDEV-14425 and MDEV-27199, InnoDB would refuse normal startup if the redo log file was deleted.

      Attachments

        Issue Links

          Activity

            marko Marko Mäkelä created issue -
            marko Marko Mäkelä made changes -
            Field Original Value New Value
            marko Marko Mäkelä made changes -
            marko Marko Mäkelä made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            marko Marko Mäkelä made changes -
            Assignee Marko Mäkelä [ marko ] Sergei Golubchik [ serg ]
            Status In Progress [ 3 ] In Review [ 10002 ]
            marko Marko Mäkelä made changes -
            Description The SQL parser defines the function {{crc32()}} that computes the CRC-32 of a string using the ISO 3309 polynomial that is being used by {{zlib}} and many others.

            InnoDB files use a different polynomial, which is used by the special instructions that the Intel Nehalem microarchitecture introduced in SSE4.2. This is commonly called CRC-32C.

            It would be very convenient to introduce an SQL function {{crc32c()}} that would compute CRC-32C checksums. Then we could could define simple SQL function that would generate a logically empty InnoDB redo log corresponding to a particular checkpoint LSN. Starting with MDEV-27199, InnoDB would refuse normal startup if the redo log file was deleted.
            The SQL parser defines the unary function {{crc32()}} that computes the CRC-32 of a string using the ISO 3309 polynomial that is being used by {{zlib}} and many others.

            Often, CRC is computed in pieces. To faciliate this, we introduce an optional second parameter: {{crc32('MariaDB')}} is equal to {{crc32('DB',crc32('Maria'))}}.

            InnoDB files use a different polynomial, which is used by the special instructions that the Intel Nehalem microarchitecture introduced in SSE4.2. This is commonly called CRC-32C.

            It would be very convenient to introduce an SQL function {{crc32c()}} that would compute CRC-32C checksums. Then we could could define simple SQL function that would generate a logically empty InnoDB redo log corresponding to a particular checkpoint LSN. Starting with MDEV-27199, InnoDB would refuse normal startup if the redo log file was deleted.
            Summary Implement the CRC32C() function Implement binary CRC32() and a the CRC32C() function
            marko Marko Mäkelä made changes -
            Summary Implement binary CRC32() and a the CRC32C() function Implement 2-ary CRC32() and the CRC32C() function
            serg Sergei Golubchik made changes -
            Priority Major [ 3 ] Critical [ 2 ]
            serg Sergei Golubchik made changes -
            Assignee Sergei Golubchik [ serg ] Marko Mäkelä [ marko ]
            Status In Review [ 10002 ] Stalled [ 10000 ]
            serg Sergei Golubchik made changes -
            Status Stalled [ 10000 ] In Testing [ 10301 ]
            serg Sergei Golubchik made changes -
            Assignee Marko Mäkelä [ marko ]
            marko Marko Mäkelä made changes -
            Description The SQL parser defines the unary function {{crc32()}} that computes the CRC-32 of a string using the ISO 3309 polynomial that is being used by {{zlib}} and many others.

            Often, CRC is computed in pieces. To faciliate this, we introduce an optional second parameter: {{crc32('MariaDB')}} is equal to {{crc32('DB',crc32('Maria'))}}.

            InnoDB files use a different polynomial, which is used by the special instructions that the Intel Nehalem microarchitecture introduced in SSE4.2. This is commonly called CRC-32C.

            It would be very convenient to introduce an SQL function {{crc32c()}} that would compute CRC-32C checksums. Then we could could define simple SQL function that would generate a logically empty InnoDB redo log corresponding to a particular checkpoint LSN. Starting with MDEV-27199, InnoDB would refuse normal startup if the redo log file was deleted.
            The SQL parser defines the unary function {{crc32()}} that computes the CRC-32 of a string using the ISO 3309 polynomial that is being used by {{zlib}} and many others.

            Often, CRC is computed in pieces. To faciliate this, we introduce an optional second parameter: {{crc32('MariaDB')}} is equal to {{crc32(crc32('Maria','DB'))}}.

            InnoDB files use a different polynomial, which is used by the special instructions that the Intel Nehalem microarchitecture introduced in SSE4.2. This is commonly called CRC-32C.

            It would be very convenient to introduce an SQL function {{crc32c()}} that would compute CRC-32C checksums. Then we could could define simple SQL function that would generate a logically empty InnoDB redo log corresponding to a particular checkpoint LSN. Starting with MDEV-14425 and MDEV-27199, InnoDB would refuse normal startup if the redo log file was deleted.
            elenst Elena Stepanova made changes -
            Assignee Elena Stepanova [ elenst ]
            elenst Elena Stepanova made changes -
            elenst Elena Stepanova made changes -
            elenst Elena Stepanova made changes -
            elenst Elena Stepanova made changes -
            elenst Elena Stepanova made changes -
            elenst Elena Stepanova made changes -
            Assignee Elena Stepanova [ elenst ] Sergei Golubchik [ serg ]
            Status In Testing [ 10301 ] Stalled [ 10000 ]
            serg Sergei Golubchik made changes -
            Priority Critical [ 2 ] Blocker [ 1 ]
            serg Sergei Golubchik made changes -
            Assignee Sergei Golubchik [ serg ] Marko Mäkelä [ marko ]
            serg Sergei Golubchik made changes -
            marko Marko Mäkelä made changes -
            issue.field.resolutiondate 2022-01-21 17:42:36.0 2022-01-21 17:42:36.011
            marko Marko Mäkelä made changes -
            Fix Version/s 10.8.1 [ 26815 ]
            Fix Version/s 10.8 [ 26121 ]
            Resolution Fixed [ 1 ]
            Status Stalled [ 10000 ] Closed [ 6 ]

            People

              marko Marko Mäkelä
              marko Marko Mäkelä
              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.