org.apache.derby.impl.store.access.btree
Class BTreeForwardScan

java.lang.Object
  extended byorg.apache.derby.impl.store.access.btree.OpenBTree
      extended byorg.apache.derby.impl.store.access.btree.BTreeScan
          extended byorg.apache.derby.impl.store.access.btree.BTreeForwardScan
All Implemented Interfaces:
GenericScanController, GroupFetchScanController, RowCountable, ScanController, ScanManager
Direct Known Subclasses:
B2IForwardScan

public class BTreeForwardScan
extends BTreeScan

A b-tree scan controller corresponds to an instance of an open b-tree scan.

Concurrency Notes<\B>

The concurrency rules are derived from OpenBTree.

See Also:
OpenBTree

Field Summary
 
Fields inherited from class org.apache.derby.impl.store.access.btree.BTreeScan
fetchNext_one_slot_array, init_fetchDesc, init_forUpdate, init_hold, init_lock_fetch_desc, init_qualifier, init_rawtran, init_scanColumnList, init_startKeyValue, init_startSearchOperator, init_stopKeyValue, init_stopSearchOperator, init_template, init_useUpdateLocks, lock_operation, SCAN_DONE, SCAN_HOLD_INIT, SCAN_HOLD_INPROGRESS, SCAN_INIT, SCAN_INPROGRESS, scan_position, scan_state, stat_numdeleted_rows_visited, stat_numpages_visited, stat_numrows_qualified, stat_numrows_visited
 
Fields inherited from class org.apache.derby.impl.store.access.btree.OpenBTree
btree_undo, container, err_containerid, init_lock_level, init_open_user_scans, runtime_mem
 
Fields inherited from interface org.apache.derby.iapi.store.access.ScanController
GE, GT, NA
 
Constructor Summary
BTreeForwardScan()
           
 
Method Summary
 void close()
          Close the scan.
protected  int fetchRows(BTreeRowPosition pos, DataValueDescriptor[][] row_array, RowLocation[] rowloc_array, BackingStoreHashtable hash_table, long max_rowcnt, int[] key_column_numbers)
          Fetch the next N rows from the table.
 void init(TransactionManager xact_manager, Transaction rawtran, boolean hold, int open_mode, int lock_level, BTreeLockingPolicy btree_locking_policy, FormatableBitSet scanColumnList, DataValueDescriptor[] startKeyValue, int startSearchOperator, Qualifier[][] qualifier, DataValueDescriptor[] stopKeyValue, int stopSearchOperator, BTree conglomerate, LogicalUndo undo, StaticCompiledOpenConglomInfo static_info, DynamicCompiledOpenConglomInfo dynamic_info)
          Initialize the scan for use.
protected  void positionAtStartPosition(BTreeRowPosition pos)
          Position scan at "start" position.
 
Methods inherited from class org.apache.derby.impl.store.access.btree.BTreeScan
closeForEndTransaction, delete, didNotQualify, doesCurrentPositionQualify, fetch, fetchLocation, fetchNext, fetchNextGroup, fetchSet, getCurrentRecordHandleForDebugging, getScanInfo, isCurrentPositionDeleted, isKeyed, newRowLocationTemplate, next, positionAtDoneScan, positionAtDoneScanFromClose, positionAtNextPage, positionAtStartForBackwardScan, positionAtStartForForwardScan, process_qualifier, reopenScan, reopenScanByRowLocation, replace, reposition, savePosition, toString
 
Methods inherited from class org.apache.derby.impl.store.access.btree.OpenBTree
checkConsistency, debugConglomerate, getColumnSortOrderInfo, getConglomerate, getContainer, getContainerHandle, getEstimatedRowCount, getHeight, getHold, getLockingPolicy, getLockLevel, getOpenMode, getRawTran, getRuntimeMem, getSpaceInfo, getXactMgr, init, isClosed, isIndexableRowConsistent, isTableLocked, makeRecordHandle, reopen, setEstimatedRowCount, setLockingPolicy, test_errors
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.derby.iapi.store.access.GenericScanController
isTableLocked
 
Methods inherited from interface org.apache.derby.iapi.store.access.RowCountable
getEstimatedRowCount, setEstimatedRowCount
 

Constructor Detail

BTreeForwardScan

public BTreeForwardScan()
Method Detail

positionAtStartPosition

protected void positionAtStartPosition(BTreeRowPosition pos)
                                throws StandardException
Position scan at "start" position.

Positions the scan to the slot just before the first record to be returned from the scan. Returns the start page latched, and sets "current_slot" to the slot number.

Specified by:
positionAtStartPosition in class BTreeScan
Throws:
StandardException - Standard exception policy.

init

public void init(TransactionManager xact_manager,
                 Transaction rawtran,
                 boolean hold,
                 int open_mode,
                 int lock_level,
                 BTreeLockingPolicy btree_locking_policy,
                 FormatableBitSet scanColumnList,
                 DataValueDescriptor[] startKeyValue,
                 int startSearchOperator,
                 Qualifier[][] qualifier,
                 DataValueDescriptor[] stopKeyValue,
                 int stopSearchOperator,
                 BTree conglomerate,
                 LogicalUndo undo,
                 StaticCompiledOpenConglomInfo static_info,
                 DynamicCompiledOpenConglomInfo dynamic_info)
          throws StandardException
Initialize the scan for use.

Any changes to this method may have to be reflected in close as well.

The btree init opens the container (super.init), and stores away the state of the qualifiers. The actual searching for the first position is delayed until the first next() call.

Overrides:
init in class BTreeScan
Throws:
StandardException - Standard exception policy.

close

public void close()
           throws StandardException
Close the scan.

Specified by:
close in interface GenericScanController
Overrides:
close in class BTreeScan
Throws:
StandardException

fetchRows

protected int fetchRows(BTreeRowPosition pos,
                        DataValueDescriptor[][] row_array,
                        RowLocation[] rowloc_array,
                        BackingStoreHashtable hash_table,
                        long max_rowcnt,
                        int[] key_column_numbers)
                 throws StandardException
Fetch the next N rows from the table.

Utility routine used by both fetchSet() and fetchNextGroup().

Specified by:
fetchRows in class BTreeScan
Throws:
StandardException - Standard exception policy.


Apache Derby V10.0 Engine Documentation - Copyright © 1997,2004 The Apache Software Foundation or its licensors, as applicable.