code: def tempkeys(self):
      
      self.levels.append(dict(self.levels[-1]))
      try: yield
      finally: self.levels.pop()
docs: Add a new level to make new keys temporary. Used instead of copy in sqex.
      This may *seem* similar to a transaction but the tables are not being duplicated, just referenced.
      At __exit__, old dict is restored (but changes to Tables remain).