[QGIS-Developer] QGIS/OGR: FeatureIds reassigned on write to data provider?
Even Rouault
even.rouault at spatialys.com
Tue Sep 19 10:15:58 PDT 2017
On mardi 19 septembre 2017 18:30:50 CEST Sandro Mani wrote:
> On 11.07.2017 14:31, Even Rouault wrote:
> > We could potentially imagine to defer the repacking at
> > leaveUpdateMode() time, actually in the close() method which is called
> > when the reference counter of the update mode drops to zero (*),
> > instead of doing it at the end of each operation.
>
> To come back to this, I was looking at moving replack() to close(), but
> noticed that syncToDisc() has the logic "for shapefiles, remove spatial
> index files and create a new index" which calls close. And syncToDisk is
> still called after every change. So should syncToDisk be also moved to
> close(), or at least blocked if an updateMode is active?
>
Yes that would probably make sense to block syncToDisk() while in updateMode (so when
mUpdateModeStackDepth > 0), but probably only if enterUpdateMode() is called by
QgsVectorLayer::startEditing(), and not when called implicitly by doInitialActionsForEdition(),
which might be the case if someone directly works at the provider level
bool QgsOgrProvider::doInitialActionsForEdition()
{
if ( !mValid )
return false;
if ( !mWriteAccess && mWriteAccessPossible && mDynamicWriteAccess )
{
QgsDebugMsg( "Enter update mode implictly" );
if ( !enterUpdateMode() )
return false;
}
return true;
}
So probably a mImplicitUpdateMode flag should be set above near the QgsDebugMsg(), and
the check to decide whether we can defer syncToDisk() would be ( !mImplicitUpdateMode &&
mUpdateModeStackDepth > 0)
> Thanks
> Sandro
> _______________________________________________
> QGIS-Developer mailing list
> QGIS-Developer at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
--
Spatialys - Geospatial professional services
http://www.spatialys.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20170919/45711445/attachment.html>
More information about the QGIS-Developer
mailing list