[R] Silent loss of metadata integrity for date-time and numeric attributes in write_parquet()/read_parquet()
Les mainteneurs répondent en général sous 1 jour
@james-finn-travers y travaille déjà.
Depuis le 3/10/2026.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 72/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- r
- Domaine
- data-engineering
Piste de recherche
Commencez par la sérialisation des métadonnées R utilisée par write_parquet() et read_parquet(), en vous concentrant sur l’appel à serialize() dans le correctif suggéré. Vérifiez que les attributs de type double, y compris les dates-heures, sont conservés exactement lors du passage par write_parquet()/read_parquet(), tout en garantissant que les fichiers existants restent lisibles et qu’aucune modification du lecteur n’est nécessaire.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Describe the bug, including details regarding any error messages, version, and platform.
Double-valued attributes, including date-times, do not round-trip through Arrow's R metadata. No warning is raised. (Tested on arrow 25.0.1, R 4.6.1, Linux.)
library(arrow)
options(digits.secs = 6)
df <- data.frame(x = 1:3)
attr(df, "updated") <- as.POSIXct("2026-10-02 14:30:15.987654321", tz = "UTC")
f <- tempfile(fileext = ".parquet")
write_parquet(df, f)
back <- read_parquet(f)
attr(df, "updated")
#> [1] "2026-10-02 14:30:15.987654 UTC"
attr(back, "updated")
#> [1] "2026-10-02 14:30:15.987653 UTC"
identical(attr(back, "updated"), attr(df, "updated"))
#> [1] FALSE
Suggested fix
Fortuitously, R already has an exact variant of the ASCII format, so the fix is simple and fully backwards compatible.
Arrow uses R_pstream_ascii_format (ascii = TRUE in base::serialize). Instead use R_pstream_asciihex_format (ascii = NA).
out <- serialize(safe_r_metadata(x, on_save = TRUE), NULL, ascii = NA)
The hex format means that doubles are written out in hex instead of decimal.
Either way, the output still starts with "A" (arrow's check) and base unserialize() reads it fine, so the reader needs no change and previous versions work with the output.
Component(s)
R
- Langage dominant
- C++
- Étoiles
- 17.2k
- Forks
- 4.4k
- Merge moyen
- 3 j 5 h
- PR mergées (30 j)
- 76
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de apache/arrow
-
[CI][Docs] Pull requests closed by the PR limit workflow cannot be reopened by their authorsOuverteComponent: Continuous Integration Component: Documentation
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
apache/arrow#54696 · 2 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
[R][Parquet] ParquetReaderProperties does not expose page_checksum_verification, so a corrupt page CRC reads silentlyPeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. OuverteComponent: R good-first-issue Type: enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
apache/arrow#53138 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
[C++][Python] IPC reader rejects a DictionaryEncoding without indexType, which the format allowsPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. OuverteComponent: C++ Component: Python Type: bug
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
-
[R] Expose ignore_extra_columns and pad_short_rows CSV parse optionsPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. OuverteComponent: R good-first-issue Type: enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
apache/arrow#51659 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Component: C++
Difficulté 2/5 1-3 heures Accessibilité débutants 86/100
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de apache/arrow
Issues similaires
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Les mainteneurs répondent en général sous 1 jour
-
enhancement Ready for final check
Difficulté 2/5 1-3 heures Accessibilité débutants 79/100
mpogue2/SquareDesk#1818 · 1 commentaire ·
-
launch-client --save-creds creates creds/<account>/ with mode 755, not 700Peut-être pris @metis-sprock l’a pris aujourd’hui. Ouvertebacklog bug
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
EchoTools/nevr-runtime#1471 ·
Les mainteneurs répondent en général sous 1 jour
-
docs: Page not found?Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 66/100
Les mainteneurs répondent en général sous 2 jours
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
iamankushpandit/Gume#231 ·
Les mainteneurs répondent en général sous 1 jour