Path to this page:
Subject: CVS commit: pkgsrc/databases/soci
From: Adam Ciarcinski
Date: 2023-03-16 08:50:16
Message id: 20230316075016.6A9EEFA90@cvs.NetBSD.org
Log Message:
soci: updated to 4.0.3
Version 4.0.3 (99e2d567) differs from 4.0.2 in the following ways:
Changes affecting all or multiple backends:
- Fix opening sessions from pool
- Fix default backend search path
- Fix build with latest glibc versions where SIGSTKSZ is not constant
- Document using SOCI as a CMake subdirectory
- Document using SOCI with Conan
Backend-specific changes:
- MySQL
- Implement get_table_names() for MySQL
- Fix MySQL backend build with MySQL >= 8
- Fix mysql_library_end() in multithreaded environment
- Make mysql_soci_error::get_error_category() more useful
- ODBC
- Fix several bugs in vector into code
- Fix memory leaks in case of SQLNumResultCols() failure.
- Export odbc_session_backend::get_database_product() from DLL.
- Oracle
- Add support for detecting Oracle 20 and 21 to CMake
- PostgreSQL
- Fix compilation when "free" is redefined somewhere else.
- SQLite3
- Fix bulk operations with vectors of size 1 in SQLite3 backend
- Firebird
- Suppress FB memory leaks
---
Version 4.0.2 differs from 4.0.1 in the following ways:
Changes affecting all or multiple backends:
- Fix using SOCI from CMake projects using find_package()
- Always set indicator to i_null when no data is read from the database
- Add support for building SOCI with LTO
- Enable ELF visibility support
- Fix building tests under macOS on ARM 64
- Fix using custom types with an explicitly null indicator
- Fix using vectors of custom types for DB/2, ODBC and Oracle
- Fix vectors of XML and CLOB values for DB/2, Firebird, ODBC and Oracle
- Don't return i_truncated for empty strings in a vector for DB/2, ODBC.
- Make unloading dynamic backends safer by delaying it if necessary
- Migrate most Linux CI builds to GitHub Actions from Travis CI
- Fix rare deadlock in session::reconnect()
- Fix all warnings in MSVS build
Backend-specific changes:
- MySQL
- Add "reconnect" option
- ODBC
- Don't show interactive ODBC dialogs when reconnecting.
- Fix session::get_last_insert_id() for empty tables with SQL Server.
- Oracle
- Implement session::get_next_sequence_value().
- Fix using default NUMBER type with rowset API
- Handle reading from CLOBs that can't be read all at once.
- Fix another memory leak in CLOB handling code.
- PostgreSQL
- Fix use of quoted identifiers with colons
- Fix tests compilation under macOS
- Fix tests with PostgreSQL 12 or later.
- SQLite3
- Fix getting doubles from non-numeric columns.
- Fix using uninitialized sqlite3_column member
---
Version 4.0.1 differs from 4.0.0 in the following ways:
- Add session::is_connected()
- Fix DST adjustment when reading dates from the database
- Make dynamic_backends::search_paths() actually available
- Fix using std::vector<boost::optional<>> in query arguments
- Allow using dt_blob and dt_xml with rowset API too
- Fix or work around many compilation warnings with newer compilers.
- DB2
- Fix memory leak.
- ODBC
- Fix bug with handling of strings of exactly ODBC_MAX_COL_SIZE length
- Fix opening connections when using connection pooling.
- Oracle
- Improve detection for newer Oracle versions
- Use bigger buffer for Oracle connection string length
- Fix memory leak in Oracle backend when using CLOBs (XML or long strings).
- PostgreSQL
- Fix reconnect() to use the correct connection parameters
- Improve error message returned on connection loss
- Fix use of uninitialized connection variable on connection failure
- Fix inadvertently broken use of single row mode
- Fix handling of identifiers with colons
- SQLite
- Add support for "vfs" and "readonly" connection options
- Fix std::tm handling
- Fix "big int" detection
---
Version 4.0.0 differs from 3.2.3 in the following ways:
NOTICE: This is probably the last release compatible with C++98.
- Added support for C++11 and C++17 compilation modes.
- Added RELEASING.md how-to and scripts/release.sh helper for release managers.
- Added 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().
- Added logger class to allow customizing SOCI logging operations
- Added helper for generating portable DDL and DML statements
- Added portable column info and other metadata queries
- Added helper exchange_type_cast<>() template function as better static_cast
- Added values::get_number_of_columns() as convenient accessor.
- Added public macro SOCI_NORETURN and use it in declaration.
- Added handling of dt_unsigned_long_long to the simple interface.
- Added new data type dt_blob with accompanying simple-interface support
- Added basic support for error categories.
- Added failover_callback interface
- Added bulk iterators interface
- Added basic package exporting to CMake configuration
- Added bigstring (XML and CLOB) support
- Added CMake option SOCI_POSTGRESQL_NOSINLGEROWMODE with default value OFF
- Adopted new layout of the source tree
- Although the build configuration is based on CMake 2.8,
numerous improvements have been applied to the CMake scripts.
- Converted all tests to use the Catch framework.
- Fixed issues with throwing from soci_error copy constructor and assignment operator
- Fixed backends loading in case SOCI is built with CMAKE_DEBUG_POSTFIX set
- Fixed deadlock in soci::connection_pool::try_lease function.
- Fixed numerous compilation warnings using various compilers.
- Fixed non-copyability of connection_pool
- Fixed uniform offset for BLOB read/write operations
- Fixed memory leak when reusing into and use elements.
- Fixed deduction of reference in boost::fusion::for_each
- Added empty_blob() and nvl() to portable utilities.
- Improved handling and conversions of time and timezone information values
- Improved diagnostics with included query parameter names in error messages
- Improve CMake configuration for integrating SOCI as subproject
- Improved locale-independent conversions of floating-point numbers to string.
- Include all public headers using soci/ prefix inside SOCI itself
- Migrated documentation content from HTML to Markdown
- Provided error context in exceptions and richer diagnostics
- Replaced assertion with raising exception in case of connection_pool::lease() \
failure.
- Remove use of std::unary_function and std::ptr_fun deprecated in C++11/17
- Split statement::clean_up into two operations bind_clean_up and clean_up
- Updated the backend documentation.
- Use 64-bit integer for next sequence and last insert ID values
- DB2
-- Fixed ambiguous error handling during statement execution
-- Fixed handling of NULL for strings during bulk querying
-- Replaced SQLConnect with SQLDriverConnect to establish database session
- Firebird
-- Added SOCI_FIREBIRD_EMBEDDED option to allow building with embedded library.
-- Added possibility to build the backend using embedded library (libfbembed).
-- Added CLOB and XML support
-- Fixed too eager start of implicit transaction
-- Fixed bug with writing BLOB values
-- Replaced truncation of too long VARCHAR columns values with throwing exception.
- MySQL
-- Added MySQL 8 to tested versions.
-- Added get_last_insert_id function
-- Added timeout support
-- Fixed bug whe nusing get_affected_rows() and user defined types
-- Replace throwing generic soci_error with mysql_soci_error
- ODBC
-- Added support for ODBC driver for DB2 which is not compliant to ODBC spec
-- Fixed inserting strings of length greater than 8000 bytes into database
-- Fixed get_affected_rows() when using FreeTDS driver.
-- Fixed reading from unallocated memory (driver bug?) in ODBC with MySQL
-- Fixed handling of NULL for strings during bulk querying
-- Fixed memory leak of internal odbc_standard_use_type_backend buffer
- Oracle
-- Added oraocci12 name to Oracle client look-up by CMake.
-- Added NLS support for connection parameters.
-- Added Oracle wallet authentication.
-- Added (partial) handling of OCI_SUCCESS_WITH_INFO.
-- Added handling of more error codes for error categories.
-- Added failover_callback interface implementation
-- Added bulk iterators interface implementation
-- Added bigstring (XML and CLOB) support
-- Added lazy initialization of the temporary LOB objects for Oracle.
-- Fixed uniform offset for BLOB read/write operations
-- Fixed connection parameters parsing to allow spaces in values
-- Fixed handling of BINARY_DOUBLE in dynamic row.
-- Use SQLT_BDOUBLE for floating point values instead of SQLT_FLT.
- PostgreSQL
-- Added singlerows mode for PostgreSQL
-- Added failover_callback interface implementation
-- Added bulk iterators interface implementation
-- Added test for the uuid data type
-- Added bigstring (XML and CLOB) support
-- Dropped support for PostgreSQL 7.x
-- Fixed defining SOCI_POSTGRESQL_NOSINLGEROWMODE for PostgreSQL < 9
-- Fixed string to floating-point number conversions assuming "C" locale
-- Fixed support for bytea across PostgreSQL versions older than 9
-- Fixed timestamp handling in UTC
-- Fixed uniform offset for BLOB read/write operations
-- Explicitly set extra_float_digits to 3 when using PostgreSQL >=9 in ODBC \
for consistency.
-- Improve string to floating-point number conversion to be exact.
- SQLite3
-- Added get_last_insert_id function
-- Fixed clean up on error to enable getting detailed diagnostics
-- Fixed issue numerous calls to fetch by better control when backend calls \
sqlite3_step
-- Fixed memory leak in sqlite3_session_backend
-- Fixed closing connection after obtaining error diagnostics
-- Fixed affected rows count when reusing prepared statements
Files: