Details

    • Task
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • None
    • 3.3.0
    • Protocol
    • None

    Description

      ZStandard compression was added in MySQL 8.0 but is currently not supported by MariaDB Connector/C.

      MySQL indicates ZStandard compression support by setting CLIENT_ZSTD_COMPRESSION flag (1UL << 26).

      For using ZStandard compression the client set's CLIENT_ZSTD_COMPRESSION flag, instead of CLIENT_COMPRESS (=zlib compression) flag.
      In addition to the capability flag, the client will send a 4 byte (unsigned integer) after connection attributes which specifies the compress level:

      Client Handshake Response:

      ...
      if (server_capabilities & CLIENT_CONNECT_ATTRS)
          int<lenenc> size of connection attributes
          while packet has remaining data
              string<lenenc> key
              string<lenenc> value
      *NEW* 
      if (server_capabilities & CLIENT_ZSTD_COMPRESSION)
          int<4> compression level
      

      Attachments

        Activity

          georg Georg Richter created issue -
          georg Georg Richter made changes -
          Field Original Value New Value
          Summary Support for zstd compression Support for (MySQL) zstd compression
          georg Georg Richter made changes -
          Description ZStandard compression was added in MySQL 8.0 but is currently not supported by MariaDB Connector/C.

          MySQL indicates ZStandard compression support by setting CLIENT_ZSTD_COMPRESSION flag (1UL << 26).

          For using ZStandard compression the client set's CLIENT_ZSTD_COMPRESSION flag, instead of CLIENT_COMPRESS (=zlib compression) flag.
          In addition to the capability flag, the client will send a 4 byte (unsigned integer) after connection attributes which specifies the compress level:

          *Client Handshake Response:*


          {noformat}
          if (server_capabilities & CLIENT_CONNECT_ATTRS)
              int<lenenc> size of connection attributes
              while packet has remaining data
                  string<lenenc> key
                  string<lenenc> value
          if (server_capabilities & CLIENT_ZSTD_COMPRESSION)
              int<4> compression level
          {noformat}
          ZStandard compression was added in MySQL 8.0 but is currently not supported by MariaDB Connector/C.

          MySQL indicates ZStandard compression support by setting CLIENT_ZSTD_COMPRESSION flag (1UL << 26).

          For using ZStandard compression the client set's CLIENT_ZSTD_COMPRESSION flag, instead of CLIENT_COMPRESS (=zlib compression) flag.
          In addition to the capability flag, the client will send a 4 byte (unsigned integer) after connection attributes which specifies the compress level:

          *Client Handshake Response:*


          {noformat}
          ...
          if (server_capabilities & CLIENT_CONNECT_ATTRS)
              int<lenenc> size of connection attributes
              while packet has remaining data
                  string<lenenc> key
                  string<lenenc> value
          *NEW*
          if (server_capabilities & CLIENT_ZSTD_COMPRESSION)
              int<4> compression level
          {noformat}
          georg Georg Richter made changes -
          Resolution Fixed [ 1 ]
          Status Open [ 1 ] Closed [ 6 ]

          People

            georg Georg Richter
            georg Georg Richter
            Votes:
            0 Vote for this issue
            Watchers:
            2 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.