Skip to content

Commit 0614a77

Browse files
committed
MFH: Add PDO::MYSQL_ATTR_COMPRESS connection flag [DOC]
1 parent 42e3a93 commit 0614a77

File tree

4 files changed

+13
-2
lines changed

4 files changed

+13
-2
lines changed

ext/pdo_mysql/mysql_driver.c

+9
Original file line numberDiff line numberDiff line change
@@ -623,6 +623,7 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_
623623
long local_infile = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_LOCAL_INFILE, 0 TSRMLS_CC);
624624
#ifndef PDO_USE_MYSQLND
625625
char *init_cmd = NULL, *default_file = NULL, *default_group = NULL;
626+
long compress = 0;
626627
#endif
627628
H->buffered = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_USE_BUFFERED_QUERY, 1 TSRMLS_CC);
628629

@@ -692,6 +693,14 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_
692693
}
693694
efree(default_group);
694695
}
696+
697+
compress = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_COMPRESS, 0 TSRMLS_CC);
698+
if (compress) {
699+
if (mysql_options(H->server, MYSQL_OPT_COMPRESS, 0)) {
700+
pdo_mysql_error(dbh);
701+
goto cleanup;
702+
}
703+
}
695704
#endif
696705
}
697706

ext/pdo_mysql/pdo_mysql.c

+1
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ static PHP_MINIT_FUNCTION(pdo_mysql)
8080
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_INIT_COMMAND", (long)PDO_MYSQL_ATTR_INIT_COMMAND);
8181
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_READ_DEFAULT_FILE", (long)PDO_MYSQL_ATTR_READ_DEFAULT_FILE);
8282
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_READ_DEFAULT_GROUP", (long)PDO_MYSQL_ATTR_READ_DEFAULT_GROUP);
83+
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_COMPRESS", (long)PDO_MYSQL_ATTR_COMPRESS);
8384
#endif
8485
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_DIRECT_QUERY", (long)PDO_MYSQL_ATTR_DIRECT_QUERY);
8586

ext/pdo_mysql/php_pdo_mysql_int.h

+1
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ enum {
158158
PDO_MYSQL_ATTR_READ_DEFAULT_FILE,
159159
PDO_MYSQL_ATTR_READ_DEFAULT_GROUP,
160160
PDO_MYSQL_ATTR_MAX_BUFFER_SIZE,
161+
PDO_MYSQL_ATTR_COMPRESS,
161162
#endif
162163
PDO_MYSQL_ATTR_DIRECT_QUERY,
163164
};

ext/pdo_mysql/tests/pdo_mysql_class_constants.phpt

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'skipif.inc');
1919
$expected['MYSQL_ATTR_INIT_COMMAND'] = true;
2020
$expected['MYSQL_ATTR_READ_DEFAULT_FILE'] = true;
2121
$expected['MYSQL_ATTR_READ_DEFAULT_GROUP'] = true;
22-
22+
$expected['MYSQL_ATTR_COMPRESS'] = true;
2323
}
2424

2525
/*
@@ -75,4 +75,4 @@ require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'skipif.inc');
7575

7676
print "done!";
7777
--EXPECT--
78-
done!
78+
done!

0 commit comments

Comments
 (0)