Skip to content

Latest commit

 

History

History
313 lines (238 loc) · 15.5 KB

CHANGELOG.md

File metadata and controls

313 lines (238 loc) · 15.5 KB

ChangeLog

v2.13.0

New Features

  • Added support for optional binding to allow out-of-order retrieval of unbound columns with SQLGetData #236
  • Added catalog::find_table_privileges method #204
  • Added connection::allocate method to manage ODBC handles handles #147
  • Added connection::get_info method which gets string information from a connection #215
  • Added NANODBC_DEPRECATED macro #279
  • Added nanodbc::list_drivers free function #192
  • Added nanodbc::list_datasources free function #237
  • Added result::column_datatype_name method #237
  • Added result::column_decimal_digits method #202
  • Added result::has_affected_rows method #185
  • Added statement::describe_parameters method as alternative to SQLDescribeParam #225
  • Added build flag NANODBC_DISABLE_ASYNC which disables async features #142
  • Added CMake package configuration #245
  • Added column validating function to the result_impl class #206
  • Added handling of SQL_SS_UDT data as binary #148
  • Added input iterator for result class #155
  • Added public macro NANODBC_THROW_NO_SOURCE_LOCATION #184
  • Added string converter functions for more efficient processing #151
  • Added support for SQL_WLONGVARCHAR data type #211
  • Added support for SQL_SS_XML data type #238
  • Added support for std::vector of strings input #214
  • Added support for time column type #183
  • Added support for binding of binary data #219
  • Added support to get binary data as array of bytes #130
  • Added two catalog operations: list_catalogs and list_schemas #193
  • Added very minimal support for SQL Server-specific time datatypes #228
  • Allowed binding values of all intrinsic integral types #232

Changes

  • Changed COLUMN_SIZE for bytea to now equal SQL_NO_TOTAL(-4) by default #251
  • Disabled declaration of async methods if NANODBC_DISABLE_ASYNC is defined #197
  • Fixed, improved and cleaned up the family of bind functions
  • Made NANODBC_TEXT macro public #151
  • Refactored CMake options to default value OFF #260
  • Removed unused output connection string from SQLDriverConnect call #188
  • Renamed nanodbc::string_type to nanodbc::string #269
  • Renamed src directory to nanodbc #256
  • Replaced custom NANODBC_STATIC option with CMake native BUILD_SHARED_LIBS #250
  • Report SQL_HANDLE_DBC error if statement::open fails to allocate handle #178
  • Started enforcing project-wide consistent code style using clang-format #203

Bug Fixes

  • Added DB-specific tests for result::affected_rows #154
  • Fixed statement_impl::async* members which were left uninitialized if not built-in #187
  • Fixed binding of SQL_DECIMAL and SQL_NUMERIC type as character data #238
  • Fixed compilation using Xcode 11 #224
  • Fixed copying of buffer to output string for SQL_C_BINARY #129
  • Fixed correct buffer size passed to SQLGetData #150
  • Fixed incorrect size passed to SQLBindParameter while inserting batch of strings #116
  • Fixed integer conversions #176
  • Fixed issue withSAP/Sybase ASE ODBC driver not setting sqlsize to 0 when retrieving varchar columns #275
  • Fixed overflowing transaction counter #144
  • Fixed retrieving long strings from MySQL #212
  • Fixed some issues with the async support, plus add async prepare and next #170
  • Fixed to use correct wide-char count when copying from SQLGetData buffer #182
  • Handled SQLGetData return value of SQL_NO_TOTAL #161
  • Put the string lengths in their proper place #165
  • Resolved narrowing from wchar_t to char warning in VS 2017 updates #199
  • Resolved unexpected bind() with nulls set to nullptr behavior #140
  • Updated to catch up with breaking change in SQLite ODBC 0.9996 #165

