Suresh Thalamati wrote:
Andreas Korneliussen wrote:

Mike Matrigali wrote:


<snip>


I would think there are multiple ways of adressing this issue:

1 We could make the store graciously handle the situation if the RowLocation points to a deleted+purged row, by returning false if the RowLocation is invalid, (and from the caller we can give an exception)



This may not be good option, because purged row location can potentially be used by an another insert from a different
transaction.


Maybe I misunderstood, however I assumed the RowLocation would not be reused as long as there is a table intent lock on the table. Therefore the insert from a different transaction would need to use another RowLocation.

Mike Matrigali wrote:
2) It can be purged (requires at least TABLE IX, ROW X locking)
       o all physical evidence of the row is removed from table,
         both internal and external operations on this row will
         fail.  Only committed deleted rows are purged.
         Note this will never happen if you have some
         sort of lock on the row as the requested X lock is
         always requested in a system only transaction.
       o the actual RowLocation will not be reused while
         at least some sort of table level intent lock is held.

--Andreas

Reply via email to