[R] Silent loss of metadata integrity for date-time and numeric attributes in write_parquet()/read_parquet()
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 72/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- r
- Lĩnh vực
- data-engineering
Hướng nghiên cứu
Bắt đầu từ việc tuần tự hóa siêu dữ liệu R được write_parquet() và read_parquet() sử dụng, tập trung vào lệnh gọi serialize() trong bản sửa được đề xuất. Xác nhận rằng các thuộc tính có giá trị double, bao gồm cả ngày-giờ, được round-trip chính xác qua write_parquet()/read_parquet(), đồng thời các tệp hiện có vẫn có thể đọc được và không cần thay đổi reader.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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
- Ngôn ngữ chính
- C++
- Star
- 17.2k
- Fork
- 4.3k
- Merge trung bình
- 4 ngày 3 giờ
- Pull request đã merge (30 ngày)
- 93
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của apache/arrow
-
[C++] GetSchema labels its null check on each schema field as "DictionaryEncoding.indexType"Có thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởComponent: C++
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
Maintainer thường phản hồi trong vòng 1 ngày
-
[C++][Python] IPC reader rejects a DictionaryEncoding without indexType, which the format allowsCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởComponent: C++ Component: Python
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
[C++][Parquet] Plaintext-footer files written with AES_GCM_CTR_V1 record AES_GCM_V1 as the encryption algorithm and cannot be readCó thể đã có người làm @YusefSyed đã nhận 3 ngày trước. Đang mởType: bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
Maintainer thường phản hồi trong vòng 1 ngày
-
[R] Expose ignore_extra_columns and pad_short_rows CSV parse optionsCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởComponent: R good-first-issue Type: enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Component: C++
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
Maintainer thường phản hồi trong vòng 1 ngày
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
gavinlouuu-kpt/mib-studio-qt#517 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
ws_bridge: stripping format=evr for matchmaker connections can concatenate the path and queryĐang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
EchoTools/nevr-runtime#116 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
code-quality libc++
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 82/100
llvm/llvm-project#229284 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
test-issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
llvm/offload-test-suite#1557 ·
Maintainer thường phản hồi trong vòng 1 ngày