diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2011-07-05 18:39:09 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2011-07-05 18:39:09 +0200 |
commit | 5d33aeaa327f53c920a65302925090debdfc80b8 (patch) | |
tree | 5c1c0806ae8b09b6f04a16ba2d50b762f83cd416 /odb/relational/schema.cxx | |
parent | aae1a5139744da164e8565004753b69645038eb0 (diff) |
Add support for multi-pass database schema generation
Diffstat (limited to 'odb/relational/schema.cxx')
-rw-r--r-- | odb/relational/schema.cxx | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/odb/relational/schema.cxx b/odb/relational/schema.cxx index 6afdb32..87e0533 100644 --- a/odb/relational/schema.cxx +++ b/odb/relational/schema.cxx @@ -60,7 +60,7 @@ namespace relational schema_emitter emitter; - // Drop. + // Drop. It is essentially pass 0. // { traversal::unit unit; @@ -86,7 +86,9 @@ namespace relational traversal::unit unit; traversal::defines unit_defines; traversal::namespace_ ns; - instance<class_create> c (emitter); + + unsigned short pass (1); + instance<class_create> c (emitter, pass); unit >> unit_defines >> ns; unit_defines >> c; @@ -95,6 +97,14 @@ namespace relational ns >> ns_defines >> ns; ns_defines >> c; + + // Pass 1. + // + unit.dispatch (ctx.unit); + + // Pass 2. + // + pass = 2; unit.dispatch (ctx.unit); } } |