Writer: a nullable decimal column goes through vortex.masked; Rust keeps the validity on decimal_byte_parts' child or drops it
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 25/100
Rechercherichtung
Start with MaskedEncodingEncoder on the Java writer side, where a nullable decimal gets wrapped in vortex.masked even when all rows are valid, and compare it with Rust's DecimalScheme and split_decimal, which keep validity on the most-significant-part child. The test to run is DecimalBytePartsInteropIntegrationTest, widened to compare the full zoned stats tree. Done means the nullable decimal tree matches the Rust output, and the work should follow the validity-on-leaf approach from #604 and #635.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
A nullable decimal column is encoded by MaskedEncodingEncoder, which wraps the values in vortex.masked(<values>, <validity>) even when every row is valid. Rust's DecimalScheme splits the decimal (split_decimal) keeping its validity on the most-significant-part child, and an all-valid validity writes no bitmap at all (Rust's AllValid).
Seen in the zoned layout's stats table of every decimal column (its min/max columns are nullable): for TPC-H-shaped decimal columns vortex-jni writes them as vortex.constant, vortex.decimal_byte_parts(vortex.primitive) or vortex.decimal, where vortex-java writes vortex.masked(vortex.decimal, vortex.constant):
- vortex.decimal_byte_parts
- vortex.primitive
+ vortex.masked
+ vortex.decimal
+ vortex.constant
(DecimalBytePartsInteropIntegrationTest with its comparison widened from the data column to the full tree.) The data column of a nullable decimal holding nulls takes the same path.
This is the decimal counterpart of what #604 did for integers (validity on the leaf, never a vortex.masked wrapper) and of the timestamp change in #635. Found while fixing #644, which covers the non-nullable value child only.
- Vorherrschende Sprache
- Java
- Sterne
- 3
- Forks
- 2
- Ø Merge
- 9 Std. 51 Min.
- Gemergte PRs (30 T.)
- 127
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus dfa1/vortex-java
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
dfa1/vortex-java#636 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
dfa1/vortex-java#657 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 70/100
dfa1/vortex-java#655 ·
Maintainer antworten meist innerhalb von 1 Tag
-
perf
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 30/100
dfa1/vortex-java#651 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Writer: string columns written as per-chunk dicts where Rust uses its dict layout (up to 2x larger)Offenperf
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 30/100
dfa1/vortex-java#650 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in dfa1/vortex-java
Ähnliche Issues
-
needs-area-label
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
Maintainer antworten meist innerhalb von 2 Tagen
-
enhancement Java macOS
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
freerouting/freerouting#1079 ·
Maintainer antworten meist innerhalb von 4 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
apache/maven-enforcer#1074 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Gradle liquibaseDiffChangelog drops jhi_date_time_wrapperEvtl. vergeben @mraible hat das heute übernommen. Offenarea: triage theme: undefined
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
jhipster/generator-jhipster#35998 ·
Maintainer antworten meist innerhalb von 1 Tag