diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2011-08-22 11:47:55 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2011-08-22 11:47:55 +0200 |
commit | 1feaef1c1e2c8daba97b20e1fb012706c6adf1ce (patch) | |
tree | a3c7f577e7019a14e45990d50a8b0da1c294e9e4 /odb/database.ixx | |
parent | 5b6649e6f7dd256147b48197a007c23001cef647 (diff) |
Add database::erase_query() function
New test: common/erase-query. Documentation is in Section 3.9, "Deleting
Persistent Objects". The current implementation does not work well with
the session (no removal of the erased objects from the cache).
Diffstat (limited to 'odb/database.ixx')
-rw-r--r-- | odb/database.ixx | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/odb/database.ixx b/odb/database.ixx index a308bfe..ccbbe41 100644 --- a/odb/database.ixx +++ b/odb/database.ixx @@ -170,6 +170,39 @@ namespace odb } template <typename T> + inline unsigned long long database:: + erase_query () + { + // T can be const T while object_type will always be T. + // + typedef typename odb::object_traits<T>::object_type object_type; + + return erase_query<T> (odb::query<object_type> ()); + } + + template <typename T> + inline unsigned long long database:: + erase_query (const char* q) + { + // T can be const T while object_type will always be T. + // + typedef typename odb::object_traits<T>::object_type object_type; + + return erase_query<T> (odb::query<object_type> (q)); + } + + template <typename T> + inline unsigned long long database:: + erase_query (const std::string& q) + { + // T can be const T while object_type will always be T. + // + typedef typename odb::object_traits<T>::object_type object_type; + + return erase_query<T> (odb::query<object_type> (q)); + } + + template <typename T> inline result<T> database:: query (bool cache) { |