2 * update() is a mess. What is needed is a mark sweep clean algorithm where the
3 dirty is used only for tables that have changed. Thus if a table is updated
4 it could well become dirty! Also need to be able to pass a force parameter
5 to force a table to update and all the tables in its dependency tree.