Bug report #16070

FeatureIDs for in-memory vector layers are counting from one, can't set them manually

Added by Georg Wicke about 6 years ago. Updated almost 4 years ago.

Affected QGIS version:2.18.0 Regression?:No
Operating System:Windows Easy fix?:No
Pull Request or Patch supplied:No Resolution:end of life
Crashes QGIS or corrupts data:No Copied to github as #:23985


Steps to reproduce

  1. Create new memory layer via python
  2. Create a feature
  3. Optionally: Set its ID to 0 (via feature.setFeatureID(0))
  4. Insert the feature (via data provider, is there another way that doesn't internally use the data provider?)

Observed behaviour

ID of inserted feature is 1, regardless of whether it's set or not. Additionally inserted features will have higher IDs.

Expected Behaviour

Index should be zero-based by default just as it is for OGR layers. When the index is set manually, it should get the assigned value.


#1 Updated by Giovanni Manghi about 6 years ago

  • Category set to Vectors

#2 Updated by Nyall Dawson about 6 years ago

  • Status changed from Open to Closed
  • Resolution set to wontfix

This is by design. Feature IDs are set by the provider and are not intended or designed to be manually set.

#3 Updated by Georg Wicke about 6 years ago

  • Status changed from Closed to Reopened

But we still have inconsistent behaviour of OGR vs. memory layers. They should either both use zero-based indices or both use one-based indices. This would make it possible to handle a layer copied into memory, e. g. to display something in a non-permanent fashion, in the same way as one would handle the same layer loaded directly via OGR.

#4 Updated by Georg Wicke about 6 years ago

By the way, this should at least be documented a bit more. It is not intuitive that there is a method to set the ID in the public API, which is completely useless, because that ID will be overridden anyway.

#5 Updated by Giovanni Manghi over 5 years ago

  • Regression? set to No
  • Easy fix? set to No

#6 Updated by Giovanni Manghi almost 4 years ago

  • Resolution changed from wontfix to end of life
  • Status changed from Reopened to Closed

End of life notice: QGIS 2.18 LTR


QGIS 3.4 has recently become our new Long Term Release (LTR) version. This is a major step in our history – a long term release version based on the massive updates, library upgrades and improvements that we carried out in the course of the 2.x to 3x upgrade cycle.

We strongly encourage all users who are currently using QGIS 2.18 LTR as their preferred QGIS release to migrate to QGIS 3.4. This new LTR version will receive regular bugfixes for at least one year. It also includes hundreds of new functions, usability improvements, bugfixes, and other goodies. See the relevant changelogs for a good sampling of all the new features that have gone into version 3.4

Most plugins have been either migrated or incorporated into the core QGIS code base.

We strongly discourage the continued use of QGIS 2.18 LTR as it is now officially unsupported, which means we’ll not provide any bug fix releases for it.

You should also note that we intend to close all bug tickets referring to the now obsolete LTR version. Original reporters will receive a notification of the ticket closure and are encouraged to check whether the issue persists in the new LTR, in which case they should reopen the ticket.

If you would like to better understand the QGIS release roadmap, check out our roadmap page! It outlines the schedule for upcoming releases and will help you plan your deployment of QGIS into an operational environment.

The development of QGIS 3.4 LTR has been made possible by the work of hundreds of volunteers, by the investments of companies, professionals, and administrations, and by continuous donations and financial support from many of you. We sincerely thank you all and encourage you to collaborate and support the project even more, for the long term improvement and sustainability of the QGIS project.

Also available in: Atom PDF