From 5e17d609ae59dc07514e2af945db05be05db968c Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 13 Aug 2010 15:34:58 +0200 Subject: Do not generate query support code by default Add the --generate-query option to explicitly request this functionality. --- odb/mysql/source.cxx | 86 +++++++++++++++++++++++++++++----------------------- 1 file changed, 48 insertions(+), 38 deletions(-) (limited to 'odb/mysql/source.cxx') diff --git a/odb/mysql/source.cxx b/odb/mysql/source.cxx index 0e8d420..a9f8a99 100644 --- a/odb/mysql/source.cxx +++ b/odb/mysql/source.cxx @@ -674,6 +674,7 @@ namespace mysql // query columns // + if (options.generate_query ()) { query_column t (*this, c); traversal::names n (t); @@ -740,18 +741,21 @@ namespace mysql // select_prefix // - os << "const char* const " << traits << "::select_prefix =" << endl - << "\"SELECT \"" << endl; - + if (options.generate_query ()) { - member_column m (*this); - traversal::names n (m); - names (c, n); - } + os << "const char* const " << traits << "::select_prefix =" << endl + << "\"SELECT \"" << endl; - os << "\"" << endl - << "\" FROM `" << table_name (c) << "` \";" - << endl; + { + member_column m (*this); + traversal::names n (m); + names (c, n); + } + + os << "\"" << endl + << "\" FROM `" << table_name (c) << "` \";" + << endl; + } // grow () // @@ -971,31 +975,34 @@ namespace mysql // query () // - os << "result< " << traits << "::object_type >" << endl - << traits << "::" << endl - << "query (database&, const query_type& q)" - << "{" - << "using namespace mysql;" - << endl - << "connection& conn (mysql::transaction::current ().connection ());" - << "object_statements& sts (" << endl - << "conn.statement_cache ().find ());" - << endl - << "binding& imb (sts.image_binding ());" - << "if (imb.version == 0)" << endl - << "bind (imb, sts.image ());" - << endl - << "shared_ptr st (" << endl - << "new (shared) query_statement (conn," << endl - << "select_prefix + q.clause ()," << endl - << "imb," << endl - << "q.parameters ()));" - << "st->execute ();" - << endl - << "shared_ptr > r (" << endl - << "new (shared) mysql::result_impl (st, sts));" - << "return result (r);" - << "}"; + if (options.generate_query ()) + { + os << "result< " << traits << "::object_type >" << endl + << traits << "::" << endl + << "query (database&, const query_type& q)" + << "{" + << "using namespace mysql;" + << endl + << "connection& conn (mysql::transaction::current ().connection ());" + << "object_statements& sts (" << endl + << "conn.statement_cache ().find ());" + << endl + << "binding& imb (sts.image_binding ());" + << "if (imb.version == 0)" << endl + << "bind (imb, sts.image ());" + << endl + << "shared_ptr st (" << endl + << "new (shared) query_statement (conn," << endl + << "select_prefix + q.clause ()," << endl + << "imb," << endl + << "q.parameters ()));" + << "st->execute ();" + << endl + << "shared_ptr > r (" << endl + << "new (shared) mysql::result_impl (st, sts));" + << "return result (r);" + << "}"; + } } private: @@ -1034,9 +1041,12 @@ namespace mysql << "#include " << endl << "#include " << endl << "#include " << endl - << "#include " << endl - << "#include " << endl - << endl; + << "#include " << endl; + + if (ctx.options.generate_query ()) + ctx.os << "#include " << endl; + + ctx.os << endl; ctx.os << "namespace odb" << "{"; -- cgit v1.1