diff --git a/source/pdo_sqlsrv/pdo_dbh.cpp b/source/pdo_sqlsrv/pdo_dbh.cpp index b1b6e8ed..9f81e355 100644 --- a/source/pdo_sqlsrv/pdo_dbh.cpp +++ b/source/pdo_sqlsrv/pdo_dbh.cpp @@ -68,6 +68,7 @@ const char TrustServerCertificate[] = "TrustServerCertificate"; const char TransactionIsolation[] = "TransactionIsolation"; const char TransparentNetworkIPResolution[] = "TransparentNetworkIPResolution"; const char WSID[] = "WSID"; +const char ComputePool[] = "ComputePool"; } @@ -468,6 +469,15 @@ const connection_option PDO_CONN_OPTS[] = { CONN_ATTR_STRING, conn_str_append_func::func }, + { + PDOConnOptionNames::ComputePool, + sizeof(PDOConnOptionNames::ComputePool), + SQLSRV_CONN_OPTION_COMPUTE_POOL, + ODBCConnOptions::ComputePool, + sizeof(ODBCConnOptions::ComputePool), + CONN_ATTR_STRING, + conn_str_append_func::func + }, { NULL, 0, SQLSRV_CONN_OPTION_INVALID, NULL, 0 , CONN_ATTR_INVALID, NULL }, //terminate the table }; diff --git a/source/shared/core_sqlsrv.h b/source/shared/core_sqlsrv.h index 3bd37ee8..d27c1b40 100644 --- a/source/shared/core_sqlsrv.h +++ b/source/shared/core_sqlsrv.h @@ -1164,6 +1164,7 @@ const char WSID[] = "WSID"; const char UID[] = "UID"; const char PWD[] = "PWD"; const char SERVER[] = "Server"; +const char ComputePool[] = "ComputePool"; } @@ -1201,6 +1202,7 @@ enum SQLSRV_CONN_OPTIONS { SQLSRV_CONN_OPTION_TRANSPARENT_NETWORK_IP_RESOLUTION, SQLSRV_CONN_OPTION_CONN_RETRY_COUNT, SQLSRV_CONN_OPTION_CONN_RETRY_INTERVAL, + SQLSRV_CONN_OPTION_COMPUTE_POOL, // Driver specific connection options SQLSRV_CONN_OPTION_DRIVER_SPECIFIC = 1000, diff --git a/source/sqlsrv/conn.cpp b/source/sqlsrv/conn.cpp index 1e07be9a..daaef537 100644 --- a/source/sqlsrv/conn.cpp +++ b/source/sqlsrv/conn.cpp @@ -258,6 +258,7 @@ const char TransactionIsolation[] = "TransactionIsolation"; const char TransparentNetworkIPResolution[] = "TransparentNetworkIPResolution"; const char UID[] = "UID"; const char WSID[] = "WSID"; +const char ComputePool[] = "ComputePool"; } @@ -603,6 +604,16 @@ const connection_option SS_CONN_OPTS[] = { CONN_ATTR_INT, decimal_places_func::func }, + { + SSConnOptionNames::ComputePool, + sizeof(SSConnOptionNames::ComputePool), + SQLSRV_CONN_OPTION_COMPUTE_POOL, + ODBCConnOptions::ComputePool, + sizeof(ODBCConnOptions::ComputePool), + CONN_ATTR_STRING, + conn_str_append_func::func + }, + { NULL, 0, SQLSRV_CONN_OPTION_INVALID, NULL, 0 , CONN_ATTR_INVALID, NULL }, //terminate the table }; diff --git a/test/functional/pdo_sqlsrv/pdo_connect_computepool.phpt b/test/functional/pdo_sqlsrv/pdo_connect_computepool.phpt new file mode 100644 index 00000000..bdc53801 --- /dev/null +++ b/test/functional/pdo_sqlsrv/pdo_connect_computepool.phpt @@ -0,0 +1,23 @@ +--TEST-- +Test ComputePool keyword +--DESCRIPTION-- +This test does not test if any connection is successful but mainly test if the computepool keyword is recognized. +--SKIPIF-- + +--FILE-- + +--EXPECT-- +Done diff --git a/test/functional/sqlsrv/sqlsrv_connect_computepool.phpt b/test/functional/sqlsrv/sqlsrv_connect_computepool.phpt new file mode 100644 index 00000000..ca3fae5a --- /dev/null +++ b/test/functional/sqlsrv/sqlsrv_connect_computepool.phpt @@ -0,0 +1,21 @@ +--TEST-- +Test ComputePool keyword +--DESCRIPTION-- +This test does not test if any connection is successful but mainly test if the computepool keyword is recognized. +--SKIPIF-- + +--FILE-- + 'pool1'); +$conn = sqlsrv_connect($server, $connectionOptions); +if ($conn != false) { + sqlsrv_close($conn); +} + +echo 'Done' . PHP_EOL; + +?> +--EXPECT-- +Done