Ray,

Le 30/01/2024 à 05:43, Ray at Daylon via gdal-dev a écrit :
I was tracing through the TIGER/Line OGR driver and noticed that
it calls OGRTigerDataSource::Open with the bTestOpen parameter
set to TRUE, causing that function to skip calling CPLError
and only return FALSE if an error happens.

This causes an interesting situation: an app can have the TIGER driver fail, but not be told why. Calling CPLGetLastErrorXXX doesn't help because no error condition was formally reported.

Is there a reason why bTestOpen is set to TRUE? Shouldn't
full error reporting be the default? If this parameter is
important, shouldn't it be part of the driver API so an app
can set it to get errors described?

I presume this is mostly a copy&paste pattern borrowed from the Shapefile driver. Basically the reason to be silent in most situations is that the Tiger driver opens a directory, and there's no easy way to know in advance if a directory belongs to the Tiger driver, or the Shapefile one, or the MITAB one, or etc.. than iterating over its files and checking if they have  extensions that look like a Tiger dataset. So failure of finding such file shouldn't trigger a verbose error, otherwise this would prevent other drivers to also try checking if they recognize the content of the directory.

And congratulations: you're the first user in recent times I'm aware of to have interest in that driver ;-) Or perhaps that was just accidental?

Even

--
http://www.spatialys.com
My software is free, but my time generally not.

_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to