-
Vincent Pelletier authored
This mimics what FileStorage uses (file offsets) but in a relational manner. This offloads decision of the ability to undo a transaction to storages, avoiding 3 data loads for each object in the transaction at client side. This also makes Neo refuse to undo transactions where object data would happen to be equal between current value and undone value. Finally, this is required to make database pack work properly (namely, it prevents loosing objects which are orphans at pack TID, but are reachable after it thanks to a transactional undo). Also, extend storage's transaction manager so database adapter can fetch data already sent by client in the same transaction, so it can undo multiple transactions at once. Requires making object lock re-entrant (done in this commit). git-svn-id: https://svn.erp5.org/repos/neo/trunk@1978 71dcc9de-d417-0410-9af5-da40c76e7ee4
83c02447