From acb0300271f567d28fee9641307d40fb32055d5c Mon Sep 17 00:00:00 2001 From: v-kaywon Date: Fri, 17 Nov 2017 16:12:57 -0800 Subject: [PATCH 1/4] change changelog and version.h for 5.1.2-preview --- CHANGELOG.md | 28 ++++++++++++++++++++++++++++ source/shared/version.h | 2 +- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e6eb607f..f57cafc8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,34 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) +## Windows/Linux/MAC 5.1.2-preview - 2017-11-20 +Updated PECL release packages. Here is the list of updates: + +### Fixed +- Support for non-UTF8 locales in Linux +- Fixed crash caused by executing an invalid query in a transaction (Issue [#434](https://github.com/Microsoft/msphpsql/issues/434)) +- Fixed regression in sqlsrv_next_result returning a no fields error when the active result set is null (Issue [#581](https://github.com/Microsoft/msphpsql/issues/581)) +- Fixed incorrect active result set when sqlsrv_next_result or PDOStatement::nextRowset is called when Column Encryption is enabled (Issue [#574](https://github.com/Microsoft/msphpsql/issues/574)) +- Fixed data corruption in fetching from an encrypted max column after calling sqlsrv_next_result or PDOStatemet::nextRowset (Issue [#580](https://github.com/Microsoft/msphpsql/issues/580)) +- Added error handling for using PDO::SQLSRV_ATTR_DIRECT_QUERY or PDO::ATTR_EMULATE_PREPARES in a Column Encryption enabled connection +- Added error handling for binding TEXT, NTEXT or IMAGE as output parameter (Issue [#231](https://github.com/Microsoft/msphpsql/issues/231)) + +### Limitations +- In Linux, only support locale set in PHP if it is done before the first connection +- Always Encrypted functionalities are only supported using [MSODBC 17 preview](https://github.com/Microsoft/msphpsql/tree/dev/ODBC%2017%20binaries%20preview) + - ODBC binaries for macOS available upon request +- MSODBC 17 preview msodbcsql.msi only works for Windows10 +- [Always Encrypted limitations](https://github.com/Microsoft/msphpsql/wiki/Features#aelimitation) +- When using sqlsrv_query with Always Encrypted feature, SQL type has to be specified for each input (see [here](https://github.com/Microsoft/msphpsql/wiki/Features#aebindparam)) +- No support for inout / output params when using sql_variant type + +### Known Issues +- Binding decimal input as a string when Column Encryption is enabled may change the precision of the input +- Connection pooling on Linux doesn't work properly when using the MSODBC17 preview +- When pooling is enabled in Linux or MAC + - unixODBC <= 2.3.4 (Linux and MAC) might not return proper diagnostics information, such as error messages, warnings and informative messages + - due to this unixODBC bug, fetch large data (such as xml, binary) as streams as a workaround. See the examples [here](https://github.com/Microsoft/msphpsql/wiki/Connection-Pooling-on-Linux-and-Mac) + ## Windows/Linux 5.1.1-preview - 2017-10-20 Updated PECL release packages. Here is the list of updates: diff --git a/source/shared/version.h b/source/shared/version.h index 94c47ceb..cb4b28dd 100644 --- a/source/shared/version.h +++ b/source/shared/version.h @@ -28,7 +28,7 @@ // Increase Patch for backward compatible fixes. #define SQLVERSION_MAJOR 5 #define SQLVERSION_MINOR 1 -#define SQLVERSION_PATCH 1 +#define SQLVERSION_PATCH 2 #define SQLVERSION_BUILD 0 // Semantic versioning pre-release From 6c862bd1126cf2233eb98ce723bba975fecf5143 Mon Sep 17 00:00:00 2001 From: v-kaywon Date: Fri, 17 Nov 2017 16:54:02 -0800 Subject: [PATCH 2/4] change changelog --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f57cafc8..57390f89 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,11 +3,11 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) -## Windows/Linux/MAC 5.1.2-preview - 2017-11-20 +## Windows/Linux/macOS 5.1.2-preview - 2017-11-20 Updated PECL release packages. Here is the list of updates: ### Fixed -- Support for non-UTF8 locales in Linux +- Support for non-UTF8 locales in Linux and macOS - Fixed crash caused by executing an invalid query in a transaction (Issue [#434](https://github.com/Microsoft/msphpsql/issues/434)) - Fixed regression in sqlsrv_next_result returning a no fields error when the active result set is null (Issue [#581](https://github.com/Microsoft/msphpsql/issues/581)) - Fixed incorrect active result set when sqlsrv_next_result or PDOStatement::nextRowset is called when Column Encryption is enabled (Issue [#574](https://github.com/Microsoft/msphpsql/issues/574)) @@ -16,10 +16,10 @@ Updated PECL release packages. Here is the list of updates: - Added error handling for binding TEXT, NTEXT or IMAGE as output parameter (Issue [#231](https://github.com/Microsoft/msphpsql/issues/231)) ### Limitations -- In Linux, only support locale set in PHP if it is done before the first connection +- In Linux and macOS, setlocale() only takes effect if it is invoked before the first connection. The subsequent locale setting will not work - Always Encrypted functionalities are only supported using [MSODBC 17 preview](https://github.com/Microsoft/msphpsql/tree/dev/ODBC%2017%20binaries%20preview) - ODBC binaries for macOS available upon request -- MSODBC 17 preview msodbcsql.msi only works for Windows10 +- MSODBC 17 preview msodbcsql.msi only works in Windows10 - [Always Encrypted limitations](https://github.com/Microsoft/msphpsql/wiki/Features#aelimitation) - When using sqlsrv_query with Always Encrypted feature, SQL type has to be specified for each input (see [here](https://github.com/Microsoft/msphpsql/wiki/Features#aebindparam)) - No support for inout / output params when using sql_variant type @@ -27,8 +27,8 @@ Updated PECL release packages. Here is the list of updates: ### Known Issues - Binding decimal input as a string when Column Encryption is enabled may change the precision of the input - Connection pooling on Linux doesn't work properly when using the MSODBC17 preview -- When pooling is enabled in Linux or MAC - - unixODBC <= 2.3.4 (Linux and MAC) might not return proper diagnostics information, such as error messages, warnings and informative messages +- When pooling is enabled in Linux or macOS + - unixODBC <= 2.3.4 (Linux and macOS) might not return proper diagnostics information, such as error messages, warnings and informative messages - due to this unixODBC bug, fetch large data (such as xml, binary) as streams as a workaround. See the examples [here](https://github.com/Microsoft/msphpsql/wiki/Connection-Pooling-on-Linux-and-Mac) ## Windows/Linux 5.1.1-preview - 2017-10-20 From be2f92ce045564203814a8819ecec6043d987229 Mon Sep 17 00:00:00 2001 From: v-kaywon Date: Mon, 20 Nov 2017 12:30:09 -0800 Subject: [PATCH 3/4] remove non-utf8 support from changelog --- CHANGELOG.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 57390f89..549a35ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,6 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) Updated PECL release packages. Here is the list of updates: ### Fixed -- Support for non-UTF8 locales in Linux and macOS - Fixed crash caused by executing an invalid query in a transaction (Issue [#434](https://github.com/Microsoft/msphpsql/issues/434)) - Fixed regression in sqlsrv_next_result returning a no fields error when the active result set is null (Issue [#581](https://github.com/Microsoft/msphpsql/issues/581)) - Fixed incorrect active result set when sqlsrv_next_result or PDOStatement::nextRowset is called when Column Encryption is enabled (Issue [#574](https://github.com/Microsoft/msphpsql/issues/574)) @@ -16,7 +15,6 @@ Updated PECL release packages. Here is the list of updates: - Added error handling for binding TEXT, NTEXT or IMAGE as output parameter (Issue [#231](https://github.com/Microsoft/msphpsql/issues/231)) ### Limitations -- In Linux and macOS, setlocale() only takes effect if it is invoked before the first connection. The subsequent locale setting will not work - Always Encrypted functionalities are only supported using [MSODBC 17 preview](https://github.com/Microsoft/msphpsql/tree/dev/ODBC%2017%20binaries%20preview) - ODBC binaries for macOS available upon request - MSODBC 17 preview msodbcsql.msi only works in Windows10 From d35087c60878ce6b27a3cb2af4074042d15a3cad Mon Sep 17 00:00:00 2001 From: v-kaywon Date: Mon, 20 Nov 2017 13:01:10 -0800 Subject: [PATCH 4/4] fix two odbc version test --- CHANGELOG.md | 4 +++- test/functional/pdo_sqlsrv/pdo_connect_driver.phpt | 6 ++++-- test/functional/sqlsrv/sqlsrv_connect_driver.phpt | 6 ++++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 549a35ac..b96bb0cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,10 +3,11 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) -## Windows/Linux/macOS 5.1.2-preview - 2017-11-20 +## Windows/Linux/macOS 5.1.2-preview - 2017-11-21 Updated PECL release packages. Here is the list of updates: ### Fixed +- Support for non-UTF8 locales in Linux and macOS - Fixed crash caused by executing an invalid query in a transaction (Issue [#434](https://github.com/Microsoft/msphpsql/issues/434)) - Fixed regression in sqlsrv_next_result returning a no fields error when the active result set is null (Issue [#581](https://github.com/Microsoft/msphpsql/issues/581)) - Fixed incorrect active result set when sqlsrv_next_result or PDOStatement::nextRowset is called when Column Encryption is enabled (Issue [#574](https://github.com/Microsoft/msphpsql/issues/574)) @@ -15,6 +16,7 @@ Updated PECL release packages. Here is the list of updates: - Added error handling for binding TEXT, NTEXT or IMAGE as output parameter (Issue [#231](https://github.com/Microsoft/msphpsql/issues/231)) ### Limitations +- In Linux and macOS, setlocale() only takes effect if it is invoked before the first connection. The subsequent locale setting will not work - Always Encrypted functionalities are only supported using [MSODBC 17 preview](https://github.com/Microsoft/msphpsql/tree/dev/ODBC%2017%20binaries%20preview) - ODBC binaries for macOS available upon request - MSODBC 17 preview msodbcsql.msi only works in Windows10 diff --git a/test/functional/pdo_sqlsrv/pdo_connect_driver.phpt b/test/functional/pdo_sqlsrv/pdo_connect_driver.phpt index 6f53e50b..468f9ceb 100644 --- a/test/functional/pdo_sqlsrv/pdo_connect_driver.phpt +++ b/test/functional/pdo_sqlsrv/pdo_connect_driver.phpt @@ -52,6 +52,7 @@ function testValidValues() case 17: $value = "{ODBC Driver 17 for SQL Server}"; break; + case 14: case 13: $value = "{ODBC Driver 13 for SQL Server}"; break; @@ -60,7 +61,7 @@ function testValidValues() $value = "{ODBC Driver 11 for SQL Server}"; break; default: - $value = "invalid value"; + $value = "invalid value $msodbcsqlMaj"; } $connectionOptions = "Driver = $value"; connectVerifyOutput($connectionOptions); @@ -70,6 +71,7 @@ function testValidValues() case 17: $value = "ODBC Driver 17 for SQL Server"; break; + case 14: case 13: $value = "ODBC Driver 13 for SQL Server"; break; @@ -78,7 +80,7 @@ function testValidValues() $value = "ODBC Driver 11 for SQL Server"; break; default: - $value = "invalid value"; + $value = "invalid value $msodbcsqlMaj"; } $connectionOptions = "Driver = $value"; diff --git a/test/functional/sqlsrv/sqlsrv_connect_driver.phpt b/test/functional/sqlsrv/sqlsrv_connect_driver.phpt index 63531498..89377f1a 100644 --- a/test/functional/sqlsrv/sqlsrv_connect_driver.phpt +++ b/test/functional/sqlsrv/sqlsrv_connect_driver.phpt @@ -44,6 +44,7 @@ function testValidValues($msodbcsqlMaj, $server, $connectionOptions) case 17: $value = "{ODBC Driver 17 for SQL Server}"; break; + case 14: case 13: $value = "{ODBC Driver 13 for SQL Server}"; break; @@ -52,7 +53,7 @@ function testValidValues($msodbcsqlMaj, $server, $connectionOptions) $value = "{ODBC Driver 11 for SQL Server}"; break; default: - $value = "invalid value"; + $value = "invalid value $msodbcsqlMaj"; } $connectionOptions['Driver']=$value; connectVerifyOutput($server, $connectionOptions); @@ -62,6 +63,7 @@ function testValidValues($msodbcsqlMaj, $server, $connectionOptions) case 17: $value = "ODBC Driver 17 for SQL Server"; break; + case 14: case 13: $value = "ODBC Driver 13 for SQL Server"; break; @@ -70,7 +72,7 @@ function testValidValues($msodbcsqlMaj, $server, $connectionOptions) $value = "ODBC Driver 11 for SQL Server"; break; default: - $value = "invalid value"; + $value = "invalid value $msodbcsqlMaj"; } $connectionOptions['Driver']=$value;