]> granicus.if.org Git - php/commitdiff
Expose DB-Library version as \PDO::DBLIB_ATTR_VERSION attribute on \PDO instance
authorAdam Baratz <adambaratz@php.net>
Fri, 27 Jan 2017 23:38:56 +0000 (18:38 -0500)
committerAdam Baratz <adambaratz@php.net>
Fri, 27 Jan 2017 23:38:56 +0000 (18:38 -0500)
ext/pdo_dblib/dblib_driver.c
ext/pdo_dblib/pdo_dblib.c
ext/pdo_dblib/php_pdo_dblib_int.h
ext/pdo_dblib/tests/dbversion.phpt [new file with mode: 0644]

index cff6aea816b0f8a029e26d5468d8d740f91bb1df..565b4b2ca83570539d544342aa04bb8aad92b79e 100644 (file)
@@ -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;
        }
index 270a3c36d19a639645196020fcf0624591a96ddf..1732cd75f9d5032b15f4b6ea6b234683165bdde6 100644 (file)
@@ -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;
index df17e7ebdd594880e3d1f2df559449d410f9ca46..7eb6b1d9a13974741ac49a08cb4d9eea4a9950de 100644 (file)
@@ -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 (file)
index 0000000..7575d5c
--- /dev/null
@@ -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)