Warning, /sdk/codevis/thirdparty/soci/CHANGES is written in an unsupported language. File is not indexed.
0001 This file contains the history of changes in the SOCI library. 0002 0003 Latest version is v4.0.3 released on 2022-02-14. 0004 0005 --- 0006 Version 4.0.3 differs from 4.0.2 in the following ways: 0007 0008 Changes affecting all or multiple backends: 0009 - Fix opening sessions from pool (#891). 0010 - Fix default backend search path (#928). 0011 - Fix build with latest glibc versions where SIGSTKSZ is not constant (#886). 0012 - Document using SOCI as a CMake subdirectory (#925). 0013 - Document using SOCI with Conan (#877). 0014 0015 Backend-specific changes: 0016 0017 - MySQL 0018 - Implement get_table_names() for MySQL (#927). 0019 - Fix MySQL backend build with MySQL >= 8 (#884). 0020 - Fix mysql_library_end() in multithreaded environment (#909). 0021 - Make mysql_soci_error::get_error_category() more useful (#902). 0022 0023 - ODBC 0024 - Fix several bugs in vector into code (#888, #892). 0025 - Fix memory leaks in case of SQLNumResultCols() failure. 0026 - Export odbc_session_backend::get_database_product() from DLL. 0027 0028 - Oracle 0029 - Add support for detecting Oracle 20 and 21 to CMake (#896). 0030 0031 - PostgreSQL 0032 - Fix compilation when "free" is redefined somewhere else. 0033 0034 - SQLite3 0035 - Fix bulk operations with vectors of size 1 in SQLite3 backend (#908). 0036 0037 - Firebird 0038 - Suppress FB memory leaks 0039 0040 0041 --- 0042 Version 4.0.2 differs from 4.0.1 in the following ways: 0043 0044 Changes affecting all or multiple backends: 0045 0046 - Fix using SOCI from CMake projects using find_package() (#854, #867, #868). 0047 - Always set indicator to i_null when no data is read from the database (#28). 0048 - Add support for building SOCI with LTO (#846). 0049 - Enable ELF visibility support (#848). 0050 - Fix building tests under macOS on ARM 64 (#852). 0051 - Fix using custom types with an explicitly null indicator (#807). 0052 - Fix using vectors of custom types for DB/2, ODBC and Oracle (#856). 0053 - Fix vectors of XML and CLOB values for DB/2, Firebird, ODBC and Oracle (#869). 0054 - Don't return i_truncated for empty strings in a vector for DB/2, ODBC. 0055 - Make unloading dynamic backends safer by delaying it if necessary (#862). 0056 - Migrate most Linux CI builds to GitHub Actions from Travis CI (#863, #865). 0057 - Fix rare deadlock in session::reconnect() (#630). 0058 - Fix all warnings in MSVS build (#858). 0059 0060 Backend-specific changes: 0061 0062 - MySQL 0063 - Add "reconnect" option (#692). 0064 0065 - ODBC 0066 - Don't show interactive ODBC dialogs when reconnecting. 0067 - Fix session::get_last_insert_id() for empty tables with SQL Server. 0068 0069 - Oracle 0070 - Implement session::get_next_sequence_value(). 0071 - Fix using default NUMBER type with rowset API (#872). 0072 - Handle reading from CLOBs that can't be read all at once. 0073 - Fix another memory leak in CLOB handling code. 0074 0075 - PostgreSQL 0076 - Fix use of quoted identifiers with colons (#840). 0077 - Fix tests compilation under macOS (#841, #864). 0078 - Fix tests with PostgreSQL 12 or later. 0079 0080 - SQLite3 0081 - Fix getting doubles from non-numeric columns. 0082 - Fix using uninitialized sqlite3_column member (#677). 0083 0084 0085 --- 0086 Version 4.0.1 differs from 4.0.0 in the following ways: 0087 0088 - Add session::is_connected() (#828). 0089 - Fix DST adjustment when reading dates from the database (#723, #799). 0090 - Make dynamic_backends::search_paths() actually available (#829). 0091 - Fix using std::vector<boost::optional<>> in query arguments (#797). 0092 - Allow using dt_blob and dt_xml with rowset API too (#786). 0093 - Fix or work around many compilation warnings with newer compilers. 0094 0095 - DB2 0096 - Fix memory leak. 0097 0098 - ODBC 0099 - Fix bug with handling of strings of exactly ODBC_MAX_COL_SIZE length (#819). 0100 - Fix opening connections when using connection pooling. 0101 0102 - Oracle 0103 - Improve detection for newer Oracle versions (#788). 0104 - Use bigger buffer for Oracle connection string length (#666). 0105 - Fix memory leak in Oracle backend when using CLOBs (XML or long strings). 0106 0107 - PostgreSQL 0108 - Fix reconnect() to use the correct connection parameters (#793). 0109 - Improve error message returned on connection loss (#828). 0110 - Fix use of uninitialized connection variable on connection failure (#822). 0111 - Fix inadvertently broken use of single row mode (#571). 0112 - Fix handling of identifiers with colons (#782). 0113 0114 - SQLite 0115 - Add support for "vfs" and "readonly" connection options (#816, #784). 0116 - Fix std::tm handling (#770). 0117 - Fix "big int" detection (#783, #785). 0118 0119 --- 0120 Version 4.0.0 differs from 3.2.3 in the following ways: 0121 0122 NOTICE: This is probably the last release compatible with C++98. 0123 0124 - Added support for C++11 and C++17 compilation modes. 0125 - Added RELEASING.md how-to and scripts/release.sh helper for release managers. 0126 - Added context of the failure in soci_error::what() which now returns a 0127 longer and more useful message. Use the new get_error_message() method to get 0128 just the brief error message which used to be returned by what(). 0129 - Added logger class to allow customizing SOCI logging operations (#245). 0130 - Added helper for generating portable DDL and DML statements (#484). 0131 - Added portable column info and other metadata queries (#480). 0132 - Added helper exchange_type_cast<>() template function as better static_cast (#301). 0133 - Added values::get_number_of_columns() as convenient accessor. 0134 - Added public macro SOCI_NORETURN and use it in declaration. 0135 - Added handling of dt_unsigned_long_long to the simple interface. 0136 - Added new data type dt_blob with accompanying simple-interface support (#361). 0137 - Added basic support for error categories. 0138 - Added failover_callback interface (#486). 0139 - Added bulk iterators interface (#487). 0140 - Added basic package exporting to CMake configuration (#503). 0141 - Added bigstring (XML and CLOB) support (#509). 0142 - Added CMake option SOCI_POSTGRESQL_NOSINLGEROWMODE with default value OFF (#594). 0143 - Adopted new layout of the source tree (#151). 0144 - Although the build configuration is based on CMake 2.8, 0145 numerous improvements have been applied to the CMake scripts. 0146 - Converted all tests to use the Catch framework. 0147 - Fixed issues with throwing from soci_error copy constructor and assignment operator (#302). 0148 - Fixed backends loading in case SOCI is built with CMAKE_DEBUG_POSTFIX set (#368). 0149 - Fixed deadlock in soci::connection_pool::try_lease function. 0150 - Fixed numerous compilation warnings using various compilers. 0151 - Fixed non-copyability of connection_pool (#478). 0152 - Fixed uniform offset for BLOB read/write operations (#508). 0153 - Fixed memory leak when reusing into and use elements. 0154 - Fixed deduction of reference in boost::fusion::for_each (#728). 0155 - Added empty_blob() and nvl() to portable utilities. 0156 - Improved handling and conversions of time and timezone information values (#316). 0157 - Improved diagnostics with included query parameter names in error messages (#318). 0158 - Improve CMake configuration for integrating SOCI as subproject (#380). 0159 - Improved locale-independent conversions of floating-point numbers to string. 0160 - Include all public headers using soci/ prefix inside SOCI itself (#239). 0161 - Migrated documentation content from HTML to Markdown (#344). 0162 - Provided error context in exceptions and richer diagnostics (#302). 0163 - Replaced assertion with raising exception in case of connection_pool::lease() failure. 0164 - Remove use of std::unary_function and std::ptr_fun deprecated in C++11/17 (#650, #751). 0165 - Split statement::clean_up into two operations bind_clean_up and clean_up (#358). 0166 - Updated the backend documentation. 0167 - Use 64-bit integer for next sequence and last insert ID values (#720). 0168 0169 - DB2 0170 -- Fixed ambiguous error handling during statement execution (#431). 0171 -- Fixed handling of NULL for strings during bulk querying (#581). 0172 -- Replaced SQLConnect with SQLDriverConnect to establish database session (#438). 0173 0174 - Firebird 0175 -- Added SOCI_FIREBIRD_EMBEDDED option to allow building with embedded library. 0176 -- Added possibility to build the backend using embedded library (libfbembed). 0177 -- Added CLOB and XML support (#578). 0178 -- Fixed too eager start of implicit transaction (#292). 0179 -- Fixed bug with writing BLOB values (#524). 0180 -- Replaced truncation of too long VARCHAR columns values with throwing exception. 0181 0182 - MySQL 0183 -- Added MySQL 8 to tested versions. 0184 -- Added get_last_insert_id function (#216). 0185 -- Added timeout support (#691). 0186 -- Fixed bug whe nusing get_affected_rows() and user defined types (#221). 0187 -- Replace throwing generic soci_error with mysql_soci_error (#613). 0188 0189 - ODBC 0190 -- Added support for ODBC driver for DB2 which is not compliant to ODBC spec (#663). 0191 -- Fixed inserting strings of length greater than 8000 bytes into database (#383, #681). 0192 -- Fixed get_affected_rows() when using FreeTDS driver. 0193 -- Fixed reading from unallocated memory (driver bug?) in ODBC with MySQL (#555). 0194 -- Fixed handling of NULL for strings during bulk querying (#581). 0195 -- Fixed memory leak of internal odbc_standard_use_type_backend buffer (#627). 0196 0197 - Oracle 0198 -- Added oraocci12 name to Oracle client look-up by CMake. 0199 -- Added NLS support for connection parameters. 0200 -- Added Oracle wallet authentication. 0201 -- Added (partial) handling of OCI_SUCCESS_WITH_INFO. 0202 -- Added handling of more error codes for error categories. 0203 -- Added failover_callback interface implementation (#486). 0204 -- Added bulk iterators interface implementation (#487). 0205 -- Added bigstring (XML and CLOB) support (#509). 0206 -- Added lazy initialization of the temporary LOB objects for Oracle. 0207 -- Fixed uniform offset for BLOB read/write operations (#508). 0208 -- Fixed connection parameters parsing to allow spaces in values (#213). 0209 -- Fixed handling of BINARY_DOUBLE in dynamic row. 0210 -- Use SQLT_BDOUBLE for floating point values instead of SQLT_FLT. 0211 0212 - PostgreSQL 0213 -- Added singlerows mode for PostgreSQL (#482). 0214 -- Added failover_callback interface implementation (#486). 0215 -- Added bulk iterators interface implementation (#487). 0216 -- Added test for the uuid data type (#420). 0217 -- Added bigstring (XML and CLOB) support (#509). 0218 -- Dropped support for PostgreSQL 7.x (#623). 0219 -- Fixed defining SOCI_POSTGRESQL_NOSINLGEROWMODE for PostgreSQL < 9 (#571). 0220 -- Fixed string to floating-point number conversions assuming "C" locale (#238). 0221 -- Fixed support for bytea across PostgreSQL versions older than 9 (#242). 0222 -- Fixed timestamp handling in UTC (#190). 0223 -- Fixed uniform offset for BLOB read/write operations (#508). 0224 -- Explicitly set extra_float_digits to 3 when using PostgreSQL >=9 in ODBC for consistency. 0225 -- Improve string to floating-point number conversion to be exact. 0226 0227 - SQLite3 0228 -- Added get_last_insert_id function (#216). 0229 -- Fixed clean up on error to enable getting detailed diagnostics (#318). 0230 -- Fixed issue numerous calls to fetch by better control when backend calls sqlite3_step (#375). 0231 -- Fixed memory leak in sqlite3_session_backend (#378). 0232 -- Fixed closing connection after obtaining error diagnostics (#381). 0233 -- Fixed affected rows count when reusing prepared statements (#428). 0234 0235 --- 0236 Version 3.2.3 differs from 3.2.2 in the following ways: 0237 0238 - Improved Boost Tuple & Fusion integration by using boost::fusion::foreach 0239 to reference each member of a sequence. Breaks compatibility with Boost 1.35 (2008). 0240 - Fixed linker error when building 64-bit target with Visual Studio. 0241 - Fixed several issues with building using Cygwin and MinGW. 0242 - Clarified documentation and examples on bulk operations. 0243 0244 - MySQL 0245 -- Fixed building against MySQL 3.23. 0246 0247 - ODBC 0248 - Improve readability of ODBC error messages. 0249 - Fixed CMake configuration of ODBC backend for Visual Studio 64-bit targets. 0250 0251 - Oracle 0252 -- We've had to disable Oracle target in the Travis CI configuration until we 0253 figure out how to setup Oracle on Travis CI directly. 0254 Therefore, this release hasn't been extensively tested against Oracle. 0255 0256 - PostgreSQL 0257 -- Added support for UUID column type (tests and docs updated). 0258 0259 - SQLite3 0260 -- Added sqlite3_soci_error exception as subclass of soci_error to provide useful 0261 exposure of specific SQLite3 error codes (tests and docs updated). 0262 0263 --- 0264 Version 3.2.2 differs from 3.2.1 in the following ways: 0265 0266 - Fixed once_temp_type destructor with noexcept(false) specifier for C++11 0267 - Fix uninitialized indicators in conversion_into_type and conversion_use_type specialisations 0268 - Fixed placeholder matching for PostgreSQL-style casts with ORM 0269 - Fixed memory leaking in use binding in case of bind/unbind sequence 0270 - Fixed sscanf formatter for MinGW/MSVC in backends 0271 - Fixed partial placeholder name matching for ORM cases 0272 - Added test for use of indicators with rowset<row> 0273 - Added test for get_affected_rows after bulk operations 0274 0275 - DB2 0276 -- Enable build and testing on Travis CI 0277 -- Fixed use type size calculation during bind/pre_use 0278 0279 - Firebird 0280 -- Enable memory cleanup to avoid leaks after binding 0281 -- Added missing C++ library headers 0282 -- Added get_affected_rows() support for bulk operations 0283 -- Fixed compilation with VS2008 0284 -- Fixed building tests with the backend built as DLL. 0285 0286 - MySQL 0287 -- Added get_affected_rows() support for bulk operations 0288 0289 - ODBC 0290 -- Always call ASCII version of ODBC function SQLGetDiagRec 0291 -- Fixed invalid condition test in assertions 0292 -- Added get_affected_rows() support for bulk operations 0293 -- Added support for (unsigned) long long vectors 0294 -- Changed mapping of SQL_BIGINT to dt_long_long in ODBC backend 0295 -- Added some trivial optimizations in statement preparation code 0296 0297 - Oracle 0298 -- Fixed missing noData_ reported in particular case when OCIStmtExecute returns success 0299 -- Improved Oracle testing setup on Travis CI 0300 0301 - PostgreSQL 0302 -- Added session::get_next_sequence_value() for PostgreSQL backend 0303 -- Added get_affected_rows() support for bulk operations 0304 -- Applied RAII and simplified error handling logic 0305 -- Fixed issue with exceptions escaping postgresql_statement_backend destructor 0306 0307 - SQLite3 0308 -- Replaced sqlite3_prepare with sqlite3_prepare_v2 0309 -- Added missing <cstdarg> header 0310 -- Fixed wrong size used in memcpy() during bulk processing 0311 -- Added get_affected_rows() support for bulk operations 0312 -- Added shared_cache=true propery to control SQLITE_OPEN_SHAREDCACHE flag 0313 0314 - Documentation 0315 -- Corrected usage examples 0316 0317 - Building 0318 -- Updated CMake for Oracle 12g 0319 -- Restructured and improved Travis CI setup to do single build per backend 0320 -- Fixed wrong GCC_VERSION used in CMake config for commandline-overriden GCC 0321 -- Allows CMake to find 32-bit DB2 on Windows x64 0322 -- Removed redundant Oracle libclntsh library lookup 0323 -- Fixed SQLITE3_LIBRARIES handling by find_package_handle_standard_args 0324 0325 --- 0326 Version 3.2.1 differs from 3.2.0 in the following ways: 0327 0328 - Fixed binding of Oracle type NUMBER(9,0) to C++ int, by Tomasz Olszewski 0329 - Fixed Oracle client library detection on Windows, by Tomasz Olszewski 0330 - Fixed PostgreSQL issue with deallocate_prepared_statement called for non-existing statement 0331 - Fixed prepared insert statements with custom data types support, by Tomasz Olszewski 0332 - Fixed recent improvements in x:=y name binding, by Poul Bondo 0333 - Fixed query transformation assignment in pooled sessions, by Stefan Chrobot 0334 - Cleaned up SOCI_POSTGRESQL_NOPARAMS and related options in code and documentation 0335 - Dropped patch (micro) version number from documentation URLs on the website 0336 0337 --- 0338 Version 3.2.0 differs from 3.1.0 in the following ways: 0339 0340 - SOCI is now organization at GitHub 0341 -- Git repository moved to https://github.com/SOCI/soci 0342 -- Opened new bug tracker (SF.net tracker is read-only) 0343 -- Opened Wiki for FAQ and development articles 0344 -- Website, mailing lists and downloads remain on SourceForge.net 0345 -- Applied GitFlow branching model 0346 -- Added package maintenance repository https://github.com/SOCI/soci-pkg 0347 0348 - Core 0349 -- Added connection_parameters to enable support for session options used by core, backends or low-level API. 0350 -- Added user-defined query transformation support based on function, functor and lambda 0351 -- Fixed missing connection check and backend setup ensured for session 0352 -- Fixed backend initialization when used with connection pool (Core) 0353 -- Fixed memory leaks on exception thrown during statement preparation stage 0354 0355 - DB2 0356 -- Added new backend for IBM DB2 0357 0358 - Firebird 0359 -- Fixed bug in repeated statement execution 0360 -- Fixed issues with input parameter binding 0361 -- Fixed connection string parsing to handle possible white-spaces 0362 -- Fixed issues with C++ type unsigned long 0363 -- Fixed reading negative values into C++ type double 0364 -- Added option to fetch numeric/decimal data into string of characters 0365 -- Added CMake configuration 0366 -- Updated tests 0367 -- Continued regular testing on Windows and Unix platforms 0368 0369 - MySQL 0370 -- Replaced use of type=InnoDB with engine=InnoDB 0371 -- Improved CMake configuration 0372 0373 - ODBC 0374 -- Added connection_parameters option ODBC_OPTION_DRIVER_COMPLETE 0375 -- Fixed issues in handling C++ types int and long on 64-bit architectures 0376 -- Added missing CMake configuration for tests 0377 -- Continued regular testing on Windows and Unix platforms 0378 0379 - Oracle 0380 -- Implemented statement::get_affected_rows() operation 0381 -- Use OCI_THREADED and OCI_ENV_NO_MUTEX with OCIEnvCreate 0382 -- Added numerous fixes and improvements in tests 0383 -- Added option to fetch numeric/decimal data into string of characters 0384 -- Fixed issues in binding procedure IN/OUT parameters 0385 0386 - PostgreSQL 0387 -- Add reading of BYTEA data into std::string (not fully-featured binary data support yet) 0388 -- Add JSON data type support available in PostgreSQL 9.2+ 0389 -- Fixed incorrect assertion in postgresql::get_error_details 0390 -- Fixed premature deallocation of prepared statements 0391 -- Fixed servers-side memory leak in prepared statements 0392 -- Fixed memory leak of PGresult on exception thrown 0393 -- Fixed isues in parsing complex PL/PSQL functions 0394 0395 - SQLite3 0396 -- Implemented statement::get_affected_rows() operation 0397 -- Fixed handling of database file path with spaces 0398 0399 - Building, testing and installation 0400 -- Marked Makefile.basic as deprecated (maintainer wanted) 0401 -- Cleaned numerous compilation warnings reported by various compilers 0402 -- Improved compilation using latest version of clang 0403 -- Added numerous improvements in CMake configuration 0404 -- Added SOCI_STATIC option to enable/disable static libraries build 0405 -- Fixed issues with ignored -DWITH_<dependency> options 0406 -- Fixed FindMySQL.cmake to allow use of mysqlclient from custom location 0407 -- Added support of SQLITE_ROOT_DIR variable to FindSQLite3.cmake module 0408 -- Fixed and tested CMake configuration on OSX 0409 -- Fixed and tested CMake configuration on FreeBSD 0410 -- Fixed and tested CMake configuration to use with Ninja 0411 -- Fixed building using Visual Studio 2010 0412 -- Added support for building using Visual Studio 2012 0413 -- Set up SOCI continuous integration at travis-ci.org 0414 -- Added Debian packaging support to soci-pkg repository 0415 -- Added Fedora/CentOS/RedHat packaging support to soci-pkg repository 0416 0417 - Documentation 0418 -- Review and update to catch up with current status quo 0419 -- Updated code examples 0420 -- Start maintenance and hosting of SOCI documentation per released version 0421 0422 --- 0423 Version 3.1.0 differs from 3.0.0 in the following ways: 0424 0425 - Added Ada language binding 0426 0427 - Migraded build system from GNU Autotools and Visual Studio projects to CMake 0428 0429 - CMake build tested with Visual Studio, GCC and clang 0430 0431 - Incorporated a compromise for naming versioned shared libraries 0432 0433 - Enhanced and improved integration with Boost libraries: 0434 -- Boost.DateTime 0435 -- Boost.Fusion 0436 -- Boost.Optional 0437 -- Boost.Tuple 0438 0439 - Bug fixes and improvements in core and backends: 0440 -- Added soci::values::get_properties accessor useful for composing soci::type_conversion 0441 -- Export advanced API of backend loader from DLL. 0442 -- Added static factory registration functions for backends 0443 -- Added get_affected_rows operation 0444 -- Fixed thread-safety of connection pool under Windows 0445 -- Fixed bug with droping const qualifiers when binding to std::vector<soci::indicator> 0446 -- Fixed bug in default initialization of an object of const backend_factory wihch requires user-provided default constructor (see C++03/C++0x) 0447 -- Fixes for 64-bit builds 0448 -- Removed redundant exchange_traits breaking ODR on LP64 0449 -- Better ODBC support 0450 -- Type conversion support for unsigned integer types 0451 -- Bug ID:1971436 - incorrect rowset copy operations 0452 -- Bug ID:2010367 - memory leak (ODBC) 0453 -- Bug ID:2010409 - invalid memory allocaton in define by position (ODBC) 0454 -- Bug ID:2021243 - long long type support in Visual C++ 0455 -- Patch ID:2483066 - 64bit Linux and 64bit integer submitted 0456 -- Patch ID:2809809 - Fix build with GCC 4.4 0457 -- Patch ID:2809810 - Fix SQLite3 build with GCC 4.3 0458 -- Patch ID:2581206 - Windows unicode application 0459 -- Patch ID:3058275 - install target for cmake build submitted 0460 -- Patch ID:3069375 - use $(prefix)/lib64 on AMD64 platforms. 0461 -- Improved performance while accessing query results (MySQL) 0462 -- Bug fixes for PROCEDURE support (MySQL) 0463 -- Removed throw statements from mysql_rowid_backend and mysql_blob_backend destructors (MySQL) 0464 -- Verify that prepared statements survive session::reconnect() operatoin (MySQL) 0465 -- Improved support for time and date (MySQL, PostgreSQL) 0466 -- Fixed bug with strings of length exceeding 255 characters (ODBC) 0467 -- Improved interpretation of the connect string (Oracle) 0468 -- Added handling of unsigned long long (Oracle, SQLite3, PostgreSQL) 0469 -- Fixes in integral types support (PostgreSQL) 0470 -- Support for colon-casts (PostgreSQL) 0471 -- Added possibility for use BLOB (PostgreSQL) 0472 -- Added support for connection property "synchronous=on|off" (SQLite3) 0473 -- Improved BLOB data handling (SQLite3) 0474 -- Improved boolean type suppport (SQLite3) 0475 -- Session timeout support (SQLite3) 0476 -- Improved tests clean-up (SQLite3) 0477 -- Added missing typedef of sqlite3_destructor_type which has been defined in sqlite3.h but since 3.3.10 (see comment for reference to SQLite ticket) 0478 0479 - Updated tests for various backends and SQL data types 0480 0481 - Migrated from CVS to Git repository 0482 0483 - Changed naming convensions and style across all the source code 0484 0485 - Firebird backend removed from official release as not actively maintained. Available in the Git repository. 0486 0487 --- 0488 Version 3.0.0 differs from 2.2.0 in the following ways: 0489 0490 - Exposed the session's locale object. 0491 0492 - Moved the "no data" flag from indicators to statement. 0493 0494 - Allowed const objects as "use" elements. 0495 0496 - Added connection mode for Oracle. 0497 0498 - Added RAII support for transactions. 0499 0500 - Added the open/close/reconnect functionality. 0501 0502 - Added support for long long as a fundamental data type. 0503 0504 - Unified column names for dynamic rowset description, to overcome 0505 differences between database servers. 0506 0507 - Added the "simple" interface for interfacing from other languages. 0508 0509 - Added thread-safe connection pool. 0510 0511 - Added integrated support for Boost data types: gregorian_date, 0512 fusion and tuple. 0513 0514 - Added dynamic backend loading. 0515 0516 - Changed the naming convention to comply with Boost recommendations. 0517 0518 --- 0519 Version 2.2.0 differs from 2.1.0 in the following ways: 0520 0521 - Added true support for statement preparation with PostgreSQL. 0522 0523 - Added support for the stream-like extraction from Row. 0524 0525 - Added STL-compatible iterator interface for select statements. 0526 0527 - Refactored the set of common tests to validate core library functionality 0528 independently on the target database server. 0529 0530 - Introduced new backends for MS SQL Server (via ODBC) and Firebird. 0531 0532 - Provided complete build system for both Unix (autotools) and 0533 Windows (solution and project files for MSVC++). 0534 0535 --- 0536 Version 2.1.0 differs from 2.0.1 in the following ways: 0537 0538 - Added two additional backends: MySQL and SQLite3 0539 0540 - Restructured the source code layout so that the whole library was broken 0541 into the "core" part and independent "backends", each in its own 0542 directory together with appropriate tests. 0543 0544 - Provided basic Makefiles for static and shared libraries on 0545 Linux-compatible systems. 0546 0547 - Added the general class and function reference to the documentation. 0548 0549 --- 0550 Version 2.0.1 differs from 2.0.0 in the following ways: 0551 0552 - Corrected some typos in documentation. 0553 0554 - Corrected handling of dynamic rowset description for those backends 0555 which do not have dedicated description functionality. 0556 0557 - A bug fix to correctly handle std::tm in the Oracle backend. 0558 0559 - A bug fix to correctly handle object relational mapping when 0560 Values::set<T>() and Values::get<T>() are called where T is a 0561 TypeConversion-based type. 0562 0563 --- 0564 Version 2.0.0 differs from 1.2.1 in the following ways: 0565 0566 - The whole library was internally re-architectured to allow operation 0567 with many different backends. The top-level part of the library 0568 (the syntax layer) provides essentially the same interface as in previous 0569 versions of the library, but it can work with independent (and dynamically 0570 selected) backends, possibly targeting different database engines. 0571 As a prove of concept (and to encourage developments of new backends), 0572 the PostgreSQL backend was provided in addition to the Oracle one. 0573 During this re-architecturing, some minor bugs were fixed as well. 0574 0575 - The old Boost-style license was changed to the new (v. 1.0) Boost license. 0576 0577 --- 0578 The version 1.2.1 differs from 1.2.0 in the following ways: 0579 0580 - A bug was fixed that caused compile errors on MS VC++ compiler. 0581 0582 --- 0583 The version 1.2.0 differs from 1.1.0 in the following ways: 0584 0585 - A memory leak when reading into Row objects was fixed. 0586 0587 - Bulk (array) operations were introduced for high-performance 0588 applications, where the number of network round-trips can be 0589 significantly reduced by operating on whole arrays (vectors). 0590 0591 --- 0592 The version 1.1.0 differs from 1.0.1 in the following ways: 0593 0594 - Explicit support for calling stored procedures was added. 0595 0596 - Dynamic row recognition (type discovery) was added. 0597 0598 - Support for user-defined data types was added.