diff --git a/src/db/abstract/abstract-db.cpp b/src/db/abstract/abstract-db.cpp index 1193720d4..30992ee76 100644 --- a/src/db/abstract/abstract-db.cpp +++ b/src/db/abstract/abstract-db.cpp @@ -137,6 +137,20 @@ string AbstractDb::timestampType () const { return ""; } +string AbstractDb::noLimitValue () const { + L_D(); + + switch (d->backend) { + case Mysql: + return "9999999999999999999"; + case Sqlite3: + return "-1"; + } + + L_ASSERT(false); + return ""; +} + long long AbstractDb::getLastInsertId () const { long long id = 0; diff --git a/src/db/abstract/abstract-db.h b/src/db/abstract/abstract-db.h index 2d1ab1020..91d08eba7 100644 --- a/src/db/abstract/abstract-db.h +++ b/src/db/abstract/abstract-db.h @@ -56,6 +56,8 @@ protected: std::string timestampType () const; + std::string noLimitValue () const; + long long getLastInsertId () const; void enableForeignKeys (bool status); diff --git a/src/db/main-db.cpp b/src/db/main-db.cpp index 871f5e757..2c6bde2be 100644 --- a/src/db/main-db.cpp +++ b/src/db/main-db.cpp @@ -1883,7 +1883,7 @@ static constexpr string &blobToString (string &in) { if (end > 0) query += " LIMIT " + Utils::toString(end - begin); else - query += " LIMIT 9999999999999999999"; // For Mysql compatibility, do not set -1. + query += " LIMIT " + noLimitValue(); if (begin > 0) query += " OFFSET " + Utils::toString(begin);