Altinity / Altinity/altinity-sql-browser

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

Offen
#356 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

enhancement sup
Vorherrschende Sprache
TypeScript
Sterne
8
Forks
2
Ø Merge
1 Std. 34 Min.
Gemergte PRs (30 T.)
6

Beschreibung

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.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, den ACM-Abfragepfad und den Einstiegspunkt /api/cluster/{id}/query-kill actionKillProcesses nachzuverfolgen, einschließlich dessen, wie die zurückgegebene queryId und node die UI erreichen. Prüfe den Fake-Stream des Grid-Adapters und die Behandlung von Export/Session-Script im ACM-Modus; fertig bedeutet, dass die Abnahmeliste erfüllt ist: ehrliche Stop/Kill-Semantik, keine Streaming-Möglichkeit, begrenzter oder deaktivierter Export und eine klare Diagnose des Session-Scripts.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
sql, typescript
Bereich
api, backend-api-design, databases, frontend
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
48/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.