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
|