fix(query): define lossless SQL result encodings for DuckDB 2 types
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 42/100
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Go
- Star
- 6
- Fork
- 0
- Merge trung bình
- 2 giờ 25 phút
- Pull request đã merge (30 ngày)
- 25
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của labstack/fanout
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của labstack/fanout
Issue tương tự
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:session-state issue-rating: 🦞 diamond lobster no-stale P2
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
openclaw/wacli#503 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 81/100
apache/rocketmq-dashboard#6895 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
agent-butler-finding chore
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
jordansmall/spindrift#5466 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
open-telemetry/opentelemetry-go-compile-instrumentation#1507 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 87/100
777genius/agent-notifications#490 ·
Maintainer thường phản hồi trong vòng 1 ngày