[Qgis-developer] [Python] QgsFeatureIterator for geometryless PostgreSQL-Layer
Jürgen E. Fischer
jef at norbit.de
Tue Apr 23 02:38:18 PDT 2013
Hi Martin,
On Tue, 16. Apr 2013 at 09:32:08 +0200, Martin Dobias wrote:
> > IMHO that's not ok. If the provider doesn't support multiple iterators,
> > the second on should be rejected - forcing the caller to close the other
> > one first.
> You're right - when thinking about it again, it makes more sense to reject
> new iterator rather than close the previous one with force. It should be
> relatively simple to swap the behavior.
Which only moves the problem upward. Maybe we should handle setFilterFid
requests like the old featureAtId.
> > As we lost the ability to do featureAtId while iterating a layer, we now
> > have a couple of places, where stuff behaves strange and it's not really
> > obvious that it's causes by a setFilterFid request killing a surrounding
> > iteration.
> In the other thread (about updateFeature()) I have noted that we actually
> never really supported featureAtId while iterating a layer - at least not in
> all providers... AFAIK postgis always used only one cursor. With OGR provider
> that could work - but maybe just for some drivers (e.g. shapefile). If I have
> time I will try to do few tests how qgis 1.8 behaved.
I think the postgres provider had a separate (very short lived) cursor for
featureAtId.
> > Rejecting it wouldn't cure that, but at least make is show (ok, that's what
> > the error message does also do that now). And unless we get the parallel
> > setFilterFid request back, we'll need to identify and rewrite the looping
> > code.
> When porting the code to new API, were there really loops that combined
> nextFeature() with featureAtId() ?
Apparently. But my porting was more an semi-automatic effort - so didn't
really look closely at all the code. And I wasn't aware that multiple
iterators were a problem - I thought that was kind of the point of the new api.
;)
But we have a few tickets for that. Eg. http://hub.qgis.org/issues/7472. I
tried to link others related tickets there. There are probably more. The
submitters usually are not aware, that the problems are related.
I think this is a (real) blocker.
Jürgen
--
Jürgen E. Fischer norBIT GmbH Tel. +49-4931-918175-31
Dipl.-Inf. (FH) Rheinstraße 13 Fax. +49-4931-918175-50
Software Engineer D-26506 Norden http://www.norbit.de
committ(ed|ing) to Quantum GIS IRC: jef on FreeNode
--
norBIT Gesellschaft fuer Unternehmensberatung und Informationssysteme mbH
Rheinstrasse 13, 26506 Norden
GF: Jelto Buurman, HR: Amtsgericht Emden, HRB 5502
More information about the Qgis-developer
mailing list