From 8a637f5697fdee3e7ae2d46f64a64d40cba5954b Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 31 Oct 2012 07:59:18 +0200 Subject: Add dynamic multi-database support excluding query --- odb/generator.cxx | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'odb/generator.cxx') diff --git a/odb/generator.cxx b/odb/generator.cxx index ec98a15..4fa4cf2 100644 --- a/odb/generator.cxx +++ b/odb/generator.cxx @@ -81,6 +81,7 @@ generate (options const& ops, try { database db (ops.database ()[0]); + multi_database md (ops.multi_database ()); // First create the database model. // @@ -181,7 +182,7 @@ generate (options const& ops, // ofstream cxx; - if (gen_cxx && db != database::common) + if (gen_cxx && (db != database::common || md == multi_database::dynamic)) { cxx.open (cxx_path.string ().c_str (), ios_base::out); @@ -346,7 +347,7 @@ generate (options const& ops, case database::pgsql: case database::sqlite: { - if (ops.multi_database () == multi_database::disabled) + if (md == multi_database::disabled) header::generate (); else { @@ -445,7 +446,7 @@ generate (options const& ops, case database::pgsql: case database::sqlite: { - if (ops.multi_database () == multi_database::disabled) + if (md == multi_database::disabled) inline_::generate (); relational::inline_::generate (); @@ -482,7 +483,7 @@ generate (options const& ops, // CXX // - if (gen_cxx && db != database::common) + if (gen_cxx && (db != database::common || md == multi_database::dynamic)) { auto_ptr ctx ( create_context (cxx, unit, ops, fts, model.get ())); @@ -530,7 +531,10 @@ generate (options const& ops, { case database::common: { - assert (false); + // Dynamic multi-database support. + // + source::generate (); + break; } case database::mssql: case database::mysql: -- cgit v1.1