[odb-announcements] ODB 2.4.0 released
Boris Kolpackov
boris at codesynthesis.com
Wed Feb 11 06:59:41 EST 2015
Hi,
We have released ODB 2.4.0. The NEWS file entries for this release are
as follows:
* Support for bulk operations in Oracle and SQL Server. Bulk operations
persist, update, or erase a range of objects using a single database
statement execution which often translates to a significantly better
performance. For details, refer to Section 15.3, "Bulk Database
Operations" in the ODB manual.
* Support for object loading views. Object loading views allow loading of
one or more complete objects instead of, or in addition to, a subset of
data members and with a single SELECT statement execution. For details,
refer to Section 10.2, "Object Loading Views" in the ODB manual.
* New database class functions, query_one() and query_value(), provide
convenient shortcuts for situations where the query is known to return
at most one element (query_one) or exactly one element (query_value).
Corresponding execute_one() and execute_value() functions for prepared
queries are also provided. For details, refer to Sections 4.3, "Executing
a Query" and 4.5, "Prepared Queries" in the ODB manual.
* Support for defining persistent objects as instantiations of C++ class
templates, similar to composite value types. For details, refer to
Section 15.2, "Persistent Class Template Instantiations" in the ODB
manual.
* Support for object and table join types in views. Supported join type
are left, right, full, inner, and cross with left being the default.
For details, refer to Sections 10.1, "Object Views" and 10.3, "Table
Views" in the ODB manual.
* Support for result modifiers in view query conditions. Currently
supported result modifiers are 'distinct' (which is translated to
SELECT DISTINCT) and 'for_update' (which is translated to FOR UPDATE or
equivalent for database systems that support it). For details, refer to
Section 10.5, "View Query Conditions" in the ODB manual.
* Support for persisting std::deque containers.
* New pragma, on_delete, allows the specification of an on-delete semantics
(translated to the ON DELETE SQL clause) for an object pointer. For more
information, refer to Section 14.4.15, "on_delete" in the ODB manual.
* Besides odb::stderr_tracer there is now odb::stderr_full_tracer that
traces statement preparations and deallocations in addition to their
executions. This new implementation can be useful when you want to see
the text of a statement that contains a syntax error and therefore
will not actually be executed. For more information, refer to Section
3.13, "Tracing SQL Statement Execution" in the ODB manual.
* ODB can now compile headers that use #pragma once instead of include
guards.
* User-supplied prologues and epilogues are now generated outside the
pre.hxx/post.hxx includes. This allows the use of precompiled headers
with the generated files.
* Support for calling MySQL stored procedures. For details and limitations
refer to Section 17.7, "MySQL Stored Procedures" in the ODB manual.
* Support for calling SQL Server stored procedures. For details and
limitations refer to Section 21.7, "SQL Server Stored Procedures" in
the ODB manual.
* New option, --oracle-warn-truncation, makes ODB warn about SQL names
that are longer than 30 characters and are therefore truncated. ODB
now also detects when such truncations lead to Oracle name conflicts
and issues diagnostics even without this option specified.
* For MySQL, PostgreSQL, and SQL Server, ODB now warns when an SQL name
exceeds the database limit (64, 63, and 128 characters, respectively).
SQLite has no limitation on name lengths. For Oracle, which has a limit
that is much more likely to be reached in normal circumstances (30
characters), a more comprehensive detection is implemented (see the item
above).
* New option, --statement-regex, can be used to process prepared statement
names that are used by PostgreSQL. This can be useful, for example, to
shorten names that exceed the PostgreSQL name limit.
* The --std option now accepts the 'c++14' value.
This release also adds support for Visual Studio 2013 (VC++ 12.0), including
project/solution files for all the runtimes, tests, and examples.
We have also upgraded the private copy of GCC that is used by the ODB
compiler binary packages to 4.9.2 (actually, 4.9.3 pre-release) on all
the platforms except Solaris (there it remains at 4.7.3). In particular,
this should make a difference to projects wishing to use more C++11/C++14
features.
A more detailed discussion of the major new features can be found in the
following blog post:
http://www.codesynthesis.com/~boris/blog/2015/02/11/odb-2-4-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-5.0 C++98,11 x86 32/64 4,5 Y All
GNU/Linux Clang 3.5 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
Mac OS X Clang 3.5 C++11 x86 32/64 - - 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
Windows VC++ 12.0 C++11 x86 32/64 5 Y All
MinGW-W64 GCC 4.9 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. In
particular, a big thanks goes to Dave Johansen who is maintaining ODB
packages for RHEL/CentOS and Timo Rothenpieler who is doing the same
for Gentoo. If you are packaging ODB for another distribution, please
speak up so that I can announce/acknowledge your work.
If you plan to use ODB on Mac OS X or MinGW/MinGW64, there are new
installation guides with additional information for these platforms:
http://www.codesynthesis.com/products/odb/doc/install-macosx.xhtml
http://www.codesynthesis.com/products/odb/doc/install-mingw.xhtml
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:
42bd2a8023e338e004711e755eb30bd122b844a6 libodb-2.4.0.tar.bz2
10ecc193b883e198e4b4c678f1561f280784d629 libodb-2.4.0.tar.gz
c6b0486ed4168668e1691dec34d61bddccafa1dc libodb-2.4.0.zip
f813702b2856732e199ae34e3393b8cecff878ef libodb-boost-2.4.0.tar.bz2
9fd462c3dc9f0529d78b6301223a28e3b805799c libodb-boost-2.4.0.tar.gz
e58b7295ec2319e03afb67d8fa0ac0d16b6eff8d libodb-boost-2.4.0.zip
e10174185222e102d63b48eed0d632aad1608512 libodb-mssql-2.4.0.tar.bz2
e5dada5228971cc3eb4ce21a8208e973bb73f2a2 libodb-mssql-2.4.0.tar.gz
a476d7fff656792c9e00b2253cc3733086cb6f30 libodb-mssql-2.4.0.zip
2021a67577354f1d6bed50c0b257c1920760eda7 libodb-mysql-2.4.0.tar.bz2
ff146deb9d31158688146ef2be4efa2d567c0574 libodb-mysql-2.4.0.tar.gz
50de4e581d61185ed230255959732617a6f97b08 libodb-mysql-2.4.0.zip
dd22ae9f3606e37a25ed8f9a3e9eec81c163fadd libodb-oracle-2.4.0.tar.bz2
56691751e1960b5290fa4c3453fec66ce34b21fe libodb-oracle-2.4.0.tar.gz
a8beaa5c0f506f413d3d9fb09a87cbaece870874 libodb-oracle-2.4.0.zip
4628d5e296da01dbaf8658fd402b4f709f30ea2d libodb-pgsql-2.4.0.tar.bz2
3a4414958de7f6d862b444a9895605d501452978 libodb-pgsql-2.4.0.tar.gz
a5741062322ad63b9f80c433bb601de6bb705eb9 libodb-pgsql-2.4.0.zip
e68b6614cf4f471792979f7f97a8279fdba77527 libodb-qt-2.4.0.tar.bz2
0e5c8f007810285d54df67c6251f5c28fd83c955 libodb-qt-2.4.0.tar.gz
0d9bebf911ca8761b8b3647015398741bed68ee6 libodb-qt-2.4.0.zip
3be07e7702abf8adcbe7736f372ef9980cec1003 libodb-sqlite-2.4.0.tar.bz2
c5cdb8a63dc1b395f03be9551beb4e58733a4b83 libodb-sqlite-2.4.0.tar.gz
c95ab4d9f4c7e2828ab2786d9f29e6c55d52f77d libodb-sqlite-2.4.0.zip
d000bf71e86dc4d84b56ac40e76f2152acc8e164 odb_2.4.0-1_amd64.deb
68ff71b2e3e7f9dfe3e7426058d5f8b57c6070d3 odb_2.4.0-1_i386.deb
57e7db623ea8c5d43a7fcfdb92e0a58e6adcae96 odb-2.4.0-1.i686.rpm
bcba62632c382fd082d41b8366a4578421cb3b4d odb-2.4.0-1.x86_64.rpm
f8b5797af1ce185db6adfa1d91ba5c90584d220f odb-2.4.0-i686-linux-gnu.tar.bz2
14d4972b43278b12479950b4a12affe4e4e500c1 odb-2.4.0-i686-macosx.tar.bz2
eca6c124ba4c90d3478049d0b5b43ef5375612fd odb-2.4.0-i686-solaris.tar.bz2
386ae3dd284c20acfcb5a49ed42c2ff5c598e401 odb-2.4.0-i686-windows.zip
83ff71ec663b318cdb95ef0ebd7feefff3123a21 odb-2.4.0-sparc-solaris.tar.bz2
810fc02e591429ed19f5a2699d144fb611fb121b odb-2.4.0.tar.bz2
ad39f381cd2ebc07fa08e3464a44a6ef31ccd2d1 odb-2.4.0.tar.gz
630882a3461a8aa6349fd5b4e5ef20ec9afae09d odb-2.4.0-x86_64-linux-gnu.tar.bz2
22d565fcafa0bd8ff20e11dfd394d3efb52fd8a5 odb-2.4.0.zip
3a9c7c3bee71c069e621c3b14b46dc48e5e1b3c9 odb-examples-2.4.0.tar.bz2
2e9e9629db99311e088e252940e6f604f0646710 odb-examples-2.4.0.tar.gz
b0b0b03a8bd274d1bd1aa3c1cb6b177f6b650490 odb-examples-2.4.0.zip
6b8959e58001e165d972ef2057321d6f1ab215f4 odb-tests-2.4.0.tar.bz2
7e6b66a28e70964426b94221c2a324bf2bfa0112 odb-tests-2.4.0.tar.gz
aa08204cc0de44f9e502eb9ee3f59818b661808d odb-tests-2.4.0.zip
Enjoy,
Boris
More information about the odb-announcements
mailing list