[Qgis-developer] Expression based labeling

Sandro Santilli strk at keybit.net
Fri Oct 28 12:33:22 EDT 2011


On Fri, Oct 28, 2011 at 12:23:24PM -0300, Martin Dobias wrote:
> On Fri, Oct 28, 2011 at 4:15 AM, Sandro Santilli <strk at keybit.net> wrote:
> > On Thu, Oct 27, 2011 at 09:46:11AM -0300, Martin Dobias wrote:
> >> That is because not all data providers use ids in interval [0,N-1].
> >> For example, postgres provider uses the column with primary key as ID
> >> - so the values may be arbitrary. It is better to do a select()
> >> followed by just one nextFeature().
> >
> > Would it make sense to abstract provider-specific IDs so that the
> > [0, N-1] range holds for everyone ?
> 
> This is actually done within attribute table - we store feature IDs
> for the range [0,N-1] so that we can later access the feature data by
> row number. But that comes at an additional price: the layer has to be
> scanned first in order to obtain the mapping and it has to be updated
> whenever some changes to the layer are done.
> 
> What would be the requirements of such provider-specific IDs? What to
> do when a feature is deleted? If we recreate the mapping, some IDs
> stored by users would change, leading to problems if the user stores
> them as references to features. If we keep the original mapping, then
> it may contain holes and therefore the convenient [0, N-1] range would
> not be valid.

What happens if you delete a feature from a shapefile ?

--strk;

  ()   Free GIS & Flash consultant/developer
  /\   http://strk.keybit.net/services.html


More information about the Qgis-developer mailing list