Improved output (include column name in the output for violations.)
Also implemented a simple cache for previously-queried keys. Now stores the keys found in, say, nodes.node_id, so when another table references this key, we don't need to do another database query. This improves performance significantly, and is nicer to the databse server.
Showing with 25 additions and 8 deletions