summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Baratz <adambaratz@php.net>2017-01-27 18:38:56 -0500
committerAdam Baratz <adambaratz@php.net>2017-01-27 18:38:56 -0500
commit9e18f1d4aff855161eeb0de2f4979a2e7eff7175 (patch)
tree9568b090e10f337464e3c5a36ae7d62d77093e7b
parent147a3dd379c5d749346c608936914ea828ee3bc0 (diff)
downloadphp-git-9e18f1d4aff855161eeb0de2f4979a2e7eff7175.tar.gz
Expose DB-Library version as \PDO::DBLIB_ATTR_VERSION attribute on \PDO instance
-rw-r--r--ext/pdo_dblib/dblib_driver.c4
-rw-r--r--ext/pdo_dblib/pdo_dblib.c1
-rw-r--r--ext/pdo_dblib/php_pdo_dblib_int.h1
-rw-r--r--ext/pdo_dblib/tests/dbversion.phpt17
4 files changed, 23 insertions, 0 deletions
diff --git a/ext/pdo_dblib/dblib_driver.c b/ext/pdo_dblib/dblib_driver.c
index cff6aea816..565b4b2ca8 100644
--- a/ext/pdo_dblib/dblib_driver.c
+++ b/ext/pdo_dblib/dblib_driver.c
@@ -281,6 +281,10 @@ static int dblib_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_valu
ZVAL_BOOL(return_value, ((pdo_dblib_db_handle *)dbh->driver_data)->stringify_uniqueidentifier);
break;
+ case PDO_DBLIB_ATTR_VERSION:
+ ZVAL_STRING(return_value, dbversion());
+ break;
+
default:
return 0;
}
diff --git a/ext/pdo_dblib/pdo_dblib.c b/ext/pdo_dblib/pdo_dblib.c
index 270a3c36d1..1732cd75f9 100644
--- a/ext/pdo_dblib/pdo_dblib.c
+++ b/ext/pdo_dblib/pdo_dblib.c
@@ -194,6 +194,7 @@ PHP_MINIT_FUNCTION(pdo_dblib)
REGISTER_PDO_CLASS_CONST_LONG("DBLIB_ATTR_CONNECTION_TIMEOUT", (long) PDO_DBLIB_ATTR_CONNECTION_TIMEOUT);
REGISTER_PDO_CLASS_CONST_LONG("DBLIB_ATTR_QUERY_TIMEOUT", (long) PDO_DBLIB_ATTR_QUERY_TIMEOUT);
REGISTER_PDO_CLASS_CONST_LONG("DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER", (long) PDO_DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER);
+ REGISTER_PDO_CLASS_CONST_LONG("DBLIB_ATTR_VERSION", (long) PDO_DBLIB_ATTR_VERSION);
if (FAIL == dbinit()) {
return FAILURE;
diff --git a/ext/pdo_dblib/php_pdo_dblib_int.h b/ext/pdo_dblib/php_pdo_dblib_int.h
index df17e7ebdd..7eb6b1d9a1 100644
--- a/ext/pdo_dblib/php_pdo_dblib_int.h
+++ b/ext/pdo_dblib/php_pdo_dblib_int.h
@@ -148,6 +148,7 @@ enum {
PDO_DBLIB_ATTR_CONNECTION_TIMEOUT = PDO_ATTR_DRIVER_SPECIFIC,
PDO_DBLIB_ATTR_QUERY_TIMEOUT,
PDO_DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER,
+ PDO_DBLIB_ATTR_VERSION,
};
#endif
diff --git a/ext/pdo_dblib/tests/dbversion.phpt b/ext/pdo_dblib/tests/dbversion.phpt
new file mode 100644
index 0000000000..7575d5c45b
--- /dev/null
+++ b/ext/pdo_dblib/tests/dbversion.phpt
@@ -0,0 +1,17 @@
+--TEST--
+PDO_DBLIB: \PDO::DBLIB_ATTR_VERSION exposes a string
+--SKIPIF--
+<?php
+if (!extension_loaded('pdo_dblib')) die('skip not loaded');
+require __DIR__ . '/config.inc';
+?>
+--FILE--
+<?php
+require __DIR__ . '/config.inc';
+
+$version = $db->getAttribute(PDO::DBLIB_ATTR_VERSION);
+var_dump(is_string($version) && strlen($version));
+
+?>
+--EXPECT--
+bool(true)