Skip to content
Permalink
Browse files

[DB Manager] Allow lowercase field names for homogenize PostGIS Import

PostGIS provider has an option to lowercase field names. This options is available for user in QGIS algorithm ImportIntoPostGIS and not in DB Mananger.

This commit fix it.
  • Loading branch information
rldhont committed Oct 19, 2016
1 parent 133a6f5 commit 2b01c7cebb5eb6836d332e3c9a4ed9e64a12a61e
@@ -550,6 +550,9 @@ def explicitSpatialIndex(self):
def spatialIndexClause(self, src_table, src_column, dest_table, dest_table_column):
return None

def hasLowercaseFieldNamesOption(self):
return False


class Schema(DbItemObject):

@@ -165,6 +165,9 @@ def runRefreshMaterializedViewSlot(self, item, action, parent):

item.runRefreshMaterializedView()

def hasLowercaseFieldNamesOption(self):
return True


class PGSchema(Schema):

@@ -106,6 +106,10 @@ def checkSupports(self):
if not self.chkSpatialIndex.isEnabled():
self.chkSpatialIndex.setChecked(False)

self.chkLowercaseFieldNames.setEnabled(self.db.hasLowercaseFieldNamesOption())
if not self.chkLowercaseFieldNames.isEnabled():
self.chkLowercaseFieldNames.setChecked(False)

def populateLayers(self):
self.cboInputLayer.clear()
for index, layer in enumerate(iface.legendInterface().layers()):
@@ -300,13 +304,18 @@ def accept(self):
else:
geom = None

options = {}
if self.chkLowercaseFieldNames.isEnabled() and self.chkLowercaseFieldNames.isChecked():
pk = pk.lower()
if geom:
geom = geom.lower()
options['lowercaseFieldNames'] = True

# get output params, update output URI
self.outUri.setDataSource(schema, table, geom, "", pk)
uri = self.outUri.uri(False)

providerName = self.db.dbplugin().providerName()

options = {}
if self.chkDropTable.isChecked():
options['overwrite'] = True

@@ -253,7 +253,7 @@
</property>
</widget>
</item>
<item row="7" column="0" colspan="2">
<item row="8" column="0" colspan="2">
<widget class="QCheckBox" name="chkSpatialIndex">
<property name="text">
<string>Create spatial index</string>
@@ -267,6 +267,13 @@
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QCheckBox" name="chkLowercaseFieldNames">
<property name="text">
<string>Convert field names to lowercase</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>

0 comments on commit 2b01c7c

Please sign in to comment.
You can’t perform that action at this time.