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 = new MySQL_Connection();
conn->parent=mysrvc; conn->parent=mysrvc;
//conn->options.charset=mysrvc->charset; //conn->options.charset=mysrvc->charset;
conn->options.server_capabilities=0; // deprecating this . #363
if (mysql_thread___have_compress==true && mysrvc->compression) { //conn->options.server_capabilities=0;
conn->options.server_capabilities|=CLIENT_COMPRESS; //if (mysql_thread___have_compress==true && mysrvc->compression) {
conn->options.compression_min_length=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); __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); proxy_debug(PROXY_DEBUG_MYSQL_CONNPOOL, 7, "Returning MySQL Connection %p, server %s:%d\n", conn, conn->parent->address, conn->parent->port);
return conn; return conn;

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

Loading…
Cancel
Save