aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--odb/mysql/connection.cxx16
-rw-r--r--odb/mysql/connection.hxx1
2 files changed, 15 insertions, 2 deletions
diff --git a/odb/mysql/connection.cxx b/odb/mysql/connection.cxx
index f8e88a0..e8c9903 100644
--- a/odb/mysql/connection.cxx
+++ b/odb/mysql/connection.cxx
@@ -26,8 +26,7 @@ namespace odb
db_ (db),
failed_ (false),
handle_ (&mysql_),
- active_ (0),
- statement_cache_ (new statement_cache_type (*this))
+ active_ (0)
{
if (mysql_init (handle_) == 0)
throw bad_alloc ();
@@ -64,6 +63,19 @@ namespace odb
throw database_exception (e, sqlstate, message);
}
+
+ statement_cache_.reset (new statement_cache_type (*this));
+ }
+
+ connection::
+ connection (database_type& db, MYSQL* handle)
+ : odb::connection (db),
+ db_ (db),
+ failed_ (false),
+ handle_ (handle),
+ active_ (0)
+ {
+ statement_cache_.reset (new statement_cache_type (*this));
}
connection::
diff --git a/odb/mysql/connection.hxx b/odb/mysql/connection.hxx
index ab0692d..f4462ed 100644
--- a/odb/mysql/connection.hxx
+++ b/odb/mysql/connection.hxx
@@ -43,6 +43,7 @@ namespace odb
~connection ();
connection (database_type&);
+ connection (database_type&, MYSQL* handle);
database_type&
database ()