GS: ClickHouse 26.8+ commit-cursor append refresh
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- clickhouse, typescript
Research direction
Start by reading docs/design/google-sheets/append-refresh.md and docs/design/google-sheets/decisions.md, then review dependencies #400, #401, and #402. Use the listed acceptance criteria to define completion, including capability-gated validation, persistent partition checkpoints, bounded refresh pages, exact Google commits, resume behavior, and explicit full-refresh handling for invalid state.
Written by the indexing model from the issue text.
Description
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.
- Dominant language
- TypeScript
- Stars
- 8
- Forks
- 2
- Avg merge
- 1h 34m
- Merged PRs (30d)
- 6
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Altinity/altinity-sql-browser
-
inbox
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Altinity/altinity-sql-browser#605 ·
-
inbox
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Altinity/altinity-sql-browser#509 ·
-
inbox
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Altinity/altinity-sql-browser#489 ·
-
flamegraph Openenhancement
Difficulty 5/5 Over a week Newbie friendliness 25/100
Altinity/altinity-sql-browser#684 ·
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 68/100
Altinity/altinity-sql-browser#680 · 2 comments ·
All issues in Altinity/altinity-sql-browser
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
safetrustcr/dApp-SafeTrust#426 ·
-
area:workflow bug ready-for-agent
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
fil-donadoni/tolaria#4409 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Fission-AI/OpenSpec#1960 ·
-
Add dependabot Open
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
corsairdev/corsair#1764 ·