From 4bd7b6981bb49dd4111c908aaa34c34f677171f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?louiz=E2=80=99?= Date: Fri, 13 Apr 2018 23:35:06 +0200 Subject: Refactor that fixes a compilation issue in Release mode Some template specialization were not found, because they were not declared at the point they were used. We moved things around, things are less inter-dependant, and also now it works. --- src/database/insert_query.hpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/database/insert_query.hpp') diff --git a/src/database/insert_query.hpp b/src/database/insert_query.hpp index e3a7e83..cd1942f 100644 --- a/src/database/insert_query.hpp +++ b/src/database/insert_query.hpp @@ -1,10 +1,15 @@ #pragma once #include +#include #include #include +#include + #include +#include + #include #include #include @@ -37,6 +42,12 @@ std::string after_value() return {}; } +template <> +std::string before_value(); + +template <> +std::string after_value(); + struct InsertQuery: public Query { template @@ -141,3 +152,13 @@ struct InsertQuery: public Query insert_col_name(const std::tuple&) {} }; + +template +void insert(Row& row, DatabaseEngine& db) +{ + InsertQuery query(row.table_name, row.columns); + // Ugly workaround for non portable stuff + if (is_one_of) + query.body += db.get_returning_id_sql_string(Id::name); + query.execute(db, row.columns); +} -- cgit v1.2.3