I put up an initial PR to split the flags

On Thursday, April 30, 2020, Micah Kornfield <emkornfi...@gmail.com> wrote:

> Sorry I didn't get to this, will try again tomorrow.
>
> On Thu, Apr 30, 2020 at 11:09 AM Wes McKinney <wesmck...@gmail.com> wrote:
>
>> I'd be fine with a patch release addressing this so long as it's
>> binary-only (to save us all time).
>>
>> On Thu, Apr 30, 2020, 12:30 PM Micah Kornfield <emkornfi...@gmail.com>
>> wrote:
>>
>>> This sounds like something we might want to do and issue a patch release.
>>> It seems bad to default to a non-production version?
>>>
>>> I can try to take a look tonight at a patch of no gets to it before.
>>>
>>> Thanks,
>>> Micah
>>>
>>> On Wednesday, April 29, 2020, Wes McKinney <wesmck...@gmail.com> wrote:
>>>
>>> > On Wed, Apr 29, 2020 at 6:15 PM Pierre Belzile <
>>> pierre.belz...@gmail.com>
>>> > wrote:
>>> > >
>>> > > Wes,
>>> > >
>>> > > You used the words "forward compatible". Does this mean that 0.17 is
>>> able
>>> > > to decode 0.16 datapagev2?
>>> >
>>> > 0.16 doesn't write DataPageV2 at all, the version flag only determines
>>> > the type casting and metadata behavior I indicated in my email. The
>>> > changes in
>>> >
>>> > https://github.com/apache/arrow/commit/809d40ab9518bd254705f35af01162
>>> > a9da588516
>>> >
>>> > enabled the use of DataPageV2 and I/we didn't think about the forward
>>> > compatibility issue (version=2.0 files written in 0.17.0 being
>>> > unreadable in 0.16.0). We might actually want to revert this (just the
>>> > toggle between DataPageV1/V2, not the whole patch).
>>> >
>>> >
>>> >
>>> > > Crossing my fingers...
>>> > >
>>> > > Pierre
>>> > >
>>> > > Le mer. 29 avr. 2020 à 19:05, Wes McKinney <wesmck...@gmail.com> a
>>> > écrit :
>>> > >
>>> > > > Ah, so we have a slight mess on our hands because the patch for
>>> > > > PARQUET-458 enabled the use of DataPageV2, which is not forward
>>> > > > compatible with older version because the implementation was fixed
>>> > > > (see the JIRA for more details)
>>> > > >
>>> > > >
>>> > > > https://github.com/apache/arrow/commit/
>>> 809d40ab9518bd254705f35af01162
>>> > a9da588516
>>> > > >
>>> > > > Unfortunately, in Python the version='1.0' / version='2.0' flag is
>>> > > > being used for two different purposes:
>>> > > >
>>> > > > * Expanded ConvertedType / LogicalType metadata, like unsigned
>>> types
>>> > > > and nanosecond timestamps
>>> > > > * DataPageV1 vs. DataPageV2 data pages
>>> > > >
>>> > > > I think we should separate these concepts and instead have a
>>> > > > "compatibility mode" option regarding the ConvertedType/LogicalType
>>> > > > annotations and the behavior around conversions when writing
>>> unsigned
>>> > > > integers, nanosecond timestamps, and other types to Parquet V1
>>> (which
>>> > > > is the only "production" Parquet format).
>>> > > >
>>> > > > On Wed, Apr 29, 2020 at 5:56 PM Pierre Belzile <
>>> > pierre.belz...@gmail.com>
>>> > > > wrote:
>>> > > > >
>>> > > > > Hi,
>>> > > > >
>>> > > > > We've been using the parquet 2 format (mostly because of
>>> nanosecond
>>> > > > > resolution). I'm getting crashes in the C++ parquet decoder,
>>> arrow
>>> > 0.16,
>>> > > > > when decoding a parquet 2 file created with pyarrow 0.17.0. Is
>>> this
>>> > > > > expected? Would a 0.17 decode a 0.16?
>>> > > > >
>>> > > > > If that's not expected, I can put the debugger on it and see
>>> what is
>>> > > > > happening. I suspect it's with string fields (regular, not large
>>> > string).
>>> > > > >
>>> > > > > Cheers, Pierre
>>> > > >
>>> >
>>>
>>

Reply via email to