Altinity / Altinity/altinity-sql-browser

GS: ClickHouse 26.8+ commit-cursor append refresh

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

Dieses Issue hat noch niemand übernommen.

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

Beschreibung

Parent: #398
Depends on: #400, #401, #402

Design:

  • docs/design/google-sheets/append-refresh.md
  • docs/design/google-sheets/decisions.md

Scope

Implement capability-gated append-only refresh for eligible direct MergeTree/ReplicatedMergeTree sources using per-partition persistent _block_number and _block_offset checkpoints and finite bounded SELECT queries.

Acceptance criteria

  • Append UI requires configured minimum version (initially 26.8) and successful runtime capability probes.
  • Eligible query validation permits one deterministic direct source and rejects joins, views, FINAL, aggregation, DISTINCT, window functions, UNION, table functions, and business LIMIT.
  • Binding pins table UUID, query hash, schema hash, source-subset parameters, and initialization mode.
  • Initial modes support history export and future-only checkpoints.
  • Refresh captures finite per-partition upper boundaries.
  • Pages are ordered and filtered by _block_number / _block_offset and use decimal-string UInt64 values.
  • Each Google commit copies exact staged rows and advances only the corresponding partition checkpoint in the same publication batch.
  • A closed tab resumes from the last committed page without duplicates.
  • Invalid capability, UUID, query, schema, parameter, row-count, or checkpoint state requires explicit full refresh.
  • SELECT ... STREAM, updates, deletes, and silent fallback are absent.

Concurrency

Use advisory lease metadata and generation rechecks. Strict distributed locking is out of scope.

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 mit der Lektüre von docs/design/google-sheets/append-refresh.md und docs/design/google-sheets/decisions.md und überprüfe anschließend die Abhängigkeiten #400, #401 und #402. Verwende die aufgeführten Akzeptanzkriterien, um den Abschluss zu definieren, einschließlich capability-gated validation, persistenter Partition-Checkpoints, begrenzter Refresh-Seiten, exakter Google-Commits, des Fortsetzungsverhaltens und einer expliziten full-refresh-Behandlung für einen ungültigen Zustand.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
clickhouse, typescript
Bereich
backend, database, frontend
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

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