From 8f6a9c51bc64226d7c296e4b0172f9e56a7eea3b Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 15 Jul 2015 18:43:03 +0200 Subject: Implement SQLite incremental BLOB/TEXT I/O --- odb/relational/sqlite/common.cxx | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'odb/relational/sqlite/common.cxx') diff --git a/odb/relational/sqlite/common.cxx b/odb/relational/sqlite/common.cxx index 36a0e86..4ab8968 100644 --- a/odb/relational/sqlite/common.cxx +++ b/odb/relational/sqlite/common.cxx @@ -39,12 +39,18 @@ namespace relational } case sql_type::TEXT: { - traverse_text (mi); + if (mi.st->stream) + traverse_text_stream (mi); + else + traverse_text (mi); break; } case sql_type::BLOB: { - traverse_blob (mi); + if (mi.st->stream) + traverse_blob_stream (mi); + else + traverse_blob (mi); break; } case sql_type::invalid: @@ -108,6 +114,12 @@ namespace relational type_ = "details::buffer"; } + void member_image_type:: + traverse_stream (member_info&) + { + type_ = "sqlite::stream_buffers"; + } + entry member_image_type_; // @@ -170,6 +182,18 @@ namespace relational type_id_ = "sqlite::id_blob"; } + void member_database_type_id:: + traverse_text_stream (member_info&) + { + type_id_ = "sqlite::id_text_stream"; + } + + void member_database_type_id:: + traverse_blob_stream (member_info&) + { + type_id_ = "sqlite::id_blob_stream"; + } + entry member_database_type_id_; // -- cgit v1.1