Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

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

Aberta
#1,489 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
18/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
sql, typescript
Domínio
database, devtools

Direção de pesquisa

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.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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.

Linguagem predominante
TypeScript
Estrelas
810
Forks
121
Merge médio
1d 12h
PRs com merge (30d)
94

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de AltimateAI/altimate-code

Todas as issues de AltimateAI/altimate-code

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.