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