Delayed project news
In November 2011, Maciej Sobczak announced his departure from the project and called for new SOCI project leader needed. Almost year later, I decided to step forward and become a new SOCI project manager. Maciej still occasionally helps in the project, he may be available to provide commercial support to SOCI users through his company Inspirel.
I would like to take this opportunity I’m writing about SOCI and thank Maciej for SOCI - quite a revolutionary C++ idea he came up with decade ago; for long-standing C++ mentorship while working on the project together or discussing C++ on pl.comp.lang.c in the great days of Usenet; finally, for showing me the real value of lean thinking in hacking.
I was born in country which undergoes revolution every four years and very first decisions new leaders is to make things over. Trying to not to neglect the rich legacy of my fathers, I planned my first revolution for the project. That was to migrate the development infrastructure to GitHub and create an organization there. The motion was successfully completed month later.
All SOCI development and code slinging activities take place at https://github.com/SOCI. The release downloads and mailing lists remain hosted at https://sourceforge.net/p/soci and the website with documentation at http://soci.sourceforge.net.
What’s new in version 3.2.0
On behalf of the whole SOCI team I extremely pleased to announce this new release of SOCI 3.2.0 version.
The SOCI 3.2.0 source packages are available for download from SF.net: https://sourceforge.net/projects/soci/files/soci/soci-3.2.0/
or as .zip
for the whole 3.2.0 tag directly from Git: https://github.com/SOCI/soci.
Documentation for the current version is available at http://soci.sourceforge.net/doc.html
I’d like to thank each and everyone involved, who helped in any kind of way to make this release happen: all developers and contributors as well as SOCI users here and everywhere. It’s a great feeling to grow the list of AUTHORS with new names on every release.
Below, I copied the relevant part from the CHANGES file:
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
- Added
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
andlong
on 64-bit architectures - Added missing CMake configuration for tests
- Continued regular testing on Windows and Unix platforms
- Added connection_parameters option
Oracle
- Implemented
statement::get_affected_rows()
operation - Use
OCI_THREADED
andOCI_ENV_NO_MUTEX
withOCIEnvCreate
- 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
- Implemented
PostgreSQL
- Add reading of
BYTEA
data intostd::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
- Add reading of
SQLite3
- Implemented
statement::get_affected_rows()
operation - Fixed handling of database file path with spaces
- Implemented
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 toFindSQLite3.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
A complete changelog of commits generated from Git history in pretty Markdown format is available as a Gist in soci-3.2.0-github-changelog.md.
In case of questions or problems, drop us a line to soci-users. If you have encountered a bug, open new issue at GitHub.
Thank you all!