[gdal-dev] Spatialite 4 and InitSpatialMetaData

Even Rouault even.rouault at mines-paris.org
Sun Oct 13 12:44:05 PDT 2013


Le dimanche 13 octobre 2013 20:57:16, Jukka Rahkonen a écrit :
> Hi,
> 
> I noticed a huge difference in running either InitSpatialMetaData() or
> InitSpatialMetaData(1) on a rather weak Windows 32-bit computer with
> Spatialite version 4.1.1. The first variant took 18 minutes vs. 3 seconds
> for the latter.
> 
> This must have to do with making either one big or thousands of small
> transactions when populating the spatial_ref_sys table.
> https://www.gaia-gis.it/gaia-sins/xmlBlob/spatialite-sql-latest.html.
> 
> I am not sure from which Spatialite version this setting is supported but
> it might be worth checking how GDAL behaves. I think it should use
> "InitSpatialMetaData(1)" if it is supported. Option is said to be less safe
> than the default setting "transaction=false" but function is used when an
> new database is created so there is no risk for corrupting data.
> 
> The speed of the function with default value is so awfully slow that it
> feels like a bug in Spatialite.

Jukka,

Yes, indeed this is very slow and I didn't have the patience to wait on my 
Linux PC too...

InitSpatialMetaData() in spatialite < 4.1 ran always inside a transaction, 
which could prevent it to be used in a context where the user would have 
wanted a transaction that cover more than that. So the default in spatialite 
>= 4.1 is NOT to run inside a transaction.

InitSpatialMetataData(1) in spatialite >= 4.1 is equivalent to 
InitSpatialMetaData() in older releases.

Fixed in trunk and branches/1.10 by http://trac.osgeo.org/gdal/ticket/5270

Even

-- 
Geospatial professional services
http://even.rouault.free.fr/services.html


More information about the gdal-dev mailing list