summaryrefslogtreecommitdiff
path: root/odb/pgsql/transaction-impl.cxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2024-01-25 17:28:38 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2024-01-25 17:28:38 +0300
commitd9f372d7b1bc1abbff5fdf9735118290cd024d5e (patch)
tree49bc3160ea184e19cd5cb6a7404dee42311c0fd7 /odb/pgsql/transaction-impl.cxx
parent55e14d8f9697adeeb05fcd23cf8f19c33452bb56 (diff)
Turn libodb-pgsql repository into package for muti-package repositorylibodb-pgsql
Diffstat (limited to 'odb/pgsql/transaction-impl.cxx')
-rw-r--r--odb/pgsql/transaction-impl.cxx107
1 files changed, 0 insertions, 107 deletions
diff --git a/odb/pgsql/transaction-impl.cxx b/odb/pgsql/transaction-impl.cxx
deleted file mode 100644
index 012fe18..0000000
--- a/odb/pgsql/transaction-impl.cxx
+++ /dev/null
@@ -1,107 +0,0 @@
-// file : odb/pgsql/transaction-impl.cxx
-// license : GNU GPL v2; see accompanying LICENSE file
-
-#include <cassert>
-
-#include <libpq-fe.h>
-
-#include <odb/tracer.hxx>
-
-#include <odb/pgsql/database.hxx>
-#include <odb/pgsql/connection.hxx>
-#include <odb/pgsql/error.hxx>
-#include <odb/pgsql/exceptions.hxx>
-#include <odb/pgsql/transaction-impl.hxx>
-#include <odb/pgsql/auto-handle.hxx>
-
-namespace odb
-{
- namespace pgsql
- {
- transaction_impl::
- transaction_impl (database_type& db)
- : odb::transaction_impl (db)
- {
- }
-
- transaction_impl::
- transaction_impl (connection_ptr c)
- : odb::transaction_impl (c->database (), *c), connection_ (c)
- {
- }
-
- transaction_impl::
- ~transaction_impl ()
- {
- }
-
- void transaction_impl::
- start ()
- {
- // Grab a connection if we don't already have one.
- //
- if (connection_ == 0)
- {
- connection_ = static_cast<database_type&> (database_).connection ();
- odb::transaction_impl::connection_ = connection_.get ();
- }
-
- {
- odb::tracer* t;
- if ((t = connection_->tracer ()) || (t = database_.tracer ()))
- t->execute (*connection_, "BEGIN");
- }
-
- auto_handle<PGresult> h (PQexec (connection_->handle (), "begin"));
-
- if (!h || PGRES_COMMAND_OK != PQresultStatus (h))
- translate_error (*connection_, h);
- }
-
- void transaction_impl::
- commit ()
- {
- // Invalidate query results.
- //
- connection_->invalidate_results ();
-
- {
- odb::tracer* t;
- if ((t = connection_->tracer ()) || (t = database_.tracer ()))
- t->execute (*connection_, "COMMIT");
- }
-
- auto_handle<PGresult> h (PQexec (connection_->handle (), "commit"));
-
- if (!h || PGRES_COMMAND_OK != PQresultStatus (h))
- translate_error (*connection_, h);
-
- // Release the connection.
- //
- connection_.reset ();
- }
-
- void transaction_impl::
- rollback ()
- {
- // Invalidate query results.
- //
- connection_->invalidate_results ();
-
- {
- odb::tracer* t;
- if ((t = connection_->tracer ()) || (t = database_.tracer ()))
- t->execute (*connection_, "ROLLBACK");
- }
-
- auto_handle<PGresult> h (PQexec (connection_->handle (), "rollback"));
-
- if (!h || PGRES_COMMAND_OK != PQresultStatus (h))
- translate_error (*connection_, h);
-
- // Release the connection.
- //
- connection_.reset ();
- }
- }
-}