diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2024-01-25 17:28:38 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2024-01-25 17:28:38 +0300 |
commit | d9f372d7b1bc1abbff5fdf9735118290cd024d5e (patch) | |
tree | 49bc3160ea184e19cd5cb6a7404dee42311c0fd7 /odb/pgsql/polymorphic-object-statements.txx | |
parent | 55e14d8f9697adeeb05fcd23cf8f19c33452bb56 (diff) |
Turn libodb-pgsql repository into package for muti-package repositorylibodb-pgsql
Diffstat (limited to 'odb/pgsql/polymorphic-object-statements.txx')
-rw-r--r-- | odb/pgsql/polymorphic-object-statements.txx | 158 |
1 files changed, 0 insertions, 158 deletions
diff --git a/odb/pgsql/polymorphic-object-statements.txx b/odb/pgsql/polymorphic-object-statements.txx deleted file mode 100644 index 8472fca..0000000 --- a/odb/pgsql/polymorphic-object-statements.txx +++ /dev/null @@ -1,158 +0,0 @@ -// file : odb/pgsql/polymorphic-object-statements.txx -// license : GNU GPL v2; see accompanying LICENSE file - -#include <cstring> // std::memset - -#include <odb/callback.hxx> -#include <odb/exceptions.hxx> - -#include <odb/pgsql/connection.hxx> -#include <odb/pgsql/transaction.hxx> -#include <odb/pgsql/statement-cache.hxx> -#include <odb/pgsql/traits-calls.hxx> - -namespace odb -{ - namespace pgsql - { - // - // polymorphic_root_object_statements - // - - template <typename T> - polymorphic_root_object_statements<T>:: - ~polymorphic_root_object_statements () - { - } - - template <typename T> - polymorphic_root_object_statements<T>:: - polymorphic_root_object_statements (connection_type& conn) - : object_statements<T> (conn), - discriminator_image_binding_ (discriminator_image_bind_, - discriminator_column_count + - managed_optimistic_column_count), - discriminator_id_image_binding_ (discriminator_id_image_bind_, - id_column_count), - discriminator_id_image_native_binding_ ( - discriminator_id_image_values_, - discriminator_id_image_lengths_, - discriminator_id_image_formats_, - id_column_count) - { - discriminator_image_.version = 0; - discriminator_id_image_.version = 0; - - discriminator_image_version_ = 0; - discriminator_id_image_version_ = 0; - - std::memset (discriminator_image_bind_, - 0, - sizeof (discriminator_image_bind_)); - std::memset (discriminator_id_image_bind_, - 0, - sizeof (discriminator_id_image_bind_)); - std::memset (discriminator_image_truncated_, - 0, - sizeof (discriminator_image_truncated_)); - - for (std::size_t i (0); - i < discriminator_column_count + managed_optimistic_column_count; - ++i) - { - discriminator_image_bind_[i].truncated = - discriminator_image_truncated_ + i; - } - } - - // - // polymorphic_derived_object_statements - // - - template <typename T> - polymorphic_derived_object_statements<T>:: - ~polymorphic_derived_object_statements () - { - } - - template <typename T> - polymorphic_derived_object_statements<T>:: - polymorphic_derived_object_statements (connection_type& conn) - : statements_base (conn), - root_statements_ (conn.statement_cache ().find_object<root_type> ()), - base_statements_ (conn.statement_cache ().find_object<base_type> ()), - insert_image_binding_ (insert_image_bind_, insert_column_count), - insert_image_native_binding_ (insert_image_values_, - insert_image_lengths_, - insert_image_formats_, - insert_column_count), - update_image_binding_ (update_image_bind_, - update_column_count + id_column_count), - update_image_native_binding_ (update_image_values_, - update_image_lengths_, - update_image_formats_, - update_column_count + id_column_count) - { - image_.base = &base_statements_.image (); - image_.version = 0; - - for (std::size_t i (0); i < object_traits::depth; ++i) - select_image_versions_[i] = 0; - - for (std::size_t i (0); - i < (object_traits::abstract ? 1 : object_traits::depth); - ++i) - { - select_image_bindings_[i].bind = select_image_bind_; - select_image_bindings_[i].count = object_traits::find_column_counts[i]; - } - - insert_image_version_ = 0; - insert_id_binding_version_ = 0; - update_image_version_ = 0; - update_id_binding_version_ = 0; - - std::memset (insert_image_bind_, 0, sizeof (insert_image_bind_)); - std::memset (update_image_bind_, 0, sizeof (update_image_bind_)); - std::memset (select_image_bind_, 0, sizeof (select_image_bind_)); - std::memset ( - select_image_truncated_, 0, sizeof (select_image_truncated_)); - - for (std::size_t i (0); i < select_column_count; ++i) - select_image_bind_[i].truncated = select_image_truncated_ + i; - } - - template <typename T> - void polymorphic_derived_object_statements<T>:: - delayed_loader (odb::database& db, - const id_type& id, - root_type& robj, - const schema_version_migration* svm) - { - connection_type& conn (transaction::current ().connection (db)); - polymorphic_derived_object_statements& sts ( - conn.statement_cache ().find_object<object_type> ()); - root_statements_type& rsts (sts.root_statements ()); - - object_type& obj (static_cast<object_type&> (robj)); - - // The same code as in object_statements::load_delayed_(). - // - object_traits_calls<T> tc (svm); - - if (!tc.find_ (sts, &id)) - throw object_not_persistent (); - - object_traits::callback (db, obj, callback_event::pre_load); - tc.init (obj, sts.image (), &db); - tc.load_ (sts, obj, false); // Load containers, etc. - - rsts.load_delayed (svm); - - { - typename root_statements_type::auto_unlock u (rsts); - object_traits::callback (db, obj, callback_event::post_load); - } - } - } -} |