Skip to content
Browse files
Merge pull request #9478 from elpaso/bugfix-21028-db-manager-sqlite-t…

[db-manager] Invalidate sqlite connection if it was created in anothe…
  • Loading branch information
elpaso committed Mar 11, 2019
2 parents 75efd24 + 8fb112d commit 8e39f0f57aac5735081a5e6edc0473eae8ba233b
Showing with 21 additions and 0 deletions.
  1. +21 −0 python/plugins/db_manager/db_plugins/gpkg/
@@ -25,6 +25,7 @@
from functools import cmp_to_key

from qgis.PyQt.QtWidgets import QApplication
from qgis.PyQt.QtCore import QThread

from ..connector import DBConnector
from ..plugin import ConnectionError, DbError, Table
@@ -65,6 +66,26 @@ def _opendb(self):
raise ConnectionError(QApplication.translate("DBManagerPlugin", '"{dbname}" not recognized as GPKG ({shortname} reported instead.)').format(dbname=self.dbname, shortname=self.gdal_ds.GetDriver().ShortName))
self.has_raster = self.gdal_ds.RasterCount != 0 or self.gdal_ds.GetMetadata('SUBDATASETS') is not None
self.connection = None
self._current_thread = None

def connection(self):
"""Creates and returns a spatialite connection, if
the existing connection was created in another thread
invalidates it and create a new one.

if self._connection is None or self._current_thread != int(QThread.currentThreadId()):
self._current_thread = int(QThread.currentThreadId())
self._connection = spatialite_connect(str(self.dbname))
except self.connection_error_types() as e:
raise ConnectionError(e)
return self._connection

def connection(self, conn):
self._connection = conn

def unquoteId(self, quotedId):
if len(quotedId) <= 2 or quotedId[0] != '"' or quotedId[len(quotedId) - 1] != '"':

0 comments on commit 8e39f0f

Please sign in to comment.