Insert a record at the specified slot.
All records that occupy FIRST_SLOT_NUMBER to (slot - 1) are not moved.
All records that occupy slot to (recordCount() - 1) are moved up one slot.
The new record is inserted at the specified slot.
If slot == FIRST_SLOT_NUMBER, then the new record will be inserted at the first slot.
If slot == recordCount(), then the record is inserted in a new slot, no records are moved.
If slot is > recordCount() or if slot < FIRST_SLOT_NUMBER, an exception will be thrown.
Space Policy
If the row will not fit on a page then:
- an exception is thrown if the page has no other rows, this is an indication that the row could never fit on a page in this container.
- null is returned if there are other rows on the page, this is an indication that the row can potentially be inserted successfully onto an empty page.
Locking Policy
Calls the lockRecordForWrite() method of the LockingPolicy object passed to the openContainer() call before the record is inserted.
MT - latched
@param slot The specified slot
@param row The row version of the data
@param undo if logical undo may be necessary, a function pointerto the access code where the logical undo logic resides. Null if logical undo is not necessary.
@param validColumns a bit map of which columns in the row is valid. ValidColumns will not be changed by RawStore.
@param insertFlag if INSERT_UNDO_WITH_PURGE set, then the undo of thisinsert will purge the row rather than mark it as deleted, which is the default bahavior for insertAtSlot and insert.
@return A RecordHandle representing the new record, or null if the row will not fit on a non-empty page.
@exception StandardException Standard Derby error policy
@exception StandardException The container was not opened in update mode.
@exception StandardException The row cannot fit on the page
@see LogicalUndo
@see LogicalUndoable