Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Update layer statistics when adding column to table in order to be di…
…splayed by QGIS

fixes #13504

(cherry picked from commit 49cb397)
  • Loading branch information
troopa81 authored and nyalldawson committed Jan 24, 2019
1 parent b2a2251 commit 6f9d544
Show file tree
Hide file tree
Showing 3 changed files with 474 additions and 1 deletion.
16 changes: 15 additions & 1 deletion python/plugins/db_manager/db_plugins/spatialite/connector.py
Expand Up @@ -465,6 +465,8 @@ def deleteTable(self, table):
self._execute(c, sql)
self._commit()

return True

def emptyTable(self, table):
""" delete all rows from table """
if self.isRasterTable(table):
Expand Down Expand Up @@ -494,6 +496,7 @@ def renameTable(self, table, new_table):
self._execute(c, sql)

self._commit()
return True

def moveTable(self, table, new_table, new_schema=None):
return self.renameTable(table, new_table)
Expand Down Expand Up @@ -571,7 +574,16 @@ def runVacuum(self):
def addTableColumn(self, table, field_def):
""" add a column to table """
sql = u"ALTER TABLE %s ADD %s" % (self.quoteId(table), field_def)
self._execute_and_commit(sql)
self._execute(None, sql)

sql = u"SELECT InvalidateLayerStatistics(%s)" % (self.quoteId(table))
self._execute(None, sql)

sql = u"SELECT UpdateLayerStatistics(%s)" % (self.quoteId(table))
self._execute(None, sql)

self._commit()
return True

def deleteTableColumn(self, table, column):
""" delete column from a table """
Expand All @@ -583,6 +595,8 @@ def deleteTableColumn(self, table, column):
sql = u"SELECT DiscardGeometryColumn(%s, %s)" % (self.quoteString(tablename), self.quoteString(column))
self._execute_and_commit(sql)

return True

def updateTableColumn(self, table, column, new_name, new_data_type=None, new_not_null=None, new_default=None):
return False # column editing not supported

Expand Down
1 change: 1 addition & 0 deletions tests/src/python/CMakeLists.txt
Expand Up @@ -216,6 +216,7 @@ ADD_PYTHON_TEST(PyQgsConsole test_console.py)
ADD_PYTHON_TEST(PyQgsLayerDependencies test_layer_dependencies.py)
ADD_PYTHON_TEST(PyQgsVersionCompare test_versioncompare.py)
ADD_PYTHON_TEST(PyQgsDBManagerGpkg test_db_manager_gpkg.py)
ADD_PYTHON_TEST(PyQgsDBManagerSpatialite test_db_manager_spatialite.py)
ADD_PYTHON_TEST(PyQgsFileDownloader test_qgsfiledownloader.py)
ADD_PYTHON_TEST(PyQgsSettings test_qgssettings.py)
ADD_PYTHON_TEST(PyQgsZipUtils test_qgsziputils.py)
Expand Down

0 comments on commit 6f9d544

Please sign in to comment.