mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-17 00:04:02 -04:00
Fix import of shapefiles to postgres - regression introduced in 5abdfcb (#3652)
(cherry picked from commit a965a132c52df9308b5a58be92c04a285826485a)
This commit is contained in:
parent
629ca8b986
commit
5e4bb00fa3
@ -3526,6 +3526,9 @@ QgsVectorLayerImport::ImportError QgsPostgresProvider::createEmptyLayer( const Q
|
||||
fldIdx = -1; // it is incremented in the for loop, i.e. restarts at 0
|
||||
}
|
||||
}
|
||||
|
||||
pkList = QStringList( primaryKey );
|
||||
pkType = QStringList( "serial" );
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -471,7 +471,9 @@ class TestPyQgsPostgresProvider(unittest.TestCase, ProviderTestCase):
|
||||
|
||||
def testKey(lyr, key, kfnames):
|
||||
self.execSQLCommand('DROP TABLE IF EXISTS qgis_test.import_test')
|
||||
uri = '%s table="qgis_test"."import_test" (g) key=\'%s\'' % (self.dbconn, key)
|
||||
uri = '%s table="qgis_test"."import_test" (g)' % self.dbconn
|
||||
if key is not None:
|
||||
uri += ' key=\'%s\'' % key
|
||||
err = QgsVectorLayerImport.importLayer(lyr, uri, "postgres", lyr.crs())
|
||||
self.assertEqual(err[0], QgsVectorLayerImport.NoError,
|
||||
'unexpected import error {0}'.format(err))
|
||||
@ -479,9 +481,17 @@ class TestPyQgsPostgresProvider(unittest.TestCase, ProviderTestCase):
|
||||
self.assertTrue(olyr.isValid())
|
||||
flds = lyr.fields()
|
||||
oflds = olyr.fields()
|
||||
self.assertEquals(oflds.size(), flds.size())
|
||||
for i in range(0, oflds.size()):
|
||||
self.assertEqual(oflds[i].name(), flds[i].name())
|
||||
if key is None:
|
||||
# if the pkey was not given, it will create a pkey
|
||||
self.assertEquals(oflds.size(), flds.size() + 1)
|
||||
self.assertEquals(oflds[0].name(), kfnames[0])
|
||||
for i in range(flds.size()):
|
||||
self.assertEqual(oflds[i + 1].name(), flds[i].name())
|
||||
else:
|
||||
# pkey was given, no extra field generated
|
||||
self.assertEquals(oflds.size(), flds.size())
|
||||
for i in range(oflds.size()):
|
||||
self.assertEqual(oflds[i].name(), flds[i].name())
|
||||
pks = olyr.pkAttributeList()
|
||||
self.assertEquals(len(pks), len(kfnames))
|
||||
for i in range(0, len(kfnames)):
|
||||
@ -491,6 +501,7 @@ class TestPyQgsPostgresProvider(unittest.TestCase, ProviderTestCase):
|
||||
testKey(lyr, '"f1"', ['f1'])
|
||||
testKey(lyr, '"f1","F2"', ['f1', 'F2'])
|
||||
testKey(lyr, '"f1","F2","f3"', ['f1', 'F2', 'f3'])
|
||||
testKey(lyr, None, ['id'])
|
||||
|
||||
|
||||
class TestPyQgsPostgresProviderCompoundKey(unittest.TestCase, ProviderTestCase):
|
||||
|
Loading…
x
Reference in New Issue
Block a user