Examples of StoredRecordHeader


Examples of org.apache.derby.impl.store.raw.data.StoredRecordHeader

    throws StandardException
    {
        return(
            overflowRecordHeader != null ?
                overflowRecordHeader :
                (overflowRecordHeader = new StoredRecordHeader()));
    }
View Full Code Here

Examples of org.apache.derby.impl.store.raw.data.StoredRecordHeader

        int slot =
            findRecordById(
                parent_recordHeader.getOverflowId(), Page.FIRST_SLOT_NUMBER);

        StoredRecordHeader recordHeader = getHeaderAtSlot(slot);

        try
        {
            int offset_to_row_data =
                getRecordOffset(slot) + recordHeader.size();

            if (SanityManager.DEBUG)
            {
                if (getRecordOffset(slot) <
                        (PAGE_HEADER_OFFSET + PAGE_HEADER_SIZE))
                {
                    SanityManager.THROWASSERT(
                        "Incorrect offset.  offset = " +
                            getRecordOffset(slot) +
                        ", offset should be < " +
                        "(PAGE_HEADER_OFFSET + PAGE_HEADER_SIZE) = " +
                            (PAGE_HEADER_OFFSET + PAGE_HEADER_SIZE) +
                        ", current slot = " + slot +
                        ", total slotsInUse = " + slotsInUse);
                }
            }

            // position the array reading stream at beginning of row data
            // just past the record header.
            ArrayInputStream lrdi = rawDataIn;
            lrdi.setPosition(offset_to_row_data);

            if (fetchDesc != null)
            {
                if (fetchDesc.getQualifierList() != null)
                {
                    fetchDesc.reset();
                }

                readRecordFromArray(
                    row,
                    (fetchDesc.getValidColumns() == null) ?
                        row.length - 1 : fetchDesc.getMaxFetchColumnId(),
                    fetchDesc.getValidColumnsArray(),
                    fetchDesc.getMaterializedColumns(),
                    lrdi,
                    recordHeader,
                    recordToLock);
            }
            else
            {
                readRecordFromArray(
                    row,
                    row.length - 1,
                    (int[]) null,
                    (int[]) null,
                    lrdi,
                    recordHeader,
                    recordToLock);
            }

            return(recordHeader.hasOverflow() ? recordHeader : null);
        }
        catch (IOException ioe)
        {
            if (SanityManager.DEBUG)
            {
View Full Code Here

Examples of org.apache.derby.impl.store.raw.data.StoredRecordHeader

     *
   * @exception  StandardException  Standard exception policy.
     **/
  public StoredRecordHeader recordHeaderOnDemand(int slot)
  {
    StoredRecordHeader recordHeader =
            new StoredRecordHeader(pageData, getRecordOffset(slot));

    setHeaderAtSlot(slot, recordHeader);

    return recordHeader;
  }
View Full Code Here

Examples of org.apache.derby.impl.store.raw.data.StoredRecordHeader

    if (SanityManager.DEBUG)
        {
      SanityManager.ASSERT(isLatched());
    }

    StoredRecordHeader recordHeader = getHeaderAtSlot(slot);

    if (recordHeader.hasOverflow())
      return false;

    // the row chain does not overflow, we need to walk all the fields to
    // make sure they are not long columns.

    try
        {

      int offset = getRecordOffset(slot);
   
      if (SanityManager.DEBUG)
            {
        if (offset < (PAGE_HEADER_OFFSET + PAGE_HEADER_SIZE))
                {
          SanityManager.THROWASSERT(
                        "Incorrect offset.  offset = " + offset +
                        ", offset should be < " +
                        "(PAGE_HEADER_OFFSET + PAGE_HEADER_SIZE) = " +
                             (PAGE_HEADER_OFFSET + PAGE_HEADER_SIZE) +
                        ", current slot = " + slot +
                        ", total slotsInUse = " + slotsInUse);
        }

        SanityManager.ASSERT(recordHeader.getFirstField() == 0,
                     "Head row piece should start at field 0 but is not");
      }

      int numberFields = recordHeader.getNumberFields();

      // these reads are always against the page array
      ArrayInputStream lrdi = rawDataIn;

            // position after the record header, at 1st column.
      lrdi.setPosition(offset + recordHeader.size());
   
      for (int i = 0; i < numberFields; i++)
            {
        int fieldStatus = StoredFieldHeader.readStatus(lrdi);
        if (StoredFieldHeader.isOverflow(fieldStatus))
View Full Code Here

Examples of org.apache.derby.impl.store.raw.data.StoredRecordHeader

    RecordHandle    headRowHandle)
     throws StandardException
  {
    try
    {
      StoredRecordHeader recordHeader = getHeaderAtSlot(slot);

      int numberFields    = recordHeader.getNumberFields();

      // these reads are always against the page array
      ArrayInputStream lrdi = rawDataIn;

            // position the stream to just after record header.
      int offset          = getRecordOffset(slot) + recordHeader.size();
      lrdi.setPosition(offset);

      for (int i = 0; i < numberFields; i++)
            {
        int fieldStatus = StoredFieldHeader.readStatus(lrdi);
View Full Code Here

Examples of org.apache.derby.impl.store.raw.data.StoredRecordHeader

    // purge the long columns which start on this page.
    purgeColumnChains(t, slot, headRowHandle);

    // drive this loop from the head page. Walk each "long" row piece in
        // the row chain.
    StoredRecordHeader recordHeader = getHeaderAtSlot(slot);

    while (recordHeader.hasOverflow())
        {

      // nextPageInRowChain, is the page with the next row piece
      StoredPage nextPageInRowChain =
                getOverflowPage(recordHeader.getOverflowPage());

      if (nextPageInRowChain == null)
            {
        if (SanityManager.DEBUG)
                {
          SanityManager.THROWASSERT(
              "got null page following long row chain.  " +
              "Head row piece at " + getIdentity() + " slot " +
              slot + " headRecord " + headRowHandle +
              ".  Broken row chain at " +
              recordHeader.getOverflowPage() + ", " +
              recordHeader.getOverflowId());

                }

                break// Don't know what to do here, the row chain is
            // broken.  Don't bomb, just return.
View Full Code Here

Examples of org.apache.derby.impl.store.raw.data.StoredRecordHeader

      try
            {

        int columnId = work.getColumnId();
        StoredRecordHeader recordHeader = getHeaderAtSlot(slot);

        if (SanityManager.DEBUG)
          SanityManager.ASSERT(recordHeader.getFirstField() == 0,
            "Head row piece should start at field 0 but is not");

        // See if columnId is on pageInRowChain.
        while ((recordHeader.getNumberFields() +
            recordHeader.getFirstField()) <= columnId)
                {
          // The column in question is not on pageInRowChain.

          if (pageInRowChain != this)
                    {
            // Keep the head page latched.
            pageInRowChain.unlatch();
            pageInRowChain = null;
          }

          if (recordHeader.hasOverflow()) 
                    {
            // Go to the next row piece
            pageInRowChain =
                            getOverflowPage(recordHeader.getOverflowPage());
            recordHeader =
                            pageInRowChain.getHeaderAtSlot(
                                getOverflowSlot(pageInRowChain, recordHeader));
          }
                    else
                    {
            //  Don't know why, but this is the last column.
            //  Anyway, the column chain is definite orphaned.
            //  This can happen if the update, or subsequent
            //  updates, shrink the number of columns in the row.
            break;
          }
        }

        if ((recordHeader.getNumberFields() +
                            recordHeader.getFirstField()) > columnId)
                {
          // RecordHeader is the record header of the row piece on
          // pageInRowChain.  The column in question exists and is in
          // that row piece.
          if (!pageInRowChain.isColumnOrphaned(
View Full Code Here

Examples of org.apache.derby.impl.store.raw.data.StoredRecordHeader

    FormatableBitSet         validColumns,
    OutputStream    out,
    RecordHandle    headRowHandle)
    throws StandardException, IOException
  {
    StoredRecordHeader recordHeader = getHeaderAtSlot(slot);

    if (recordId != recordHeader.getId())
        {
      // the record is being logged under a different identifier,
      // write it out with the correct identifier
      StoredRecordHeader newRecordHeader =
                new StoredRecordHeader(recordHeader);

      newRecordHeader.setId(recordId);

      newRecordHeader.write(out);
      newRecordHeader = null;
    }
        else
        {
      // write the original record header
View Full Code Here

Examples of org.apache.derby.impl.store.raw.data.StoredRecordHeader

    @exception StandardException Standard Cloudscape error policy
  */
  public int fetchNumFieldsAtSlot(int slot) throws StandardException
  {

    StoredRecordHeader recordHeader = getHeaderAtSlot(slot);

    if (!recordHeader.hasOverflow())
      return super.fetchNumFieldsAtSlot(slot);

    BasePage overflowPage = getOverflowPage(recordHeader.getOverflowPage());
    int count = overflowPage.fetchNumFieldsAtSlot(getOverflowSlot(overflowPage, recordHeader));
    overflowPage.unlatch();
    return count;
  }
View Full Code Here

Examples of org.apache.derby.impl.store.raw.data.StoredRecordHeader

  private void storeRecordForInsert(int slot, ObjectInput in)
    throws StandardException, IOException
  {

    StoredRecordHeader recordHeader = shiftUp(slot);
    if (recordHeader == null) {
      recordHeader = new StoredRecordHeader();
      setHeaderAtSlot(slot, recordHeader);
    }

    bumpRecordCount(1);

    // recordHeader represents the new version of the record header.
    recordHeader.read(in);

    // the record is already marked delete, we need to bump the deletedRowCount
    if (recordHeader.isDeleted()) {
      deletedRowCount++;
      headerOutOfDate = true;
    }

    // during a rollforward insert, recordId == nextId
    // during a rollback of purge, recordId < nextId
    if (nextId <= recordHeader.getId())
      nextId = recordHeader.getId()+1;

    int recordOffset = firstFreeByte;
    int offset = recordOffset;

    // write each field out to the page
    int numberFields = recordHeader.getNumberFields();

    rawDataOut.setPosition(offset);
    offset += recordHeader.write(rawDataOut);

    int userData = 0;
    for (int i = 0; i < numberFields; i++) {

      // get the field header information, the input stream came from the log
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.