Altinity / Altinity/altinity-sql-browser
GS: ClickHouse 26.8+ commit-cursor append refresh
Dieses Issue hat noch niemand übernommen.
- 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.mddocs/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_offsetand 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
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Ö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