You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Daniel Russel (JIRA)" <ji...@apache.org> on 2013/02/01 01:29:13 UTC

[jira] [Commented] (AVRO-1182) DataFileReader missing seek, sync methods

    [ https://issues.apache.org/jira/browse/AVRO-1182?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13568287#comment-13568287 ] 

Daniel Russel commented on AVRO-1182:
-------------------------------------

I attached an implementation. It can also be found at <https://github.com/drussel/avro_seek> in a slightly more browsable form. The API is slightly different than proposed, mostly due to getting correct offsets within blocks being expensive due to all the layers of buffering:
DataFileReader(Base) get:
    /**
     * Returns the size of the input in bytes, or -1 if the size cannot be
     * determined.
     */
    int64_t sizeBytes() const;

    /**
     * Returns the offset of the start of the current block in the file in bytes.
     */
    int64_t blockOffsetBytes() const;

    /**
     * Seeks to the next sync mark after the provided number of bytes.
     * Offset is from the start of the file.
     */
    void seekBlockBytes(size_t offset);

There are some tests in the DataFileTests.cc. And InputStream has an added method

     /**
     * Returns the number of bytes remaining in the stream or -1 if
     * that is not available.
     */
    virtual int64_t remainingBytes() const = 0;

                
> DataFileReader missing seek, sync methods
> -----------------------------------------
>
>                 Key: AVRO-1182
>                 URL: https://issues.apache.org/jira/browse/AVRO-1182
>             Project: Avro
>          Issue Type: Improvement
>          Components: c++
>    Affects Versions: 1.7.3
>            Reporter: Daniel Russel
>         Attachments: add_seek
>
>
> The DataFileReader is missing the seek and sync methods that are found in the java version making it hard to navigate a file except in a linear fashion.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira