Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

fix(query): define lossless SQL result encodings for DuckDB 2 types

Aperta
#279 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
42/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
go, sql
Ambito
database

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
Go
Stelle
6
Fork
0
Merge medio
2h 25m
PR unite (30g)
25

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di labstack/fanout

Tutte le issue di labstack/fanout

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.