Altinity / Altinity/altinity-sql-browser

[sup] Best-effort cancel via /query-kill; remove streaming; export + session-script limits

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

Nessuno ha ancora preso questa issue.

enhancement sup
Lingua principale
TypeScript
Stelle
8
Fork
2
Merge medio
1h 34m
PR unite (30g)
6

Descrizione

Part of #352.

Cancel (best-effort)

The proxy buffers the response, so meta.queryId arrives after the query has run — reliable pre-execution cancel isn't possible with the current contract. Implement best-effort kill of a still-running (e.g. timed-out) query via /api/cluster/{id}/query-kill (actionKillProcesses) using the returned queryId+node. Label the UI honestly ("stop / kill", not a guaranteed cancel); if that's too weak, hide server-side cancel and treat the local action as "stop waiting." (A true cancel needs an ACM-side change: client-supplied query id or an early operation id.)

Streaming button

Remove the streaming/live-progress affordance (proxy buffers). Grid still renders via the adapter's fake stream (#353). No streaming/kill code in the public build.

Export & session scripts (declared capability limits)

  • Export: the current path streams uncapped bytes to disk with progress + known query id — incompatible with the buffered proxy. Disable in ACM mode, or hard-limit by bytes/time (a row cap alone is insufficient — one row can be huge).
  • Session scripts: CREATE TEMPORARY TABLE / cross-statement SET don't survive (each proxy call is a fresh CH session — verified). Diagnose/disable these in ACM mode.

Acceptance

  • Cancel issues /query-kill for the running queryId+node; UI label matches real semantics.
  • Streaming button hidden; grid renders.
  • Export disabled or hard-limited; session-dependent scripts diagnosed/disabled with a clear message.

Guida per i contributori

Apri la guida per i contributori

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.

Direzione di ricerca

Inizia tracciando il percorso delle query ACM e l’entry point /api/cluster/{id}/query-kill actionKillProcesses, incluso il modo in cui il queryId e il node restituiti arrivano alla UI. Controlla lo stream fittizio del grid adapter e la gestione di export/session-script in modalità ACM; il lavoro è completo quando viene soddisfatta la checklist di accettazione: semantica onesta di stop/kill, nessuna possibilità di streaming, export limitato o disabilitato e diagnosi chiara del session-script.

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

Valutazione

Stack tecnologico
sql, typescript
Ambito
api, backend-api-design, databases, frontend
Tipo di issue
Funzionalità
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
48/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.