aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2012-02-10 15:27:01 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2012-02-10 15:27:01 +0200
commitbae6ada688e0b09c773edc9b9f7e54f98b019cad (patch)
tree8627156a4ee98d0e4f10b540842f0f592350c42f
parented471987064f199c4036695d755ed1d026aec769 (diff)
Don't allocate unnecessary entries in container truncation array
-rw-r--r--odb/pgsql/container-statements.hxx10
-rw-r--r--odb/pgsql/container-statements.txx11
2 files changed, 7 insertions, 14 deletions
diff --git a/odb/pgsql/container-statements.hxx b/odb/pgsql/container-statements.hxx
index 4967cfb..cf0e0b8 100644
--- a/odb/pgsql/container-statements.hxx
+++ b/odb/pgsql/container-statements.hxx
@@ -157,12 +157,6 @@ namespace odb
return data_image_binding_;
}
- bool*
- data_image_truncated ()
- {
- return data_image_truncated_;
- }
-
native_binding&
data_image_native_binding ()
{
@@ -268,7 +262,6 @@ namespace odb
std::size_t data_id_binding_version_;
binding data_image_binding_;
- bool* data_image_truncated_;
native_binding data_image_native_binding_;
// Skips the id from data_image_binding.
@@ -323,7 +316,8 @@ namespace odb
int data_image_lengths_[traits::data_column_count];
int data_image_formats_[traits::data_column_count];
- bool data_image_truncated_array_[traits::data_column_count];
+ bool select_image_truncated_array_[traits::data_column_count -
+ traits::id_column_count];
};
}
}
diff --git a/odb/pgsql/container-statements.txx b/odb/pgsql/container-statements.txx
index cc9594d..74948f2 100644
--- a/odb/pgsql/container-statements.txx
+++ b/odb/pgsql/container-statements.txx
@@ -41,9 +41,7 @@ namespace odb
container_statements_impl (connection_type& conn)
: base (conn)
{
- this->data_image_truncated_ = data_image_truncated_array_;
- this->select_image_truncated_ = data_image_truncated_array_ +
- traits::id_column_count;
+ this->select_image_truncated_ = select_image_truncated_array_;
this->cond_image_binding_.bind = cond_image_bind_;
this->cond_image_binding_.count = traits::cond_column_count;
@@ -68,12 +66,13 @@ namespace odb
std::memset (cond_image_bind_, 0, sizeof (cond_image_bind_));
std::memset (data_image_bind_, 0, sizeof (data_image_bind_));
- std::memset (data_image_truncated_array_,
+ std::memset (select_image_truncated_array_,
0,
- sizeof (data_image_truncated_array_));
+ sizeof (select_image_truncated_array_));
for (std::size_t i (0); i < traits::data_column_count; ++i)
- data_image_bind_[i].truncated = data_image_truncated_array_ + i;
+ data_image_bind_[i + traits::id_column_count].truncated =
+ select_image_truncated_array_ + i;
this->insert_one_name_ = traits::insert_one_name;
this->insert_one_text_ = traits::insert_one_statement;