Altinity / Altinity/altinity-sql-browser

GS: ClickHouse 26.8+ commit-cursor append refresh

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

Nessuno ha ancora preso questa issue.

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

Descrizione

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.

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 leggendo docs/design/google-sheets/append-refresh.md e docs/design/google-sheets/decisions.md, quindi esamina le dipendenze #400, #401 e #402. Usa i criteri di accettazione elencati per definire il completamento, includendo la validazione capability-gated, i checkpoint persistenti delle partizioni, le pagine di refresh limitate, i commit Google esatti, il comportamento di ripresa e la gestione esplicita del full-refresh per uno stato non valido.

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

Valutazione

Stack tecnologico
clickhouse, typescript
Ambito
backend, database, frontend
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.