mirror of
https://github.com/Xahau/xahaud.git
synced 2025-12-06 17:27:52 +00:00
384 lines
15 KiB
Plaintext
384 lines
15 KiB
Plaintext
This file contains the history of changes in the SOCI library.
|
|
|
|
---
|
|
Version 4.0.0 differs from 3.2.x in the following ways:
|
|
|
|
- Provide context of the failure in soci_error::what() which now returns a
|
|
longer and more useful message. Use the new get_error_message() method to get
|
|
just the brief error message which used to be returned by what().
|
|
|
|
- Firebird
|
|
-- Add SOCI_FIREBIRD_EMBEDDED option to allow building with embedded library.
|
|
-- Throw an exception instead of truncating too long VARCHAR columns values.
|
|
|
|
- ODBC/MS SQL
|
|
-- Fix inserting strings of length greater than 8000 bytes into database.
|
|
|
|
- Oracle
|
|
-- Use SQLT_BDOUBLE for floating point values instead of SQLT_FLT.
|
|
|
|
---
|
|
Version 3.2.3 differs from 3.2.2 in the following ways:
|
|
|
|
- Improved Boost Tuple & Fusion integration by using boost::fusion::foreach
|
|
to reference each member of a sequence. Breaks compatibility with Boost 1.35 (2008).
|
|
- Fixed linker error when building 64-bit target with Visual Studio.
|
|
- Fixed several issues with building using Cygwin and MinGW.
|
|
- Clarified documentation and examples on bulk operations.
|
|
|
|
- MySQL
|
|
-- Fixed building against MySQL 3.23.
|
|
|
|
- ODBC
|
|
- Improve readability of ODBC error messages.
|
|
- Fixed CMake configuration of ODBC backend for Visual Studio 64-bit targets.
|
|
|
|
- Oracle
|
|
-- We've had to disable Oracle target in the Travis CI configuration until we
|
|
figure out how to setup Oracle on Travis CI directly.
|
|
Therefore, this release hasn't been extensively tested against Oracle.
|
|
|
|
- PostgreSQL
|
|
-- Added support for UUID column type (tests and docs updated).
|
|
|
|
- SQLite3
|
|
-- Added sqlite3_soci_error exception as subclass of soci_error to provide useful
|
|
exposure of specific SQLite3 error codes (tests and docs updated).
|
|
|
|
---
|
|
Version 3.2.2 differs from 3.2.1 in the following ways:
|
|
|
|
- Fixed once_temp_type destructor with noexcept(false) specifier for C++11
|
|
- Fix uninitialized indicators in conversion_into_type and conversion_use_type specialisations
|
|
- Fixed placeholder matching for PostgreSQL-style casts with ORM
|
|
- Fixed memory leaking in use binding in case of bind/unbind sequence
|
|
- Fixed sscanf formatter for MinGW/MSVC in backends
|
|
- Fixed partial placeholder name matching for ORM cases
|
|
- Added test for use of indicators with rowset<row>
|
|
- Added test for get_affected_rows after bulk operations
|
|
|
|
- DB2
|
|
-- Enable build and testing on Travis CI
|
|
-- Fixed use type size calculation during bind/pre_use
|
|
|
|
- Firebird
|
|
-- Enable memory cleanup to avoid leaks after binding
|
|
-- Added missing C++ library headers
|
|
-- Added get_affected_rows() support for bulk operations
|
|
-- Fixed compilation with VS2008
|
|
-- Fixed building tests with the backend built as DLL.
|
|
|
|
- MySQL
|
|
-- Added get_affected_rows() support for bulk operations
|
|
|
|
- ODBC
|
|
-- Always call ASCII version of ODBC function SQLGetDiagRec
|
|
-- Fixed invalid condition test in assertions
|
|
-- Added get_affected_rows() support for bulk operations
|
|
-- Added support for (unsigned) long long vectors
|
|
-- Changed mapping of SQL_BIGINT to dt_long_long in ODBC backend
|
|
-- Added some trivial optimizations in statement preparation code
|
|
|
|
- Oracle
|
|
-- Fixed missing noData_ reported in particular case when OCIStmtExecute returns success
|
|
-- Improved Oracle testing setup on Travis CI
|
|
|
|
- PostgreSQL
|
|
-- Added session::get_next_sequence_value() for PostgreSQL backend
|
|
-- Added get_affected_rows() support for bulk operations
|
|
-- Applied RAII and simplified error handling logic
|
|
-- Fixed issue with exceptions escaping postgresql_statement_backend destructor
|
|
|
|
- SQLite3
|
|
-- Replaced sqlite3_prepare with sqlite3_prepare_v2
|
|
-- Added missing <cstdarg> header
|
|
-- Fixed wrong size used in memcpy() during bulk processing
|
|
-- Added get_affected_rows() support for bulk operations
|
|
-- Added shared_cache=true propery to control SQLITE_OPEN_SHAREDCACHE flag
|
|
|
|
- Documentation
|
|
-- Corrected usage examples
|
|
|
|
- Building
|
|
-- Updated CMake for Oracle 12g
|
|
-- Restructured and improved Travis CI setup to do single build per backend
|
|
-- Fixed wrong GCC_VERSION used in CMake config for commandline-overriden GCC
|
|
-- Allows CMake to find 32-bit DB2 on Windows x64
|
|
-- Removed redundant Oracle libclntsh library lookup
|
|
-- Fixed SQLITE3_LIBRARIES handling by find_package_handle_standard_args
|
|
|
|
---
|
|
Version 3.2.1 differs from 3.2.0 in the following ways:
|
|
|
|
- Fixed binding of Oracle type NUMBER(9,0) to C++ int, by Tomasz Olszewski
|
|
- Fixed Oracle client library detection on Windows, by Tomasz Olszewski
|
|
- Fixed PostgreSQL issue with deallocate_prepared_statement called for non-existing statement
|
|
- Fixed prepared insert statements with custom data types support, by Tomasz Olszewski
|
|
- Fixed recent improvements in x:=y name binding, by Poul Bondo
|
|
- Fixed query transformation assignment in pooled sessions, by Stefan Chrobot
|
|
- Cleaned up SOCI_POSTGRESQL_NOPARAMS and related options in code and documentation
|
|
- Dropped patch (micro) version number from documentation URLs on the website
|
|
|
|
---
|
|
Version 3.2.0 differs from 3.1.0 in the following ways:
|
|
|
|
- SOCI is now organization at GitHub
|
|
-- Git repository moved to https://github.com/SOCI/soci
|
|
-- Opened new bug tracker (SF.net tracker is read-only)
|
|
-- Opened Wiki for FAQ and development articles
|
|
-- Website, mailing lists and downloads remain on SourceForge.net
|
|
-- Applied GitFlow branching model
|
|
-- Added package maintenance repository https://github.com/SOCI/soci-pkg
|
|
|
|
- Core
|
|
-- Added connection_parameters to enable support for session options used by core, backends or low-level API.
|
|
-- Added user-defined query transformation support based on function, functor and lambda
|
|
-- Fixed missing connection check and backend setup ensured for session
|
|
-- Fixed backend initialization when used with connection pool (Core)
|
|
-- Fixed memory leaks on exception thrown during statement preparation stage
|
|
|
|
- DB2
|
|
-- Added new backend for IBM DB2
|
|
|
|
- Firebird
|
|
-- Fixed bug in repeated statement execution
|
|
-- Fixed issues with input parameter binding
|
|
-- Fixed connection string parsing to handle possible white-spaces
|
|
-- Fixed issues with C++ type unsigned long
|
|
-- Fixed reading negative values into C++ type double
|
|
-- Added option to fetch numeric/decimal data into string of characters
|
|
-- Added CMake configuration
|
|
-- Updated tests
|
|
-- Continued regular testing on Windows and Unix platforms
|
|
|
|
- MySQL
|
|
-- Replaced use of type=InnoDB with engine=InnoDB
|
|
-- Improved CMake configuration
|
|
|
|
- ODBC
|
|
-- Added connection_parameters option ODBC_OPTION_DRIVER_COMPLETE
|
|
-- Fixed issues in handling C++ types int and long on 64-bit architectures
|
|
-- Added missing CMake configuration for tests
|
|
-- Continued regular testing on Windows and Unix platforms
|
|
|
|
- Oracle
|
|
-- Implemented statement::get_affected_rows() operation
|
|
-- Use OCI_THREADED and OCI_ENV_NO_MUTEX with OCIEnvCreate
|
|
-- Added numerous fixes and improvements in tests
|
|
-- Added option to fetch numeric/decimal data into string of characters
|
|
-- Fixed issues in binding procedure IN/OUT parameters
|
|
|
|
- PostgreSQL
|
|
-- Add reading of BYTEA data into std::string (not fully-featured binary data support yet)
|
|
-- Add JSON data type support available in PostgreSQL 9.2+
|
|
-- Fixed incorrect assertion in postgresql::get_error_details
|
|
-- Fixed premature deallocation of prepared statements
|
|
-- Fixed servers-side memory leak in prepared statements
|
|
-- Fixed memory leak of PGresult on exception thrown
|
|
-- Fixed isues in parsing complex PL/PSQL functions
|
|
|
|
- SQLite3
|
|
-- Implemented statement::get_affected_rows() operation
|
|
-- Fixed handling of database file path with spaces
|
|
|
|
- Building, testing and installation
|
|
-- Marked Makefile.basic as deprecated (maintainer wanted)
|
|
-- Cleaned numerous compilation warnings reported by various compilers
|
|
-- Improved compilation using latest version of clang
|
|
-- Added numerous improvements in CMake configuration
|
|
-- Added SOCI_STATIC option to enable/disable static libraries build
|
|
-- Fixed issues with ignored -DWITH_<dependency> options
|
|
-- Fixed FindMySQL.cmake to allow use of mysqlclient from custom location
|
|
-- Added support of SQLITE_ROOT_DIR variable to FindSQLite3.cmake module
|
|
-- Fixed and tested CMake configuration on OSX
|
|
-- Fixed and tested CMake configuration on FreeBSD
|
|
-- Fixed and tested CMake configuration to use with Ninja
|
|
-- Fixed building using Visual Studio 2010
|
|
-- Added support for building using Visual Studio 2012
|
|
-- Set up SOCI continuous integration at travis-ci.org
|
|
-- Added Debian packaging support to soci-pkg repository
|
|
-- Added Fedora/CentOS/RedHat packaging support to soci-pkg repository
|
|
|
|
- Documentation
|
|
-- Review and update to catch up with current status quo
|
|
-- Updated code examples
|
|
-- Start maintenance and hosting of SOCI documentation per released version
|
|
|
|
---
|
|
Version 3.1.0 differs from 3.0.0 in the following ways:
|
|
|
|
- Added Ada language binding
|
|
|
|
- Migraded build system from GNU Autotools and Visual Studio projects to CMake
|
|
|
|
- CMake build tested with Visual Studio, GCC and clang
|
|
|
|
- Incorporated a compromise for naming versioned shared libraries
|
|
|
|
- Enhanced and improved integration with Boost libraries:
|
|
-- Boost.DateTime
|
|
-- Boost.Fusion
|
|
-- Boost.Optional
|
|
-- Boost.Tuple
|
|
|
|
- Bug fixes and improvements in core and backends:
|
|
-- Added soci::values::get_properties accessor useful for composing soci::type_conversion
|
|
-- Export advanced API of backend loader from DLL.
|
|
-- Added static factory registration functions for backends
|
|
-- Added get_affected_rows operation
|
|
-- Fixed thread-safety of connection pool under Windows
|
|
-- Fixed bug with droping const qualifiers when binding to std::vector<soci::indicator>
|
|
-- Fixed bug in default initialization of an object of const backend_factory wihch requires user-provided default constructor (see C++03/C++0x)
|
|
-- Fixes for 64-bit builds
|
|
-- Removed redundant exchange_traits breaking ODR on LP64
|
|
-- Better ODBC support
|
|
-- Type conversion support for unsigned integer types
|
|
-- Bug ID:1971436 - incorrect rowset copy operations
|
|
-- Bug ID:2010367 - memory leak (ODBC)
|
|
-- Bug ID:2010409 - invalid memory allocaton in define by position (ODBC)
|
|
-- Bug ID:2021243 - long long type support in Visual C++
|
|
-- Patch ID:2483066 - 64bit Linux and 64bit integer submitted
|
|
-- Patch ID:2809809 - Fix build with GCC 4.4
|
|
-- Patch ID:2809810 - Fix SQLite3 build with GCC 4.3
|
|
-- Patch ID:2581206 - Windows unicode application
|
|
-- Patch ID:3058275 - install target for cmake build submitted
|
|
-- Patch ID:3069375 - use $(prefix)/lib64 on AMD64 platforms.
|
|
-- Improved performance while accessing query results (MySQL)
|
|
-- Bug fixes for PROCEDURE support (MySQL)
|
|
-- Removed throw statements from mysql_rowid_backend and mysql_blob_backend destructors (MySQL)
|
|
-- Verify that prepared statements survive session::reconnect() operatoin (MySQL)
|
|
-- Improved support for time and date (MySQL, PostgreSQL)
|
|
-- Fixed bug with strings of length exceeding 255 characters (ODBC)
|
|
-- Improved interpretation of the connect string (Oracle)
|
|
-- Added handling of unsigned long long (Oracle, SQLite3, PostgreSQL)
|
|
-- Fixes in integral types support (PostgreSQL)
|
|
-- Support for colon-casts (PostgreSQL)
|
|
-- Added possibility for use BLOB (PostgreSQL)
|
|
-- Added support for connection property "synchronous=on|off" (SQLite3)
|
|
-- Improved BLOB data handling (SQLite3)
|
|
-- Improved boolean type suppport (SQLite3)
|
|
-- Session timeout support (SQLite3)
|
|
-- Improved tests clean-up (SQLite3)
|
|
-- 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)
|
|
|
|
- Updated tests for various backends and SQL data types
|
|
|
|
- Migrated from CVS to Git repository
|
|
|
|
- Changed naming convensions and style across all the source code
|
|
|
|
- Firebird backend removed from official release as not actively maintained. Available in the Git repository.
|
|
|
|
---
|
|
Version 3.0.0 differs from 2.2.0 in the following ways:
|
|
|
|
- Exposed the session's locale object.
|
|
|
|
- Moved the "no data" flag from indicators to statement.
|
|
|
|
- Allowed const objects as "use" elements.
|
|
|
|
- Added connection mode for Oracle.
|
|
|
|
- Added RAII support for transactions.
|
|
|
|
- Added the open/close/reconnect functionality.
|
|
|
|
- Added support for long long as a fundamental data type.
|
|
|
|
- Unified column names for dynamic rowset description, to overcome
|
|
differences between database servers.
|
|
|
|
- Added the "simple" interface for interfacing from other languages.
|
|
|
|
- Added thread-safe connection pool.
|
|
|
|
- Added integrated support for Boost data types: gregorian_date,
|
|
fusion and tuple.
|
|
|
|
- Added dynamic backend loading.
|
|
|
|
- Changed the naming convention to comply with Boost recommendations.
|
|
|
|
---
|
|
Version 2.2.0 differs from 2.1.0 in the following ways:
|
|
|
|
- Added true support for statement preparation with PostgreSQL.
|
|
|
|
- Added support for the stream-like extraction from Row.
|
|
|
|
- Added STL-compatible iterator interface for select statements.
|
|
|
|
- Refactored the set of common tests to validate core library functionality
|
|
independently on the target database server.
|
|
|
|
- Introduced new backends for MS SQL Server (via ODBC) and Firebird.
|
|
|
|
- Provided complete build system for both Unix (autotools) and
|
|
Windows (solution and project files for MSVC++).
|
|
|
|
---
|
|
Version 2.1.0 differs from 2.0.1 in the following ways:
|
|
|
|
- Added two additional backends: MySQL and SQLite3
|
|
|
|
- Restructured the source code layout so that the whole library was broken
|
|
into the "core" part and independent "backends", each in its own
|
|
directory together with appropriate tests.
|
|
|
|
- Provided basic Makefiles for static and shared libraries on
|
|
Linux-compatible systems.
|
|
|
|
- Added the general class and function reference to the documentation.
|
|
|
|
---
|
|
Version 2.0.1 differs from 2.0.0 in the following ways:
|
|
|
|
- Corrected some typos in documentation.
|
|
|
|
- Corrected handling of dynamic rowset description for those backends
|
|
which do not have dedicated description functionality.
|
|
|
|
- A bug fix to correctly handle std::tm in the Oracle backend.
|
|
|
|
- A bug fix to correctly handle object relational mapping when
|
|
Values::set<T>() and Values::get<T>() are called where T is a
|
|
TypeConversion-based type.
|
|
|
|
---
|
|
Version 2.0.0 differs from 1.2.1 in the following ways:
|
|
|
|
- The whole library was internally re-architectured to allow operation
|
|
with many different backends. The top-level part of the library
|
|
(the syntax layer) provides essentially the same interface as in previous
|
|
versions of the library, but it can work with independent (and dynamically
|
|
selected) backends, possibly targeting different database engines.
|
|
As a prove of concept (and to encourage developments of new backends),
|
|
the PostgreSQL backend was provided in addition to the Oracle one.
|
|
During this re-architecturing, some minor bugs were fixed as well.
|
|
|
|
- The old Boost-style license was changed to the new (v. 1.0) Boost license.
|
|
|
|
---
|
|
The version 1.2.1 differs from 1.2.0 in the following ways:
|
|
|
|
- A bug was fixed that caused compile errors on MS VC++ compiler.
|
|
|
|
---
|
|
The version 1.2.0 differs from 1.1.0 in the following ways:
|
|
|
|
- A memory leak when reading into Row objects was fixed.
|
|
|
|
- Bulk (array) operations were introduced for high-performance
|
|
applications, where the number of network round-trips can be
|
|
significantly reduced by operating on whole arrays (vectors).
|
|
|
|
---
|
|
The version 1.1.0 differs from 1.0.1 in the following ways:
|
|
|
|
- Explicit support for calling stored procedures was added.
|
|
|
|
- Dynamic row recognition (type discovery) was added.
|
|
|
|
- Support for user-defined data types was added.
|