summaryrefslogtreecommitdiff
path: root/ext/pdo_mysql
diff options
context:
space:
mode:
authorJohannes Schlüter <johannes@php.net>2008-10-14 19:00:53 +0000
committerJohannes Schlüter <johannes@php.net>2008-10-14 19:00:53 +0000
commit0614a7763e30fe88d8446b7bee72bb68a374f48c (patch)
treefee7623c2fc1beb5d5630df3cfb01ef723d8085c /ext/pdo_mysql
parent42e3a93a8b54340822c96ea760c2f0f8aa118e10 (diff)
downloadphp-git-0614a7763e30fe88d8446b7bee72bb68a374f48c.tar.gz
MFH: Add PDO::MYSQL_ATTR_COMPRESS connection flag [DOC]
Diffstat (limited to 'ext/pdo_mysql')
-rwxr-xr-xext/pdo_mysql/mysql_driver.c9
-rwxr-xr-xext/pdo_mysql/pdo_mysql.c1
-rwxr-xr-xext/pdo_mysql/php_pdo_mysql_int.h1
-rw-r--r--ext/pdo_mysql/tests/pdo_mysql_class_constants.phpt4
4 files changed, 13 insertions, 2 deletions
diff --git a/ext/pdo_mysql/mysql_driver.c b/ext/pdo_mysql/mysql_driver.c
index cbdfbe9642..19357365d3 100755
--- a/ext/pdo_mysql/mysql_driver.c
+++ b/ext/pdo_mysql/mysql_driver.c
@@ -623,6 +623,7 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_
long local_infile = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_LOCAL_INFILE, 0 TSRMLS_CC);
#ifndef PDO_USE_MYSQLND
char *init_cmd = NULL, *default_file = NULL, *default_group = NULL;
+ long compress = 0;
#endif
H->buffered = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_USE_BUFFERED_QUERY, 1 TSRMLS_CC);
@@ -692,6 +693,14 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_
}
efree(default_group);
}
+
+ compress = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_COMPRESS, 0 TSRMLS_CC);
+ if (compress) {
+ if (mysql_options(H->server, MYSQL_OPT_COMPRESS, 0)) {
+ pdo_mysql_error(dbh);
+ goto cleanup;
+ }
+ }
#endif
}
diff --git a/ext/pdo_mysql/pdo_mysql.c b/ext/pdo_mysql/pdo_mysql.c
index 0c2acb654d..2d68e4f4f8 100755
--- a/ext/pdo_mysql/pdo_mysql.c
+++ b/ext/pdo_mysql/pdo_mysql.c
@@ -80,6 +80,7 @@ static PHP_MINIT_FUNCTION(pdo_mysql)
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_INIT_COMMAND", (long)PDO_MYSQL_ATTR_INIT_COMMAND);
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_READ_DEFAULT_FILE", (long)PDO_MYSQL_ATTR_READ_DEFAULT_FILE);
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_READ_DEFAULT_GROUP", (long)PDO_MYSQL_ATTR_READ_DEFAULT_GROUP);
+ REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_COMPRESS", (long)PDO_MYSQL_ATTR_COMPRESS);
#endif
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_DIRECT_QUERY", (long)PDO_MYSQL_ATTR_DIRECT_QUERY);
diff --git a/ext/pdo_mysql/php_pdo_mysql_int.h b/ext/pdo_mysql/php_pdo_mysql_int.h
index 3ed96c9029..46b7237b88 100755
--- a/ext/pdo_mysql/php_pdo_mysql_int.h
+++ b/ext/pdo_mysql/php_pdo_mysql_int.h
@@ -158,6 +158,7 @@ enum {
PDO_MYSQL_ATTR_READ_DEFAULT_FILE,
PDO_MYSQL_ATTR_READ_DEFAULT_GROUP,
PDO_MYSQL_ATTR_MAX_BUFFER_SIZE,
+ PDO_MYSQL_ATTR_COMPRESS,
#endif
PDO_MYSQL_ATTR_DIRECT_QUERY,
};
diff --git a/ext/pdo_mysql/tests/pdo_mysql_class_constants.phpt b/ext/pdo_mysql/tests/pdo_mysql_class_constants.phpt
index cfecaf74c9..58f442633b 100644
--- a/ext/pdo_mysql/tests/pdo_mysql_class_constants.phpt
+++ b/ext/pdo_mysql/tests/pdo_mysql_class_constants.phpt
@@ -19,7 +19,7 @@ require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'skipif.inc');
$expected['MYSQL_ATTR_INIT_COMMAND'] = true;
$expected['MYSQL_ATTR_READ_DEFAULT_FILE'] = true;
$expected['MYSQL_ATTR_READ_DEFAULT_GROUP'] = true;
-
+ $expected['MYSQL_ATTR_COMPRESS'] = true;
}
/*
@@ -75,4 +75,4 @@ require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'skipif.inc');
print "done!";
--EXPECT--
-done! \ No newline at end of file
+done!