Testing

  • Added integer_boundary test case for SQLite #174
  • Added AppVeyor build targeting SQL Server 2016 #194
  • Added CI job to lint and build docs #152
  • Added CI job to run clang-format 5.0 to check for code formatting errors #153
  • Added CI jobs to run static code analysis #270
  • Added MinGW build job to AppVeyor #196
  • Added SQL Server test for the Invalid Descriptor Index issue #227
  • Added SQL Server test inserting large blob using direct INSERT #186
  • Added test for std::vector<bool> workaround #267
  • Added test for integer to string conversion (SQLite only) #190
  • Added test insert and select from/into nanodbc::time (SQLite) #195
  • Added tests for PostgreSQL time/timestamp with/without time zone #229
  • Added Vertica to Travis CI #199
  • Refactored test fixture and split into common utilities base and test case base #225
  • Updated Catch to 2.4.2 #201

Acknowledgements

Denis Glazachev, Jim Hester, Billy O'Neal, Kun Ren, whizmo, Amy Troschinetz, Christopher Blaesius, detule, Diego Sogari, Jon Valvatne, Mateusz Loskot, Michael C. Grant, H1X4Dev, Rafee Memon, Sauron, Seth Shelnutt, ThermoX360, detule

v2.12.4

Resolves a possible crash with SQLDescribeParam(). In Progress OpenEdge 11 driver setting the nullableptr argument to null causes a crash. This does not affect SQLite or MySQL drivers.

Thanks to @AndrewJD79 for finding and diagnosing the issue!

v2.12.3

Unicode: Resolves a major issue with BLOB datatype handling for BINARY and TEXT columns.

v2.12.2

Resolves a major issue with BLOB datatype handling for BINARY and TEXT columns.

v2.12.1

Resolves a Travis-CI build issue.

v2.12.0

Major work undertaken by Mateusz Łoskot provides new features and a host of bug fixes throughout. Refactoring work moves nanodbc away from platform dependent wchar_t in favor of char16_t or in the case of iODBC with Unicode build enabled, char32_t. Boost.Test dropped in this version, in favor of Catch.

New Features

  • Converts usages of wstring and wchar_t to u16string and char16_t.
  • Enable iODBC + Unicode support with u32string types.
  • Add example program table_schema.cpp.
  • Add dbms_name() and dbms_version() methods to connection class.

Testing

  • Migrates tests from Boost.Test to Catch framework.
  • Enables Unicode tests on Travis CI.
  • Syncs Dockerfile and Vagrantfile; adds quick usage docs for vagrant.
  • Switch Dockerfile over to ubuntu:precise (default).
  • Improve odbc_test.cpp to cope with DBMS variations.

Bug Fixes

  • Fix compiler warnings while building with VS2015.
  • Add missing optional schema_name parameter to usage info.
  • Workaround for VS2015 bug in std::codecvt for char16_t.
  • Fix retrieval of variable-length data in parts.
  • Fix catalog::columns::is_nullable() to handle valid NULL.
  • Fix check of total of characters required to display SQL_DATE.
  • Fix SELECT result sorting with NULL values involved.

v2.11.3

  • Fixes segmentation fault issue with unixODBC on Linux systems.
  • Adds support for while(!results.end()) style iteration.

v2.11.2

  • Adds this CHANGELOG.md file. Future releases should update it accordingly!
  • Adds CHANGELOG.md helper script.

v2.11.1

New Features

  • Major thanks again to Mateusz Łoskot for all the new features!
  • Adds convenient access to catalog objects (tables, columns, primary keys).
  • Adds database_name and catalog_name methods to connection class.
  • Adds CMake option NANODBC_ENABLE_LIBCXX to enable/disable libc++ builds.
  • Adds CMake option NANODBC_EXAMPLES to enable/disable the example target.
  • Adds a latest release branch to track most recent release.

Testing

  • Massive updates to Travis CI continuous integration.
  • Adds general odbc_test to target variety of ODBC drivers.
  • Adds specific MySQL tests.
  • Updates test target organization.
    • The way the targets were designed is such that:
      • test: runs all tests, but will not build them
      • tests: builds all tests, but does not run them
      • check: builds all tests and then runs all tests
    • For individual tests then, it makes sense to use:
      • ${name}_test: runs ${name}_test, but will not build it
      • ${name}_tests: builds ${name}_test, but does not run it
      • ${name}_check: builds ${name}_test and then runs it

