Hi,
We have released ODB 2.3.0. The NEWS file entries for this release are
as follows:
* Support for database schema evolution, including schema migration, data
migration, and soft model changes. For more information, refer to Chapter
13, "Database Schema Evolution" in the ODB manual.
* Support for object sections. Sections are an optimization mechanism that
allows the partitioning of data members of a persistent class into groups
that can be loaded and/or updated separately. For more information, refer
to Chapter 9, "Sections" in the ODB manual as well as the 'section'
example in the odb-examples package.
* Support for automatic mapping of C++11 enum classes in addition to "old"
enums. For more information, refer to the ODB manual "Type Mapping"
sections for each database system.
* Support for defining composite value types inside persistent classes,
views, and other composite values. For more information, refer to Section
7.2, "Composite Value Types" in the ODB manual.
* Support for pattern matching (SQL LIKE operator) in the C++-integrated
queries. For more information, refer to Section 4.1, "ODB Query Language"
in the ODB manual.
* The schema_catalog::create_schema() function now has a third argument
which indicates whether to drop the schema prior to creating the new one.
The default is true which is backwards-compatible. The schema_catalog
class now also provides the drop_schema() function which allows you to
drop the schema without creating the new one. Finally, the exists()
function now has the schema name argument which by default is an empty
string (the default schema name). For more information, refer to Section
3.4, "Database" in the ODB manual.
* The transaction class now provides the default constructor that allows
the creation of finalized transactions which can then be re-initialized
with the reset() function. The finalized() accessor has also been added
which allows querying of the finalization state. For more information,
refer to Section 3.5, "Transactions" in the ODB manual.
* New option, --fkeys-deferrable-mode, specifies the alternative deferrable
mode for foreign keys. By default, the ODB compiler generates deferred
foreign keys for databases that support them (SQLite, PostgreSQL, and
Oracle) and comments the foreign keys out for databases that don't (MySQL
and SQL Server). This option can be used to override this behavior. Refer
to the ODB compiler command line interface documentation (man pages) for
details.
* Starting with MySQL version 5.6.4 it is possible to store fractional
seconds up to microsecond precision in TIME, DATETIME, and TIMESTAMP
columns. Both Boost and Qt profiles have been updated to support this
new functionality. Note, however, that to enable sub-second precision,
the corresponding type with the desired precision has to be specified
explicitly. For details, refer to the "MySQL Database Type Mapping"
sections in the Boost and Qt profile chapters.
* New SQLite-specific exception, odb::sqlite::forced_rollback, which is
thrown if SQLite forces a transaction to roll back. For more information,
refer to Section 16.5.6, "Forced Rollback" in the ODB manual.
* New options, --pgsql-server-version, can be used to specify the minimum
PostgreSQL server version with which the generated C++ code and schema
will be used. Right now this information is used to enable the use of
the IF NOT EXISTS clause in the CREATE TABLE statement for the schema
version table creation in PostgreSQL 9.1 and later. Refer to the ODB
compiler command line interface documentation (man pages) for details.
* The --output-name option has been renamed to --input-name, which is more
semantically correct.
* The generated database schema now explicitly specify NULL for nullable
columns.
* The generated separate C++ schema file (--schema-format separate) no
longer includes the generated header file (-odb.hxx). As a result, it is
now possible to use the --generate-schema-only and --at-once options to
generate a combined C++ schema file for several headers.
This release also adds support for Visual Studio 2005 (VC++ 8.0), including
project/solution files for all the runtimes, tests, and examples.
A more detailed discussion of the major new features can be found in the
following blog post:
http://www.codesynthesis.com/~boris/blog/2013/10/30/odb-2-3-0-released/
This release has been tested with a large number of platform/compiler/
architecture/library combinations. Specifically:
Platform Compiler Version C++ Std Arch Qt Boost Databases
-------------------------------------------------------------------------
GNU/Linux GCC 4.4-4.8 C++98,11 x86 32/64 4,5 Y All
GNU/Linux Clang 3.3 C++98,11 x86 64 4 Y All
Raspberry Pi GCC 4.7 C++98 arm - - SQLite
Solaris Sun CC 12u2 Cstd x86 32/64 - - All ex MS SQL
Solaris Sun CC 12u2 STLPort x86 32/64 - - All ex MS SQL
Solaris Sun CC 12u2 Cstd SPARC 32/64 - - All ex MS SQL
Mac OS X GCC 4.2 C++98 x86 32 4 Y All ex MS SQL
Windows VC++ 8.0 C++98 x86 32/64 - Y All
Windows VC++ 9.0 C++98 x86 32/64 4 Y All
Windows VC++ 10.0 C++11 x86 32/64 4,5 Y All
Windows VC++ 11.0 C++11 x86 32/64 4 Y All
MinGW-W64 GCC 4.7 C++98 x86 32 5 Y All
We would also like to thank everyone who reported bugs, suggested fixes
or new features, as well as tested early versions of this release.
Source code and pre-compiled binary packages for this release are available
from the ODB Download page:
http://www.codesynthesis.com/products/odb/download.xhtml
SHA1 checksums for the files in this release are as follows:
eebc7fa706bc598a80439d1d6a798430fcfde23b libodb-2.3.0.tar.bz2
8ac9a09a6a86e73951289ee79c022661caea7f96 libodb-2.3.0.tar.gz
4931b091e925b7f578fa2fdb82dcdc02e7bb5fa9 libodb-2.3.0.zip
0e6c8e256834b11a98e946cde23a01d9b8023c4b libodb-boost-2.3.0.tar.bz2
38c8552db872cc32144fb653c19277cfec1df2ec libodb-boost-2.3.0.tar.gz
33dcda84aeae00acc6fd1ac4d47bccfb1fc57838 libodb-boost-2.3.0.zip
29fe362fc0028022ff5c5e6a8b7e434626125916 libodb-mssql-2.3.0.tar.bz2
2cd48850870782c74fdc92c223877c0c05e72494 libodb-mssql-2.3.0.tar.gz
7fc50e8b1b5a392a16cbab3aedacf6f2b56cab68 libodb-mssql-2.3.0.zip
18adaa5535015e3471a5d205e44df42f0e3a3d37 libodb-mysql-2.3.0.tar.bz2
72f92fd60a58cc4b34a8fea23a262dfdaa6c776c libodb-mysql-2.3.0.tar.gz
8c35cb74ac11b81c49e854505577a0e603307b57 libodb-mysql-2.3.0.zip
365bc27ccf5855674b9dd3b976dba02ec59d15a0 libodb-oracle-2.3.0.tar.bz2
2138b5d7f3e27335f9d80e178e6baa8b7bd0c6ef libodb-oracle-2.3.0.tar.gz
e20b369200e5bcc36e391cfd7117d20431369032 libodb-oracle-2.3.0.zip
0cc3597602550b7a98c0d532935fdefc51ad9cd7 libodb-pgsql-2.3.0.tar.bz2
2b4e82d4d15135959867158a8e6453e80a36e773 libodb-pgsql-2.3.0.tar.gz
8ac439ec78595ec9cf2d4c20359778bdd9572d91 libodb-pgsql-2.3.0.zip
ade562088b28cfefd889649cdc44666a366147e4 libodb-qt-2.3.0.tar.bz2
ff543576ff7048a2b489ba550f3e569c3afc6534 libodb-qt-2.3.0.tar.gz
2c105ee34d3023b41bcc2615d015798873fcdd86 libodb-qt-2.3.0.zip
512a124e0b78ae36deee25d595e3e169bd24d216 libodb-sqlite-2.3.0.tar.bz2
2643d3c2c3f273f3fb223759e4ad10635cc91ce8 libodb-sqlite-2.3.0.tar.gz
fb477d054e59a443d2d890b9ca65557293ecb4c3 libodb-sqlite-2.3.0.zip
31d45bd900de198fd136d671c9e2a2ffdb98cf01 odb_2.3.0-1_amd64.deb
1db91284de3965c352158419e5d8bfbae50ad6de odb_2.3.0-1_i386.deb
65c4bab0c453868debeabd609cc1e38198fe85d0 odb-2.3.0-1.i686.rpm
590e10d17dd8ab8b46c65fc1a577bd0d7d471f5a odb-2.3.0-1.x86_64.rpm
1db06f531400af2cf156fe38bcd691c81b4c4ce4 odb-2.3.0-i686-linux-gnu.tar.bz2
7bdde23582d8e6f57d5a2fffd9fa77ab35de5bcc odb-2.3.0-i686-macosx.tar.bz2
e9b4c688f52f1a9abea6c1f1b4adac648d193127 odb-2.3.0-i686-solaris.tar.bz2
0539193c614356fa120b2ebdb1d2e9c6fcdd7dcd odb-2.3.0-i686-windows.zip
7e802e0a8e92887827e3e19ec2c9d201091fa3dc odb-2.3.0-sparc-solaris.tar.bz2
fe18c7154085afec23c18aa940f168de7068f6f3 odb-2.3.0.tar.bz2
53c851e3f3724b72d7c7a74c497c50c195729ad1 odb-2.3.0.tar.gz
0a63f284263d68795359e6ce367a43476262d335 odb-2.3.0-x86_64-linux-gnu.tar.bz2
eabae10279c24bb5d3bdc740ba025766348cd916 odb-2.3.0.zip
c044da7df142a0147550c659c282f7d63b9abf86 odb-examples-2.3.0.tar.bz2
e244836bb009317cdd1cb3cd16e8acf2b0d0fc0d odb-examples-2.3.0.tar.gz
dc950e8f73bc978500386f414c490eb64daa121c odb-examples-2.3.0.zip
d23966564030d899355231756e2b93ec76e300c1 odb-tests-2.3.0.tar.bz2
3f0b615da8f655d0aa58790078ec59ab0037a65e odb-tests-2.3.0.tar.gz
7a3a9dfa1da7da999c2865850f5f4df613d13e39 odb-tests-2.3.0.zip
Enjoy,
Boris