Patent ID: 7333992

Claim:
A method implemented at least in part by a computer for identifying rows deleted from a base table by a data manipulation statement as part of a selected transaction, the method comprising: examining each row of a plurality of rows in the base table to identify a last row changed as part of the transaction prior to execution of the statement, each said row having a row transaction number and a row sequence number, the row sequence number identifying a sequence in which changes are made within a transaction, each transaction being a sequence of changes that are committed; generating a scan list comprising a delete marker having a marker transaction number and a marker sequence number, the marker transaction number being set to the transaction number of the selected transaction of the base table, the marker sequence number being set to a sequence number of the last row changed as part of the selected transaction prior to execution of the statement; said examining further scanning each row in the base table with the delete marker that is set responsive to the last row changed as part of the transaction prior to execution of the statement, for each row: (a) determining if the row transaction number is equal to the marker transaction number; (b) if the row transaction number is not equal to the marker transaction number, then the row is read and added to the scan list; (c) if the row transaction number is equal to the marker transaction number, then: determining if the row sequence number is less than or equal to the marker sequence number; if the row sequence number is less than or equal to the marker sequence number, then the row is read and added to the scan list; if the row sequence number is not less than or equal to the marker sequence number, then retrieving a previous version of the row from a version store and returning to step (a) using the previous version of the row; and where retrieving the previous version of the row comprises retrieving a previous version of the row from the version store, the previous version identified in the version store by the row transaction number and the row sequence number; filtering results in the scan list with identified insert changes stored in a delta table; where the delta table stores a list of insertions made by the statement; and populating the filtered results of the scan list in a insert table.