You've already forked mariadb-connector-c
mirror of
https://github.com/mariadb-corporation/mariadb-connector-c.git
synced 2025-08-07 02:42:49 +03:00
Add MYSQL_OPT_ZSTD_COMPRESSION_LEVEL
The compression level was always hard-coded to 3.
This commit is contained in:
@@ -87,6 +87,7 @@ struct st_mysql_options_extension {
|
||||
void (*status_callback)(void *ptr, enum enum_mariadb_status_info type, ...);
|
||||
void *status_data;
|
||||
my_bool tls_verify_server_cert;
|
||||
char zstd_compression_level;
|
||||
};
|
||||
|
||||
typedef struct st_connection_handler
|
||||
|
@@ -223,6 +223,7 @@ extern const char *SQLSTATE_UNKNOWN;
|
||||
MYSQL_OPT_MAX_ALLOWED_PACKET,
|
||||
MYSQL_OPT_NET_BUFFER_LENGTH,
|
||||
MYSQL_OPT_TLS_VERSION,
|
||||
MYSQL_OPT_ZSTD_COMPRESSION_LEVEL,
|
||||
|
||||
/* MariaDB specific */
|
||||
MYSQL_PROGRESS_CALLBACK=5999,
|
||||
|
@@ -711,6 +711,7 @@ struct st_default_options mariadb_defaults[] =
|
||||
{{MYSQL_OPT_SSL_ENFORCE}, MARIADB_OPTION_BOOL, "tls-enforce"},
|
||||
{{MYSQL_OPT_SSL_VERIFY_SERVER_CERT}, MARIADB_OPTION_BOOL,"tls-verify-peer"},
|
||||
{{MARIADB_OPT_RESTRICTED_AUTH}, MARIADB_OPTION_STR, "restricted-auth"},
|
||||
{{MYSQL_OPT_ZSTD_COMPRESSION_LEVEL}, MARIADB_OPTION_INT, "zstd-compression-level"},
|
||||
{{0}, 0, NULL}
|
||||
};
|
||||
|
||||
@@ -3836,6 +3837,9 @@ mysql_optionsv(MYSQL *mysql,enum mysql_option option, ...)
|
||||
}
|
||||
}
|
||||
break;
|
||||
case MYSQL_OPT_ZSTD_COMPRESSION_LEVEL:
|
||||
OPT_SET_EXTENDED_VALUE_INT(&mysql->options, zstd_compression_level, *((unsigned int *)arg1));
|
||||
break;
|
||||
default:
|
||||
va_end(ap);
|
||||
SET_CLIENT_ERROR(mysql, CR_NOT_IMPLEMENTED, SQLSTATE_UNKNOWN, 0);
|
||||
|
@@ -407,7 +407,14 @@ static int send_client_reply_packet(MCPVIO_EXT *mpvio,
|
||||
*/
|
||||
if (mysql->client_flag & CLIENT_ZSTD_COMPRESSION)
|
||||
{
|
||||
*end++= 3;
|
||||
uchar compression_level= 3;
|
||||
if (mysql->options.extension &&
|
||||
mysql->options.extension->zstd_compression_level >= 1 &&
|
||||
mysql->options.extension->zstd_compression_level <= 20)
|
||||
{
|
||||
compression_level= mysql->options.extension->zstd_compression_level;
|
||||
}
|
||||
*end++= compression_level;
|
||||
}
|
||||
|
||||
/* Write authentication package */
|
||||
|
Reference in New Issue
Block a user