accepted, stale = [], []
with sqlite3.connect(':memory:') as db:
    db.execute('CREATE TABLE orders(id TEXT PRIMARY KEY, version INT, status TEXT)')
    for event in output['events']:
        old = db.execute('SELECT version FROM orders WHERE id=?', (event['order'],)).fetchone()
        if old and old[0] >= event['version']:
            stale.append(event['id'])
            continue
        db.execute('INSERT INTO orders VALUES(?,?,?) ON CONFLICT(id) DO UPDATE SET version=excluded.version,status=excluded.status', (event['order'], event['version'], event['status']))
        accepted.append(event['id'])
    final = db.execute('SELECT version,status FROM orders WHERE id=?', ('O1',)).fetchone()
check('版本3取消状态不被晚到版本2覆盖', final == (3, 'cancelled'))
check('接受e1/e3，隔离e2', accepted == ['e1', 'e3'] and stale == ['e2'])
result = {'final_version': final[0], 'final_status': final[1], 'accepted': accepted, 'stale': stale}
