diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2010-10-27 17:36:59 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2010-10-27 17:36:59 +0200 |
commit | 7f6c64f2211d37db76a97fbc79a4b5492302ef2f (patch) | |
tree | f2e386644fcaab5c51e3f5ad0ac737ea5b4d5bd2 /odb/mysql/common.hxx | |
parent | 5259b98c75f3754a0f713bcee4bddd0ed7ce35ef (diff) |
Implement support for composite value types
New test: common/composite.
Diffstat (limited to 'odb/mysql/common.hxx')
-rw-r--r-- | odb/mysql/common.hxx | 65 |
1 files changed, 16 insertions, 49 deletions
diff --git a/odb/mysql/common.hxx b/odb/mysql/common.hxx index c689bb6..83fa998 100644 --- a/odb/mysql/common.hxx +++ b/odb/mysql/common.hxx @@ -32,6 +32,11 @@ namespace mysql } virtual void + traverse_composite (type&) + { + } + + virtual void traverse_integer (type&, sql_type const&) { } @@ -96,6 +101,9 @@ namespace mysql image_type (type&); virtual void + traverse_composite (type&); + + virtual void traverse_integer (type&, sql_type const&); virtual void @@ -131,6 +139,9 @@ namespace mysql database_type (type&); virtual void + traverse_composite (type&); + + virtual void traverse_integer (type&, sql_type const&); virtual void @@ -158,60 +169,16 @@ namespace mysql string type_; }; - struct has_grow_member: member_base + struct query_columns: object_columns_base, context { - has_grow_member (context& c) - : member_base (c, false), r_ (false) - { - } - - bool - result () - { - return r_; - } - - virtual void - traverse_decimal (type&, sql_type const&) - { - r_ = true; - } + query_columns (context&); + query_columns (context&, semantics::class_&); virtual void - traverse_long_string (type&, sql_type const&) - { - r_ = true; - } - - virtual void - traverse_short_string (type&, sql_type const&) - { - r_ = true; // @@ Short string optimization disabled. - } - - virtual void - traverse_enum (type&, sql_type const&) - { - r_ = true; - } - - virtual void - traverse_set (type&, sql_type const&) - { - r_ = true; - } - - private: - bool r_; - }; - - struct query_column: traversal::data_member, context - { - query_column (context&); - query_column (context&, semantics::class_&); + composite (semantics::data_member&); virtual void - traverse (type&); + column (semantics::data_member&, string const&, bool); private: string scope_; |