[ https://issues.apache.org/jira/browse/ARROW-3662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16670185#comment-16670185 ]
Dimitri Vorona edited comment on ARROW-3662 at 10/31/18 2:39 PM: ----------------------------------------------------------------- I was under the impression that on some platforms we used SEEK_END/Tell trick to get the size, but it's apparently not true. We do however call seek on the fd in some cases, (io-util.cc:372 => io-util.cc:218) and I'm not sure about the reason here. I hesitate considering a seek operation to be const, even if it effectively doesn't move the head. If it isn't a convern, I can of course change all GetSize methods. was (Author: alendit): I was on some platforms we used SEEK_END/Tell trick to get the size, but it's apparently not true. We do however call seek on the fd in some cases, (io-util.cc:372 => io-util.cc:218) and I'm not sure about the reason here. I hesitate considering a seek operation to be const, even if it effectively doesn't move the head. If it isn't a convern, I can of course change all GetSize methods. > [C++] Add a const overload to MemoryMappedFile::GetSize > ------------------------------------------------------- > > Key: ARROW-3662 > URL: https://issues.apache.org/jira/browse/ARROW-3662 > Project: Apache Arrow > Issue Type: New Feature > Affects Versions: 0.11.1 > Reporter: Dimitri Vorona > Priority: Minor > Labels: pull-request-available > Time Spent: 20m > Remaining Estimate: 0h > > > While GetSize in general is not a const function, it can be on a > MemoryMappedFile. I propose to add a const override directly to the > MemoryMappedFile. > Alternatively we could add a const version on the RandomAccessFile level > which would fail, if a const size getting (e.g. without a seek) isn't > possible, but it seems to me to be a potential source of hard-to-debug bugs > and spurious failures. At would at least require a careful analysis of the > platform support of different size getting options. -- This message was sent by Atlassian JIRA (v7.6.3#76005)