diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2013-09-10 14:09:54 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2013-09-10 14:09:54 +0200 |
commit | 5ecb61d9ee61a53ddbba6b9dea93e7a4adc448b8 (patch) | |
tree | 825ac9d4048faa0044f389bc6dd8e270731a0176 /odb/relational/source.cxx | |
parent | a2bd159c93aced832cae1927c32703d3306d1b03 (diff) |
Schema versioning support for rest of database
Diffstat (limited to 'odb/relational/source.cxx')
-rw-r--r-- | odb/relational/source.cxx | 42 |
1 files changed, 22 insertions, 20 deletions
diff --git a/odb/relational/source.cxx b/odb/relational/source.cxx index 796fc13..7a0627d 100644 --- a/odb/relational/source.cxx +++ b/odb/relational/source.cxx @@ -668,7 +668,7 @@ traverse_object (type& c) statement_kind sk (statement_insert); // Imperfect forwarding. instance<object_columns> ct (sk, sc); ct->traverse (c); - process_statement_columns (sc, statement_insert); + process_statement_columns (sc, statement_insert, versioned); } bool dv (sc.empty ()); // The DEFAULT VALUES syntax. @@ -757,7 +757,7 @@ traverse_object (type& c) object_section* s (&main_section); // Imperfect forwarding. instance<object_columns> t (qtable, sk, sc, d, s); t->traverse (c); - process_statement_columns (sc, statement_select); + process_statement_columns (sc, statement_select, versioned); find_column_counts[poly_depth - d] = sc.size (); } @@ -863,7 +863,7 @@ traverse_object (type& c) if (opt != 0) t->traverse (*opt); - process_statement_columns (sc, statement_select); + process_statement_columns (sc, statement_select, false); } os << "const char " << traits << "::" << endl @@ -910,7 +910,7 @@ traverse_object (type& c) object_section* s (&main_section); // Imperfect forwarding. instance<object_columns> t (sk, sc, p, s); t->traverse (c); - process_statement_columns (sc, statement_update); + process_statement_columns (sc, statement_update, versioned); } os << "const char " << traits << "::update_statement[] =" << endl @@ -1022,15 +1022,6 @@ traverse_object (type& c) { // query_statement // - statement_columns sc; - { - statement_kind sk (statement_select); //@@ Imperfect forwarding. - object_section* s (&main_section); //@@ Imperfect forwarding. - instance<object_columns> oc (qtable, sk, sc, poly_depth, s); - oc->traverse (c); - process_statement_columns (sc, statement_select); - } - strings joins; if (poly_depth != 1) { @@ -1054,6 +1045,16 @@ traverse_object (type& c) query_optimize = !joins.empty (); + statement_columns sc; + { + statement_kind sk (statement_select); //@@ Imperfect forwarding. + object_section* s (&main_section); //@@ Imperfect forwarding. + instance<object_columns> oc (qtable, sk, sc, poly_depth, s); + oc->traverse (c); + process_statement_columns ( + sc, statement_select, versioned || query_optimize); + } + string sep (versioned || query_optimize ? "\n" : " "); os << "const char " << traits << "::query_statement[] =" << endl @@ -4318,13 +4319,6 @@ traverse_view (type& c) } else // vq.kind == view_query::condition { - statement_columns sc; - { - instance<view_columns> t (sc); - t->traverse (c); - process_statement_columns (sc, statement_select); - } - // Generate the from-list. // strings from; @@ -4828,6 +4822,14 @@ traverse_view (type& c) } } // End JOIN-generating for-loop. + statement_columns sc; + { + instance<view_columns> t (sc); + t->traverse (c); + process_statement_columns ( + sc, statement_select, versioned || query_optimize); + } + string sep (versioned || query_optimize ? "\n" : " "); os << "query_base_type r (" << endl |