Skip to content

Commit 5600078

Browse files
SebDieBlnbrushtyler
authored andcommitted
[DbManager] allow to delete materialized views
(refs #13829)
1 parent 9902613 commit 5600078

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

python/plugins/db_manager/db_plugins/postgis/connector.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -794,8 +794,8 @@ def createView(self, view, query):
794794
def createSpatialView(self, view, query):
795795
self.createView(view, query)
796796

797-
def deleteView(self, view):
798-
sql = u"DROP VIEW %s" % self.quoteId(view)
797+
def deleteView(self, view, isMaterialized=False):
798+
sql = u"DROP %s VIEW %s" % ('MATERIALIZED' if isMaterialized else '', self.quoteId(view))
799799
self._execute_and_commit(sql)
800800

801801
def renameView(self, view, new_name):

python/plugins/db_manager/db_plugins/postgis/plugin.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
# this will disable the dbplugin if the connector raise an ImportError
2424
from .connector import PostGisDBConnector
2525

26-
from PyQt4.QtCore import QSettings, Qt, QRegExp
26+
from PyQt4.QtCore import QSettings, Qt, QRegExp, SIGNAL
2727
from PyQt4.QtGui import QIcon, QAction, QApplication, QMessageBox
2828
from qgis.gui import QgsMessageBar
2929

@@ -227,6 +227,16 @@ def tableDataModel(self, parent):
227227

228228
return PGTableDataModel(self, parent)
229229

230+
def delete(self):
231+
self.aboutToChange()
232+
if self.isView:
233+
ret = self.database().connector.deleteView((self.schemaName(), self.name), self._relationType == 'm')
234+
else:
235+
ret = self.database().connector.deleteTable((self.schemaName(), self.name))
236+
if ret is not False:
237+
self.emit(SIGNAL('deleted'))
238+
return ret
239+
230240

231241
class PGVectorTable(PGTable, VectorTable):
232242

0 commit comments

Comments
 (0)