[gdal-dev] LAUNDER option for geopackages

Rahkonen Jukka jukka.rahkonen at maanmittauslaitos.fi
Wed Apr 3 08:50:19 PDT 2024


Hi,

The GeoPackage standard recommends some laundering to be done by the clients:

Implementers should be aware of the fact that SQLite table names are not case
sensitive and that table names in sqlite_master and gpkg_extensions may not have
the same case. When searching for table name references, it is recommended to
transform table names to lower case with the lower() function. See the Abstract
Test Suite for an example.

If GeoNode does not have any other reason for its requirement than what you have pointed out, then maybe it is too strict.

Having launder in GPKG driver feels still reasonable. SQLite driver has it already https://gdal.org/drivers/vector/sqlite.html.

"LAUNDER=[YES/NO]: Defaults to YES. Controls whether layer and field names will be laundered for easier use in SQLite. Laundered names will be converted to lower case and some special characters(' - #) will be changed to underscores."

It is either not documented or not implemented, but laundering identifiers to work without "quotas" would also require removing numbers from the beginning of the name. And at least % should be added to the list of special characters. But total laundering requires quite a lot https://www.sqlite.org/draft/tokenreq.html.

Laundering characters like äöå for GeoNode feels too much. Who would say into what characters to launder?

-Jukka Rahkonen-



Lähettäjä: gdal-dev <gdal-dev-bounces at lists.osgeo.org> Puolesta Robert Hewlett via gdal-dev
Lähetetty: keskiviikko 3. huhtikuuta 2024 17.51
Vastaanottaja: gdal-dev at lists.osgeo.org
Aihe: [gdal-dev] LAUNDER option for geopackages

Hi,

Is there a LAUNDER for geopackages?

I ask this because at the following site:

https://www.geopackage.org/guidance/getting-started.html

Gives this specific guidance:

Note: For maximum interoperability, start your database identifiers (table names, column names, etc.) with a lowercase character and only use lowercase characters, numbers 0-9, and underscores (_).

Which then turned into a constraint in GeoNode (I could not upload a certain geopackage from the township of langley) where I eventually discovered in the celery logs this error:

ERROR/ForkPoolWorker-958] {'validation_code': 'RQ1', 'validation_description': 'Layer names must start with a letter, and valid char
acters are lowercase a-z, numbers or underscores.', 'level': 'error', 'locations': ['Error layer: Parcel_Attributes']}

I would love LAUNDER to be a more global option.

Upper for: Oracle and Shapefiles.
Lower for: Postgresql, Mysql, geopackages

Just wondering,

Rob


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20240403/3ea96e14/attachment.htm>


More information about the gdal-dev mailing list