Bug report #7944

addFeatures in provider does not return properly the feature ID

Added by Denis Rouzaud over 6 years ago. Updated over 6 years ago.

Status:Closed
Priority:Severe/Regression
Assignee:Matthias Kuhn
Category:Vectors
Affected QGIS version:master Regression?:No
Operating System: Easy fix?:No
Pull Request or Patch supplied:No Resolution:
Crashes QGIS or corrupts data:No Copied to github as #:16811

Description

In python, when doing:
ans, fout = provider.addFeatures( [fin] )

The feature fin is properly added, but doing fout[0].id() returns 0.

In postgres, the feature is created and has a different ID.

It is a regression because it used to work.

The same problem existed before but was solved in 7028827

History

#1 Updated by Matthias Kuhn over 6 years ago

I had a look at this today. It's quite strange, because the result is assigned in the provider and the proper id is still available from sip.
It looks as if a copy of the featurelist is passed to the dataprovider, where the proper id is assigned, but then the copy is deleted without the results being mapped back to the python object.
I also couldn't find any commits which would have changed related code.
Can you tell me the last working version?

#2 Updated by Jürgen Fischer over 6 years ago

  • Assignee changed from Jürgen Fischer to Matthias Kuhn

#3 Updated by Denis Rouzaud over 6 years ago

It used to work after this commit 7028827 (and probaby until before new API?)

#5 Updated by Denis Rouzaud over 6 years ago

  • Status changed from Open to Closed

forgot to call initAttributes after setFields.

so no bug at all.

#6 Updated by Matthias Kuhn over 6 years ago

initAttributes is now issued automatically when calling setFields from python.

Also available in: Atom PDF