fix(query): define lossless SQL result encodings for DuckDB 2 types
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 42/100
Línea de trabajo
Start at the NewDuck and ExecuteSQL entry points and inspect the existing SQL result conversion and JSON behavior. Add real integration coverage for scalar and nested binary values, literal byte-like strings, NULLs, UUIDs, GEOMETRY, and TIME_NS. Done means the documented encoding contract round trips through JSON with nanosecond precision while preserving predicates, validation, DESCRIBE, projections, and existing supported values.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
The whole-PR review of #272 identified low-severity SQL result serialization gaps outside its five inline findings: https://github.com/labstack/fanout/pull/272#pullrequestreview-5386440469 .
At e818a8db, ExecuteSQL converts binary VARIANT attributes to DuckDB-escaped strings rather than the previous base64 representation. Its generic []byte conversion also returns UUID, BLOB and DuckDB 2 GEOMETRY as raw strings; the pinned Go binding cannot decode TIME_NS. The latter raw-byte handling predates this PR, while the engine upgrade adds more exposed result types. Canonical Parquet attributes remain typed; this issue concerns the client boundary.
Implement a documented result encoding contract with explicit type information where needed. Preserve binary bytes, format UUIDs canonically, choose a deliberate GEOMETRY representation, and preserve all nine fractional digits for TIME_NS. Keep native timestamp predicates intact and keep AST validation, DESCRIBE and projection on the same connection and pinned snapshot. Do not introduce a legacy result path or a second engine.
Acceptance: tests through a real NewDuck/ExecuteSQL cover scalar and nested binary values, a literal string that resembles DuckDB's byte escape syntax, NULLs, UUIDs, GEOMETRY and TIME_NS. JSON round trips must preserve the chosen contract and nanosecond precision. Existing SQL restrictions and supported nested numeric values must continue to pass.
- Lenguaje dominante
- HTML
- Estrellas
- 6
- Forks
- 0
- Merge medio
- 2 h 25 min
- PR fusionados (30 d)
- 25
Preparar el entorno
- Incluye un Dockerfile o un 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 labstack/fanout
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Los mantenedores suelen responder en 1 día
Todos los issues de labstack/fanout
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 3 días
-
status: waiting-for-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
format.sort does not sort the Parents column (ParentRelations are sorted by the child table name)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
AOT compilation fails for derived delete queries returning SetPosiblemente ocupada @ryujungkyun la tomó hoy. Abiertostatus: waiting-for-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
spring-projects/spring-data-jpa#4387 ·
Los mantenedores suelen responder en 3 días