(Copy-pasted from groue/GRDB.swift#1423 (comment), edited for clarity)
And if I remember correctly, you had some good reasons for not using key paths in the GRDB query builder
My reluctance about key paths is based on the fact that record types do frequently, but not always, exactly reflect their database representation. The reality is that record types are a Swift interface to their inner database representation. And it's the same for "json records" as well.
That's how people use them. They'll replace a text database value with a Swift string-based enum value. They'll publicly expose a price: Decimal
property instead of the priceCents
database integer. They'll publicly expose a location: CLLocationCoordinate2D
property instead of two latitude
and longitude
database doubles.