[odb-announcements] ODB 2.3.0 released

Boris Kolpackov boris at codesynthesis.com
Wed Oct 30 05:53:32 EDT 2013


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



More information about the odb-announcements mailing list