Class HeapCompressScan

All Implemented Interfaces:
ScanManager, GenericScanController, GroupFetchScanController, RowCountable, ScanController

class HeapCompressScan extends HeapScan
A heap scan object represents an instance of a scan on a heap conglomerate.
  • Field Details

    • pagenum_to_start_moving_rows

      private long pagenum_to_start_moving_rows
      Fields of HeapScan
  • Constructor Details

    • HeapCompressScan

      public HeapCompressScan()
      The only constructor for a HeapCompressScan returns a scan in the closed state, the caller must call open.
  • Method Details

    • fetchNextGroup

      public int fetchNextGroup(DataValueDescriptor[][] row_array, RowLocation[] old_rowloc_array, RowLocation[] new_rowloc_array) throws StandardException
      Protected override implementation of routines in GenericController class:
      Specified by:
      fetchNextGroup in interface GroupFetchScanController
      Overrides:
      fetchNextGroup in class HeapScan
      Throws:
      StandardException
    • fetchRowsForCompress

      private int fetchRowsForCompress(DataValueDescriptor[][] row_array, RowLocation[] oldrowloc_array, RowLocation[] newrowloc_array) throws StandardException
      Fetch the next N rows from the table.

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

      Throws:
      StandardException - Standard exception policy.
    • positionAtResumeScan

      protected void positionAtResumeScan(RowPosition pos) throws StandardException
      Reposition the scan upon entering the fetchRows loop.

      Called upon entering fetchRows() while in the SCAN_INPROGRESS state. Do work necessary to look at rows in the current page of the scan.

      The default implementation uses a record handle to maintain a scan position. It will get the latch again on the current scan position and set the slot to the current record handle.

      Overrides:
      positionAtResumeScan in class GenericScanController
      Throws:
      StandardException - Standard exception policy.
    • positionAtStartForForwardScan

      protected void positionAtStartForForwardScan(RowPosition pos) throws StandardException
      Move the scan from SCAN_INIT to SCAN_INPROGRESS.

      This routine is called to move the scan from SCAN_INIT to SCAN_INPROGRESS. Upon return from this routine it is expected that scan_position is set such that calling the generic scan loop will reach the first row of the scan. Note that this usually means setting the scan_postion to one before the 1st row to be returned.

      Overrides:
      positionAtStartForForwardScan in class GenericScanController
      Throws:
      StandardException - Standard exception policy.
    • positionAfterThisPage

      private void positionAfterThisPage(RowPosition pos) throws StandardException
      Set scan position to just after current page.

      Used to set the position of the scan if a record handle is not avaliable. In this case current_rh will be set to null, and current_pageno will be set to the current page number. On resume of the scan, the scan will be set to just before the first row returned form a getNextPage(current_pageno) call.

      A positionAtResumeScan(scan_position) is necessary to continue the scan after this call.

      Throws:
      StandardException - Standard exception policy.