diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2011-09-16 16:03:25 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2011-09-16 16:03:25 +0200 |
commit | b79567fbc72df23f870049652d5f254aba948bea (patch) | |
tree | 186168269cf249ce97be89fd02aab4c75e83574c /odb/relational/mysql/source.cxx | |
parent | d780414989ef7e101cdaf269d4b01003d0721e6a (diff) |
Support for views; integrated part
Diffstat (limited to 'odb/relational/mysql/source.cxx')
-rw-r--r-- | odb/relational/mysql/source.cxx | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/odb/relational/mysql/source.cxx b/odb/relational/mysql/source.cxx index 02bc74b..8f80a5a 100644 --- a/odb/relational/mysql/source.cxx +++ b/odb/relational/mysql/source.cxx @@ -127,7 +127,7 @@ namespace relational } line_ += column; - line_ += "+0, ' ', "; + line_ += "+0,' ',"; if (!table.empty ()) { @@ -142,6 +142,30 @@ namespace relational }; entry<object_columns> object_columns_; + struct view_columns: relational::view_columns, context + { + view_columns (base const& x): base (x) {} + + virtual void + column (semantics::data_member& m, string const& column) + { + // The same idea as in object_columns. + // + if (column_sql_type (m).type != sql_type::ENUM) + { + base::column (m, column); + return; + } + + line_ += "CONCAT("; + line_ += column; + line_ += "+0,' ',"; + line_ += column; + line_ += ")"; + } + }; + entry<view_columns> view_columns_; + // // bind // |