- defaultdict benchmarks faster than a namedtuple; OK
- inline the column-based expiration operations as well
- use default dialect for compile test here
- need to use safe_discard() at least in _restore_snapshot(), let's use it
everywhere in Session since the optimized one only applies to loading