From 519010bb77f813971570dceba068272ca2f5b600 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 13 Sep 2012 12:21:06 +0200 Subject: Add --sql-interlude and --sql-interlude-file options --- odb/relational/schema.cxx | 86 +++++++++++++++++++++++------------------------ 1 file changed, 43 insertions(+), 43 deletions(-) (limited to 'odb/relational/schema.cxx') diff --git a/odb/relational/schema.cxx b/odb/relational/schema.cxx index 3dd8507..5c0bdf9 100644 --- a/odb/relational/schema.cxx +++ b/odb/relational/schema.cxx @@ -21,70 +21,70 @@ namespace relational // schema_format cxx_object::format_embedded (schema_format::embedded); - static char const file_header[] = - "/* This file was generated by ODB, object-relational mapping (ORM)\n" - " * compiler for C++.\n" - " */\n\n"; - void - generate () + generate_prologue () { - context ctx; - ostream& os (ctx.os); - - os << file_header; - instance file; file->prologue (); + } + void + generate_epilogue () + { + instance file; + file->epilogue (); + } + + void + generate_drop () + { + context ctx; instance em; emitter_ostream emos (*em); schema_format f (schema_format::sql); - // Drop. + instance model (*em, emos, f); + instance table (*em, emos, f); + trav_rel::qnames names; + + model >> names >> table; + + // Pass 1 and 2. // + for (unsigned short pass (1); pass < 3; ++pass) { - instance model (*em, emos, f); - instance table (*em, emos, f); - trav_rel::qnames names; + model->pass (pass); + table->pass (pass); - model >> names >> table; + model->traverse (*ctx.model); + } + } - // Pass 1 and 2. - // - for (unsigned short pass (1); pass < 3; ++pass) - { - model->pass (pass); - table->pass (pass); + void + generate_create () + { + context ctx; + instance em; + emitter_ostream emos (*em); - model->traverse (*ctx.model); - } - } + schema_format f (schema_format::sql); - os << endl; + instance model (*em, emos, f); + instance table (*em, emos, f); + trav_rel::qnames names; - // Create. + model >> names >> table; + + // Pass 1 and 2. // + for (unsigned short pass (1); pass < 3; ++pass) { - instance model (*em, emos, f); - instance table (*em, emos, f); - trav_rel::qnames names; - - model >> names >> table; + model->pass (pass); + table->pass (pass); - // Pass 1 and 2. - // - for (unsigned short pass (1); pass < 3; ++pass) - { - model->pass (pass); - table->pass (pass); - - model->traverse (*ctx.model); - } + model->traverse (*ctx.model); } - - file->epilogue (); } } } -- cgit v1.1