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