[odb-announcements] ODB 2.1.0 released
Boris Kolpackov
boris at codesynthesis.com
Tue Sep 18 05:39:11 EDT 2012
Hi,
We have released ODB 2.1.0. The NEWS file entries for this release are
as follows:
* The ODB compiler is now capable of automatically discovering accessor and
modifier functions for inaccessible data members in persistent classes,
composite value types, and views. It will then use these accessors and
modifiers in the generated code instead of trying to access such data
members directly. The names of these functions are derived from the
data member names and, by default, the ODB compiler will look for names
in the form: get_foo/set_foo, getFoo/setFoo, getfoo/setfoo, and just
foo. You can also add custom name derivations with the --accessor-regex
and --modifier-regex ODB compiler options. For more information, refer
to Section 3.2, "Declaring Persistent Objects and Values" in the ODB
manual.
* New pragmas, get, set, and access, allow the specification of custom
accessor and modifier expressions for data members in persistent classes,
composite value types, and views. For more information, refer to Section
12.4.5, "get/set/access" in the ODB manual as well as the 'access' example
in the odb-examples package.
* New pragma, virtual, allows the declaration of virtual data members. A
virtual data member is an imaginary data member that is only used for
the purpose of database persistence. This mechanism can be useful to
aggregate or dis-aggregate real data members, implement the pimpl idiom,
and to handle third-party types for which names of real data members may
not be known. For more information, refer to Section 12.4.13, "virtual"
in the ODB manual as well as the 'access' and 'pimpl' examples in the
odb-examples package.
* Support for defining database indexes. Both simple and composite indexes
can be defined with support for database-specific index types, methods,
and options. For more information, refer to Section 12.6, "Index
Definition Pragmas" as well as Sections [13-17].16, "<Database> Index
Definition" in the ODB manual.
* Support for mapping extended database types, such as geospatial types,
user-defined types, and collections. This mechanism allows you to map
any database type to one of the types for which ODB provides built-in
support (normally string or binary). The text or binary representation
of the data can then be extracted into a C++ data type of your choice.
For more information, refer to Section 12.7, "Database Type Mapping
Pragmas" in the ODB manual.
* The Boost profile now provides persistence support for the Boost Multi-
Index container (boost::multi_index_container). For more information,
refer to Section 19.3, "Multi-Index Container Library" in the ODB manual.
* The Boost profile now provides persistence support for the Boost uuid type
(boost::uuids::uuid). For more information, refer to Section 19.6, "Uuid
Library" in the ODB manual as well as the 'boost' example in the odb-
examples package.
* The Qt profile now provides persistence support for the QUuid type. For
more information, refer to Section 20.1, "Basic Types" in the ODB manual
as well as the 'qt' example in the odb-examples package.
* SQLite improvements: Persistence support for std::wstring on Windows
(Section 14.1, "SQLite Type Mapping"). Ability to pass the database
name as std::wstring on Windows (Section 14.2, "SQLite Database Class").
Ability to specify the virtual filesystem (vfs) module in the database
constructors (Section 14.2, "SQLite Database Class").
* Support for mapping C++11 std::array<char, N> and std::array<unsigned
char, N> types to BLOB/BINARY database types. For more information,
refer to Sections [13-17].1, "<Database> Type Mapping" in the ODB manual.
* Support for mapping the char[16] array to PostgreSQL UUID and SQL Server
UNIQUEIDENTIFIER types. For more information, refer to Sections 15.1,
"PostgreSQL Type Mapping" and 17.1, "SQL Server Type Mapping" in the
ODB manual.
* New option, --output-name, specifies the alternative base name used to
construct the names of the generated files. Refer to the ODB compiler
command line interface documentation (man pages) for details.
* New option, --generate-schema-only, instructs the ODB compiler to
generate the database schema only. Refer to the ODB compiler command
line interface documentation (man pages) for details.
* New option, --at-once, triggers the generation of code for all the input
files as well as for all the files that they include at once. Refer to
the ODB compiler command line interface documentation (man pages) for
details.
* New options, --sql-interlude and --sql-interlude-file, allow the insertion
of custom SQL between the DROP and CREATE statements in the generated
database schema file.
* New options, --omit-drop and --omit-create, trigger the omission of DROP
and CREATE statements, respectively, from the generated database schema.
* New ODB manual Section, 6.3 "Circular Relationships", explains how to
handle persistent classes with circular dependencies that are defined
in separate headers.
* The id() pragma that was used to declare a persistent class without an
object id has been renamed to no_id.
* New pragma, definition, allows the specification of an alternative code
generation point for persistent classes, views, and composite value
types. This mechanism is primarily useful for converting third-party
types to ODB composite value types. For more information, refer to
Section 12.3.7, "Definition" in the ODB manual.
* The session constructor now accepts an optional bool argument (true by
default) which indicates whether to make this session current for this
thread. For more information, refer to Chapter 10, "Session" in the ODB
manual.
* Simplified Oracle automatically-assigned object id implementation that
does not rely on triggers.
* Support for mapping boost::posix_time::ptime and QDateTime to the DATE
Oracle type. For more information, refer to Sections 19.4.4 (Boost) and
20.4.4 (Qt) in the ODB manual.
* Default SQLite mapping for float and double now allows NULL since SQLite
treats NaN FLOAT values as NULL. For more information, refer to Section
14.1, "SQLite Type Mapping" in the ODB manual.
We have also added Visual Studio 2012 and Clang 3.1 to the list of compilers
that we use for testing each release. Specifically, all the runtime libraries,
examples, and tests now come with project/solution files for Visual Studio
2012 in addition to 2010 and 2008. For the complete list of compilers that
were used to test this release, refer to the ODB Platforms and Compilers
page:
http://www.codesynthesis.com/products/odb/platforms.xhtml
A more detailed discussion of the major new features can be found in the
following blog post:
http://www.codesynthesis.com/~boris/blog/2012/09/18/odb-2-1-0-released/
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:
87d58649f5c0f405e8453e02d270da2f87a4ccbb libodb-2.1.0.tar.bz2
338f800db1d7d1b4cd78851a6421dcbc9b3d0996 libodb-2.1.0.tar.gz
cc510d90c7333c3ee779ed21eff6bc8101fb4b9b libodb-2.1.0.zip
5c3eb40b834b385e7ac4b3c20f6cd82651abb66d libodb-boost-2.1.0.tar.bz2
bf0aaf000bf4ae5f29109fb213bec01b626c5331 libodb-boost-2.1.0.tar.gz
20cd82d6d7605c569f023e07a91ad666a9dac5d4 libodb-boost-2.1.0.zip
1bf4e89a16693948b31af2f250ab1fbd5b3615c8 libodb-mssql-2.1.0.tar.bz2
8f14c156d02db9669c15e6a21beb239c83586113 libodb-mssql-2.1.0.tar.gz
7beb4b7462a5a884095ca944c101265d2068f2d3 libodb-mssql-2.1.0.zip
e58eca3465a6c9b278113bc3faa26455a94d040c libodb-mysql-2.1.0.tar.bz2
529a8a3141de27494107d0c9a210dd0698cbfb55 libodb-mysql-2.1.0.tar.gz
580cef317c20f199ae3098faa57c4d4c80564381 libodb-mysql-2.1.0.zip
f2c92818e89fa06f90d20c48e63c64775f75375c libodb-oracle-2.1.0.tar.bz2
96022e1e8b7fbac4a72b8302019710b9607f760c libodb-oracle-2.1.0.tar.gz
18198da3a867e2208affcc38370668cc6747e93c libodb-oracle-2.1.0.zip
464a970ee1cfef88e7a53ab6f4cd0ae95320cce9 libodb-pgsql-2.1.0.tar.bz2
26c4ac2db75951b93f5a6b6c7aa917e3f7f4bef6 libodb-pgsql-2.1.0.tar.gz
8fd686ab87b52b144e6976a47c1db3745d483d62 libodb-pgsql-2.1.0.zip
ba04acd724ad7253ce7b6d534ee3354c3fcd0951 libodb-qt-2.1.0.tar.bz2
a89dbfc22b85f5efb2788b8c08c7280159caf032 libodb-qt-2.1.0.tar.gz
0dd1c1cb7672b6b1eec57f1e670d67dcc6ac1cbf libodb-qt-2.1.0.zip
58085bdb5d890cc952594cc288d28db9c93d3349 libodb-sqlite-2.1.0.tar.bz2
f8c16947ec322d989d9526a0f250b132e1bfae64 libodb-sqlite-2.1.0.tar.gz
874e0bfdf740053e6e5bdc3cf134cb954dfdbd2c libodb-sqlite-2.1.0.zip
4556ab5a60a19170eb0f7376756a07829d87418b odb-2.1.0-i686-linux-gnu.tar.bz2
2bd23a560579b3ab5f9d66de223d8875f8356a2d odb-2.1.0-i686-macosx.tar.bz2
9e5be40268ee0650b1f8cb61f92dff06c851ede0 odb-2.1.0-i686-solaris.tar.bz2
15b550ab80b48598aadd84e2dd4f1b4960854c38 odb-2.1.0-i686-windows.zip
82021b5c393d50206d0ba73e9d3a78258dbeb2c9 odb-2.1.0-sparc-solaris.tar.bz2
5e435d952e5262b5de49df0392e375e0d4440515 odb-2.1.0.tar.bz2
cd4cb4d039e184a3d221bb75bd3c4c400fdf2cd5 odb-2.1.0.tar.gz
f5f1c62b8eeaa03b0646d7bb1f43aeac3e6378bb odb-2.1.0-x86_64-linux-gnu.tar.bz2
d8daf4a2be8c055a39f139f0986fa151fe8b3342 odb-2.1.0.zip
0994d39cc7ab3607b5c6e88f7c16edf32e0d6336 odb-examples-2.1.0.tar.bz2
e097d5771f9cb9e636c1a293ca9e3f6f407d22eb odb-examples-2.1.0.tar.gz
8d0cf9419c445e92c5e5cc991dd314b4410d2c39 odb-examples-2.1.0.zip
3c5ecd517fc72764ae4ecfca28fba75c2a22454f odb-tests-2.1.0.tar.bz2
06ebaea3383264ceec9ff9ff05668cf80f461014 odb-tests-2.1.0.tar.gz
3cd8ca94d885d81ffb92dd631b9ba2d2cd50aa25 odb-tests-2.1.0.zip
Enjoy,
Boris
More information about the odb-announcements
mailing list