Skip to content

Commit 748d261

Browse files
committedMar 25, 2014
[processing] Add option for converting field names to lowercase for Import to PostGIS algorithm
1 parent 5997c78 commit 748d261

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed
 

‎python/plugins/processing/admintools/ImportIntoPostGIS.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ class ImportIntoPostGIS(GeoAlgorithm):
5050
OVERWRITE = 'OVERWRITE'
5151
CREATEINDEX = 'CREATEINDEX'
5252
GEOMETRY_COLUMN = 'GEOMETRY_COLUMN'
53+
LOWERCASE_NAMES = 'LOWERCASE_NAMES'
5354

5455
def getIcon(self):
5556
return QIcon(os.path.dirname(__file__) + '/../images/postgis.png')
@@ -59,6 +60,7 @@ def processAlgorithm(self, progress):
5960
schema = self.getParameterValue(self.SCHEMA)
6061
overwrite = self.getParameterValue(self.OVERWRITE)
6162
createIndex = self.getParameterValue(self.CREATEINDEX)
63+
convertLowerCase = self.getParameterValue(self.LOWERCASE_NAMES)
6264
settings = QSettings()
6365
mySettings = '/PostgreSQL/connections/' + connection
6466
try:
@@ -93,7 +95,8 @@ def processAlgorithm(self, progress):
9395
options = {}
9496
if overwrite:
9597
options['overwrite'] = True
96-
98+
if convertLowerCase:
99+
options['lowercaseFieldNames'] = True
97100
layerUri = self.getParameterValue(self.INPUT)
98101
layer = dataobjects.getObjectFromUri(layerUri)
99102
(ret, errMsg) = QgsVectorLayerImport.importLayer(
@@ -136,3 +139,5 @@ def defineCharacteristics(self):
136139
self.addParameter(ParameterBoolean(self.OVERWRITE, 'Overwrite', True))
137140
self.addParameter(ParameterBoolean(self.CREATEINDEX,
138141
'Create spatial index', True))
142+
self.addParameter(ParameterBoolean(self.LOWERCASE_NAMES,
143+
'Convert field names to lowercase', False))

‎src/providers/postgres/qgspostgresprovider.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2844,8 +2844,6 @@ QgsVectorLayerImport::ImportError QgsPostgresProvider::createEmptyLayer(
28442844
QString *errorMessage,
28452845
const QMap<QString, QVariant> *options )
28462846
{
2847-
Q_UNUSED( options );
2848-
28492847
// populate members from the uri structure
28502848
QgsDataSourceURI dsUri( uri );
28512849
QString schemaName = dsUri.schema();
@@ -3048,6 +3046,12 @@ QgsVectorLayerImport::ImportError QgsPostgresProvider::createEmptyLayer(
30483046
continue;
30493047
}
30503048

3049+
if ( options->contains( "lowercaseFieldNames" ) && options->value( "lowercaseFieldNames" ).toBool() )
3050+
{
3051+
//convert field name to lowercase
3052+
fld.setName( fld.name().toLower() );
3053+
}
3054+
30513055
if ( !convertField( fld ) )
30523056
{
30533057
if ( errorMessage )

0 commit comments

Comments
 (0)
Please sign in to comment.