Bug Fixes

  • Fix test check of result::affected_rows for SELECT statement.
  • Fix result::position to make it consistent with SQL_ATTR_ROW_NUMBER.
  • Fix string object construction syntax.
  • Adds missing #include <cstring>.

Other Changes

  • More robust and friendly publish and release scripts.
  • Updates to README and documentation.
  • Adds -DUNICODE and -D_UNICODE for Visual Studio projects.
  • Adds examples based on the documentation.
  • Adds rowset_iteration example.

v2.10.0

New Features

  • Major thanks to Mateusz Łoskot for all the effort!
  • Adds Dockerfile to support testing and development.
  • Adds build.bat convenience script for Visual Studio users.
  • Adds CMake options NANODBC_INSTALL and NANODBC_TEST to control generation of those targets.

Bug Fixes

  • Fixes cmake build on OS X El Capitan.
  • Refine assert in result_impl::position with SQL_ROW_NUMBER_UNKNOWN.
  • MSBuild Platform property for 32-bit is Win32.
  • Reset null indicator before move for all columns, not just bound columns.
  • Fixes Doxygen generation of macro docs.

v2.9.1

New Features

  • Adds Vagrantfile to support testing and development.
  • Adds customizable NANODBC_ASSERT macro.
  • Adds CMake option NANODBC_STATIC (default OFF).
  • Clean up Visual C++ 64-bit warnings.

Bug Fixes

  • CMake: Fixes ODBC linking on Unix.
  • Adds documentation on is_null() limitation.
  • Write null indicator to cbdata_ if indicated by SQLGetData.

Testing

  • Initial configuration of Travis CI build matrix.

Other Changes

  • Added a Contributing section to readme.
  • Updates to SQLite tests.
  • Disable MSVC warning C4244 in tests.

v2.8.1

  • Update CMakeLists.txt to enable builds with Visual Studio. Thanks Mateusz Łoskot!
  • Add async connection support, plus extended database_error info. Thanks Yao Wei Tjong!
  • Add linking against ODBC libraries on Windows.
  • Change param_type_from_direction to throw programming_error.
  • Define NANODBC_SNPRINTF in terms of _snprintf_s for MSVC.
  • Setting CMake -DNANODBC_ODBC_VERSION option now works.

v2.7.0

  • Adds move constructors.
  • Fixes Xcode MARK comments.
  • Adds section comment banners to header file.
  • Removes throw() from header files, uses noexcept instead.
  • Adds basic and SQLite std::move test case.

v2.6.0

  • Resolves issue with decimal digits/scale and rounding. Thanks dedomilo!
  • Resolve issue with DECIMAL to string conversion. Thanks dedomilo!

v2.5.1

  • Disable default Unicode on windows.
  • Override ODBC version with NANODBC_ODBC_VERSION.

v2.4.0

  • Add statement::async_execute_direct and statement::async_complete. Thanks Jon Valvatne!
  • Add NOEXCEPT define to allow compilation under Visual Studio 2013.

v2.3.0

  • Provides optional Boost workaround for missing codecvt support in libstdc++.

v2.2.3

  • Adds minimap banners for code navigation.
  • Adds column_c_datatype().
  • Converts line endings to Unix.
  • Adds just_execute class of functions that don't create result objects.

v2.1.0

  • Adds publish script.
  • Fixes broken links in readme.
  • Use C++11's =delete where appropriate.

v2.0.1

  • Fixes many documentation issues.
  • Adds more ToDo info about updating docs.
  • Adds notes about different versions.
  • Cleans up style; removes CPP11 macros and C++03 support cruft.
  • Silence warnings and untabify.
  • Works with Unicode (std::wstring as nanodbc::string_type)
  • Using nanodbc with SQL Server Native Client works with nvarchar(max) and varchar(max) fields in Win32 and Win64.

v1.0.0

Version 1.0.0 and all commits prior are now completely unsupported.