summaryrefslogtreecommitdiff
path: root/platform/qt/src/sqlite3.cpp
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2018-06-13 15:50:23 +0200
committerKonstantin Käfer <mail@kkaefer.com>2018-08-14 17:03:46 -0700
commitfa7b70945fe6927536869d7dd66de0834d1e8002 (patch)
treeabd25881038ef21467e9a4d56dc6918f1a690a43 /platform/qt/src/sqlite3.cpp
parenta3b6fc149895a7f4c29acd6bba70546edec41438 (diff)
downloadqtlocation-mapboxgl-fa7b70945fe6927536869d7dd66de0834d1e8002.tar.gz
[core] harden OfflineDatabase
Diffstat (limited to 'platform/qt/src/sqlite3.cpp')
-rw-r--r--platform/qt/src/sqlite3.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/platform/qt/src/sqlite3.cpp b/platform/qt/src/sqlite3.cpp
index 2ca09fd3ad..96cee5fff8 100644
--- a/platform/qt/src/sqlite3.cpp
+++ b/platform/qt/src/sqlite3.cpp
@@ -23,13 +23,6 @@
namespace mapbox {
namespace sqlite {
-// https://www.sqlite.org/rescode.html#ok
-static_assert(mbgl::underlying_type(ResultCode::OK) == 0, "error");
-// https://www.sqlite.org/rescode.html#cantopen
-static_assert(mbgl::underlying_type(ResultCode::CantOpen) == 14, "error");
-// https://www.sqlite.org/rescode.html#notadb
-static_assert(mbgl::underlying_type(ResultCode::NotADB) == 26, "error");
-
void checkQueryError(const QSqlQuery& query) {
QSqlError lastError = query.lastError();
if (lastError.type() != QSqlError::NoError) {
@@ -114,6 +107,11 @@ mapbox::util::variant<Database, Exception> Database::tryOpen(const std::string &
connectOptions.append("QSQLITE_OPEN_READONLY");
}
+ if (filename.compare(0, 5, "file:") == 0) {
+ if (!connectOptions.isEmpty()) connectOptions.append(';');
+ connectOptions.append("QSQLITE_OPEN_URI");
+ }
+
db.setConnectOptions(connectOptions);
db.setDatabaseName(QString(filename.c_str()));