aboutsummaryrefslogtreecommitdiff
path: root/odb/relational/source.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2012-04-27 13:57:34 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2012-04-27 13:57:34 +0200
commit52793dc8860e38f725dc0ca8300c4e2ca9d4ceb9 (patch)
tree88d868922e1903cc56236516c8ab44b4bc222a2d /odb/relational/source.hxx
parentf8b3ee6d42f5112c4e66a07cc7fdba43ce66aacd (diff)
Don't generate grow code for databases that don't need it
Diffstat (limited to 'odb/relational/source.hxx')
-rw-r--r--odb/relational/source.hxx41
1 files changed, 28 insertions, 13 deletions
diff --git a/odb/relational/source.hxx b/odb/relational/source.hxx
index 2f2a61e..de0e6bd 100644
--- a/odb/relational/source.hxx
+++ b/odb/relational/source.hxx
@@ -1347,9 +1347,17 @@ namespace relational
os << "if (sk != statement_update)"
<< "{";
- os << "if (" << (obj ? "object" : "composite_value") << "_traits< " <<
- class_fq_name (c) << " >::init (i, o, sk))" << endl
- << "grew = true;";
+ if (generate_grow)
+ os << "if (";
+
+ os << (obj ? "object" : "composite_value") << "_traits< " <<
+ class_fq_name (c) << " >::init (i, o, sk)";
+
+ if (generate_grow)
+ os << ")" << endl
+ << "grew = true";
+
+ os << ";";
if (check)
os << "}";
@@ -2270,10 +2278,12 @@ namespace relational
<< endl
<< "statement_kind sk (statement_insert);"
<< "ODB_POTENTIALLY_UNUSED (sk);"
- << endl
- << "bool grew (false);"
<< endl;
+ if (generate_grow)
+ os << "bool grew (false);"
+ << endl;
+
switch (ck)
{
case ck_ordered:
@@ -2316,9 +2326,11 @@ namespace relational
im->traverse (m);
}
- os << "if (grew)" << endl
- << "i.version++;"
- << "}";
+ if (generate_grow)
+ os << "if (grew)" << endl
+ << "i.version++;";
+
+ os << "}";
}
// init (data)
@@ -3297,7 +3309,7 @@ namespace relational
// init (image, value)
//
- os << "bool " << traits << "::" << endl
+ os << (generate_grow ? "bool " : "void ") << traits << "::" << endl
<< "init (image_type& i, const value_type& o, " <<
db << "::statement_kind sk)"
<< "{"
@@ -3312,14 +3324,17 @@ namespace relational
os << "assert (sk != statement_update);"
<< endl;
- os << "bool grew (false);"
- << endl;
+ if (generate_grow)
+ os << "bool grew (false);"
+ << endl;
inherits (c, init_image_base_inherits_);
names (c, init_image_member_names_);
- os << "return grew;"
- << "}";
+ if (generate_grow)
+ os << "return grew;";
+
+ os << "}";
// init (value, image)
//