apache / apache/datafusion

Duplication between `ParquetFormat` and `ParquetReadOptions` is confusing

Aperta
#2,987 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
enhancement
Lingua principale
Rust
Stelle
9.3k
Fork
2.4k
Merge medio
3g 11h
PR unite (30g)
360

Descrizione

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

While working on https://github.com/apache/arrow-datafusion/pull/2985 I noticed I had to repeat the `skip_metadata` configuration option on both `ParquetReadOptions` (public API) and the `ParquetFormat`.

It also looks like the 'metadata_hint' size option was not added to the public API.

I believe the split is due to the fact that some of the values on `ParquetReadOptions` are used to make a `ListingOptions` and some are used on the actual `ParquetFormat` itself.

**Describe the solution you'd like**
I would like to have the options in a single place and avoid the redundancy

Oneapproach might be to pull the options that are shared into its own sub-struct shared by `ParquetReadOptions` and `ParquetFormat, but since those fields are pub that would be backwards incompatible

**Describe alternatives you've considered**
Another approach would be to add a `ParquetReadOptions` field to the `ParquetFormat` but this has issues that then several of these fields will be ignored.

**Additional context**
Add any other context or screenshots about the feature request here.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia individuando le definizioni e gli utilizzi di ParquetReadOptions e ParquetFormat, quindi confronta i relativi campi e il modo in cui viene costruito ListingOptions. Il lavoro è completato quando la configurazione condivisa ha una rappresentazione coerente, skip_metadata non è duplicato e metadata_hint è esposto tramite l'API pubblica senza che i campi vengano ignorati silenziosamente.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
rust
Ambito
backend-api-design
Tipo di issue
Refactoring
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.