Support Iceberg SQL views

Abierto
#1,099 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
cpp
Área
databases

Línea de trabajo

Start with PR #1069 and the existing table catalog APIs, then read the Iceberg view and REST catalog specifications linked in the issue. The scope spans metadata, JSON, lifecycle handling, REST operations, and integration tests; use the listed validation areas to map the work. Done means persisted views support the specified lifecycle through a REST catalog while existing table APIs remain compatible.

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

Descripción

Add support for persisted Iceberg SQL views so C++ applications can create, inspect, and manage view definitions through a REST catalog.

The initial metadata types and validation are under review in https://github.com/apache/iceberg-cpp/pull/1069. This issue tracks the complete implementation and expands the view-related work listed in #273.

Proposed scope

  • View metadata types, version history, representations, and validation — #1069.
  • View metadata JSON parsing and serialization, including preservation of unknown representation payloads.
  • View update and requirement types matching the REST wire contract.
  • A metadata builder for schema/version reuse, ordered updates, history retention, and dialect-removal checks.
  • A separate ViewCatalog interface and View handle, with an in-memory implementation for lifecycle tests.
  • REST read operations: load, exists, and paginated list.
  • REST mutations: create, replace, rename, drop, and register, plus property and location updates.

Expected behavior

  • Existing table catalog APIs remain compatible.
  • View handles expose immutable metadata snapshots. Refresh checks the view UUID and installs metadata and response configuration together.
  • SQL representation lookup matches dialects without regard to ASCII case and reports an absent dialect.
  • REST operations honor advertised endpoints and reuse existing authentication and error-handling behavior.
  • Mutations preserve ordered update semantics and report uncertain commit outcomes without automatically replaying the commit.

Validation

  • Metadata and JSON tests using view-format fixtures from the Java and Rust implementations.
  • In-memory lifecycle tests covering history, rollback, schema/version reuse, refresh, and snapshot immutability.
  • REST tests for request/response handling, endpoint discovery, pagination, conflicts, and uncertain commit outcomes.
  • A reference REST catalog integration test covering create, load, replace, rename, and drop.

SQL parsing and planning, materialized views, production storage in non-REST backends, and conditional replacement beyond the standard REST requirements are outside this initial scope.

References:

Lenguaje dominante
C++
Estrellas
227
Forks
142
Merge medio
3 d 21 min
PR fusionados (30 d)
70

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

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-cpp

Todos los issues de apache/iceberg-cpp

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.