Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Catalog loader cannot pass a Runtime to the catalog it builds

Abierto Apto para principiantes
#3,285 0 comentarios 1 reacción 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
82/100
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
rust
Área
backend

Línea de trabajo

Comienza en BoxedCatalogBuilder y compara cómo with_storage_factory y with_kms_client_factory reenvían a CatalogBuilder. Añade el punto de entrada de reenvío correspondiente with_runtime y verifica después que iceberg_catalog_loader::load("rest") pueda configurar un runtime antes de cargar el catálogo.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Is your feature request related to a problem or challenge?

CatalogBuilder::with_runtime lets a caller choose the runtime a catalog, and the tables it creates, spawn their work on (scan planning, delete file processing). A catalog built through iceberg-catalog-loader cannot be given one: BoxedCatalogBuilder forwards with_storage_factory and with_kms_client_factory to the underlying CatalogBuilder, but has no with_runtime.

So a catalog chosen by type at runtime (iceberg_catalog_loader::load("rest")) always uses the runtime current when it is built, since the builders fall back to Runtime::current(). An application that keeps Iceberg work on a dedicated runtime, for example so that catalog clients and cached tables outlive the runtime of the request that built them, has to either build every catalog inside that runtime or give up the loader and match on catalog types itself.

Describe the solution you'd like

Add with_runtime to BoxedCatalogBuilder, forwarding to CatalogBuilder::with_runtime the same way the other two methods are forwarded:

let catalog = iceberg_catalog_loader::load("rest")?
    .with_runtime(runtime)
    .load("rest".to_string(), props)
    .await?;

This mirrors how with_kms_client_factory was added to the loader in #2650. Every builder in the loader's registry already implements CatalogBuilder::with_runtime, so nothing else changes.

Willingness to contribute

I can contribute to this feature independently

Lenguaje dominante
Rust
Estrellas
1.4k
Forks
574
Merge medio
1 d 20 h
PR fusionados (30 d)
65

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de apache/iceberg-rust

Todos los issues de apache/iceberg-rust

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.