Deduplicate the three field-id reassignment walkers
Los mantenedores suelen responder en 4 días
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 55/100
Línea de trabajo
Start by comparing ReassignFieldIds in crates/iceberg/src/spec/schema/id_reassigner.rs with assign_fresh_ids and assign_fresh_ids_to_type in crates/iceberg/src/transaction/update_schema.rs, then inspect spec/schema/assign_fresh_ids.rs. Run the existing schema tests, especially those covering map key/value ordering. Done means the walkers and apply_to_identifier_fields/apply_to_aliases helpers are shared without changing either reassignment order or the tested behavior.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
We now have three near-identical walkers that rebuild a schema's field tree while reassigning ids:
ReassignFieldIdsassign_fresh_ids/assign_fresh_ids_to_typeinupdate_schema.rsspec/schema/assign_fresh_ids.rs, added in #3066
The apply_to_identifier_fields and apply_to_aliases helpers are identical between the first and third.
Suggestion: parameterise ReassignFieldIds with a strategy for picking the new id for an old id (default fresh, overridable to check a base schema by name first), and share the apply_to_* helpers.
Worth preserving: the map arms differ on purpose. ReassignFieldIds recurses the key subtree before assigning the value id, while assign_fresh_ids resolves both ids first to match Java. Tests pin both orders.
Raised in review of #3066.
- Lenguaje dominante
- Rust
- Estrellas
- 1.4k
- Forks
- 612
- Merge medio
- 4 d 1 h
- PR fusionados (30 d)
- 63
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de apache/iceberg-rust
-
REST create_table omits partition spec-id; Java-based servers (Polaris) reject itPosiblemente ocupada @ahlag la tomó hace 8 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
apache/iceberg-rust#3469 · 1 comentario ·
Los mantenedores suelen responder en 4 días
-
V1 manifest lists written by Java lose added/existing/deleted file countsPosiblemente ocupada @kacper-li-airspace-intelligence la tomó hace 11 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
apache/iceberg-rust#3445 ·
Los mantenedores suelen responder en 4 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
apache/iceberg-rust#3359 ·
Los mantenedores suelen responder en 4 días
-
Row filter keeps every row for `<` and `<=` on a null column that is missing from the data filePosiblemente ocupada @mattfaltyn la tomó hace 3 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
apache/iceberg-rust#3355 · 1 reacción ·
Los mantenedores suelen responder en 4 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
apache/iceberg-rust#3348 ·
Los mantenedores suelen responder en 4 días
Todos los issues de apache/iceberg-rust
Issues similares
-
bug easy good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
lacs-project/sysknife#659 ·
Los mantenedores suelen responder en 2 días
-
Document multi-value claims with rowBoundaries operator:in (and their per-record application)Abiertodocumentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
registrystack/registry-stack#2431 ·
Los mantenedores suelen responder en 1 día
-
contribution
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
farion1231/cc-switch#8863 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
dioxus-desktop on macOS: Finder file drops never fire `ondrop` — `dragenter` is not cancelledAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
DioxusLabs/dioxus#6006 ·
Los mantenedores suelen responder en 1 día