def _dequeuing_delete_rmcb_records(cursor, transfersession_id):
# delete all RMCBs which are a reverse FF (store version newer than buffer version)
delete_rmcb_records = """DELETE FROM {rmcb}
WHERE model_uuid IN
(SELECT rmcb.model_uuid FROM {store} as store, {buffer} as buffer, {rmc} as rmc, {rmcb} as rmcb
/*Scope to a single record*/
WHERE store.id = buffer.model_uuid
AND store.id = rmc.store_model_id
AND store.id = rmcb.model_uuid
/*Checks whether LSB of buffer or less is in RMC of store*/
AND buffer.last_saved_instance = rmc.instance_id
AND buffer.last_saved_counter <= rmc.counter
AND rmcb.transfer_session_id = '{transfer_session_id}'
AND buffer.transfer_session_id = '{transfer_session_id}')
""".format(buffer=Buffer._meta.db_table,
store=Store._meta.db_table,
rmc=RecordMaxCounter._meta.db_table,
rmcb=RecordMaxCounterBuffer._meta.db_table,
transfer_session_id=transfersession_id)
cursor.execute(delete_rmcb_records)
评论列表
文章目录