matrixorigin / matrixorigin/matrixone
[Feature Request]: Database-level DATA BRANCH DIFF / MERGE / PICK
- 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
Assessment
This issue has not been assessed yet.