Skip to content

Commit dd7a5f5

Browse files
authored
Merge pull request #9183 from Gustry/save_comments
keep comments when saving query, fix single line comment
2 parents 89e3fce + f37d48f commit dd7a5f5

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

python/plugins/db_manager/dlg_sql_window.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ def executeSqlCompleted(self):
351351

352352
def executeSql(self):
353353

354-
sql = self._getSqlQuery()
354+
sql = self._getExecutableSqlQuery()
355355
if sql == "":
356356
return
357357

@@ -393,7 +393,7 @@ def _getSqlLayer(self, _filter):
393393
else:
394394
geomFieldName = None
395395

396-
query = self._getSqlQuery()
396+
query = self._getSqlExecutableQuery()
397397
if query == "":
398398
return None
399399

@@ -438,7 +438,7 @@ def loadSqlLayer(self):
438438
QgsProject.instance().addMapLayers([layer], True)
439439

440440
def fillColumnCombos(self):
441-
query = self._getSqlQuery()
441+
query = self._getExecutableSqlQuery()
442442
if query == "":
443443
return
444444

@@ -588,16 +588,27 @@ def createView(self):
588588
name, ok = QInputDialog.getText(None, self.tr("View Name"), self.tr("View name"))
589589
if ok:
590590
try:
591-
self.db.connector.createSpatialView(name, self._getSqlQuery())
591+
self.db.connector.createSpatialView(name, self._getExecutableSqlQuery())
592592
except BaseError as e:
593593
DlgDbError.showError(e, self)
594594

595595
def _getSqlQuery(self):
596596
sql = self.editSql.selectedText()
597597
if len(sql) == 0:
598-
sql = self.editSql.text().replace('\n', ' ').strip()
598+
sql = self.editSql.text()
599599
return sql
600600

601+
def _getExecutableSqlQuery(self):
602+
sql = self._getSqlQuery()
603+
604+
# Clean it up!
605+
lines = []
606+
for line in sql.split('\n'):
607+
if not line.strip().startswith('--'):
608+
lines.append(line)
609+
sql = ' '.join(lines)
610+
return sql.strip()
611+
601612
def uniqueChanged(self):
602613
# when an item is (un)checked, simply trigger an update of the combobox text
603614
self.uniqueTextChanged(None)

0 commit comments

Comments
 (0)