Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inline Generated Thift Code Into Parquet Crate #2502

Closed
tustvold opened this issue Aug 18, 2022 · 4 comments · Fixed by #2626
Closed

Inline Generated Thift Code Into Parquet Crate #2502

tustvold opened this issue Aug 18, 2022 · 4 comments · Fixed by #2626
Labels
enhancement Any new improvement worthy of a entry in the changelog parquet Changes to the parquet crate

Comments

@tustvold
Copy link
Contributor

tustvold commented Aug 18, 2022

Is your feature request related to a problem or challenge? Please describe what you are trying to do.

Currently parquet-format, which contains the generated code from the parquet thrift definitions, is published as a separate crate from a separate repo

There is discussion about potentially donating parquet-format and I wanted to create an issue to discuss this

Describe the solution you'd like

It's necessarily an incomplete picture, but looking at the reverse dependencies of parquet-format they all already have a dependency on parquet. As such I would like to propose inlining the generated code in a format module within parquet. This would avoid maintenance burden associated with an additional crate

Describe alternatives you've considered

We could not do this or we could donate the code, but still vend it as a separate crate. This would not address the maintenance burden of additional dependencies, but perhaps updates are infrequent enough that this doesn't matter

Additional context

If we are happy to proceed with this, I would be willing to help with the mechanics of moving the code across

FYI @sunchao @nevi-me

@tustvold tustvold added the enhancement Any new improvement worthy of a entry in the changelog label Aug 18, 2022
@nevi-me
Copy link
Contributor

nevi-me commented Aug 19, 2022

It's necessarily an incomplete picture, but looking at the reverse dependencies of parquet-format they all already have a dependency on parquet. As such I would like to propose inlining the generated code in a format module within parquet. This would avoid maintenance burden associated with an additional crate

We've had this discussion before, and I support this approach (sunchao/parquet-format-rs#10).

I think what could also bolster the argument for making parquet::format is that in reality we (I) haven't seen people depend on a specific version of parquet-format. So whatever the latest version we support, should be authoritative. In the sense that it'd be lower maintenance if we generate the thrift code whenever there's a change (which is very infrequent), and expose that as part of parquet.

@sunchao @tustvold I'd be in favour of deprecating and eventually archiving parquet-format-rs, then generating the code here. thrift-rs has come a long way since the early days, so it should be easier for external users to build their own format file if they don't want to depend on parquet::format.

@alamb
Copy link
Contributor

alamb commented Aug 19, 2022

I also agree that incorporating the code generated from thrift into the parquet crate and removing the dependency on parquet-format would be a good idea because:

  1. I think it would easier to use for users (can't have a version mismatch with parquet and another crate)
  2. The generated thrift code seems like an implementation detail.

@sunchao
Copy link
Member

sunchao commented Aug 21, 2022

+1. Let me know if you need any help.

I'd be in favour of deprecating and eventually archiving parquet-format-rs, then generating the code here.

I'd prefer to do the deprecating & archiving later, since we have internal projects that are still using parquet-format-rs.

tustvold added a commit to tustvold/arrow-rs that referenced this issue Sep 1, 2022
tustvold added a commit to tustvold/arrow-rs that referenced this issue Sep 1, 2022
tustvold added a commit to tustvold/arrow-rs that referenced this issue Sep 1, 2022
tustvold added a commit to tustvold/arrow-rs that referenced this issue Sep 1, 2022
@alamb alamb added the parquet Changes to the parquet crate label Sep 9, 2022
tustvold added a commit that referenced this issue Sep 10, 2022
* Update thrift v0.16 vendor parquet-format (#2502)

* Lint

* Add linguist-generated

* Use archlinux docker image

* Review feedback

* Fix doc

* Format
@alamb
Copy link
Contributor

alamb commented Sep 16, 2022

Automatically added labels {'api-change'} from #2626

@alamb alamb added api-change Changes to the arrow API and removed api-change Changes to the arrow API labels Sep 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Any new improvement worthy of a entry in the changelog parquet Changes to the parquet crate
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants