Currently when you create a Datasource it immediately (in the constructor) checks to see whether the file/database/table/etc is available.
For cascadenik we now have a compile option which instantiates mapnik objects (including datasources) and then serializes them out to XML. This obviously is a bit annoying if the production DB/data/etc need to be available.
datasource(const mapnik::parameters& params, bool bind=true)
[gravitystorm] This would massively help with large-raster data sources. At the moment if a raster is greater than 512*512 ( http://trac.mapnik.org/browser/trunk/plugins/input/raster/raster_datasource.cpp#L135 ) there is significant overhead in pre-processing - leading to >15 minutes mapnik-startup times when using >10,000 raster layers. Deferring this processing to when the raster is actually needed would be great.
[rcoup] Plan is to port to 0.7.x branch after committed to trunk - the datasource stuff doesn't appear to have changed that much so it shouldn't be too hard.
[springmeyer] applied to trunk in r2291 and backported to 0.7.2 in r2293
#622 add optional late-binding of datasources
see reworking of this at #962