Details
-
Task
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
None
-
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
Field | Original Value | New Value |
---|---|---|
Summary | Support for zstd compression | Support for (MySQL) zstd compression |
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} |
Resolution | Fixed [ 1 ] | |
Status | Open [ 1 ] | Closed [ 6 ] |