aboutsummaryrefslogtreecommitdiff
path: root/odb/generator.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2012-10-31 07:59:18 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2012-11-21 13:13:50 +0200
commit8a637f5697fdee3e7ae2d46f64a64d40cba5954b (patch)
treec0255a90876c464803245a39f8505898ab6a3f74 /odb/generator.cxx
parent2b7b3e9d9e69bbf0fdd6ce1a8564765027580d10 (diff)
Add dynamic multi-database support excluding query
Diffstat (limited to 'odb/generator.cxx')
-rw-r--r--odb/generator.cxx14
1 files changed, 9 insertions, 5 deletions
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<context> 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: