1 21 22 package org.apache.derby.impl.store.access.btree; 23 24 import org.apache.derby.iapi.error.StandardException; 25 26 import org.apache.derby.iapi.store.access.conglomerate.TransactionManager; 27 28 import org.apache.derby.iapi.store.access.ConglomerateController; 29 30 import org.apache.derby.iapi.store.raw.FetchDescriptor; 31 import org.apache.derby.iapi.store.raw.Page; 32 import org.apache.derby.iapi.store.raw.RecordHandle; 33 34 import org.apache.derby.iapi.types.DataValueDescriptor; 35 36 import org.apache.derby.iapi.types.RowLocation; 37 38 77 78 public interface BTreeLockingPolicy 79 { 80 89 90 146 abstract public boolean lockScan( 147 LeafControlRow current_leaf, 148 ControlRow aux_control_row, 149 boolean forUpdate, 150 int lock_operation) 151 throws StandardException; 152 153 154 167 abstract public boolean lockScanForReclaimSpace( 168 LeafControlRow current_leaf) 169 throws StandardException; 170 171 185 abstract public boolean lockScanCommittedDeletedRow( 186 OpenBTree open_btree, 187 LeafControlRow leaf, 188 DataValueDescriptor[] template, 189 FetchDescriptor lock_fetch_desc, 190 int slot_no) 191 throws StandardException; 192 193 229 abstract public boolean lockScanRow( 230 OpenBTree open_btree, 231 BTree btree, 232 BTreeRowPosition pos, 233 boolean request_scan_lock, 234 FetchDescriptor lock_fetch_desc, 235 DataValueDescriptor[] lock_template, 236 RowLocation lock_row_loc, 237 boolean previous_key_lock, 238 boolean forUpdate, 239 int lock_operation) 240 throws StandardException; 241 242 252 abstract public void unlockScanRecordAfterRead( 253 BTreeRowPosition pos, 254 boolean forUpdate) 255 throws StandardException; 256 257 266 abstract public void unlockScan(long page_number); 267 268 269 277 278 335 abstract public boolean lockNonScanPreviousRow( 336 BTree btree, 337 LeafControlRow current_leaf, 338 int current_slot, 339 FetchDescriptor lock_fetch_desc, 340 DataValueDescriptor[] lock_template, 341 RowLocation lock_row_loc, 342 OpenBTree open_btree, 343 int lock_operation, 344 int lock_duration) 345 throws StandardException; 346 347 382 abstract public boolean lockNonScanRow( 383 BTree btree, 384 LeafControlRow current_leaf, 385 LeafControlRow aux_leaf, 386 DataValueDescriptor[] current_row, 387 int lock_operation) 388 throws StandardException; 389 390 415 abstract public boolean lockNonScanRowOnPage( 416 BTree btree, 417 LeafControlRow leaf, 418 int slot, 419 FetchDescriptor lock_fetch_desc, 420 DataValueDescriptor[] lock_template, 421 RowLocation lock_row_loc, 422 int lock_operation) 423 throws StandardException; 424 } 425 | Popular Tags |