Add version column to ci_finished_pipelines ClickHouse table

Summary

Align ci_finished_pipelines with ci_finished_builds by adding a version column to the ReplacingMergeTree definition.

Current State

Table Engine Version Column
ci_finished_builds ReplacingMergeTree(version, deleted) ✅ Has version
ci_finished_pipelines ReplacingMergeTree ❌ No version column

Why

Without a version column:

  • Deduplication with FINAL relies on insertion order (non-deterministic)
  • Can't use argMax(column, version) patterns reliably
  • Inconsistent with ci_finished_builds

Scope

  1. Add migration to add version column to ci_finished_pipelines
  2. Update sync code to populate version (e.g., default now())
  3. Alter ReplacingMergeTree to use the version column

Related

  • #588891 (closed) (cross-partition duplicate sync events)
  • !222153 (closed) (rebuild CI MVs)
Edited Feb 05, 2026 by Pedro Pombeiro
Assignee Loading
Time tracking Loading