Hi,
We have released ODB 1.5.0. The NEWS file entries for this release are
as follows:
* Support for the PostgreSQL database. The provided connection factories
include 'new' (a new connection is created every time one is requested)
and 'pool' (a pool of connections is maintained). The Boost and Qt
profiles have been updated to support this database. For more information,
refer to Chapter 13, "PostgreSQL Database" in the ODB manual.
* New handling of the NULL semantics. Now, instead of being specified as
part of the SQL type with the type pragma, there are separate null and
not_null pragmas. The not_null pragma was used to control the NULL
semantics of object pointers. Now the two pragmas are used consistently
for object pointers and simple values (and, in the future, they will work
for composite values and containers). To control the NULL semantics of
the container's element values, the value_null and value_not_null pragmas
have been added, similar to the value_type, value_column, etc., pragmas.
For more information about the new mechanism, refer to Sections 10.2.3,
10.2.8, 10.3.4, and 10.3.13 in the ODB manual.
This is a backwards-incompatible change. Existing use cases that will
require manual changes are listed below.
For pragmas that apply to simple value types and data members of
such types:
#pragma db type("TEXT NOT NULL") => #pragma db type("TEXT")
#pragma db type("TEXT NULL") => #pragma db type("TEXT") null
#pragma db type("TEXT") => #pragma db type("TEXT") null
For pragmas that apply to containers of pointers and data members of
such types:
#pragma db not_null => #pragma db value_not_null
* New pragma, default, allows the specification of the database default
value. For more information, refer to Section 10.3.5, "default" in the
ODB manual.
* New pragmas, options, id_options, index_options, key_options, and
value_options, allow the specification of additional column definition
options. For more information, refer to Section 10.3.6, "options" in
the ODB manual.
* Support for database operations callbacks. Now a persistent class can
register a callback function that will be called before and after every
database operation (such as persist, load, update, or erase) is performed
on an object of this class. A database operations callback can be used to
implement object-specific pre and post initializations, registrations,
and cleanups. For more information and an example, refer to Section
10.1.4, "callback" in the ODB manual.
* New option, --include-regex, allows the modification of the #include
directive paths generated by the ODB compiler. This is primarily useful
when placing the generated code into subdirectories and the #include
directives have to be adjusted accordingly. The --include-regex-trace
option is useful for debugging the expressions specified with
--include-regex.
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:
3494e49d38aaaf26f7c087ab02e65e29fe59bd1d libodb-1.5.0.tar.bz2
edcd8a934542c960c06da04fb8fc6a9a8aa21544 libodb-1.5.0.tar.gz
f87b424c2fabc651d5b5c30dda4bb46cf18b3210 libodb-1.5.0.zip
3b00efc7b8e43add78165ad6ef4a1b8ebb3a31f0 libodb-boost-1.5.0.tar.bz2
835b9448de0d4aeac7c0923a4e30efc9451f34e1 libodb-boost-1.5.0.tar.gz
edfea119f5d279e4b51ad004caa63d623a667e84 libodb-boost-1.5.0.zip
2b5a7bef9493b47bf82a7568c8369f6cd8e94253 libodb-mysql-1.5.0.tar.bz2
836d784f53552a9641d0cbaf870a2e6563e4eb7b libodb-mysql-1.5.0.tar.gz
68e07e6c002f8c12826f5b3f15f2edfaa99ec9b0 libodb-mysql-1.5.0.zip
22f7cf7c8b689b68fc7ede5f76c8d31cffdc6e92 libodb-pgsql-1.5.0.tar.bz2
cfa7221dfa0ec28e2e45f285d8bf704ea7cb73e9 libodb-pgsql-1.5.0.tar.gz
64ac5c9dc841892c2fb76b2ae6d97d7b1d55a5fa libodb-pgsql-1.5.0.zip
cfe802d549676fa2d1cf3d71ffbdf939df0a50b3 libodb-qt-1.5.0.tar.bz2
75fce37933d872f51a0ac565969750e9a6d5fa1f libodb-qt-1.5.0.tar.gz
616f570e6cd81ef62e5fe667f130da824e360aed libodb-qt-1.5.0.zip
524e5e8270e076d79980ccd00d23e4fd4ce309c4 libodb-sqlite-1.5.0.tar.bz2
13dd93d505250c8faa1fa00aa942ad01598e37d9 libodb-sqlite-1.5.0.tar.gz
4b5c43c12624e0dfe67cfd8fc52a1156b4d3840a libodb-sqlite-1.5.0.zip
6610dc40b91eeb9e0af750e953b96ad68f17c521 libodb-tracer-1.5.0.tar.bz2
bf2f6e7f94536148099ebd27ff5e26b5529f0ff7 libodb-tracer-1.5.0.tar.gz
feb41d35e960654de148fdf79101622f61761719 libodb-tracer-1.5.0.zip
450c3865a647c820d7d342bd5d258901de484c74 odb-1.5.0-i686-linux-gnu.tar.bz2
6c183a8a92be4529fe578e399d0647e0187b00ab odb-1.5.0-i686-macosx.tar.bz2
d09757b3937b34cbfee050a94ca981c96a0c7646 odb-1.5.0-i686-solaris.tar.bz2
5a1f1e467cfcee95de653718781be1948c1a1bd7 odb-1.5.0-i686-windows.zip
a5d8ad8c2464d5cbd703d78c81b96a1253310cc6 odb-1.5.0-sparc-solaris.tar.bz2
46c77261904407c4d6497f5c3dc6daaf15a3032a odb-1.5.0.tar.bz2
17eb28531b33adb144ac48da9fa655d0618ead37 odb-1.5.0.tar.gz
a957777b57cc55d4a380358485b3e2ef91dc8c63 odb-1.5.0-x86_64-linux-gnu.tar.bz2
fc4744c369d08410b12c0914dd196b97c15ea726 odb-1.5.0.zip
34aa18ced8354778536f090cd393ffe60a428008 odb-examples-1.5.0.tar.bz2
5eb3aac99cb9d1021b39e70f42da371b81f5e968 odb-examples-1.5.0.tar.gz
b58715a23ce22f3833fe74b5831226a01a87b4a0 odb-examples-1.5.0.zip
bdc4bfde9224a2ab03fecf35b82887449b3d902c odb-tests-1.5.0.tar.bz2
35c9ac71d8f403a68018d63d7e3b33cfb7525ec4 odb-tests-1.5.0.tar.gz
9a99081f4ab17ce900d0ffaf6e64f42dddb1a93c odb-tests-1.5.0.zip
Enjoy,
Boris