Hi Gavin,
Thanks for the report. I have made the following changes:
to-sql-name now takes an optional second argument that overrides *escape-sql-names-p*, and the row-reader builder for DAO classes passes NIL when determining the names of rows.
As for the user table -- I guess you caught me at not testing my own examples ;). I did run it through S-SQL, but not through the database. I have added a (possibly somewhat over-engineered) feature to solve this without turning on escaping for every single identifier: S-SQL now has a table of reserved words, and when *escape-sql-names-p* is :auto (the new default), it will escape those words when it comes across them.
Let me know how this works for you. If there are no problems, I guess I'll do another release (since the get-dao issue is really rather bad).
Cheers, Marijn