aboutsummaryrefslogtreecommitdiff
path: root/odb/mysql/view-result.txx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2012-03-07 10:21:07 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2012-03-07 10:21:07 +0200
commit9542fdc4434c3af3eaed91bf10e5b487044d8cc7 (patch)
tree93a09e5995fee093cc048e585c29c3d88937dbdb /odb/mysql/view-result.txx
parent6b9ed661b4bf7f1a07ee34fe205d3e0802df535c (diff)
Use RAII to free select statement results
Diffstat (limited to 'odb/mysql/view-result.txx')
-rw-r--r--odb/mysql/view-result.txx8
1 files changed, 8 insertions, 0 deletions
diff --git a/odb/mysql/view-result.txx b/odb/mysql/view-result.txx
index 6161909..6f1896d 100644
--- a/odb/mysql/view-result.txx
+++ b/odb/mysql/view-result.txx
@@ -15,6 +15,8 @@ namespace odb
view_result_impl<T>::
~view_result_impl ()
{
+ if (!this->end_)
+ statement_->free_result ();
}
template <typename T>
@@ -60,6 +62,9 @@ namespace odb
this->end_ = count_ > statement_->result_size ();
else
fetch ();
+
+ if (this->end_)
+ statement_->free_result ();
}
template <typename T>
@@ -132,7 +137,10 @@ namespace odb
statement_->cache ();
if (count_ >= statement_->result_size ())
+ {
+ statement_->free_result ();
this->end_ = true;
+ }
}
}