Skip to content

PARQUET-2013: [Format] Mention that ConvertedType is deprecated#169

Merged
pitrou merged 1 commit intoapache:masterfrom
pitrou:PARQUET-2013-converted-type-
Apr 4, 2021
Merged

PARQUET-2013: [Format] Mention that ConvertedType is deprecated#169
pitrou merged 1 commit intoapache:masterfrom
pitrou:PARQUET-2013-converted-type-

Conversation

@pitrou
Copy link
Member

@pitrou pitrou commented Apr 1, 2021

Also slight wording improvements, and replace a "must" with "should" for writing the ConvertedType field.

Also slight wording improvements, and replace a "must" with "should" for writing the ConvertedType field.
@pitrou pitrou requested a review from gszadovszky April 1, 2021 12:33
Copy link
Contributor

@gszadovszky gszadovszky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for taking care of this. Let's wait for another 24 hours for any other comments.

@pitrou pitrou merged commit cabeea7 into apache:master Apr 4, 2021
@pitrou pitrou deleted the PARQUET-2013-converted-type- branch April 4, 2021 09:25
*
* To maintain compatibility, implementations using LogicalType for a
* SchemaElement must also set the corresponding ConvertedType from the
* SchemaElement should also set the corresponding ConvertedType from the
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry for the belated comment by why the change from must to should?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also believed that setting ConvertedType was MUST for forward compatibility reasons. Can we please discuss on the mailing list?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Logical types were introduced 3.5 years go, so it seemed reasonable to relax the requirement. Do you expect some Parquet readers in the wild to still not understand them?
It's easy, for every converted type you support, to also support the corresponding logical type. It's only a small amount of logic in the decoding path, and it's not performance-critical.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That said, feel free to spawn a discussion on the ML.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you want to make this change, I think it needs to be voted on. Knowing the motley state of Parquet implementations in enterprise deployments I would be uncomfortable writing files that don't have the field.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, given the state, even today, of inter-implementation compatibility, I think anyone using a 2017-era implementation would run into lots of issues when reading files produced by other implementations, regardless of whether logical types are used.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That said, if people feel strongly about it, I can simply revert this one-word change, because I don't think there's any point organizing a vote on it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a change with forward compatibility implications, so either we revert or we discuss/vote, but we can't leave it like this. Impala for example only started to get support for LogicalType in 2019 (and this is only one of the mainstream independent implementations), so we'd be making a bet about how quickly updates are rolling out to all of the corners of the world

apache/impala@0906e08

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants