session.compact calls checkpoint, which can't be called inside a
transaction; give session.compact its own test and error message so
application writers aren't confused.