From 87845f7e2b975c3a1024801ac3552cc721187e02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Mon, 21 Dec 2015 13:17:37 +0000 Subject: [PATCH] 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 --- lib/MySQL_HostGroups_Manager.cpp | 11 ++++++----- lib/mysql_connection.cpp | 2 ++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/MySQL_HostGroups_Manager.cpp b/lib/MySQL_HostGroups_Manager.cpp index d5375d2e1..9b46b5a26 100644 --- a/lib/MySQL_HostGroups_Manager.cpp +++ b/lib/MySQL_HostGroups_Manager.cpp @@ -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; diff --git a/lib/mysql_connection.cpp b/lib/mysql_connection.cpp index 4a6f5f36d..7b6261d53 100644 --- a/lib/mysql_connection.cpp +++ b/lib/mysql_connection.cpp @@ -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 {