Merge pull request #1348 from imincik/db_manager_connection_holding

db manager: fix connection holding - idle in transaction (QGIS bug #7162...
This commit is contained in:
Giuseppe Sucameli 2014-05-19 12:31:58 +02:00
commit d522059524
2 changed files with 2 additions and 6 deletions

View File

@ -53,6 +53,7 @@ class PostGisDBConnector(DBConnector):
try:
self.connection = psycopg2.connect( self._connectionInfo().encode('utf-8') )
self.connection.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)
except self.connection_error_types(), e:
raise ConnectionError(e)
@ -751,13 +752,9 @@ class PostGisDBConnector(DBConnector):
def runVacuumAnalyze(self, table):
""" run vacuum analyze on a table """
# vacuum analyze must be run outside transaction block - we have to change isolation level
self.connection.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)
sql = u"VACUUM ANALYZE %s" % self.quoteId(table)
c = self._execute(None, sql)
self._commit()
self.connection.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_READ_COMMITTED)
def addTableColumn(self, table, field_def):
""" add a column to table """

View File

@ -43,8 +43,7 @@ class PGTableDataModel(TableDataModel):
fields_txt = u", ".join(self.fields)
table_txt = self.db.quoteId( (self.table.schemaName(), self.table.name) )
# create named cursor and run query
self.cursor = self.db._get_cursor(self.table.name)
self.cursor = self.db._get_cursor()
sql = u"SELECT %s FROM %s" % (fields_txt, table_txt)
self.db._execute(self.cursor, sql)