summaryrefslogtreecommitdiff
path: root/src/database
diff options
context:
space:
mode:
Diffstat (limited to 'src/database')
-rw-r--r--src/database/query.cpp2
-rw-r--r--src/database/query.hpp2
-rw-r--r--src/database/row.hpp3
3 files changed, 4 insertions, 3 deletions
diff --git a/src/database/query.cpp b/src/database/query.cpp
index 4054007..d27dc59 100644
--- a/src/database/query.cpp
+++ b/src/database/query.cpp
@@ -6,7 +6,7 @@ void actual_bind(Statement& statement, const std::string& value, int index)
statement.bind_text(index, value);
}
-void actual_bind(Statement& statement, const std::size_t value, int index)
+void actual_bind(Statement& statement, const std::int64_t value, int index)
{
statement.bind_int64(index, value);
}
diff --git a/src/database/query.hpp b/src/database/query.hpp
index 547138f..8434944 100644
--- a/src/database/query.hpp
+++ b/src/database/query.hpp
@@ -12,7 +12,7 @@
#include <string>
void actual_bind(Statement& statement, const std::string& value, int index);
-void actual_bind(Statement& statement, const std::size_t value, int index);
+void actual_bind(Statement& statement, const std::int64_t value, int index);
void actual_bind(Statement& statement, const OptionalBool& value, int index);
#ifdef DEBUG_SQL_QUERIES
diff --git a/src/database/row.hpp b/src/database/row.hpp
index 130863a..4dc98be 100644
--- a/src/database/row.hpp
+++ b/src/database/row.hpp
@@ -42,7 +42,8 @@ struct Row
if (id.value == Id::unset_value)
{
this->insert(*db);
- std::get<Id>(this->columns).value = db->last_inserted_rowid;
+ if (db->last_inserted_rowid >= 0)
+ std::get<Id>(this->columns).value = static_cast<Id::real_type>(db->last_inserted_rowid);
}
else
this->update(*db);