// This file was generated by ODB, object-relational mapping (ORM) // compiler for C++. // #include #include "TripAttemptResult-odb.hxx" #include #include // std::memcpy #include #include #include #include #include #include #include #include #include #include namespace odb { // TripAttemptResult // struct access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >::extra_statement_cache_type { extra_statement_cache_type ( sqlite::connection&, image_type&, id_image_type&, sqlite::binding&, sqlite::binding&) { } }; access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >::id_type access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >:: id (const image_type& i) { sqlite::database* db (0); ODB_POTENTIALLY_UNUSED (db); id_type id; { sqlite::value_traits< ::std::string, sqlite::id_text >::set_value ( id, i.id_value, i.id_size, i.id_null); } return id; } bool access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >:: grow (image_type& i, bool* t) { ODB_POTENTIALLY_UNUSED (i); ODB_POTENTIALLY_UNUSED (t); bool grew (false); // id // if (t[0UL]) { i.id_value.capacity (i.id_size); grew = true; } // result // if (t[1UL]) { i.result_value.capacity (i.result_size); grew = true; } // retryReason // if (t[2UL]) { i.retryReason_value.capacity (i.retryReason_size); grew = true; } // governmentSuspensionReason // if (t[3UL]) { i.governmentSuspensionReason_value.capacity (i.governmentSuspensionReason_size); grew = true; } // governmentTerminationReason // if (t[4UL]) { i.governmentTerminationReason_value.capacity (i.governmentTerminationReason_size); grew = true; } // complianceSuspensionReason // if (t[5UL]) { i.complianceSuspensionReason_value.capacity (i.complianceSuspensionReason_size); grew = true; } // complianceTerminationReason // if (t[6UL]) { i.complianceTerminationReason_value.capacity (i.complianceTerminationReason_size); grew = true; } // policySuspensionReason // if (t[7UL]) { i.policySuspensionReason_value.capacity (i.policySuspensionReason_size); grew = true; } // policyTerminationReason // if (t[8UL]) { i.policyTerminationReason_value.capacity (i.policyTerminationReason_size); grew = true; } // cancelationReason // if (t[9UL]) { i.cancelationReason_value.capacity (i.cancelationReason_size); grew = true; } // failureReason // if (t[10UL]) { i.failureReason_value.capacity (i.failureReason_size); grew = true; } // details // if (t[11UL]) { i.details_value.capacity (i.details_size); grew = true; } return grew; } void access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >:: bind (sqlite::bind* b, image_type& i, sqlite::statement_kind sk) { ODB_POTENTIALLY_UNUSED (sk); using namespace sqlite; std::size_t n (0); // id // if (sk != statement_update) { b[n].type = sqlite::image_traits< ::std::string, sqlite::id_text>::bind_value; b[n].buffer = i.id_value.data (); b[n].size = &i.id_size; b[n].capacity = i.id_value.capacity (); b[n].is_null = &i.id_null; n++; } // result // b[n].type = sqlite::image_traits< ::std::string, sqlite::id_text>::bind_value; b[n].buffer = i.result_value.data (); b[n].size = &i.result_size; b[n].capacity = i.result_value.capacity (); b[n].is_null = &i.result_null; n++; // retryReason // b[n].type = sqlite::image_traits< ::std::string, sqlite::id_text>::bind_value; b[n].buffer = i.retryReason_value.data (); b[n].size = &i.retryReason_size; b[n].capacity = i.retryReason_value.capacity (); b[n].is_null = &i.retryReason_null; n++; // governmentSuspensionReason // b[n].type = sqlite::image_traits< ::std::string, sqlite::id_text>::bind_value; b[n].buffer = i.governmentSuspensionReason_value.data (); b[n].size = &i.governmentSuspensionReason_size; b[n].capacity = i.governmentSuspensionReason_value.capacity (); b[n].is_null = &i.governmentSuspensionReason_null; n++; // governmentTerminationReason // b[n].type = sqlite::image_traits< ::std::string, sqlite::id_text>::bind_value; b[n].buffer = i.governmentTerminationReason_value.data (); b[n].size = &i.governmentTerminationReason_size; b[n].capacity = i.governmentTerminationReason_value.capacity (); b[n].is_null = &i.governmentTerminationReason_null; n++; // complianceSuspensionReason // b[n].type = sqlite::image_traits< ::std::string, sqlite::id_text>::bind_value; b[n].buffer = i.complianceSuspensionReason_value.data (); b[n].size = &i.complianceSuspensionReason_size; b[n].capacity = i.complianceSuspensionReason_value.capacity (); b[n].is_null = &i.complianceSuspensionReason_null; n++; // complianceTerminationReason // b[n].type = sqlite::image_traits< ::std::string, sqlite::id_text>::bind_value; b[n].buffer = i.complianceTerminationReason_value.data (); b[n].size = &i.complianceTerminationReason_size; b[n].capacity = i.complianceTerminationReason_value.capacity (); b[n].is_null = &i.complianceTerminationReason_null; n++; // policySuspensionReason // b[n].type = sqlite::image_traits< ::std::string, sqlite::id_text>::bind_value; b[n].buffer = i.policySuspensionReason_value.data (); b[n].size = &i.policySuspensionReason_size; b[n].capacity = i.policySuspensionReason_value.capacity (); b[n].is_null = &i.policySuspensionReason_null; n++; // policyTerminationReason // b[n].type = sqlite::image_traits< ::std::string, sqlite::id_text>::bind_value; b[n].buffer = i.policyTerminationReason_value.data (); b[n].size = &i.policyTerminationReason_size; b[n].capacity = i.policyTerminationReason_value.capacity (); b[n].is_null = &i.policyTerminationReason_null; n++; // cancelationReason // b[n].type = sqlite::image_traits< ::std::string, sqlite::id_text>::bind_value; b[n].buffer = i.cancelationReason_value.data (); b[n].size = &i.cancelationReason_size; b[n].capacity = i.cancelationReason_value.capacity (); b[n].is_null = &i.cancelationReason_null; n++; // failureReason // b[n].type = sqlite::image_traits< ::std::string, sqlite::id_text>::bind_value; b[n].buffer = i.failureReason_value.data (); b[n].size = &i.failureReason_size; b[n].capacity = i.failureReason_value.capacity (); b[n].is_null = &i.failureReason_null; n++; // details // b[n].type = sqlite::image_traits< ::std::string, sqlite::id_text>::bind_value; b[n].buffer = i.details_value.data (); b[n].size = &i.details_size; b[n].capacity = i.details_value.capacity (); b[n].is_null = &i.details_null; n++; } void access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >:: bind (sqlite::bind* b, id_image_type& i) { std::size_t n (0); b[n].type = sqlite::image_traits< ::std::string, sqlite::id_text>::bind_value; b[n].buffer = i.id_value.data (); b[n].size = &i.id_size; b[n].capacity = i.id_value.capacity (); b[n].is_null = &i.id_null; } bool access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >:: init (image_type& i, const object_type& o, sqlite::statement_kind sk) { ODB_POTENTIALLY_UNUSED (i); ODB_POTENTIALLY_UNUSED (o); ODB_POTENTIALLY_UNUSED (sk); using namespace sqlite; bool grew (false); // id // if (sk == statement_insert) { ::std::string const& v = o.id; bool is_null (false); std::size_t cap (i.id_value.capacity ()); sqlite::value_traits< ::std::string, sqlite::id_text >::set_image ( i.id_value, i.id_size, is_null, v); i.id_null = is_null; grew = grew || (cap != i.id_value.capacity ()); } // result // { ::std::string const& v = o.result; bool is_null (false); std::size_t cap (i.result_value.capacity ()); sqlite::value_traits< ::std::string, sqlite::id_text >::set_image ( i.result_value, i.result_size, is_null, v); i.result_null = is_null; grew = grew || (cap != i.result_value.capacity ()); } // retryReason // { ::std::string const& v = o.retryReason; bool is_null (false); std::size_t cap (i.retryReason_value.capacity ()); sqlite::value_traits< ::std::string, sqlite::id_text >::set_image ( i.retryReason_value, i.retryReason_size, is_null, v); i.retryReason_null = is_null; grew = grew || (cap != i.retryReason_value.capacity ()); } // governmentSuspensionReason // { ::std::string const& v = o.governmentSuspensionReason; bool is_null (false); std::size_t cap (i.governmentSuspensionReason_value.capacity ()); sqlite::value_traits< ::std::string, sqlite::id_text >::set_image ( i.governmentSuspensionReason_value, i.governmentSuspensionReason_size, is_null, v); i.governmentSuspensionReason_null = is_null; grew = grew || (cap != i.governmentSuspensionReason_value.capacity ()); } // governmentTerminationReason // { ::std::string const& v = o.governmentTerminationReason; bool is_null (false); std::size_t cap (i.governmentTerminationReason_value.capacity ()); sqlite::value_traits< ::std::string, sqlite::id_text >::set_image ( i.governmentTerminationReason_value, i.governmentTerminationReason_size, is_null, v); i.governmentTerminationReason_null = is_null; grew = grew || (cap != i.governmentTerminationReason_value.capacity ()); } // complianceSuspensionReason // { ::std::string const& v = o.complianceSuspensionReason; bool is_null (false); std::size_t cap (i.complianceSuspensionReason_value.capacity ()); sqlite::value_traits< ::std::string, sqlite::id_text >::set_image ( i.complianceSuspensionReason_value, i.complianceSuspensionReason_size, is_null, v); i.complianceSuspensionReason_null = is_null; grew = grew || (cap != i.complianceSuspensionReason_value.capacity ()); } // complianceTerminationReason // { ::std::string const& v = o.complianceTerminationReason; bool is_null (false); std::size_t cap (i.complianceTerminationReason_value.capacity ()); sqlite::value_traits< ::std::string, sqlite::id_text >::set_image ( i.complianceTerminationReason_value, i.complianceTerminationReason_size, is_null, v); i.complianceTerminationReason_null = is_null; grew = grew || (cap != i.complianceTerminationReason_value.capacity ()); } // policySuspensionReason // { ::std::string const& v = o.policySuspensionReason; bool is_null (false); std::size_t cap (i.policySuspensionReason_value.capacity ()); sqlite::value_traits< ::std::string, sqlite::id_text >::set_image ( i.policySuspensionReason_value, i.policySuspensionReason_size, is_null, v); i.policySuspensionReason_null = is_null; grew = grew || (cap != i.policySuspensionReason_value.capacity ()); } // policyTerminationReason // { ::std::string const& v = o.policyTerminationReason; bool is_null (false); std::size_t cap (i.policyTerminationReason_value.capacity ()); sqlite::value_traits< ::std::string, sqlite::id_text >::set_image ( i.policyTerminationReason_value, i.policyTerminationReason_size, is_null, v); i.policyTerminationReason_null = is_null; grew = grew || (cap != i.policyTerminationReason_value.capacity ()); } // cancelationReason // { ::std::string const& v = o.cancelationReason; bool is_null (false); std::size_t cap (i.cancelationReason_value.capacity ()); sqlite::value_traits< ::std::string, sqlite::id_text >::set_image ( i.cancelationReason_value, i.cancelationReason_size, is_null, v); i.cancelationReason_null = is_null; grew = grew || (cap != i.cancelationReason_value.capacity ()); } // failureReason // { ::std::string const& v = o.failureReason; bool is_null (false); std::size_t cap (i.failureReason_value.capacity ()); sqlite::value_traits< ::std::string, sqlite::id_text >::set_image ( i.failureReason_value, i.failureReason_size, is_null, v); i.failureReason_null = is_null; grew = grew || (cap != i.failureReason_value.capacity ()); } // details // { ::std::string const& v = o.details; bool is_null (false); std::size_t cap (i.details_value.capacity ()); sqlite::value_traits< ::std::string, sqlite::id_text >::set_image ( i.details_value, i.details_size, is_null, v); i.details_null = is_null; grew = grew || (cap != i.details_value.capacity ()); } return grew; } void access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >:: init (object_type& o, const image_type& i, database* db) { ODB_POTENTIALLY_UNUSED (o); ODB_POTENTIALLY_UNUSED (i); ODB_POTENTIALLY_UNUSED (db); // id // { ::std::string& v = o.id; sqlite::value_traits< ::std::string, sqlite::id_text >::set_value ( v, i.id_value, i.id_size, i.id_null); } // result // { ::std::string& v = o.result; sqlite::value_traits< ::std::string, sqlite::id_text >::set_value ( v, i.result_value, i.result_size, i.result_null); } // retryReason // { ::std::string& v = o.retryReason; sqlite::value_traits< ::std::string, sqlite::id_text >::set_value ( v, i.retryReason_value, i.retryReason_size, i.retryReason_null); } // governmentSuspensionReason // { ::std::string& v = o.governmentSuspensionReason; sqlite::value_traits< ::std::string, sqlite::id_text >::set_value ( v, i.governmentSuspensionReason_value, i.governmentSuspensionReason_size, i.governmentSuspensionReason_null); } // governmentTerminationReason // { ::std::string& v = o.governmentTerminationReason; sqlite::value_traits< ::std::string, sqlite::id_text >::set_value ( v, i.governmentTerminationReason_value, i.governmentTerminationReason_size, i.governmentTerminationReason_null); } // complianceSuspensionReason // { ::std::string& v = o.complianceSuspensionReason; sqlite::value_traits< ::std::string, sqlite::id_text >::set_value ( v, i.complianceSuspensionReason_value, i.complianceSuspensionReason_size, i.complianceSuspensionReason_null); } // complianceTerminationReason // { ::std::string& v = o.complianceTerminationReason; sqlite::value_traits< ::std::string, sqlite::id_text >::set_value ( v, i.complianceTerminationReason_value, i.complianceTerminationReason_size, i.complianceTerminationReason_null); } // policySuspensionReason // { ::std::string& v = o.policySuspensionReason; sqlite::value_traits< ::std::string, sqlite::id_text >::set_value ( v, i.policySuspensionReason_value, i.policySuspensionReason_size, i.policySuspensionReason_null); } // policyTerminationReason // { ::std::string& v = o.policyTerminationReason; sqlite::value_traits< ::std::string, sqlite::id_text >::set_value ( v, i.policyTerminationReason_value, i.policyTerminationReason_size, i.policyTerminationReason_null); } // cancelationReason // { ::std::string& v = o.cancelationReason; sqlite::value_traits< ::std::string, sqlite::id_text >::set_value ( v, i.cancelationReason_value, i.cancelationReason_size, i.cancelationReason_null); } // failureReason // { ::std::string& v = o.failureReason; sqlite::value_traits< ::std::string, sqlite::id_text >::set_value ( v, i.failureReason_value, i.failureReason_size, i.failureReason_null); } // details // { ::std::string& v = o.details; sqlite::value_traits< ::std::string, sqlite::id_text >::set_value ( v, i.details_value, i.details_size, i.details_null); } } void access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >:: init (id_image_type& i, const id_type& id) { bool grew (false); { bool is_null (false); std::size_t cap (i.id_value.capacity ()); sqlite::value_traits< ::std::string, sqlite::id_text >::set_image ( i.id_value, i.id_size, is_null, id); i.id_null = is_null; grew = grew || (cap != i.id_value.capacity ()); } if (grew) i.version++; } const char access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >::persist_statement[] = "INSERT INTO \"TripAttemptResult\" " "(\"id\", " "\"result\", " "\"retryReason\", " "\"governmentSuspensionReason\", " "\"governmentTerminationReason\", " "\"complianceSuspensionReason\", " "\"complianceTerminationReason\", " "\"policySuspensionReason\", " "\"policyTerminationReason\", " "\"cancelationReason\", " "\"failureReason\", " "\"details\") " "VALUES " "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; const char access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >::find_statement[] = "SELECT " "\"TripAttemptResult\".\"id\", " "\"TripAttemptResult\".\"result\", " "\"TripAttemptResult\".\"retryReason\", " "\"TripAttemptResult\".\"governmentSuspensionReason\", " "\"TripAttemptResult\".\"governmentTerminationReason\", " "\"TripAttemptResult\".\"complianceSuspensionReason\", " "\"TripAttemptResult\".\"complianceTerminationReason\", " "\"TripAttemptResult\".\"policySuspensionReason\", " "\"TripAttemptResult\".\"policyTerminationReason\", " "\"TripAttemptResult\".\"cancelationReason\", " "\"TripAttemptResult\".\"failureReason\", " "\"TripAttemptResult\".\"details\" " "FROM \"TripAttemptResult\" " "WHERE \"TripAttemptResult\".\"id\"=?"; const char access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >::update_statement[] = "UPDATE \"TripAttemptResult\" " "SET " "\"result\"=?, " "\"retryReason\"=?, " "\"governmentSuspensionReason\"=?, " "\"governmentTerminationReason\"=?, " "\"complianceSuspensionReason\"=?, " "\"complianceTerminationReason\"=?, " "\"policySuspensionReason\"=?, " "\"policyTerminationReason\"=?, " "\"cancelationReason\"=?, " "\"failureReason\"=?, " "\"details\"=? " "WHERE \"id\"=?"; const char access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >::erase_statement[] = "DELETE FROM \"TripAttemptResult\" " "WHERE \"id\"=?"; const char access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >::query_statement[] = "SELECT " "\"TripAttemptResult\".\"id\", " "\"TripAttemptResult\".\"result\", " "\"TripAttemptResult\".\"retryReason\", " "\"TripAttemptResult\".\"governmentSuspensionReason\", " "\"TripAttemptResult\".\"governmentTerminationReason\", " "\"TripAttemptResult\".\"complianceSuspensionReason\", " "\"TripAttemptResult\".\"complianceTerminationReason\", " "\"TripAttemptResult\".\"policySuspensionReason\", " "\"TripAttemptResult\".\"policyTerminationReason\", " "\"TripAttemptResult\".\"cancelationReason\", " "\"TripAttemptResult\".\"failureReason\", " "\"TripAttemptResult\".\"details\" " "FROM \"TripAttemptResult\""; const char access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >::erase_query_statement[] = "DELETE FROM \"TripAttemptResult\""; const char access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >::table_name[] = "\"TripAttemptResult\""; void access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >:: persist (database& db, const object_type& obj) { ODB_POTENTIALLY_UNUSED (db); using namespace sqlite; sqlite::connection& conn ( sqlite::transaction::current ().connection ()); statements_type& sts ( conn.statement_cache ().find_object ()); callback (db, obj, callback_event::pre_persist); image_type& im (sts.image ()); binding& imb (sts.insert_image_binding ()); if (init (im, obj, statement_insert)) im.version++; if (im.version != sts.insert_image_version () || imb.version == 0) { bind (imb.bind, im, statement_insert); sts.insert_image_version (im.version); imb.version++; } insert_statement& st (sts.persist_statement ()); if (!st.execute ()) throw object_already_persistent (); callback (db, obj, callback_event::post_persist); } void access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >:: update (database& db, const object_type& obj) { ODB_POTENTIALLY_UNUSED (db); using namespace sqlite; using sqlite::update_statement; callback (db, obj, callback_event::pre_update); sqlite::transaction& tr (sqlite::transaction::current ()); sqlite::connection& conn (tr.connection ()); statements_type& sts ( conn.statement_cache ().find_object ()); const id_type& id ( obj.id); id_image_type& idi (sts.id_image ()); init (idi, id); image_type& im (sts.image ()); if (init (im, obj, statement_update)) im.version++; bool u (false); binding& imb (sts.update_image_binding ()); if (im.version != sts.update_image_version () || imb.version == 0) { bind (imb.bind, im, statement_update); sts.update_image_version (im.version); imb.version++; u = true; } binding& idb (sts.id_image_binding ()); if (idi.version != sts.update_id_image_version () || idb.version == 0) { if (idi.version != sts.id_image_version () || idb.version == 0) { bind (idb.bind, idi); sts.id_image_version (idi.version); idb.version++; } sts.update_id_image_version (idi.version); if (!u) imb.version++; } update_statement& st (sts.update_statement ()); if (st.execute () == 0) throw object_not_persistent (); callback (db, obj, callback_event::post_update); pointer_cache_traits::update (db, obj); } void access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >:: erase (database& db, const id_type& id) { using namespace sqlite; ODB_POTENTIALLY_UNUSED (db); sqlite::connection& conn ( sqlite::transaction::current ().connection ()); statements_type& sts ( conn.statement_cache ().find_object ()); id_image_type& i (sts.id_image ()); init (i, id); binding& idb (sts.id_image_binding ()); if (i.version != sts.id_image_version () || idb.version == 0) { bind (idb.bind, i); sts.id_image_version (i.version); idb.version++; } if (sts.erase_statement ().execute () != 1) throw object_not_persistent (); pointer_cache_traits::erase (db, id); } access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >::pointer_type access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >:: find (database& db, const id_type& id) { using namespace sqlite; { pointer_type p (pointer_cache_traits::find (db, id)); if (!pointer_traits::null_ptr (p)) return p; } sqlite::connection& conn ( sqlite::transaction::current ().connection ()); statements_type& sts ( conn.statement_cache ().find_object ()); statements_type::auto_lock l (sts); if (l.locked ()) { if (!find_ (sts, &id)) return pointer_type (); } pointer_type p ( access::object_factory::create ()); pointer_traits::guard pg (p); pointer_cache_traits::insert_guard ig ( pointer_cache_traits::insert (db, id, p)); object_type& obj (pointer_traits::get_ref (p)); if (l.locked ()) { select_statement& st (sts.find_statement ()); ODB_POTENTIALLY_UNUSED (st); callback (db, obj, callback_event::pre_load); init (obj, sts.image (), &db); load_ (sts, obj, false); sts.load_delayed (0); l.unlock (); callback (db, obj, callback_event::post_load); pointer_cache_traits::load (ig.position ()); } else sts.delay_load (id, obj, ig.position ()); ig.release (); pg.release (); return p; } bool access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >:: find (database& db, const id_type& id, object_type& obj) { using namespace sqlite; sqlite::connection& conn ( sqlite::transaction::current ().connection ()); statements_type& sts ( conn.statement_cache ().find_object ()); statements_type::auto_lock l (sts); if (!find_ (sts, &id)) return false; select_statement& st (sts.find_statement ()); ODB_POTENTIALLY_UNUSED (st); reference_cache_traits::position_type pos ( reference_cache_traits::insert (db, id, obj)); reference_cache_traits::insert_guard ig (pos); callback (db, obj, callback_event::pre_load); init (obj, sts.image (), &db); load_ (sts, obj, false); sts.load_delayed (0); l.unlock (); callback (db, obj, callback_event::post_load); reference_cache_traits::load (pos); ig.release (); return true; } bool access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >:: reload (database& db, object_type& obj) { using namespace sqlite; sqlite::connection& conn ( sqlite::transaction::current ().connection ()); statements_type& sts ( conn.statement_cache ().find_object ()); statements_type::auto_lock l (sts); const id_type& id ( obj.id); if (!find_ (sts, &id)) return false; select_statement& st (sts.find_statement ()); ODB_POTENTIALLY_UNUSED (st); callback (db, obj, callback_event::pre_load); init (obj, sts.image (), &db); load_ (sts, obj, true); sts.load_delayed (0); l.unlock (); callback (db, obj, callback_event::post_load); return true; } bool access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >:: find_ (statements_type& sts, const id_type* id) { using namespace sqlite; id_image_type& i (sts.id_image ()); init (i, *id); binding& idb (sts.id_image_binding ()); if (i.version != sts.id_image_version () || idb.version == 0) { bind (idb.bind, i); sts.id_image_version (i.version); idb.version++; } image_type& im (sts.image ()); binding& imb (sts.select_image_binding ()); if (im.version != sts.select_image_version () || imb.version == 0) { bind (imb.bind, im, statement_select); sts.select_image_version (im.version); imb.version++; } select_statement& st (sts.find_statement ()); st.execute (); auto_result ar (st); select_statement::result r (st.fetch ()); if (r == select_statement::truncated) { if (grow (im, sts.select_image_truncated ())) im.version++; if (im.version != sts.select_image_version ()) { bind (imb.bind, im, statement_select); sts.select_image_version (im.version); imb.version++; st.refetch (); } } return r != select_statement::no_data; } result< access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >::object_type > access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >:: query (database&, const query_base_type& q) { using namespace sqlite; using odb::details::shared; using odb::details::shared_ptr; sqlite::connection& conn ( sqlite::transaction::current ().connection ()); statements_type& sts ( conn.statement_cache ().find_object ()); image_type& im (sts.image ()); binding& imb (sts.select_image_binding ()); if (im.version != sts.select_image_version () || imb.version == 0) { bind (imb.bind, im, statement_select); sts.select_image_version (im.version); imb.version++; } std::string text (query_statement); if (!q.empty ()) { text += " "; text += q.clause (); } q.init_parameters (); shared_ptr st ( new (shared) select_statement ( conn, text, false, true, q.parameters_binding (), imb)); st->execute (); shared_ptr< odb::object_result_impl > r ( new (shared) sqlite::object_result_impl ( q, st, sts, 0)); return result (r); } unsigned long long access::object_traits_impl< ::models::TripAttemptResult, id_sqlite >:: erase_query (database&, const query_base_type& q) { using namespace sqlite; sqlite::connection& conn ( sqlite::transaction::current ().connection ()); std::string text (erase_query_statement); if (!q.empty ()) { text += ' '; text += q.clause (); } q.init_parameters (); delete_statement st ( conn, text, q.parameters_binding ()); return st.execute (); } } #include