Key retraction misfires on deletion-heavy diffs: weigh matched-row agreement
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 50/100
Rechercherichtung
Reproduziere den Fall SDVB IMDB mixed_mixed_removal_rows2 und verfolge die Logik der Schlüsselrücknahme im ersten Durchlauf rund um change_mass und die Übereinstimmung der gematchten Zeilen. Erledigt ist die Aufgabe, wenn von Löschungen dominierte Diffs mit sauberen gematchten Zeilen den korrekten Schlüssel beibehalten, während Schlüssel, deren gematchte Zeilen stark voneinander abweichen, weiterhin zurückgenommen werden können; prüfe die Fälle in WINE_small als Regressionsabdeckung.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Problem
When a guessed key is correct but the diff is dominated by row deletions, change_mass counts dropped rows in full, pushing changed mass past MAX_PLAUSIBLE_CHANGE_PERCENT (50%). The correct key is then retracted as excessive_change, and the second guess can land on a structurally-unique but semantically wrong column.
Reproducer from the SDVB benchmark (IMDB mixed_mixed_removal_rows2, 800 → 47 rows, a genuine 94% row deletion):
# declared key: honest answer
table_key([Series_Title], basis: declared)
row_drop(rows: 753)
# guessed key: retraction misfires
key_retracted([Series_Title], reason: excessive_change)
----
table_key([Overview], basis: guessed, overlap: 1.00)
table_regenerate()
The retracted key was producing the better diff; the re-guess on Overview (free text, unique on both sides) yields table_regenerate() — strictly less informative.
Proposed signal
The two cases the retraction trigger must distinguish leave different evidence in pass one:
- Wrong key: matched rows disagree heavily in their cells.
- Right key + massive deletion: matched rows are essentially clean; the change mass comes entirely from dropped rows.
In the example above, the 47 matched rows under Series_Title had ~zero changed cells, fully corroborating the key. A refinement: retract only when the matched rows themselves disagree heavily, or exempt deletion-dominated mass when matched rows are clean.
Found while running data-diff against the SDVB benchmark; also affects the WINE_small key_retracted cases (3 pairs).
- Vorherrschende Sprache
- Rust
- Sterne
- 34
- Forks
- 0
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
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 hadley/data-diff
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 35/100
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
Alle Issues in hadley/data-diff
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
haowjy/mars-agents#295 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
-
rivetkit 3.0: HTTP 400 overloaded on node pool upsert is treated as fatal and exits the processOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
rivet-dev/rivet#5933 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
needs-verification
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
EchoTools/nevr-runtime#1272 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Add a `--skip-readme` option to `gleam new`Evtl. vergeben @mine-tech-oficial hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 79/100
gleam-lang/gleam#6458 · 1 Reaktion ·
Maintainer antworten meist innerhalb von 1 Tag