Implement compression on backend (#363)

For compatibility reason, compression flag on mysql_servers table is not changed:
values greater than 1 are accepted, but handled as 1

Closes #363
pull/451/head
René Cannaò 10 years ago
parent 15f6e22ee5
commit 87845f7e2b

@ -660,11 +660,12 @@ MySQL_Connection * MySrvConnList::get_random_MyConn() {
conn = new MySQL_Connection();
conn->parent=mysrvc;
//conn->options.charset=mysrvc->charset;
conn->options.server_capabilities=0;
if (mysql_thread___have_compress==true && mysrvc->compression) {
conn->options.server_capabilities|=CLIENT_COMPRESS;
conn->options.compression_min_length=mysrvc->compression;
}
// deprecating this . #363
//conn->options.server_capabilities=0;
//if (mysql_thread___have_compress==true && mysrvc->compression) {
// conn->options.server_capabilities|=CLIENT_COMPRESS;
// conn->options.compression_min_length=mysrvc->compression;
//}
__sync_fetch_and_add(&MyHGM->status.server_connections_created, 1);
proxy_debug(PROXY_DEBUG_MYSQL_CONNPOOL, 7, "Returning MySQL Connection %p, server %s:%d\n", conn, conn->parent->address, conn->parent->port);
return conn;

@ -305,6 +305,8 @@ void MySQL_Connection::connect_start() {
unsigned long client_flags = 0;
if (mysql_thread___client_found_rows)
client_flags += CLIENT_FOUND_ROWS;
if (parent->compression)
client_flags += CLIENT_COMPRESS;
if (parent->port) {
async_exit_status=mysql_real_connect_start(&ret_mysql, mysql, parent->address, userinfo->username, userinfo->password, userinfo->schemaname, parent->port, NULL, client_flags);
} else {

Loading…
Cancel
Save