check-queries: cross-check GeoPackage-sourced layer queries against the gpkg schema #155
Labels
No labels
blocked
claude-wip
map-report
map:is
map:se
needs-review
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
art/ismap#155
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
check-queries(#98, PR #148) has two halves, and between them they leave onegap: a layer query that reads a source GeoPackage is checked by neither.
The PREPARE half only reaches the destination database, so a gpkg-sourced query
is skipped by design. The static half only covers downloads whose URL carries a
WFS
PROPERTYNAME=list, and a GeoPackage has no such URL. Measured across thefive configs, 17 of 74 queries skip for this reason — and they are not a
scattering, they are most of Iceland:
That is the majority of Iceland's map, and it is exactly the place a #79-style
bug would hide: a query naming a column its source does not provide, invisible
locally because nothing connects the two.
What would close it
The same shape as the PROPERTYNAME half, against a different contract. The
GeoPackage is on disk at check time and
importer/gpkg.goalready reads itsschema, so:
db:resolves to a file path, open theGeoPackage and read the column set of the layer(s) it declares.
scanQuerySQLqualified-reference scan over the query.propertyNameViolationdoes today.The scanner, the alias attribution and the violation reporting all exist — this
is a second source of "columns this table is guaranteed to have", not new
machinery. Same limitation applies: unqualified column names can't be
attributed to a table without a full parser.
Why it is not in #148
#148's two halves are each complete against their own contract, and this is a
third contract with its own file-format work. Filing rather than widening that
PR. Noted in
docs/importer-cli.mdso the gap is documented where the command is.