Examples of StoredRecordHeader


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

      // in the long column portion on the new page there will be 1 field
            // if the portion fits on the page (2 if it needs another pointer
            // to continue to yet another page).
      int numberFields = 1;

      StoredRecordHeader recordHeader =
                new StoredRecordHeader(recordId, numberFields);

      int recordHeaderLength = recordHeader.write(logicalDataOut);

      spaceAvailable -= recordHeaderLength;

      if (spaceAvailable < 0)
            {
View Full Code Here

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

    DynamicByteArrayOutputStream  out)
    throws StandardException, IOException
  {
    setOutputStream(out);
   
    StoredRecordHeader pageRecordHeader = getHeaderAtSlot(slot);
       
        StoredRecordHeader  overflow_rh = getOverFlowRecordHeader();
        overflow_rh.setOverflowFields(pageRecordHeader);

    if (SanityManager.DEBUG)
        {
      SanityManager.ASSERT(overflow_rh.getOverflowPage() != 0);
    }

    /*
    // #1 situation,
    // we want to update the header to just an overflow pointer with no data
    // so, update the recordHeader, and we are done...
    if (!overflow_rh.isPartialOverflow()) {
      // this recordHeader becomes just a overflow pointer,
      // we need to make sure that the number of fields is set to 0.
      overflow_rh.setNumberFields(0);
     
      spaceAvailable -= overflow_rh.write(logicalDataOut);

      if (spaceAvailable < 0) {
        throw new NoSpaceOnPage(isOverflowPage());
      }

      resetOutputStream();

      return (-1);
    }
    */

    // #2 situation,
    // we want to only update the recordheader of the page, while leaving
        // the data of the record on the page.  Just update the header part and
        // then arrange for the data part to move to after the new header.

    int oldSize = pageRecordHeader.size();
    int newSize = overflow_rh.size();

    if (oldSize < newSize)
        {
      // need extra room...
      int delta = newSize - oldSize;
      if (spaceAvailable < delta)
            {
        throw new NoSpaceOnPage(isOverflowPage());
      }
    }

    // write the new overflow_rh for the record.
    overflow_rh.write(logicalDataOut);

    // now, log the data
    logRecordDataPortion(
            slot, LOG_RECORD_DEFAULT, pageRecordHeader,
            (FormatableBitSet) null, logicalDataOut, (RecordHandle)null);
View Full Code Here

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

        // more then what each column says it contains

        logicalDataIn = new FormatIdInputStream(limitIn);

        // get the record header
        recordHeader = new StoredRecordHeader();
        recordHeader.read(logicalDataIn);

      }
            else
            {
View Full Code Here

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

            {
        numberFields = row.length;
      }

      // make the record header to have 0 record id
      recordHeader = new StoredRecordHeader(0, numberFields);

      // write the record header once for all the rows, directly to the
            // beginning of the file.
      int rhLen = recordHeader.write(out);
View Full Code Here

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
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.