1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
Version 1.2.0
* New namespace, odb::core, contains using-declarations for the core ODB
constructs, such as the database, transaction, etc. The primary use of
this namespace is in the using-directives:
using namespace odb::core;
The above form should be preferred over the old variant:
using namespace odb;
The new approach brings all the essential ODB names into the current
namespace without any of the auxiliary objects such as traits, etc.,
which minimizes the likelihood of conflicts with other libraries.
Note that you can still use the odb namespace when qualifying
individual names, for example, odb::database.
* New exceptions: odb::recoverbale, odb::connection_lost, and odb::timeout.
The odb::recoverbale exception is a common base class for all recoverable
ODB exceptions. The other two exceptions plus odb::deadlock now inherit
from this base. Refer to Section 3.5, "Error Handling and Recovery" for
details.
* Support for connection validation (ping) in MySQL connection_pool_factory.
This transparently deals with the MySQL server closing connections after
a certain period of inactivity.
Version 1.1.0
* Support for storing containers in the database. For more information refer
to Chapter 5, "Containers" in the ODB manual as well as the 'container'
example in the odb-examples package.
* Support for unidirectional and bidirectional object relationships,
including lazy loading. For more information refer to Chapter 6,
"Relationships" in the ODB manual as well as the 'relationship' and
'inverse' examples in the odb-examples package.
* Support for composite value types. For more information refer to Chapter
7, "Composite Value Types" in the ODB manual as well as the 'composite'
example in the odb-examples package.
* Support for sessions. A session is an application's unit of work that
may encompass several database transactions. In this version of ODB a
session is just an object cache. For more information refer to Chapter
8, "Session" in the ODB manual.
* Support for custom object pointers that allows you to use smart pointers
to return, pass, and cache persistent objects. See Section 3.2, "Object
Pointers" in the ODB manual for details.
* Support for native SQL statement execution. See Section 3.9, "Executing
Native SQL Statements" in the ODB manual for details.
* New option, --profile/-p, instructs the ODB compiler to use the specified
profile library. See the ODB compiler command line manual for details.
* Support for literal names (template-id, derived type declarator such as
pointers, etc) in data member declarations. Now, for example, you can use
std::vector<std::string> directly instead of having to create a typedef
alias for it.
* Support for inheritance from transient base types for object types and
composite value types.
* New example, 'schema/custom', shows how to map persistent C++ classes to
a custom database schema.
* New options, --odb-prologue, --odb-epilogue, allow inclusion of extra code
into the ODB compilation process. This can be useful for making additional
traits specializations or ODB pragmas known to the ODB compiler.
* Support for persistent classes without default constructors. For objects
of such classes only the load() and find() database functions that
populate an existing instance can be used. Similarly, only the load()
query result iterator function which populates an existing instance can
be used.
Version 1.0.0
* Initial release.
|