Andrew,
   For bugs or feature requests, please file a jira:
http://orc.apache.org/jira

If the positions list is empty, that is a bug. Can you describe how you
generated the ORC file? Which version of the software was used?

Thanks,
   Owen

On Fri, Nov 8, 2019 at 11:59 AM Andrew S. <luvsha...@yahoo.com> wrote:

> Hi,
> I'm starting to work with the ORC C++ API for a project I'm on.
> In a very basic test, I am seeing an assertion which I think is a bug. As
> I'm not sure where to report bugs (and also, as I'm just started looking at
> this API and maybe I'm misusing the API) I thought I'd post here.
>
> It is easy to reproduce: Take the Filecontents.cpp program which is the
> source for orc-contents example application and add the following code
> right before the while loop that calls rowReader->next(*batch):
>
> rowReader->seekToRow(1000);
>
> Then, using the example file TestOrcFile.testSeek.orc as input to
> orc-contents, this will crash with an assertion because of dereferencing an
> iterator that's pointing to end(). Using other example data files works
> fine in this case.
>
> Looking at PositionProvider::PositionProvider in InputStream.cc, it's
> assigning posns.begin() to the position variable. In this specific case for
> some of these assignments, the posns list is empty, and therefore the
> position variable ends up with an iterator that's pointing to end(). After
> that when it calls seekToRowGroup, it eventually gets to
> SeekableFileInputStream::seek() where it tries to call next() on that
> PositionProvider, tries to dereference the iterator and gives the assertion.
>
> I'm on Win10 using VC 2017.
>
> Any idea if this is a bug, or am I missing something?
>
>

Reply via email to