From 6600ffb83cc88ab8b34d9fc7754656c95b0355e3 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 25 Jul 2012 15:52:26 +0200 Subject: Simplify auto id implementation in Oracle Specifically, instead of using a trigger to assign the next id from the sequence, get the next value directly in the INSERT statement. --- odb/oracle/simple-object-statements.hxx | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'odb/oracle/simple-object-statements.hxx') diff --git a/odb/oracle/simple-object-statements.hxx b/odb/oracle/simple-object-statements.hxx index 20cfffe..dfaf8c4 100644 --- a/odb/oracle/simple-object-statements.hxx +++ b/odb/oracle/simple-object-statements.hxx @@ -414,21 +414,23 @@ namespace odb public: // select = total - // insert = total - inverse - managed_optimistic + // insert = total - inverse - managed_optimistic - auto_id // update = total - inverse - managed_optimistic - id - readonly // static const std::size_t select_column_count = object_traits::column_count; + static const std::size_t id_column_count = + object_traits::id_column_count; + static const std::size_t insert_column_count = object_traits::column_count - object_traits::inverse_column_count - - object_traits::managed_optimistic_column_count; + object_traits::managed_optimistic_column_count - + (object_traits::auto_id ? id_column_count : 0); static const std::size_t update_column_count = insert_column_count - - object_traits::id_column_count - object_traits::readonly_column_count; - - static const std::size_t id_column_count = - object_traits::id_column_count; + (object_traits::auto_id ? 0 : id_column_count) - + object_traits::readonly_column_count; static const std::size_t managed_optimistic_column_count = object_traits::managed_optimistic_column_count; -- cgit v1.1