matrixorigin / matrixorigin/matrixone

[Feature Request]: Database-level DATA BRANCH DIFF / MERGE / PICK

Open
#24,548 0 comments 0 reactions 1 assignee Claimed by @ck89119 View on GitHub
deferred kind/feature
Dominant language
Go
Stars
1.9k
Forks
311
Avg merge
1d 3h
Merged PRs (30d)
768

Description

**Version:** `8.0.30-MatrixOne-v3.0.11` (MatrixOne v3.0.11)

`DATA BRANCH CREATE DATABASE` exists, but `DATA BRANCH DIFF/MERGE/PICK` are **table-level only** — there is no `DATABASE` form. To diff/merge a multi-table dataset (e.g. features + labels), you must iterate table by table, and there is no single atomic cross-table merge.

**Reproduce**
```sql
DATA BRANCH CREATE DATABASE d2 FROM d1; -- OK
DATA BRANCH DIFF d2 AGAINST d1; -- parser/empty-db error
DATA BRANCH DIFF DATABASE d2 AGAINST DATABASE d1;-- SQL parser error
```

**Request**
Support database-level `DATA BRANCH DIFF/MERGE/PICK` so a whole versioned dataset can be diffed/merged atomically, consistent with `DATA BRANCH CREATE DATABASE`.

---
_Found while evaluating MatrixOne git4data / SQL as a data-versioning & agent-trace backend. Version: `8.0.30-MatrixOne-v3.0.11` (MatrixOne v3.0.11)._

## Testing background
Found while versioning a **multi-table ML dataset** (e.g. `features` + `labels` + `metadata`) and wanting to compare / merge a *whole dataset version* at once. `DATA BRANCH CREATE DATABASE` worked, but there is no `DATABASE`-level `DIFF/MERGE/PICK`.

## Why it matters (expected purpose)
A real dataset spans several related tables; we want to branch, diff and merge it as **one consistent unit** (like a git commit across files, or a lakeFS repo). Today this must be done table-by-table with no single atomic cross-table merge, which makes whole-dataset versioning awkward.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.