diff --git a/eng/pipelines/pr-validation-pipeline.yml b/eng/pipelines/pr-validation-pipeline.yml index 166e80523..384fe1c0e 100644 --- a/eng/pipelines/pr-validation-pipeline.yml +++ b/eng/pipelines/pr-validation-pipeline.yml @@ -80,3 +80,90 @@ jobs: codeCoverageTool: 'Cobertura' summaryFileLocation: 'coverage.xml' displayName: 'Publish code coverage results' + +- job: PytestOnMacOS + pool: + vmImage: 'macos-latest' + + steps: + - task: UsePythonVersion@0 + inputs: + versionSpec: '3.13.5' + addToPath: true + displayName: 'Use Python 3.13 on macOS' + + - script: | + brew update + brew install cmake + displayName: 'Install CMake' + + # - script: | + # brew update + # brew install docker colima + + # # Start Colima with extra resources + # colima start --cpu 4 --memory 8 --disk 50 + + # # Optional: set Docker context (usually automatic) + # docker context use colima >/dev/null || true + + # # Confirm Docker is operational + # docker version + # docker ps + # displayName: 'Install and start Colima-based Docker' + + # - script: | + # # Pull and run SQL Server container + # docker pull mcr.microsoft.com/mssql/server:2022-latest + # docker run \ + # --name sqlserver \ + # -e ACCEPT_EULA=Y \ + # -e MSSQL_SA_PASSWORD="${DB_PASSWORD}" \ + # -p 1433:1433 \ + # -d mcr.microsoft.com/mssql/server:2022-latest + + # # Starting SQL Server container… + # for i in {1..30}; do + # docker exec sqlserver \ + # /opt/mssql-tools18/bin/sqlcmd \ + # -S localhost \ + # -U SA \ + # -P "$DB_PASSWORD" \ + # -C -Q "SELECT 1" && break + # sleep 2 + # done + # displayName: 'Pull & start SQL Server (Docker)' + # env: + # DB_PASSWORD: $(DB_PASSWORD) + + - script: | + python -m pip install --upgrade pip + pip install -r requirements.txt + displayName: 'Install Python dependencies' + + - script: | + cd mssql_python/pybind + ./build.sh + displayName: 'Build pybind bindings (.so)' + + - script: | + echo "Build successful, running tests now" + python -m pytest -v --junitxml=test-results.xml --cov=. --cov-report=xml --capture=tee-sys --cache-clear + displayName: 'Run pytest with coverage' + env: + # Temporarily Use Azure SQL Database connection string for testing purposes since Docker takes too long to install & start in MacOS + DB_CONNECTION_STRING: $(AZURE_CONNECTION_STRING) + # DB_CONNECTION_STRING: 'Driver=ODBC Driver 18 for SQL Server;Server=localhost;Database=master;Uid=SA;Pwd=$(DB_PASSWORD);TrustServerCertificate=yes' + DB_PASSWORD: $(DB_PASSWORD) + + - task: PublishTestResults@2 + condition: succeededOrFailed() + inputs: + testResultsFiles: '**/test-results.xml' + testRunTitle: 'Publish pytest results on macOS' + + - task: PublishCodeCoverageResults@1 + inputs: + codeCoverageTool: 'Cobertura' + summaryFileLocation: 'coverage.xml' + displayName: 'Publish code coverage results' diff --git a/mssql_python/libs/macos/arm64/lib/libltdl.7.dylib b/mssql_python/libs/macos/arm64/lib/libltdl.7.dylib new file mode 100644 index 000000000..c9a767572 Binary files /dev/null and b/mssql_python/libs/macos/arm64/lib/libltdl.7.dylib differ diff --git a/mssql_python/libs/macos/arm64/lib/libmsodbcsql.18.dylib b/mssql_python/libs/macos/arm64/lib/libmsodbcsql.18.dylib new file mode 100755 index 000000000..ab929d061 Binary files /dev/null and b/mssql_python/libs/macos/arm64/lib/libmsodbcsql.18.dylib differ diff --git a/mssql_python/libs/macos/arm64/lib/libodbc.2.dylib b/mssql_python/libs/macos/arm64/lib/libodbc.2.dylib new file mode 100755 index 000000000..24ce1e009 Binary files /dev/null and b/mssql_python/libs/macos/arm64/lib/libodbc.2.dylib differ diff --git a/mssql_python/libs/macos/arm64/lib/libodbcinst.2.dylib b/mssql_python/libs/macos/arm64/lib/libodbcinst.2.dylib new file mode 100755 index 000000000..83a601021 Binary files /dev/null and b/mssql_python/libs/macos/arm64/lib/libodbcinst.2.dylib differ diff --git a/mssql_python/libs/macos/arm64/share/doc/msodbcsql18/LICENSE.txt b/mssql_python/libs/macos/arm64/share/doc/msodbcsql18/LICENSE.txt new file mode 100644 index 000000000..065f11955 --- /dev/null +++ b/mssql_python/libs/macos/arm64/share/doc/msodbcsql18/LICENSE.txt @@ -0,0 +1,101 @@ +MICROSOFT SOFTWARE LICENSE TERMS +MICROSOFT ODBC DRIVER 18 FOR SQL SERVER + +These license terms are an agreement between you and Microsoft Corporation (or one of its affiliates). They apply to the software named above and any Microsoft services or software updates (except to the extent such services or updates are accompanied by new or additional terms, in which case those different terms apply prospectively and do not alter your or Microsoft�s rights relating to pre-updated software or services). IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE RIGHTS BELOW. BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. + +1. INSTALLATION AND USE RIGHTS. + + a) General. You may install and use any number of copies of the software to develop and test your applications. + + b) Third Party Software. The software may include third party applications that Microsoft, not the third party, licenses to you under this agreement. Any included notices for third party applications are for your information only. + +2. DISTRIBUTABLE CODE. The software may contain code you are permitted to distribute (i.e. make available for third parties) in applications you develop, as described in this Section. + + a) Distribution Rights. The code and test files described below are distributable if included with the software. + + i. REDIST.TXT Files. You may copy and distribute the object code form of code listed on the REDIST list in the software, if any, or listed at REDIST; + + ii. Image Library. You may copy and distribute images, graphics, and animations in the Image Library as described in the software documentation; + + iii. Sample Code, Templates, and Styles. You may copy, modify, and distribute the source and object code form of code marked as �sample�, �template�, �simple styles�, and �sketch styles�; and + + iv. Third Party Distribution. You may permit distributors of your applications to copy and distribute any of this distributable code you elect to distribute with your applications. + + b) Distribution Requirements. For any code you distribute, you must: + + i. add significant primary functionality to it in your applications; + + ii. require distributors and external end users to agree to terms that protect it and Microsoft at least as much as this agreement; and + + iii. indemnify, defend, and hold harmless Microsoft from any claims, including attorneys� fees, related to the distribution or use of your applications, except to the extent that any claim is based solely on the unmodified distributable code. + + c) Distribution Restrictions. You may not: + + i. use Microsoft�s trademarks or trade dress in your application in any way that suggests your application comes from or is endorsed by Microsoft; or + + ii. modify or distribute the source code of any distributable code so that any part of it becomes subject to any license that requires that the distributable +code, any other part of the software, or any of Microsoft�s other intellectual property be disclosed or distributed in source code form, or that others have the right to modify it. + +3. DATA COLLECTION. Some features in the software may enable collection of data from users of your applications that access or use the software. If you use these features to enable data collection in your applications, you must comply with applicable law, including getting any required user consent, and maintain a prominent privacy policy that accurately informs users about how you use, collect, and share their data. You agree to comply with all applicable provisions of the Microsoft Privacy Statement at [https://go.microsoft.com/fwlink/?LinkId=521839]. + +4. SCOPE OF LICENSE. The software is licensed, not sold. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you will not (and have no right to): + + a) work around any technical limitations in the software that only allow you to use it in certain ways; + + b) reverse engineer, decompile or disassemble the software; + + c) remove, minimize, block, or modify any notices of Microsoft or its suppliers in the software; + + d) use the software in any way that is against the law or to create or propagate malware; or + + e) share, publish, distribute, or lend the software (except for any distributable code, subject to the terms above), provide the software as a stand-alone hosted solution for others to use, or transfer the software or this agreement to any third party. + +5. EXPORT RESTRICTIONS. You must comply with all domestic and international export laws and regulations that apply to the software, which include restrictions on destinations, end users, and end use. For further information on export restrictions, visit http://aka.ms/exporting. + +6. SUPPORT SERVICES. Microsoft is not obligated under this agreement to provide any support services for the software. Any support provided is �as is�, �with all faults�, and without warranty of any kind. + +7. UPDATES. The software may periodically check for updates, and download and install them for you. You may obtain updates only from Microsoft or authorized sources. Microsoft may need to update your system to provide you with updates. You agree to receive these automatic updates without any additional notice. Updates may not include or support all existing software features, services, or peripheral devices. + +8. ENTIRE AGREEMENT. This agreement, and any other terms Microsoft may provide for supplements, updates, or third-party applications, is the entire agreement for the software. + +9. APPLICABLE LAW AND PLACE TO RESOLVE DISPUTES. If you acquired the software in the United States or Canada, the laws of the state or province where you live (or, if a business, where your principal place of business is located) govern the interpretation of this agreement, claims for its breach, and all other claims (including consumer protection, unfair competition, and tort claims), regardless of conflict of laws principles. If you acquired the software in any other country, its laws apply. If U.S. federal jurisdiction exists, you and Microsoft consent to exclusive jurisdiction and venue in the federal court in King County, Washington for all disputes heard in court. If not, you and Microsoft consent to exclusive jurisdiction and venue in the Superior Court of King County, Washington for all disputes heard in court. + +10. CONSUMER RIGHTS; REGIONAL VARIATIONS. This agreement describes certain legal rights. You may have other rights, including consumer rights, under the laws of your state or country. Separate and apart from your relationship with Microsoft, you may also have rights with respect to the party from which you acquired the software. This agreement does not change those other rights if the laws of your state or country do not permit it to do so. For example, if you acquired the software in one of the below regions, or mandatory country law applies, then the following provisions apply to you: + + a) Australia. You have statutory guarantees under the Australian Consumer Law and nothing in this agreement is intended to affect those rights. + + b) Canada. If you acquired this software in Canada, you may stop receiving updates by turning off the automatic update feature, disconnecting your device from the Internet (if and when you re-connect to the Internet, however, the software will resume checking for and installing updates), or uninstalling the software. The product documentation, if any, may also specify how to turn off updates for your specific device or software. + + c) Germany and Austria. + + i. Warranty. The properly licensed software will perform substantially as described in any Microsoft materials that accompany the software. However, Microsoft gives no contractual guarantee in relation to the licensed software. + + ii. Limitation of Liability. In case of intentional conduct, gross negligence, claims based on the Product Liability Act, as well as, in case of death or personal or physical injury, Microsoft is liable according to the statutory law. + + Subject to the foregoing clause ii., Microsoft will only be liable for slight negligence if Microsoft is in breach of such material contractual obligations, the fulfillment of which facilitate the due performance of this agreement, the breach of which would endanger the purpose of this agreement and the compliance with which a party may constantly trust in (so-called "cardinal obligations"). In other cases of slight negligence, Microsoft will not be liable for slight negligence. + +11. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED �AS IS.� YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES, OR CONDITIONS. TO THE EXTENT PERMITTED UNDER APPLICABLE LAWS, MICROSOFT EXCLUDES ALL IMPLIED WARRANTIES, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. + +12. LIMITATION ON AND EXCLUSION OF DAMAGES. IF YOU HAVE ANY BASIS FOR RECOVERING DAMAGES DESPITE THE PRECEDING DISCLAIMER OF WARRANTY, YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT, OR INCIDENTAL DAMAGES. + + This limitation applies to (a) anything related to the software, services, content (including code) on third party Internet sites, or third party applications; and (b) claims for breach of contract, warranty, guarantee, or condition; strict liability, negligence, or other tort; or any other claim; in each case to the extent permitted by applicable law. + + It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your state, province, or country may not allow the exclusion or limitation of incidental, consequential, or other damages. + +Please note: As this software is distributed in Canada, some of the clauses in this agreement are provided below in French. + +Remarque: Ce logiciel �tant distribu� au Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en fran�ais. + +EXON�RATION DE GARANTIE. Le logiciel vis� par une licence est offert � tel quel �. Toute utilisation de ce logiciel est � votre seule risque et p�ril. Microsoft n�accorde aucune autre garantie expresse. Vous pouvez b�n�ficier de droits additionnels en vertu du droit local sur la protection des consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de qualit� marchande, d�ad�quation � un usage particulier et d�absence de contrefa�on sont exclues. + +LIMITATION DES DOMMAGES-INT�R�TS ET EXCLUSION DE RESPONSABILIT� POUR LES DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs uniquement � hauteur de 5,00 $ US. Vous ne pouvez pr�tendre � aucune indemnisation pour les autres dommages, y compris les dommages sp�ciaux, indirects ou accessoires et pertes de b�n�fices. + +Cette limitation concerne: + + � tout ce qui est reli� au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers; et + + � les r�clamations au titre de violation de contrat ou de garantie, ou au titre de responsabilit� stricte, de n�gligence ou d�une autre faute dans la limite autoris�e par la loi en vigueur. + +Elle s�applique �galement, m�me si Microsoft connaissait ou devrait conna�tre l��ventualit� d�un tel dommage. Si votre pays n�autorise pas l�exclusion ou la limitation de responsabilit� pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l�exclusion ci-dessus ne s�appliquera pas � votre �gard. + +EFFET JURIDIQUE. Le pr�sent contrat d�crit certains droits juridiques. Vous pourriez avoir d�autres droits pr�vus par les lois de votre pays. Le pr�sent contrat ne modifie pas les droits que vous conf�rent les lois de votre pays si celles-ci ne le permettent pas. \ No newline at end of file diff --git a/mssql_python/libs/macos/arm64/share/doc/msodbcsql18/RELEASE_NOTES b/mssql_python/libs/macos/arm64/share/doc/msodbcsql18/RELEASE_NOTES new file mode 100644 index 000000000..dee7af855 --- /dev/null +++ b/mssql_python/libs/macos/arm64/share/doc/msodbcsql18/RELEASE_NOTES @@ -0,0 +1,465 @@ +ChangeLog (Release Notes) + +18.5.1.1 - 2025-03-17 + +Fixed: + - Fix connection recovery to obtain the active primary node when a server moves. + - Fix crashes under low-memory conditions. + +Added: + - Expose Packet Size as a connection string option. + - Support macOS 15 + - Support Azure Linux 3.0 + - Support Alpine Linux 3.20 + - Support Oracle Linux 9 + + +18.4.1.1 - 2024-07-31 + +Fixed: + - Fix crashes when receiving invalid data from server + - Fix sending of null data for fixed-length types using DAE + - Fix 10-minute delay upon disconnection after timeout + - Fix memory leak upon disconnection when an error occurs + - Fix memory leak upon reconnection with Strict encryption + - Fix intermittent crash when connecting with Strict encryption and TLS 1.3 + - Fix crashes under low-memory conditions + +Added: + - Option to accept EULA via the presence of a file + - Renamed Azure Active Directory to Microsoft Entra ID + - Support Ubuntu 24.04 + - Support Alpine 3.19 + + +18.3.3.1 - 2024-04-09 + +Fixed: + - Fix crashes when receiving invalid data from server + - Fix infinite loop when receiving invalid data from server + - Fix App Service Containers MSI Authentication + +18.3.2.1 - 2023-10-10 + +Fixed: + - Fix crashes when receiving invalid data from server + - Fix infinite loop when receiving invalid data from server + - Fix a crash when attempting to connect under low-memory conditions + + +18.3.1.1 - 2023-07-31 + +Fixed: + - Setting of Data Classification Version connection attribute + +Added: + - Improved performance via more efficient packet buffer memory allocation + - Add support for Managed Identity (MSI) Authentication for Azure Arc and Azure + Cloudshell and updated to a newer Azure App Service API version + - Support Ubuntu 23.04 + - Support Alpine 3.17 and 3.18 + +18.2.2.1 - 2023-06-13 + +Fixed: + - Fix a crash when retrieving data with AutoTranslate option off + - Fix partial writes on Linux in presence of signals + - Fix crashes when receiving invalid data from server + - Fix memory leak when processing encrypted columns + - Fix errors with long enclave queries + +18.2.1.1 - 2023-01-31 + +Fixed: + - Fix VBS-NONE enclave attestation protocol + - Fix error when retrieving numeric column with Regional=Yes + - Fix intermittent lack of error when server is stopped during bcp out operation + - Fix error when stored procedure call contains unquoted string parameter + - Fix a memory leak upon reconnect + +Added: + - Add original and redirected server names to connect errors + - Support Ubuntu 22.10 + - Support macOS 13 + - Support Alpine 3.16 + +18.1.2.1 - 2022-11-03 + +Fixed: + - Fix VBS-NONE enclave attestation protocol + - Fix error when retrieving numeric column with Regional=Yes + - Fix intermittent lack of error when server is stopped during bcp out operation + - Fix error when stored procedure call contains unquoted string parameter + + +18.1.1.1 - 2022-08-05 + +Fixed: + - Fix polling for first successful connection with MultiSubnetFailover + - Fix connecting with Strict and non-Strict encryption modes simultaneously + - Allow Azure Active Directory authentication with Strict encryption mode + - Fix idle connection resiliency reconnection when using Kerberos authentication + - Fix rare hang when using SQLBulkOperations in async mode + +Added: + - Configurable retry of query execution + - Configurable preference of IPv4 or IPv6 + - VBS-NONE enclave attestation protocol + - Wildcard matching of HostnameInCertificate + - Exact match for server certificate with ServerCertificate keyword + - TrustedConnection_UseAAD keyword controls use of Kerberos or Azure Active Directory + authentication modes + - Support TDS 8.0 ALPN + - Support TLS 1.3 (when using TDS 8.0) + - Support Ubuntu 22.04 + - Support RedHat 9 + - Support ARM64 Linux platforms: Debian 11, RedHat 8 and 9, Ubuntu 18.04, 20.04, 22.04 + + +18.0.1.1 - 2022-02-15 + +Fixed: + - Reduce excessive stack consumption when retrieving diagnostic records + - Fix Azure Active Directory Interactive authentication to re-prompt after the user + cancels the first dialog and a cached token already exists (Windows) + - More compatible federation metadata parsing + - Fix automatic idle reconnection when using Azure Active Directory authentication modes + - Remove database version check when using XA DTC to support SQL Managed Instance + +Added: + - Compatibility with OpenSSL 3.0 + - Ability to send long types as max types + - Support for TDS8 + - Compatibility extensions for SQLGetData + - Support Debian 11 + - Support Ubuntu 21.10 + - Support macOS 12 + + +17.8.1.1 - 2021/07/30 + +Fixed: + - Fix for restrictions on connection string regarding usage of UID and PWD keywords + - Fix issue with having multiple connections with different AKV credentials + +Added: + - Replication option added to the connection string + - KeepAlive and KeepAliveInterval options added to the connection string + - Support Ubuntu 21.04 + - Support Alpine 3.13 + +17.7.2.1 - 2021-03-10 + +Fixed: + - Fix issue with 404 Not Found errors when using Managed Service Identity authentication + - Fix for intermittent Encryption Not Supported errors under high multithreaded loads + - Fix for intermittent crash under high multithreaded loads + +17.7.1.1 - 2021/01/31 + +Fixed: + - Fix character encoding of VARIANT columns in BCP NATIVE mode + - Fix setting of SQL_ATTR_PARAMS_PROCESSED_PTR under specific conditions + - Fix SQLDescribeParam in FMTONLY mode for statements containing comments + - Fix an issue with federated authentication when using Okta + - Fix excessive memory usage on multi-processor systems + - Fix Azure AD authentication for some variants of Azure SQL DB + +Added: + - Ability to insert into encrypted money and smallmoney columns + - Azure AD Interactive Authentication to Azure Key Vault + - Azure AD Service Principal Authentication to Azure SQL + - Trusted endpoints for Managed HSM Azure Key Vault + - Performance improvements when inserting data + - Support for installation with MacPorts package manager + - Support Oracle Linux 7 + - Support Ubuntu 20.10 + - Support macOS 11.0 + +17.6.1.1 - 2020/07/31 + +Known Issues: + - Integrated authentication with Azure AD is subject to system library limitations; see the documentation for details + +Fixed: + - Fix dependency version of libc6 on Ubuntu/Debian to increase portability + - Added additional definitions for BCP to msodbcsql.h + +Added: + - Caching of encryption metadata for prepared statements + - Connection attribute SQL_COPT_SS_AUTOBEGINTXN to control automatically beginning a transaction after ending a previous one + - Support for federated account authentication with Azure AD + - Support for Big5 and GB locales + - Support authentication with Managed Identity for Azure App Service + - Support for TLS SNI + - Support Ubuntu 20.04 + +17.5.2.2 - 2020/04/20 (Alpine Linux only) + +Known Issues: + +Fixed: + - Fix a crash when using Always Encrypted with Secure Enclaves on Alpine Linux + +Added: + +17.5.2.1 - 2020/03/03 + +Known Issues: + +Fixed: + - Added msodbcsql.h to Alpine Linux package + +Added: + - Support authentication with Managed Identity for Azure Key Vault + +17.5.1.1 - 2020/01/31 + +Known Issues: + - Due to system library limitations, Alpine Linux supports fewer character encodings and locales + +Fixed: + - Fix AKV CMK metadata hash computation on Linux/Mac + - Fix error when loading OpenSSL 1.0.0 + - Fix conversion issues when using ISO-8859-1 and ISO-8859-2 codepages + - Fix internal library name on Mac to include version number + - Fix setting of null indicator when separate length and indicator bindings are used + +Added: + - SQL_COPT_SS_SPID connection attribute to retrieve SPID without round-trip to server + - Support for indicating EULA acceptance via debconf on Debian/Ubuntu + - Support Alpine Linux (3.10, 3.11) + - Support Oracle Linux 8 + - Support Ubuntu 19.10 + - Support macOS 10.15 + +17.4.2.1 - 2019/09/19 + +Known Issues: + +Fixed: + - Fix for an issue where process ID and application name would not be sent correctly to SQL Server (for sys.dm_exec_sessions analysis) + - Removed redundant dependency on libuuid + - Fix for a bug with sending UTF8 data to SQL Server 2019 + - Fix for a bug where locales that end in "@euro" were not being correctly detected + - Fix for XML data being returned incorrectly when fetched as an output parameter while using Always Encrypted + +Added: + - Support for additional Azure Key Vault endpoints: vault.azure.cn, vault.usgovcloudapi.net, vault.microsoftazure.de + - Support for setting data classification version + +17.4.1.1 - 2019/07/17 + +Known Issues: + +Fixed: + - Fix for intermittent hang when Multiple Active Results Sets (MARS) is enabled + - Fix connection resiliency hang when async notification is enabled + - Fix crash when retrieving diagnostic records for multithreaded connection attempts + - Fix 'Encryption not supported' upon reconnect after calling SQLGetInfo() with SQL_USER_NAME and SQL_DATA_SOURCE_READ_ONLY + - Fix COM initialization error during Azure Active Directory Interactive Authentication + - Fix SQLGetData() for multi-byte UTF8 data + - Fix retrieving length of sql_variant columns using SQLGetData() + - Fix importing of sql_variant columns containing more than 7992 bytes using bcp + - Fix sending of correct encoding to server for narrow character data + +Added: + - Support Always Encrypted with Secure Enclaves + - Support dynamic loading of OpenSSL + - Support insertion of UTF8 data for SQL Server 2019 + - Support configurable TCP Keep Alive settings + - Support Debian 10 + - Support RedHat 8 + - Support Ubuntu 19.04 + - Support connecting to named instances on Linux and Mac + +17.3.1.1 - 2019/02/15 + +Known Issues: + +Fixed: + - Fix for detection of the current environment locale + - Fix AE streaming encryption for short data values + - Fix use-after-free for encrypted DAE parameters + - Fix race conditions with multiple threads and sending data. + - Fix SQLNumResultCols when SQLExecute returns SQL_NO_DATA_FOUND + - Fix infinite loop in comment parsing + +Added: + - Support Azure Active Directory Managed Service Identity (system and user-assigned) authentication mode + - Support SuSE 15 + - Support Ubuntu 18.10 + - Support macOS 10.14 + - Minor optimizations + +17.3.0.1 - 2018/09/07 + +Known Issues: + +Fixed: + - Fix for tcp send notification event handle memory leak + - Fix redefinition issue of enum _SQL_FILESTREAM_DESIRED_ACCESS in msodbcsql.h header file + - Fix missing ACCESS_TOKEN and AUTHENTICATION related definition in msodbcsql.h header file for Linux and MAC + +Added: + - Support AE input parameter streaming + - Support XA DTC + +17.2.0.1 - 2018/06/20 + +Known Issues: + +Fixed: + - Fix Error Message about Azure Active Directory Authentication + - Fix encoding detection when locale environment variables are set differently + - Fix crash upon disconnect with connection recovery in progress + - Fix detection of connection liveness + - Fix incorrect detection of closed sockets + - Fix the infinite wait when attempting to release a statement handle during failed recovery. + +Added: + - Support Ubuntu 18.04 + - Change the dependency to dynamic libcurl loading + The libcurl for OpenSSL or NSS is required when using the Azure Key Vault or Azure Active Directory authentication. + Manually install libcurl if it is not with the system by default. + - Support Idle Connection Resiliency with ConnectRetryCount and ConnectRetryInterval keywords in connection string: + Use the SQL_COPT_SS_CONNECT_RETRY_COUNT (read only) connection attribute to retrieve the number of connection retry attempts. + Use the SQL_COPT_SS_CONNECT_RETRY_INTERVAL (read only) connection attribute to retrieve the length of the connection retry interval. + Connection will be retried at least once by default. + - Support UTF8 server encoding + - Support Data Classification feature on Azure SQL Database and SQL Server + - Support SQLBrowseConnect + +17.1.0.1 - 2018/04/06 + +Known Issues: + None + +Fixed: + - Fixed 1-second delay when calling SQLFreeHandle with MARS enabled and connection attribute "Encrypt=yes" + - Fixed truncated ADAL error messages + - Fixed an issue where inserting double into decimal field with Always Encrypted on would return data truncation error + - Fixed a warning on MacOS installer + +Added: + - Support for SQL_COPT_SS_CEKCACHETTL and SQL_COPT_SS_TRUSTEDCMKPATHS connection attributes + SQL_COPT_SS_CEKCACHETTL Allows controlling the time that the local cache of Column Encryption Keys exists, as well as flushing it + SQL_COPT_SS_TRUSTEDCMKPATHS Allows the application to restrict AE operations to only use the specified list of Column Master Keys + + - Support for loading the .rll from default location + +17.0.1.0 - 2017/01/16 +Known Issues: + None + +Fixed: + Fixed SQLGetData for encrypted varbinary(max) returned data only on first call + Conversions to persian collation in column scenarios appears to result in data corruption. + Data corruption when streaming UTF-16 or UTF-8 using SQLPutData with split octets or surrogate pairs + With async notifications enabled, driver unable to recover from failure (Windows) + High cpu consumption when ODBC async execution mode is enabled (Windows) + Occasional crash during ODBC shutdown when async execution mode is enabled (Windows) + +Added: + Performance improvement for when ODBC async execution mode is enabled + +17.0.0.5 - 2017/12/20 + +Known Issues: + - macOS: Homebrew now filters out user set environment variables. You can now install the ODBC driver on macOS using the + following command line: + HOMEBREW_NO_ENV_FILTERING=1 ACCEPT_EULA=Y brew install --no-sandbox msodbcsql + +Fixed: + - Parameters bound with any convertable C type with the same precision & scale as a numeric/decimal column are now + correctly converted to the appropriate numeric type with the specified precision and scale, and execute successfully + instead of erroring our with Operand Type Clash. + - Screen reader usability improvements in DSN Wizard and Login Dialog + - Encrypted numeric/decimal values now correctly normalize negative zeros + - Hebrew data (varchar) is no longer chopped when returned as wide chars on Linux platforms + - Fixed Invalid Descriptor Index error when using unencrypted XML column with AE in some scenarios + - Fixed function sequence error when using DAE, SqlPutData, and AE + - ODBC Driver on Windows now links directly to secur32.dll, instead of indirectly through security.dll + +Added: + - Support for macOS High Sierra + - Support for Ubuntu 17.10 + - Always Encrypted support for BCP API + - Greater than 10x performance improvement when driver converts to/from UTF-8/16. + - New connection string attribute UseFMTOnly causes driver to use legacy metadata in special cases requiring temp tables. + +-------------------------------------------------------------------------------- + +17.0.0.1 - 2017/10/06 + +Known Issues: + None + +Fixed: + msodbcsql.h - Missing types and constants were added to Linux/Mac header + CP1252 encoded files over 32MB were failing to import correctly with bcp on Linux. This has been fixed. + Resolved an issue in Linux where system time changes could result in incorrect timeouts in the driver + macOS - SQLGetInfo with SQL_DRIVER_NAME retruns .so value instead of .dylib + +Added: + Support for Debian 9 + Improved performance of driver character conversion from utf16 + Changed narrow functions of ODBC API to be sensitive to platform encoding, and not assume UTF-8. Wide encoding is expected to be UTF-16LE + Removed Microsoft online service sign-in assistant check in ODBC driver for Windows + +-------------------------------------------------------------------------------- + +13.1.9.0 - 2017/06/14 + +Known Issues: + None + +Fixed: +#10274176: DSN Wizard Help does not load CHM +#10034310: Fix buffer overrun upon UTF-8 character conversion - Now fully supports UTF-8 + +Added: +Support for Ubuntu 14.04. +Configurable driver location on Linux. Simply copy the whole driver install directory to the location of your choice after normal installation. + You must manually update the ODBCINST.INI file with the new location. + + +-------------------------------------------------------------------------------- + +13.1.8.0 - 2017/05/18 + +Known Issues: +- Due to the buffer overrun fix (#10034310, see below), UTF-8 non-ASCII + characters may cause column truncation after conversion to UTF-16. In + particular, use of SQLBulkOperations with column bindings may cause + this to occur. A future release will fully support UTF-8. See + https://docs.microsoft.com/en-us/sql/connect/odbc/linux/known-issues-in-this-version-of-the-driver + for more information. + +Fixed: +#10059224: Floating-point numbers formatted incorrectly in French locale +#10144395: SQLBindParameter input/output parameters may truncate prematurely +#10060645: Implicit cursor conversion due to comments +#10034310: Fix buffer overrun upon UTF-8 character conversion +#1080065: Fixed symbolic link creation for the RPM package + +Added: +Support for SuSE 11 SP4 and Ubuntu 17.04. + +-------------------------------------------------------------------------------- + +13.1.7.0 - 2017/04/11 +Preview Release with support for OS X 10.11 (El Capitan), macOS 10.12 (Sierra), RedHat 6, RedHat 7, Suse 12, Debian 8 +and Ubuntu 15.10, 16.04, and 16.10 + +Known Issues: +No new known issues. https://docs.microsoft.com/en-us/sql/connect/odbc/mac/known-issues-in-this-version-of-the-driver + +Fixed: + + +Added: +#1081223: Support for Azure Active Directory authentication +#9861137: Add ODBC Docs section for TVP on Linux and Mac. https://docs.microsoft.com/en-us/sql/relational-databases/ +native-client-odbc-table-valued-parameters/binding-and-data-transfer-of-table-valued-parameters-and-column-values +_____________________________________________________________________________________________________________ diff --git a/mssql_python/libs/macos/arm64/share/msodbcsql18/resources/en_US/msodbcsqlr18.rll b/mssql_python/libs/macos/arm64/share/msodbcsql18/resources/en_US/msodbcsqlr18.rll new file mode 100644 index 000000000..0f69236ee Binary files /dev/null and b/mssql_python/libs/macos/arm64/share/msodbcsql18/resources/en_US/msodbcsqlr18.rll differ diff --git a/mssql_python/libs/macos/x86_64/lib/libltdl.7.dylib b/mssql_python/libs/macos/x86_64/lib/libltdl.7.dylib new file mode 100644 index 000000000..0ad0a46d0 Binary files /dev/null and b/mssql_python/libs/macos/x86_64/lib/libltdl.7.dylib differ diff --git a/mssql_python/libs/macos/x86_64/lib/libmsodbcsql.18.dylib b/mssql_python/libs/macos/x86_64/lib/libmsodbcsql.18.dylib new file mode 100644 index 000000000..e35adbc12 Binary files /dev/null and b/mssql_python/libs/macos/x86_64/lib/libmsodbcsql.18.dylib differ diff --git a/mssql_python/libs/macos/x86_64/lib/libodbc.2.dylib b/mssql_python/libs/macos/x86_64/lib/libodbc.2.dylib new file mode 100644 index 000000000..fb0944fb1 Binary files /dev/null and b/mssql_python/libs/macos/x86_64/lib/libodbc.2.dylib differ diff --git a/mssql_python/libs/macos/x86_64/lib/libodbcinst.2.dylib b/mssql_python/libs/macos/x86_64/lib/libodbcinst.2.dylib new file mode 100644 index 000000000..1f67da990 Binary files /dev/null and b/mssql_python/libs/macos/x86_64/lib/libodbcinst.2.dylib differ diff --git a/mssql_python/libs/macos/x86_64/share/doc/msodbcsql18/LICENSE.txt b/mssql_python/libs/macos/x86_64/share/doc/msodbcsql18/LICENSE.txt new file mode 100644 index 000000000..065f11955 --- /dev/null +++ b/mssql_python/libs/macos/x86_64/share/doc/msodbcsql18/LICENSE.txt @@ -0,0 +1,101 @@ +MICROSOFT SOFTWARE LICENSE TERMS +MICROSOFT ODBC DRIVER 18 FOR SQL SERVER + +These license terms are an agreement between you and Microsoft Corporation (or one of its affiliates). They apply to the software named above and any Microsoft services or software updates (except to the extent such services or updates are accompanied by new or additional terms, in which case those different terms apply prospectively and do not alter your or Microsoft�s rights relating to pre-updated software or services). IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE RIGHTS BELOW. BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. + +1. INSTALLATION AND USE RIGHTS. + + a) General. You may install and use any number of copies of the software to develop and test your applications. + + b) Third Party Software. The software may include third party applications that Microsoft, not the third party, licenses to you under this agreement. Any included notices for third party applications are for your information only. + +2. DISTRIBUTABLE CODE. The software may contain code you are permitted to distribute (i.e. make available for third parties) in applications you develop, as described in this Section. + + a) Distribution Rights. The code and test files described below are distributable if included with the software. + + i. REDIST.TXT Files. You may copy and distribute the object code form of code listed on the REDIST list in the software, if any, or listed at REDIST; + + ii. Image Library. You may copy and distribute images, graphics, and animations in the Image Library as described in the software documentation; + + iii. Sample Code, Templates, and Styles. You may copy, modify, and distribute the source and object code form of code marked as �sample�, �template�, �simple styles�, and �sketch styles�; and + + iv. Third Party Distribution. You may permit distributors of your applications to copy and distribute any of this distributable code you elect to distribute with your applications. + + b) Distribution Requirements. For any code you distribute, you must: + + i. add significant primary functionality to it in your applications; + + ii. require distributors and external end users to agree to terms that protect it and Microsoft at least as much as this agreement; and + + iii. indemnify, defend, and hold harmless Microsoft from any claims, including attorneys� fees, related to the distribution or use of your applications, except to the extent that any claim is based solely on the unmodified distributable code. + + c) Distribution Restrictions. You may not: + + i. use Microsoft�s trademarks or trade dress in your application in any way that suggests your application comes from or is endorsed by Microsoft; or + + ii. modify or distribute the source code of any distributable code so that any part of it becomes subject to any license that requires that the distributable +code, any other part of the software, or any of Microsoft�s other intellectual property be disclosed or distributed in source code form, or that others have the right to modify it. + +3. DATA COLLECTION. Some features in the software may enable collection of data from users of your applications that access or use the software. If you use these features to enable data collection in your applications, you must comply with applicable law, including getting any required user consent, and maintain a prominent privacy policy that accurately informs users about how you use, collect, and share their data. You agree to comply with all applicable provisions of the Microsoft Privacy Statement at [https://go.microsoft.com/fwlink/?LinkId=521839]. + +4. SCOPE OF LICENSE. The software is licensed, not sold. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you will not (and have no right to): + + a) work around any technical limitations in the software that only allow you to use it in certain ways; + + b) reverse engineer, decompile or disassemble the software; + + c) remove, minimize, block, or modify any notices of Microsoft or its suppliers in the software; + + d) use the software in any way that is against the law or to create or propagate malware; or + + e) share, publish, distribute, or lend the software (except for any distributable code, subject to the terms above), provide the software as a stand-alone hosted solution for others to use, or transfer the software or this agreement to any third party. + +5. EXPORT RESTRICTIONS. You must comply with all domestic and international export laws and regulations that apply to the software, which include restrictions on destinations, end users, and end use. For further information on export restrictions, visit http://aka.ms/exporting. + +6. SUPPORT SERVICES. Microsoft is not obligated under this agreement to provide any support services for the software. Any support provided is �as is�, �with all faults�, and without warranty of any kind. + +7. UPDATES. The software may periodically check for updates, and download and install them for you. You may obtain updates only from Microsoft or authorized sources. Microsoft may need to update your system to provide you with updates. You agree to receive these automatic updates without any additional notice. Updates may not include or support all existing software features, services, or peripheral devices. + +8. ENTIRE AGREEMENT. This agreement, and any other terms Microsoft may provide for supplements, updates, or third-party applications, is the entire agreement for the software. + +9. APPLICABLE LAW AND PLACE TO RESOLVE DISPUTES. If you acquired the software in the United States or Canada, the laws of the state or province where you live (or, if a business, where your principal place of business is located) govern the interpretation of this agreement, claims for its breach, and all other claims (including consumer protection, unfair competition, and tort claims), regardless of conflict of laws principles. If you acquired the software in any other country, its laws apply. If U.S. federal jurisdiction exists, you and Microsoft consent to exclusive jurisdiction and venue in the federal court in King County, Washington for all disputes heard in court. If not, you and Microsoft consent to exclusive jurisdiction and venue in the Superior Court of King County, Washington for all disputes heard in court. + +10. CONSUMER RIGHTS; REGIONAL VARIATIONS. This agreement describes certain legal rights. You may have other rights, including consumer rights, under the laws of your state or country. Separate and apart from your relationship with Microsoft, you may also have rights with respect to the party from which you acquired the software. This agreement does not change those other rights if the laws of your state or country do not permit it to do so. For example, if you acquired the software in one of the below regions, or mandatory country law applies, then the following provisions apply to you: + + a) Australia. You have statutory guarantees under the Australian Consumer Law and nothing in this agreement is intended to affect those rights. + + b) Canada. If you acquired this software in Canada, you may stop receiving updates by turning off the automatic update feature, disconnecting your device from the Internet (if and when you re-connect to the Internet, however, the software will resume checking for and installing updates), or uninstalling the software. The product documentation, if any, may also specify how to turn off updates for your specific device or software. + + c) Germany and Austria. + + i. Warranty. The properly licensed software will perform substantially as described in any Microsoft materials that accompany the software. However, Microsoft gives no contractual guarantee in relation to the licensed software. + + ii. Limitation of Liability. In case of intentional conduct, gross negligence, claims based on the Product Liability Act, as well as, in case of death or personal or physical injury, Microsoft is liable according to the statutory law. + + Subject to the foregoing clause ii., Microsoft will only be liable for slight negligence if Microsoft is in breach of such material contractual obligations, the fulfillment of which facilitate the due performance of this agreement, the breach of which would endanger the purpose of this agreement and the compliance with which a party may constantly trust in (so-called "cardinal obligations"). In other cases of slight negligence, Microsoft will not be liable for slight negligence. + +11. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED �AS IS.� YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES, OR CONDITIONS. TO THE EXTENT PERMITTED UNDER APPLICABLE LAWS, MICROSOFT EXCLUDES ALL IMPLIED WARRANTIES, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. + +12. LIMITATION ON AND EXCLUSION OF DAMAGES. IF YOU HAVE ANY BASIS FOR RECOVERING DAMAGES DESPITE THE PRECEDING DISCLAIMER OF WARRANTY, YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT, OR INCIDENTAL DAMAGES. + + This limitation applies to (a) anything related to the software, services, content (including code) on third party Internet sites, or third party applications; and (b) claims for breach of contract, warranty, guarantee, or condition; strict liability, negligence, or other tort; or any other claim; in each case to the extent permitted by applicable law. + + It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your state, province, or country may not allow the exclusion or limitation of incidental, consequential, or other damages. + +Please note: As this software is distributed in Canada, some of the clauses in this agreement are provided below in French. + +Remarque: Ce logiciel �tant distribu� au Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en fran�ais. + +EXON�RATION DE GARANTIE. Le logiciel vis� par une licence est offert � tel quel �. Toute utilisation de ce logiciel est � votre seule risque et p�ril. Microsoft n�accorde aucune autre garantie expresse. Vous pouvez b�n�ficier de droits additionnels en vertu du droit local sur la protection des consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de qualit� marchande, d�ad�quation � un usage particulier et d�absence de contrefa�on sont exclues. + +LIMITATION DES DOMMAGES-INT�R�TS ET EXCLUSION DE RESPONSABILIT� POUR LES DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs uniquement � hauteur de 5,00 $ US. Vous ne pouvez pr�tendre � aucune indemnisation pour les autres dommages, y compris les dommages sp�ciaux, indirects ou accessoires et pertes de b�n�fices. + +Cette limitation concerne: + + � tout ce qui est reli� au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers; et + + � les r�clamations au titre de violation de contrat ou de garantie, ou au titre de responsabilit� stricte, de n�gligence ou d�une autre faute dans la limite autoris�e par la loi en vigueur. + +Elle s�applique �galement, m�me si Microsoft connaissait ou devrait conna�tre l��ventualit� d�un tel dommage. Si votre pays n�autorise pas l�exclusion ou la limitation de responsabilit� pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l�exclusion ci-dessus ne s�appliquera pas � votre �gard. + +EFFET JURIDIQUE. Le pr�sent contrat d�crit certains droits juridiques. Vous pourriez avoir d�autres droits pr�vus par les lois de votre pays. Le pr�sent contrat ne modifie pas les droits que vous conf�rent les lois de votre pays si celles-ci ne le permettent pas. \ No newline at end of file diff --git a/mssql_python/libs/macos/x86_64/share/doc/msodbcsql18/RELEASE_NOTES b/mssql_python/libs/macos/x86_64/share/doc/msodbcsql18/RELEASE_NOTES new file mode 100644 index 000000000..dee7af855 --- /dev/null +++ b/mssql_python/libs/macos/x86_64/share/doc/msodbcsql18/RELEASE_NOTES @@ -0,0 +1,465 @@ +ChangeLog (Release Notes) + +18.5.1.1 - 2025-03-17 + +Fixed: + - Fix connection recovery to obtain the active primary node when a server moves. + - Fix crashes under low-memory conditions. + +Added: + - Expose Packet Size as a connection string option. + - Support macOS 15 + - Support Azure Linux 3.0 + - Support Alpine Linux 3.20 + - Support Oracle Linux 9 + + +18.4.1.1 - 2024-07-31 + +Fixed: + - Fix crashes when receiving invalid data from server + - Fix sending of null data for fixed-length types using DAE + - Fix 10-minute delay upon disconnection after timeout + - Fix memory leak upon disconnection when an error occurs + - Fix memory leak upon reconnection with Strict encryption + - Fix intermittent crash when connecting with Strict encryption and TLS 1.3 + - Fix crashes under low-memory conditions + +Added: + - Option to accept EULA via the presence of a file + - Renamed Azure Active Directory to Microsoft Entra ID + - Support Ubuntu 24.04 + - Support Alpine 3.19 + + +18.3.3.1 - 2024-04-09 + +Fixed: + - Fix crashes when receiving invalid data from server + - Fix infinite loop when receiving invalid data from server + - Fix App Service Containers MSI Authentication + +18.3.2.1 - 2023-10-10 + +Fixed: + - Fix crashes when receiving invalid data from server + - Fix infinite loop when receiving invalid data from server + - Fix a crash when attempting to connect under low-memory conditions + + +18.3.1.1 - 2023-07-31 + +Fixed: + - Setting of Data Classification Version connection attribute + +Added: + - Improved performance via more efficient packet buffer memory allocation + - Add support for Managed Identity (MSI) Authentication for Azure Arc and Azure + Cloudshell and updated to a newer Azure App Service API version + - Support Ubuntu 23.04 + - Support Alpine 3.17 and 3.18 + +18.2.2.1 - 2023-06-13 + +Fixed: + - Fix a crash when retrieving data with AutoTranslate option off + - Fix partial writes on Linux in presence of signals + - Fix crashes when receiving invalid data from server + - Fix memory leak when processing encrypted columns + - Fix errors with long enclave queries + +18.2.1.1 - 2023-01-31 + +Fixed: + - Fix VBS-NONE enclave attestation protocol + - Fix error when retrieving numeric column with Regional=Yes + - Fix intermittent lack of error when server is stopped during bcp out operation + - Fix error when stored procedure call contains unquoted string parameter + - Fix a memory leak upon reconnect + +Added: + - Add original and redirected server names to connect errors + - Support Ubuntu 22.10 + - Support macOS 13 + - Support Alpine 3.16 + +18.1.2.1 - 2022-11-03 + +Fixed: + - Fix VBS-NONE enclave attestation protocol + - Fix error when retrieving numeric column with Regional=Yes + - Fix intermittent lack of error when server is stopped during bcp out operation + - Fix error when stored procedure call contains unquoted string parameter + + +18.1.1.1 - 2022-08-05 + +Fixed: + - Fix polling for first successful connection with MultiSubnetFailover + - Fix connecting with Strict and non-Strict encryption modes simultaneously + - Allow Azure Active Directory authentication with Strict encryption mode + - Fix idle connection resiliency reconnection when using Kerberos authentication + - Fix rare hang when using SQLBulkOperations in async mode + +Added: + - Configurable retry of query execution + - Configurable preference of IPv4 or IPv6 + - VBS-NONE enclave attestation protocol + - Wildcard matching of HostnameInCertificate + - Exact match for server certificate with ServerCertificate keyword + - TrustedConnection_UseAAD keyword controls use of Kerberos or Azure Active Directory + authentication modes + - Support TDS 8.0 ALPN + - Support TLS 1.3 (when using TDS 8.0) + - Support Ubuntu 22.04 + - Support RedHat 9 + - Support ARM64 Linux platforms: Debian 11, RedHat 8 and 9, Ubuntu 18.04, 20.04, 22.04 + + +18.0.1.1 - 2022-02-15 + +Fixed: + - Reduce excessive stack consumption when retrieving diagnostic records + - Fix Azure Active Directory Interactive authentication to re-prompt after the user + cancels the first dialog and a cached token already exists (Windows) + - More compatible federation metadata parsing + - Fix automatic idle reconnection when using Azure Active Directory authentication modes + - Remove database version check when using XA DTC to support SQL Managed Instance + +Added: + - Compatibility with OpenSSL 3.0 + - Ability to send long types as max types + - Support for TDS8 + - Compatibility extensions for SQLGetData + - Support Debian 11 + - Support Ubuntu 21.10 + - Support macOS 12 + + +17.8.1.1 - 2021/07/30 + +Fixed: + - Fix for restrictions on connection string regarding usage of UID and PWD keywords + - Fix issue with having multiple connections with different AKV credentials + +Added: + - Replication option added to the connection string + - KeepAlive and KeepAliveInterval options added to the connection string + - Support Ubuntu 21.04 + - Support Alpine 3.13 + +17.7.2.1 - 2021-03-10 + +Fixed: + - Fix issue with 404 Not Found errors when using Managed Service Identity authentication + - Fix for intermittent Encryption Not Supported errors under high multithreaded loads + - Fix for intermittent crash under high multithreaded loads + +17.7.1.1 - 2021/01/31 + +Fixed: + - Fix character encoding of VARIANT columns in BCP NATIVE mode + - Fix setting of SQL_ATTR_PARAMS_PROCESSED_PTR under specific conditions + - Fix SQLDescribeParam in FMTONLY mode for statements containing comments + - Fix an issue with federated authentication when using Okta + - Fix excessive memory usage on multi-processor systems + - Fix Azure AD authentication for some variants of Azure SQL DB + +Added: + - Ability to insert into encrypted money and smallmoney columns + - Azure AD Interactive Authentication to Azure Key Vault + - Azure AD Service Principal Authentication to Azure SQL + - Trusted endpoints for Managed HSM Azure Key Vault + - Performance improvements when inserting data + - Support for installation with MacPorts package manager + - Support Oracle Linux 7 + - Support Ubuntu 20.10 + - Support macOS 11.0 + +17.6.1.1 - 2020/07/31 + +Known Issues: + - Integrated authentication with Azure AD is subject to system library limitations; see the documentation for details + +Fixed: + - Fix dependency version of libc6 on Ubuntu/Debian to increase portability + - Added additional definitions for BCP to msodbcsql.h + +Added: + - Caching of encryption metadata for prepared statements + - Connection attribute SQL_COPT_SS_AUTOBEGINTXN to control automatically beginning a transaction after ending a previous one + - Support for federated account authentication with Azure AD + - Support for Big5 and GB locales + - Support authentication with Managed Identity for Azure App Service + - Support for TLS SNI + - Support Ubuntu 20.04 + +17.5.2.2 - 2020/04/20 (Alpine Linux only) + +Known Issues: + +Fixed: + - Fix a crash when using Always Encrypted with Secure Enclaves on Alpine Linux + +Added: + +17.5.2.1 - 2020/03/03 + +Known Issues: + +Fixed: + - Added msodbcsql.h to Alpine Linux package + +Added: + - Support authentication with Managed Identity for Azure Key Vault + +17.5.1.1 - 2020/01/31 + +Known Issues: + - Due to system library limitations, Alpine Linux supports fewer character encodings and locales + +Fixed: + - Fix AKV CMK metadata hash computation on Linux/Mac + - Fix error when loading OpenSSL 1.0.0 + - Fix conversion issues when using ISO-8859-1 and ISO-8859-2 codepages + - Fix internal library name on Mac to include version number + - Fix setting of null indicator when separate length and indicator bindings are used + +Added: + - SQL_COPT_SS_SPID connection attribute to retrieve SPID without round-trip to server + - Support for indicating EULA acceptance via debconf on Debian/Ubuntu + - Support Alpine Linux (3.10, 3.11) + - Support Oracle Linux 8 + - Support Ubuntu 19.10 + - Support macOS 10.15 + +17.4.2.1 - 2019/09/19 + +Known Issues: + +Fixed: + - Fix for an issue where process ID and application name would not be sent correctly to SQL Server (for sys.dm_exec_sessions analysis) + - Removed redundant dependency on libuuid + - Fix for a bug with sending UTF8 data to SQL Server 2019 + - Fix for a bug where locales that end in "@euro" were not being correctly detected + - Fix for XML data being returned incorrectly when fetched as an output parameter while using Always Encrypted + +Added: + - Support for additional Azure Key Vault endpoints: vault.azure.cn, vault.usgovcloudapi.net, vault.microsoftazure.de + - Support for setting data classification version + +17.4.1.1 - 2019/07/17 + +Known Issues: + +Fixed: + - Fix for intermittent hang when Multiple Active Results Sets (MARS) is enabled + - Fix connection resiliency hang when async notification is enabled + - Fix crash when retrieving diagnostic records for multithreaded connection attempts + - Fix 'Encryption not supported' upon reconnect after calling SQLGetInfo() with SQL_USER_NAME and SQL_DATA_SOURCE_READ_ONLY + - Fix COM initialization error during Azure Active Directory Interactive Authentication + - Fix SQLGetData() for multi-byte UTF8 data + - Fix retrieving length of sql_variant columns using SQLGetData() + - Fix importing of sql_variant columns containing more than 7992 bytes using bcp + - Fix sending of correct encoding to server for narrow character data + +Added: + - Support Always Encrypted with Secure Enclaves + - Support dynamic loading of OpenSSL + - Support insertion of UTF8 data for SQL Server 2019 + - Support configurable TCP Keep Alive settings + - Support Debian 10 + - Support RedHat 8 + - Support Ubuntu 19.04 + - Support connecting to named instances on Linux and Mac + +17.3.1.1 - 2019/02/15 + +Known Issues: + +Fixed: + - Fix for detection of the current environment locale + - Fix AE streaming encryption for short data values + - Fix use-after-free for encrypted DAE parameters + - Fix race conditions with multiple threads and sending data. + - Fix SQLNumResultCols when SQLExecute returns SQL_NO_DATA_FOUND + - Fix infinite loop in comment parsing + +Added: + - Support Azure Active Directory Managed Service Identity (system and user-assigned) authentication mode + - Support SuSE 15 + - Support Ubuntu 18.10 + - Support macOS 10.14 + - Minor optimizations + +17.3.0.1 - 2018/09/07 + +Known Issues: + +Fixed: + - Fix for tcp send notification event handle memory leak + - Fix redefinition issue of enum _SQL_FILESTREAM_DESIRED_ACCESS in msodbcsql.h header file + - Fix missing ACCESS_TOKEN and AUTHENTICATION related definition in msodbcsql.h header file for Linux and MAC + +Added: + - Support AE input parameter streaming + - Support XA DTC + +17.2.0.1 - 2018/06/20 + +Known Issues: + +Fixed: + - Fix Error Message about Azure Active Directory Authentication + - Fix encoding detection when locale environment variables are set differently + - Fix crash upon disconnect with connection recovery in progress + - Fix detection of connection liveness + - Fix incorrect detection of closed sockets + - Fix the infinite wait when attempting to release a statement handle during failed recovery. + +Added: + - Support Ubuntu 18.04 + - Change the dependency to dynamic libcurl loading + The libcurl for OpenSSL or NSS is required when using the Azure Key Vault or Azure Active Directory authentication. + Manually install libcurl if it is not with the system by default. + - Support Idle Connection Resiliency with ConnectRetryCount and ConnectRetryInterval keywords in connection string: + Use the SQL_COPT_SS_CONNECT_RETRY_COUNT (read only) connection attribute to retrieve the number of connection retry attempts. + Use the SQL_COPT_SS_CONNECT_RETRY_INTERVAL (read only) connection attribute to retrieve the length of the connection retry interval. + Connection will be retried at least once by default. + - Support UTF8 server encoding + - Support Data Classification feature on Azure SQL Database and SQL Server + - Support SQLBrowseConnect + +17.1.0.1 - 2018/04/06 + +Known Issues: + None + +Fixed: + - Fixed 1-second delay when calling SQLFreeHandle with MARS enabled and connection attribute "Encrypt=yes" + - Fixed truncated ADAL error messages + - Fixed an issue where inserting double into decimal field with Always Encrypted on would return data truncation error + - Fixed a warning on MacOS installer + +Added: + - Support for SQL_COPT_SS_CEKCACHETTL and SQL_COPT_SS_TRUSTEDCMKPATHS connection attributes + SQL_COPT_SS_CEKCACHETTL Allows controlling the time that the local cache of Column Encryption Keys exists, as well as flushing it + SQL_COPT_SS_TRUSTEDCMKPATHS Allows the application to restrict AE operations to only use the specified list of Column Master Keys + + - Support for loading the .rll from default location + +17.0.1.0 - 2017/01/16 +Known Issues: + None + +Fixed: + Fixed SQLGetData for encrypted varbinary(max) returned data only on first call + Conversions to persian collation in column scenarios appears to result in data corruption. + Data corruption when streaming UTF-16 or UTF-8 using SQLPutData with split octets or surrogate pairs + With async notifications enabled, driver unable to recover from failure (Windows) + High cpu consumption when ODBC async execution mode is enabled (Windows) + Occasional crash during ODBC shutdown when async execution mode is enabled (Windows) + +Added: + Performance improvement for when ODBC async execution mode is enabled + +17.0.0.5 - 2017/12/20 + +Known Issues: + - macOS: Homebrew now filters out user set environment variables. You can now install the ODBC driver on macOS using the + following command line: + HOMEBREW_NO_ENV_FILTERING=1 ACCEPT_EULA=Y brew install --no-sandbox msodbcsql + +Fixed: + - Parameters bound with any convertable C type with the same precision & scale as a numeric/decimal column are now + correctly converted to the appropriate numeric type with the specified precision and scale, and execute successfully + instead of erroring our with Operand Type Clash. + - Screen reader usability improvements in DSN Wizard and Login Dialog + - Encrypted numeric/decimal values now correctly normalize negative zeros + - Hebrew data (varchar) is no longer chopped when returned as wide chars on Linux platforms + - Fixed Invalid Descriptor Index error when using unencrypted XML column with AE in some scenarios + - Fixed function sequence error when using DAE, SqlPutData, and AE + - ODBC Driver on Windows now links directly to secur32.dll, instead of indirectly through security.dll + +Added: + - Support for macOS High Sierra + - Support for Ubuntu 17.10 + - Always Encrypted support for BCP API + - Greater than 10x performance improvement when driver converts to/from UTF-8/16. + - New connection string attribute UseFMTOnly causes driver to use legacy metadata in special cases requiring temp tables. + +-------------------------------------------------------------------------------- + +17.0.0.1 - 2017/10/06 + +Known Issues: + None + +Fixed: + msodbcsql.h - Missing types and constants were added to Linux/Mac header + CP1252 encoded files over 32MB were failing to import correctly with bcp on Linux. This has been fixed. + Resolved an issue in Linux where system time changes could result in incorrect timeouts in the driver + macOS - SQLGetInfo with SQL_DRIVER_NAME retruns .so value instead of .dylib + +Added: + Support for Debian 9 + Improved performance of driver character conversion from utf16 + Changed narrow functions of ODBC API to be sensitive to platform encoding, and not assume UTF-8. Wide encoding is expected to be UTF-16LE + Removed Microsoft online service sign-in assistant check in ODBC driver for Windows + +-------------------------------------------------------------------------------- + +13.1.9.0 - 2017/06/14 + +Known Issues: + None + +Fixed: +#10274176: DSN Wizard Help does not load CHM +#10034310: Fix buffer overrun upon UTF-8 character conversion - Now fully supports UTF-8 + +Added: +Support for Ubuntu 14.04. +Configurable driver location on Linux. Simply copy the whole driver install directory to the location of your choice after normal installation. + You must manually update the ODBCINST.INI file with the new location. + + +-------------------------------------------------------------------------------- + +13.1.8.0 - 2017/05/18 + +Known Issues: +- Due to the buffer overrun fix (#10034310, see below), UTF-8 non-ASCII + characters may cause column truncation after conversion to UTF-16. In + particular, use of SQLBulkOperations with column bindings may cause + this to occur. A future release will fully support UTF-8. See + https://docs.microsoft.com/en-us/sql/connect/odbc/linux/known-issues-in-this-version-of-the-driver + for more information. + +Fixed: +#10059224: Floating-point numbers formatted incorrectly in French locale +#10144395: SQLBindParameter input/output parameters may truncate prematurely +#10060645: Implicit cursor conversion due to comments +#10034310: Fix buffer overrun upon UTF-8 character conversion +#1080065: Fixed symbolic link creation for the RPM package + +Added: +Support for SuSE 11 SP4 and Ubuntu 17.04. + +-------------------------------------------------------------------------------- + +13.1.7.0 - 2017/04/11 +Preview Release with support for OS X 10.11 (El Capitan), macOS 10.12 (Sierra), RedHat 6, RedHat 7, Suse 12, Debian 8 +and Ubuntu 15.10, 16.04, and 16.10 + +Known Issues: +No new known issues. https://docs.microsoft.com/en-us/sql/connect/odbc/mac/known-issues-in-this-version-of-the-driver + +Fixed: + + +Added: +#1081223: Support for Azure Active Directory authentication +#9861137: Add ODBC Docs section for TVP on Linux and Mac. https://docs.microsoft.com/en-us/sql/relational-databases/ +native-client-odbc-table-valued-parameters/binding-and-data-transfer-of-table-valued-parameters-and-column-values +_____________________________________________________________________________________________________________ diff --git a/mssql_python/libs/macos/x86_64/share/msodbcsql18/resources/en_US/msodbcsqlr18.rll b/mssql_python/libs/macos/x86_64/share/msodbcsql18/resources/en_US/msodbcsqlr18.rll new file mode 100644 index 000000000..0f69236ee Binary files /dev/null and b/mssql_python/libs/macos/x86_64/share/msodbcsql18/resources/en_US/msodbcsqlr18.rll differ diff --git a/mssql_python/pybind/README.md b/mssql_python/pybind/README.md index dcd67f9b5..0674f500a 100644 --- a/mssql_python/pybind/README.md +++ b/mssql_python/pybind/README.md @@ -3,6 +3,7 @@ This README provides instructions to build the DDBC Bindings PYD for your system (supports Windows x64 and arm64). ## Building on Windows +> Supporting Windows x64 & ARM64 only 1. **PyBind11**: Install PyBind11 using pip. ```sh @@ -28,6 +29,7 @@ This README provides instructions to build the DDBC Bindings PYD for your system - Move the built PYD file to the parent `mssql_python` directory ## Building on MacOS +> Supporting Apple Silicon Chip M Series (ARM64) as well as Intel based processors (x86_64) 1. **Install CMake & PyBind11** ```bash @@ -55,7 +57,7 @@ This README provides instructions to build the DDBC Bindings PYD for your system - The script will: - Clean any existing build artifacts - - Detect system architecture (only `arm64` is supported for MacOS) + - Detect system architecture - Configure CMake with appropriate include/library paths - Compile `ddbc_bindings_mac.cpp` using CMake - Generate the `.so` file (e.g., `ddbc_bindings.cp313-arm64.so`) diff --git a/mssql_python/pybind/build.sh b/mssql_python/pybind/build.sh index f7cb924d6..9a06ad971 100755 --- a/mssql_python/pybind/build.sh +++ b/mssql_python/pybind/build.sh @@ -33,11 +33,14 @@ cd "${BUILD_DIR}" echo "[DIAGNOSTIC] Changed to build directory: ${BUILD_DIR}" # Set platform-specific flags for different architectures -if [ "$ARCH" = "x86_64" ] || [ "$ARCH" = "x64" ]; then +if [ "$ARCH" = "x86_64" ]; then + # x86_64 architecture + echo "[DIAGNOSTIC] Detected Intel Chip x86_64 architecture" CMAKE_ARCH="x86_64" - ARCH="x64" echo "[DIAGNOSTIC] Using x86_64 architecture for CMake" elif [ "$ARCH" = "arm64" ]; then + # arm64 architecture + echo "[DIAGNOSTIC] Detected Apple Silicon Chip arm64 architecture" CMAKE_ARCH="arm64" echo "[DIAGNOSTIC] Using arm64 architecture for CMake" else diff --git a/mssql_python/pybind/configure_dylibs.sh b/mssql_python/pybind/configure_dylibs.sh index bff2bebe0..17c4ea247 100755 --- a/mssql_python/pybind/configure_dylibs.sh +++ b/mssql_python/pybind/configure_dylibs.sh @@ -14,11 +14,18 @@ PROJECT_DIR="$(dirname "$SCRIPT_DIR")" # Get platform and configure paths ARCH=$(get_mac_platform_architecture) -LIB_DIR="$PROJECT_DIR/libs/macos/lib" +LIB_DIR="$PROJECT_DIR/libs/macos/$ARCH/lib" LIBMSODBCSQL_PATH="$LIB_DIR/libmsodbcsql.18.dylib" LIBODBCINST_PATH="$LIB_DIR/libodbcinst.2.dylib" LIBLTDL_PATH="$LIB_DIR/libltdl.7.dylib" +echo "Initial configuration:" +otool -L "$LIBMSODBCSQL_PATH" +otool -L "$LIBODBCINST_PATH" +if [ -f "$LIBLTDL_PATH" ]; then + otool -L "$LIBLTDL_PATH" +fi + echo "Configuring dylibs in: $LIB_DIR" # Check if the directories and files exist @@ -108,3 +115,9 @@ if [ -f "$LIBLTDL_PATH" ]; then fi echo "Library configuration complete!" +echo "Final configuration:" +otool -L "$LIBMSODBCSQL_PATH" +otool -L "$LIBODBCINST_PATH" +if [ -f "$LIBLTDL_PATH" ]; then + otool -L "$LIBLTDL_PATH" +fi diff --git a/mssql_python/pybind/ddbc_bindings_mac.cpp b/mssql_python/pybind/ddbc_bindings_mac.cpp index 85b390012..61fbedd7f 100644 --- a/mssql_python/pybind/ddbc_bindings_mac.cpp +++ b/mssql_python/pybind/ddbc_bindings_mac.cpp @@ -407,9 +407,11 @@ DriverHandle LoadDriverOrThrowException() { #ifdef _WIN32 // Windows: Build path to msodbcsql18.dll driverPath = moduleDir + "\\libs\\" + archDir + "\\msodbcsql18.dll"; -#elif defined(__APPLE__) // macOS: Build path to libmsodbcsql.18.dylib - first check in lib subdirectory - // We will only support arm64 (Apple Silicon Chip) architecture for macOS - std::string macosDriverPath = moduleDir + "/libs/macos/lib/libmsodbcsql.18.dylib"; +#elif defined(__APPLE__) + // macOS: Build path to libmsodbcsql.18.dylib - first check in lib subdirectory + // We are supporting both Intel and Apple Silicon architectures, so we need to check the architecture + std::string macosDriverPath = moduleDir + "/libs/macos/" + ARCHITECTURE + "/lib/libmsodbcsql.18.dylib"; + // Check if file exists using traditional C file functions instead of std::filesystem FILE* file = fopen(macosDriverPath.c_str(), "r"); if (file) {