Package org.apache.derby.iapi.services.io

Examples of org.apache.derby.iapi.services.io.ArrayInputStream


    @exception IOException error in reading the header from file
  */
  private void readHeaderFromArray(byte[] a)
     throws StandardException, IOException
  {
    ArrayInputStream inStream = new ArrayInputStream(a);

    inStream.setLimit(CONTAINER_INFO_SIZE);
    int fid = inStream.readInt();
    if (fid != formatIdInteger)
        {
      throw StandardException.newException(
                SQLState.DATA_UNKNOWN_CONTAINER_FORMAT, getIdentity(),
                new Long(fid));
        }

    int status = inStream.readInt();
    pageSize = inStream.readInt();
    spareSpace = inStream.readInt();
    minimumRecordSize = inStream.readInt();
    initialPages = inStream.readShort();
    PreAllocSize = inStream.readShort();
    firstAllocPageNumber = inStream.readLong();
    firstAllocPageOffset = inStream.readLong();
    containerVersion = inStream.readLong();
    estimatedRowCount = inStream.readLong();
    reusableRecordIdSequenceNumber = inStream.readLong();
    lastLogInstant = null;

    if (PreAllocSize == 0// pre 2.0, we don't store this.
      PreAllocSize = DEFAULT_PRE_ALLOC_SIZE;

    long spare3 = inStream.readLong()// read spare long

    // upgrade - if this is a container that was created before
    // initialPages was stored, it will have a zero value.  Set it to the
    // default of 1.
    if (initialPages == 0
      initialPages = 1;

    // container read in from disk, reset preAllocation values
    PreAllocThreshold = PRE_ALLOC_THRESHOLD;

    // validate checksum
    long onDiskChecksum = inStream.readLong();
    checksum.reset();
    checksum.update(a, 0, CONTAINER_INFO_SIZE - CHECKSUM_SIZE);

    if (onDiskChecksum != checksum.getValue())
    {
View Full Code Here


    byte[] array = byteArray.getArray();
   
    // now extract the relavent information from array - basically
    // duplicate the code in readHeaderFromArray
    ArrayInputStream inStream = new ArrayInputStream(array);

    int status = 0;

    try
    {     
      inStream.setLimit(CONTAINER_INFO_SIZE);

      int fid = inStream.readInt();
      if (fid != formatIdInteger)
      {
        // RESOLVE: do something about this when we have > 1 container format
        throw StandardException.newException(
                    SQLState.DATA_UNKNOWN_CONTAINER_FORMAT,
                    getIdentity(), new Long(fid));
      }

      status = inStream.readInt();
      pageSize = inStream.readInt();
      spareSpace = inStream.readInt();
      minimumRecordSize = inStream.readInt();
      initialPages = inStream.readShort();

    }
    catch (IOException ioe)
    {
      throw StandardException.newException(
View Full Code Here

    @exception IOException error in reading the header from file
  */
  private void readHeaderFromArray(byte[] a)
     throws StandardException, IOException
  {
    ArrayInputStream inStream = new ArrayInputStream(a);

    inStream.setLimit(CONTAINER_INFO_SIZE);
    int fid = inStream.readInt();
    if (fid != formatIdInteger)
        {
      throw StandardException.newException(
                SQLState.DATA_UNKNOWN_CONTAINER_FORMAT, getIdentity(),
                new Long(fid));
        }

    int status = inStream.readInt();
    pageSize = inStream.readInt();
    spareSpace = inStream.readInt();
    minimumRecordSize = inStream.readInt();
    initialPages = inStream.readShort();
    PreAllocSize = inStream.readShort();
    firstAllocPageNumber = inStream.readLong();
    firstAllocPageOffset = inStream.readLong();
    containerVersion = inStream.readLong();
    estimatedRowCount = inStream.readLong();
    reusableRecordIdSequenceNumber = inStream.readLong();
    lastLogInstant = null;

    if (PreAllocSize == 0// pre 2.0, we don't store this.
      PreAllocSize = DEFAULT_PRE_ALLOC_SIZE;

    long spare3 = inStream.readLong()// read spare long

    // upgrade - if this is a container that was created before
    // initialPages was stored, it will have a zero value.  Set it to the
    // default of 1.
    if (initialPages == 0
      initialPages = 1;

    // container read in from disk, reset preAllocation values
    PreAllocThreshold = PRE_ALLOC_THRESHOLD;

    // validate checksum
    long onDiskChecksum = inStream.readLong();
    checksum.reset();
    checksum.update(a, 0, CONTAINER_INFO_SIZE - CHECKSUM_SIZE);

    if (onDiskChecksum != checksum.getValue())
    {
View Full Code Here

    byte[] array = byteArray.getArray();
   
    // now extract the relavent information from array - basically
    // duplicate the code in readHeaderFromArray
    ArrayInputStream inStream = new ArrayInputStream(array);

    int status = 0;

    try
    {     
      inStream.setLimit(CONTAINER_INFO_SIZE);

      int fid = inStream.readInt();
      if (fid != formatIdInteger)
      {
        // RESOLVE: do something about this when we have > 1 container format
        throw StandardException.newException(
                    SQLState.DATA_UNKNOWN_CONTAINER_FORMAT,
                    getIdentity(), new Long(fid));
      }

      status = inStream.readInt();
      pageSize = inStream.readInt();
      spareSpace = inStream.readInt();
      minimumRecordSize = inStream.readInt();
      initialPages = inStream.readShort();

    }
    catch (IOException ioe)
    {
      throw StandardException.newException(
View Full Code Here

  }


  private void readAllocPageHeader() throws IOException
  {
    ArrayInputStream lrdi = rawDataIn;
    lrdi.setPosition(ALLOC_PAGE_HEADER_OFFSET);

    nextAllocPageNumber = lrdi.readLong();
    nextAllocPageOffset = lrdi.readLong();
    reserved1 = lrdi.readLong();
    reserved2 = lrdi.readLong();
    reserved3 = lrdi.readLong();
    reserved4 = lrdi.readLong();
  }
View Full Code Here

  }

  private AllocExtent readExtent(int offset)
     throws IOException, ClassNotFoundException
  {
    ArrayInputStream lrdi = rawDataIn;
    rawDataIn.setPosition(offset);
    AllocExtent newExtent = new AllocExtent();
    newExtent.readExternal(lrdi);

    // in 1.3 or later, make sure the upgrade from before 1.3 is legal.
View Full Code Here

            long logEndInstant = LOG_FILE_HEADER_SIZE;

            StreamLogScan scanOfHighestLogFile =
                (StreamLogScan) openForwardsScan(startInstant,
                                                 (LogInstant)null);
            ArrayInputStream scanInputStream = new ArrayInputStream();
            while(scanOfHighestLogFile.getNextRecord(scanInputStream, null, 0)
                  != null){
                logEndInstant = scanOfHighestLogFile.getLogRecordEnd();
            }
View Full Code Here

          "fieldNumber: " + fieldNumber +
          " start field: " + startField +
          " number of fields " + numberFields);
    }

    ArrayInputStream lrdi = rawDataIn;

    // skip the record header
    lrdi.setPosition(offset + recordHeader.size());

    // skip any earlier fields ...
    for (int i = startField; i < fieldNumber; i++) {
      skipField(lrdi);
    }
View Full Code Here

  {
    super.initialize();

    if (rawDataIn == null)
        {
      rawDataIn            = new ArrayInputStream();
      checksum             = new CRC32();
    }

    if (pageData != null)
      rawDataIn.setData(pageData);
View Full Code Here

                    "restoreRecordFromSlot called on an overflow page.");
      }

            // 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 (!recordHeader.hasOverflow())
            {
                if (isHeadRow)
                {
                    if (fetchDesc != null &&
                        fetchDesc.getQualifierList() != null)
                    {
                        fetchDesc.reset();

                        if (!qualifyRecordFromSlot(
                                row,
                                offset_to_row_data,
                                fetchDesc,
                                recordHeader,
                                recordToLock))
                        {
                            return(false);
                        }
                        else
                        {
                            // reset position back for subsequent record read.
                            lrdi.setPosition(offset_to_row_data);
                        }
                    }
                }

                // call routine to do the real work.  Note that
View Full Code Here

TOP

Related Classes of org.apache.derby.iapi.services.io.ArrayInputStream

Copyright © 2018 www.massapicom. 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.