[gdal-dev] How to handle private (system) tables which a caller may explicitly want

Nyall Dawson nyall.dawson at gmail.com
Sat Aug 21 21:33:48 PDT 2021


Hi list,

Looking for some advice here on the best way to handle a particular
situation in some particular GDAL formats, specifically formats which
have a bunch of internal or system tables which we don't want to
expose to users in 99.99999% of cases BUT still allowing the 0.000001%
to explicitly get access to the tables when needed.

An example: the ESRI personal geodatabase format has a bunch of tables
like "GDB_Annosymbols", "GDB_Relationships", "GDB_TopoRules", etc. In
almost all cases a user won't want to see these tables exposed from
client applications so they are currently hardcoded to be skipped over
when building the list of layers for a datasource.  BUT there's
actually some useful content in these tables which an application
might want to read in very specific cases, e.g. if the application
wanted to read the topo rules to convert these to a human readable
form, or the relationship information, etc.

I can't see any way to handle this in current GDAL api -- either a
layer is exposed and accessible or it's skipped and there's no way for
a client to access it. Am I missing something, or would this require
new API? If so, has anyone any thoughts on how these could be handled
nicely?

Nyall


More information about the gdal-dev mailing list