aboutsummaryrefslogtreecommitdiff
path: root/odb/mysql/object-statements.txx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-11-01 12:41:02 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-11-01 12:41:02 +0200
commitcd4e72208fad964a22c99bb9fc15708a528a1e39 (patch)
tree91f7767d87601a66ef89cc901d1c334c30e961dc /odb/mysql/object-statements.txx
parent8f49a9a3eddfbaa3afda78aad964268b31d0890b (diff)
Implement support for optimistic concurrency
New pragmas: optimistic, version. New test: optimistic. New database function: reload().
Diffstat (limited to 'odb/mysql/object-statements.txx')
-rw-r--r--odb/mysql/object-statements.txx21
1 files changed, 19 insertions, 2 deletions
diff --git a/odb/mysql/object-statements.txx b/odb/mysql/object-statements.txx
index cf95a4a..34fa8f2 100644
--- a/odb/mysql/object-statements.txx
+++ b/odb/mysql/object-statements.txx
@@ -17,6 +17,21 @@ namespace odb
namespace mysql
{
//
+ // optimistic_data
+ //
+
+ template <typename T>
+ optimistic_data<T, true>::
+ optimistic_data (MYSQL_BIND* b)
+ : id_image_binding_ (
+ b,
+ object_traits::id_column_count +
+ object_traits::managed_optimistic_column_count)
+ {
+ id_image_version_ = 0;
+ }
+
+ //
// object_statements
//
@@ -34,9 +49,11 @@ namespace odb
select_image_binding_ (select_image_bind_, select_column_count),
insert_image_binding_ (insert_image_bind_, insert_column_count),
update_image_binding_ (update_image_bind_,
- update_column_count + id_column_count),
+ update_column_count + id_column_count +
+ managed_optimistic_column_count),
id_image_binding_ (update_image_bind_ + update_column_count,
- id_column_count)
+ id_column_count),
+ od_ (update_image_bind_ + update_column_count)
{
image_.version = 0;
select_image_version_ = 0;