From 0bf0b05ae86ce12606d850290d5a53b34e7bf0c1 Mon Sep 17 00:00:00 2001 From: evnngsky Date: Sat, 26 Dec 2020 16:50:18 +0900 Subject: [PATCH] Update QGCTileCacheWorker.cpp If TileDB is bigger than 2GB, --- sq = QString("SELECT COUNT(size), SUM(size) FROM Tiles WHERE tileID IN (SELECT A.tileID FROM SetTiles A join SetTiles B on A.tileID = B.tileID WHERE B.setID --- This query holds QGCTileCache Worker. I solved problems with adding an index like that. --- src/QtLocationPlugin/QGCTileCacheWorker.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/QtLocationPlugin/QGCTileCacheWorker.cpp b/src/QtLocationPlugin/QGCTileCacheWorker.cpp index 9e284ff..dca0bac 100644 --- a/src/QtLocationPlugin/QGCTileCacheWorker.cpp +++ b/src/QtLocationPlugin/QGCTileCacheWorker.cpp @@ -1061,6 +1061,8 @@ QGCCacheWorker::_createDB(QSqlDatabase* db, bool createDefault) { qWarning() << "Map Cache SQL error (create Tiles db):" << query.lastError().text(); } else { + query.exec("CREATE INDEX hash ON Tiles ( hash, size, type ) "); + if(!query.exec( "CREATE TABLE IF NOT EXISTS TileSets (" "setID INTEGER PRIMARY KEY NOT NULL, "