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.