aboutsummaryrefslogtreecommitdiff
path: root/odb/pgsql/database.ixx
diff options
context:
space:
mode:
Diffstat (limited to 'odb/pgsql/database.ixx')
-rw-r--r--odb/pgsql/database.ixx30
1 files changed, 29 insertions, 1 deletions
diff --git a/odb/pgsql/database.ixx b/odb/pgsql/database.ixx
index 3e3d63e..f04c3e6 100644
--- a/odb/pgsql/database.ixx
+++ b/odb/pgsql/database.ixx
@@ -119,6 +119,13 @@ namespace odb
return persist_<T, id_pgsql> (pobj);
}
+ template <typename I>
+ inline void database::
+ persist (I b, I e, bool cont)
+ {
+ persist_<I, id_pgsql> (b, e, cont);
+ }
+
template <typename T>
inline typename object_traits<T>::pointer_type database::
load (const typename object_traits<T>::id_type& id)
@@ -280,6 +287,13 @@ namespace odb
update_<T, id_pgsql> (pobj);
}
+ template <typename I>
+ inline void database::
+ update (I b, I e, bool cont)
+ {
+ update_<I, id_pgsql> (b, e, cont);
+ }
+
template <typename T>
inline void database::
update (const T& obj, const section& s)
@@ -369,6 +383,20 @@ namespace odb
erase_<T, id_pgsql> (pobj);
}
+ template <typename T, typename I>
+ inline void database::
+ erase (I idb, I ide, bool cont)
+ {
+ erase_id_<I, T, id_pgsql> (idb, ide, cont);
+ }
+
+ template <typename I>
+ inline void database::
+ erase (I ob, I oe, bool cont)
+ {
+ erase_object_<I, id_pgsql> (ob, oe, cont);
+ }
+
template <typename T>
inline unsigned long long database::
erase_query ()
@@ -594,7 +622,7 @@ namespace odb
{
// Throws if not in transaction.
//
- pgsql::connection& c (transaction::current ().connection ());
+ pgsql::connection& c (transaction::current ().connection (*this));
return c.prepare_query<T> (n, q);
}