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-boun...@lists.osgeo.org> Puolesta Robert Hewlett 
via gdal-dev
Lähetetty: keskiviikko 3. huhtikuuta 2024 17.51
Vastaanottaja: gdal-dev@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


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

Reply via email to