Apparently, my BEFORE INSERT trigger concatenating the owner info with their new id could never have worked (although no bug was ever seen or reported before). What it's trying to do is:
- when a new record is inserted
- concatenate the information about the owner name, address and the record id, and
- store that information in a description field (own_desc) in the record itself.
However, you can run a trigger BEFORE inserting the record (in which case the id is zero, because it hasn't been inserted yet); or you can run it AFTER inserting the record (in which case you cannot update the record itself, because it's already been inserted). The old trigger was doing the former, so the id showed as (0).
So my conclusion is that this either never worked at all, or if it did work, it was a lucky accident that was undone by a regular update to the database libraries, and it won't work in future. Curses.