Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Questions spanning thousands of tables force the model to hand-write 20k-character UNION ALL statements (19% of cost in one batch of sessions)

未关闭
#1,489 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
18/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
活跃
技术栈
sql, typescript
领域
database, devtools

调研方向

Start with the write classifier in packages/opencode/src/altimate/tools/sql-classify.ts (around lines 27 and 226-235) and the denial path in sql-execute.ts (lines 113-121) to see which session-local statements are blocked. The issue offers three alternative designs, so the scope needs a maintainer decision before any code. Done would be a question over 1,000+ tables finishing with no single model output above 2k tokens.

由索引模型根据 Issue 内容生成。

描述

Problem

A warehouse with one table per entity (2,753 tables) has no tool-supported way to query across a set of tables. Every route that would let the engine iterate over a table list is rejected or classified as a write, so the model generates the full UNION ALL text itself and re-types it into sql_execute.

Mechanism

  • DuckDB query_table([...]) rejects subqueries and lateral arguments ("Table function cannot contain subqueries" 36 times, "does not support lateral join column" 34, "Invalid named parameter" 12). An engine limit.
  • The statements that work around it (SET max_expression_depth which DuckDB's own error recommends, SET VARIABLE + query_table(getvariable(...)), EXECUTE IMMEDIATE, CREATE TEMP MACRO ... AS TABLE) are denied as writes (packages/opencode/src/altimate/tools/sql-classify.ts:27, :226-235; sql-execute.ts:113-121).
  • The model builds the text with string_agg; the single huge result cell is clipped in the preview (sql-result-format.ts:40, :178, :342), so it reads the spill file via bash/read and re-types the SQL (output tokens).

Evidence

  • 33 of 44 preview truncations are generated SQL.
  • Median output tokens per session on the affected question: 42,355 (Claude Opus) and 23,545 (gpt-5.6-sol), against 362-3,404 on other questions on the same warehouse.
  • 246-675 s and $5.98-$10.87 per Opus session, the 8 costliest of a 270-session batch; $58.2 of $307.9 (19%) for the two affected questions; context up to 144k tokens; one session used 675 of an 840 s budget; gpt-5.6-sol sessions ran 621-851 s and contributed to budget misses.
  • Generations of 15-25k tokens took 100-160 s each.

Impact

Time and cost, with budget risk. No incorrect answers caused directly in Opus sessions.

Proposed fix

Pick one or more:

  • A table-set primitive on sql_materialize / sql_execute (for example tables: "A*" or a list obtained from a scratch query) that expands UNION ALL BY NAME server-side.
  • Allow session-local non-writing settings (SET max_expression_depth, threads, memory_limit) on read-only connections, and CREATE [TEMP] MACRO in scratch.
  • A query_from: {warehouse, sql} option that classifies the generated text before running it.

Acceptance check

A question over 1,000+ tables completes without any single model output above 2k tokens; median output tokens and cost drop by at least 5x on the affected workload.

主要语言
TypeScript
星标
810
派生
121
平均合并
1 天 12 小时
30 天内合并 PR
94

环境准备

在 Codespaces 中打开

在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

AltimateAI/altimate-code 的其他 Issue

查看 AltimateAI/altimate-code 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。