diff --git a/icechunk-python/python/icechunk/_icechunk_python.pyi b/icechunk-python/python/icechunk/_icechunk_python.pyi index 3e8f85ba3..0bbf71204 100644 --- a/icechunk-python/python/icechunk/_icechunk_python.pyi +++ b/icechunk-python/python/icechunk/_icechunk_python.pyi @@ -1567,12 +1567,16 @@ class BranchResetUpdate(UpdateType): class NewCommitUpdate(UpdateType): @property def branch(self) -> str: ... + @property + def new_snap_id(self) -> str: ... class CommitAmendedUpdate(UpdateType): @property - def name(self) -> str: ... + def branch(self) -> str: ... @property def previous_snap_id(self) -> str: ... + @property + def new_snap_id(self) -> str: ... class NewDetachedSnapshotUpdate(UpdateType): @property diff --git a/icechunk-python/src/repository.rs b/icechunk-python/src/repository.rs index e50b1a6b2..7bf6a2e4d 100644 --- a/icechunk-python/src/repository.rs +++ b/icechunk-python/src/repository.rs @@ -519,6 +519,8 @@ pub(crate) struct PyBranchResetUpdate { pub(crate) struct PyNewCommitUpdate { #[pyo3(get)] branch: String, + #[pyo3(get)] + new_snap_id: String, } #[pyclass(name = "CommitAmendedUpdate", eq, extends=PyUpdateType)] @@ -528,6 +530,8 @@ pub(crate) struct PyCommitAmendedUpdate { branch: String, #[pyo3(get)] previous_snap_id: String, + #[pyo3(get)] + new_snap_id: String, } #[pyclass(name = "NewDetachedSnapshotUpdate", eq, extends=PyUpdateType)] @@ -605,7 +609,10 @@ impl PyBranchResetUpdate { #[pymethods] impl PyNewCommitUpdate { fn __repr__(&self) -> PyResult { - Ok(format!("NewCommitUpdate(branch={})", self.branch)) + Ok(format!( + "NewCommitUpdate(branch={}, new_snap_id={})", + self.branch, self.new_snap_id + )) } } @@ -613,8 +620,8 @@ impl PyNewCommitUpdate { impl PyCommitAmendedUpdate { fn __repr__(&self) -> PyResult { Ok(format!( - "CommitAmendedUpdate(branch={}, previous_snap_id={})", - self.branch, self.previous_snap_id + "CommitAmendedUpdate(branch={}, previous_snap_id={}, new_snap_id={})", + self.branch, self.previous_snap_id, self.new_snap_id, )) } } @@ -734,27 +741,33 @@ fn mk_update_type( )? .into_any() .unbind(), - UpdateType::NewCommitUpdate { branch } => Bound::new( - py, - ( - PyNewCommitUpdate { branch: branch.clone() }, - PyUpdateType { updated_at, backup_path }, - ), - )? - .into_any() - .unbind(), - UpdateType::CommitAmendedUpdate { branch, previous_snap_id } => Bound::new( + UpdateType::NewCommitUpdate { branch, new_snap_id } => Bound::new( py, ( - PyCommitAmendedUpdate { + PyNewCommitUpdate { branch: branch.clone(), - previous_snap_id: previous_snap_id.to_string(), + new_snap_id: new_snap_id.to_string(), }, PyUpdateType { updated_at, backup_path }, ), )? .into_any() .unbind(), + UpdateType::CommitAmendedUpdate { branch, previous_snap_id, new_snap_id } => { + Bound::new( + py, + ( + PyCommitAmendedUpdate { + branch: branch.clone(), + previous_snap_id: previous_snap_id.to_string(), + new_snap_id: new_snap_id.to_string(), + }, + PyUpdateType { updated_at, backup_path }, + ), + )? + .into_any() + .unbind() + } UpdateType::NewDetachedSnapshotUpdate { new_snap_id } => Bound::new( py, ( diff --git a/icechunk-python/tests/data/split-repo-v2-migrated/repo b/icechunk-python/tests/data/split-repo-v2-migrated/repo index adee169be..aecaba5e8 100644 Binary files a/icechunk-python/tests/data/split-repo-v2-migrated/repo and b/icechunk-python/tests/data/split-repo-v2-migrated/repo differ diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/1RNG8GKAQ3KZK3P530K0 b/icechunk-python/tests/data/split-repo-v2/chunks/0VYEJ6SEF59FBW7PN8E0 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/1RNG8GKAQ3KZK3P530K0 rename to icechunk-python/tests/data/split-repo-v2/chunks/0VYEJ6SEF59FBW7PN8E0 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/3HCHCTPFK0RN7RVBYSWG b/icechunk-python/tests/data/split-repo-v2/chunks/2B5THGJ1KX3CM6VDS0B0 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/3HCHCTPFK0RN7RVBYSWG rename to icechunk-python/tests/data/split-repo-v2/chunks/2B5THGJ1KX3CM6VDS0B0 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/4C55YZ1XQW2NB40HCGVG b/icechunk-python/tests/data/split-repo-v2/chunks/2PGFBYC75TQ3KC9TGX70 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/4C55YZ1XQW2NB40HCGVG rename to icechunk-python/tests/data/split-repo-v2/chunks/2PGFBYC75TQ3KC9TGX70 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/07AKVQ6HB2D167YZX7DG b/icechunk-python/tests/data/split-repo-v2/chunks/2QVDGD6B35QE3PD873HG similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/07AKVQ6HB2D167YZX7DG rename to icechunk-python/tests/data/split-repo-v2/chunks/2QVDGD6B35QE3PD873HG diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/2N8D2NBG5MY15Q4C2PE0 b/icechunk-python/tests/data/split-repo-v2/chunks/38ZJBEMJC4CT5CGSRTH0 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/2N8D2NBG5MY15Q4C2PE0 rename to icechunk-python/tests/data/split-repo-v2/chunks/38ZJBEMJC4CT5CGSRTH0 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/PQZHY8PK3SEYZ6MXRKY0 b/icechunk-python/tests/data/split-repo-v2/chunks/3B4SSBWQYEMCG4ZG91N0 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/PQZHY8PK3SEYZ6MXRKY0 rename to icechunk-python/tests/data/split-repo-v2/chunks/3B4SSBWQYEMCG4ZG91N0 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/2A73G3XMPFNP2P8X7CZ0 b/icechunk-python/tests/data/split-repo-v2/chunks/4264T92N97AVNFA1RRXG similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/2A73G3XMPFNP2P8X7CZ0 rename to icechunk-python/tests/data/split-repo-v2/chunks/4264T92N97AVNFA1RRXG diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/091G354RN2YECPDS08SG b/icechunk-python/tests/data/split-repo-v2/chunks/4BXTYZF4KSQ26FZ0AEKG similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/091G354RN2YECPDS08SG rename to icechunk-python/tests/data/split-repo-v2/chunks/4BXTYZF4KSQ26FZ0AEKG diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/9TBJ2EBC7W5ARKYGG850 b/icechunk-python/tests/data/split-repo-v2/chunks/5PYAXD95Y2YXBAJ7BS3G similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/9TBJ2EBC7W5ARKYGG850 rename to icechunk-python/tests/data/split-repo-v2/chunks/5PYAXD95Y2YXBAJ7BS3G diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/27NAZ5964CS6W1CF02KG b/icechunk-python/tests/data/split-repo-v2/chunks/6FPJ04WZ54RCDD5QASNG similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/27NAZ5964CS6W1CF02KG rename to icechunk-python/tests/data/split-repo-v2/chunks/6FPJ04WZ54RCDD5QASNG diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/A12KBXCMEYW25055P2QG b/icechunk-python/tests/data/split-repo-v2/chunks/6S1G8T8TBTYVQX6G56P0 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/A12KBXCMEYW25055P2QG rename to icechunk-python/tests/data/split-repo-v2/chunks/6S1G8T8TBTYVQX6G56P0 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/8Z96H3SDJ5APVAKHKKZ0 b/icechunk-python/tests/data/split-repo-v2/chunks/6XVMGBQ7TCN92CCA49W0 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/8Z96H3SDJ5APVAKHKKZ0 rename to icechunk-python/tests/data/split-repo-v2/chunks/6XVMGBQ7TCN92CCA49W0 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/5EH9CM5EPCVCS824K6J0 b/icechunk-python/tests/data/split-repo-v2/chunks/7B2S5FTF33XCKZVXQDG0 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/5EH9CM5EPCVCS824K6J0 rename to icechunk-python/tests/data/split-repo-v2/chunks/7B2S5FTF33XCKZVXQDG0 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/5M8WT1W799AJY92W2NS0 b/icechunk-python/tests/data/split-repo-v2/chunks/886D9QM31CN0DC83450G similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/5M8WT1W799AJY92W2NS0 rename to icechunk-python/tests/data/split-repo-v2/chunks/886D9QM31CN0DC83450G diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/4GR51TV8RE4C908VQ8D0 b/icechunk-python/tests/data/split-repo-v2/chunks/95PTPJQZ33SQDDGN68BG similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/4GR51TV8RE4C908VQ8D0 rename to icechunk-python/tests/data/split-repo-v2/chunks/95PTPJQZ33SQDDGN68BG diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/CE9DG54N2SMN2MBWRGWG b/icechunk-python/tests/data/split-repo-v2/chunks/AR9HXH93D697DXTY91VG similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/CE9DG54N2SMN2MBWRGWG rename to icechunk-python/tests/data/split-repo-v2/chunks/AR9HXH93D697DXTY91VG diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/D64XD4HFKGRC6CZJCZ9G b/icechunk-python/tests/data/split-repo-v2/chunks/B2Y98VRVJMCNJT2YBXD0 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/D64XD4HFKGRC6CZJCZ9G rename to icechunk-python/tests/data/split-repo-v2/chunks/B2Y98VRVJMCNJT2YBXD0 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/DN86RF10VV565X2MAZCG b/icechunk-python/tests/data/split-repo-v2/chunks/DBETARJW5Z3SKAPBCMWG similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/DN86RF10VV565X2MAZCG rename to icechunk-python/tests/data/split-repo-v2/chunks/DBETARJW5Z3SKAPBCMWG diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/DDB1Q091EN1TF5ESES2G b/icechunk-python/tests/data/split-repo-v2/chunks/EBZ2K21PBKXXS5FVQW00 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/DDB1Q091EN1TF5ESES2G rename to icechunk-python/tests/data/split-repo-v2/chunks/EBZ2K21PBKXXS5FVQW00 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/5PERNQKBV2GXGVYDEJFG b/icechunk-python/tests/data/split-repo-v2/chunks/EDWX1MPYBCQNWVEEVGPG similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/5PERNQKBV2GXGVYDEJFG rename to icechunk-python/tests/data/split-repo-v2/chunks/EDWX1MPYBCQNWVEEVGPG diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/1SA3DBBE96JWPHTJY5G0 b/icechunk-python/tests/data/split-repo-v2/chunks/FQNZDMJ7TX9GET1HNFZ0 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/1SA3DBBE96JWPHTJY5G0 rename to icechunk-python/tests/data/split-repo-v2/chunks/FQNZDMJ7TX9GET1HNFZ0 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/4BGPGVM0RG4FFH8ANT60 b/icechunk-python/tests/data/split-repo-v2/chunks/FZZ8J37EWN3RQ1H4G4MG similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/4BGPGVM0RG4FFH8ANT60 rename to icechunk-python/tests/data/split-repo-v2/chunks/FZZ8J37EWN3RQ1H4G4MG diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/GQD3RG72DE78JD3SSK3G b/icechunk-python/tests/data/split-repo-v2/chunks/G4DPCCAR1H93E8J6C3K0 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/GQD3RG72DE78JD3SSK3G rename to icechunk-python/tests/data/split-repo-v2/chunks/G4DPCCAR1H93E8J6C3K0 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/HH0MADXCR03X8YGRJPB0 b/icechunk-python/tests/data/split-repo-v2/chunks/GK3PHR5FS7ANY06QWG70 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/HH0MADXCR03X8YGRJPB0 rename to icechunk-python/tests/data/split-repo-v2/chunks/GK3PHR5FS7ANY06QWG70 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/9NBQB9J9SNAJDQCAVPTG b/icechunk-python/tests/data/split-repo-v2/chunks/H2PB4D123ZZ1PYP8QWQG similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/9NBQB9J9SNAJDQCAVPTG rename to icechunk-python/tests/data/split-repo-v2/chunks/H2PB4D123ZZ1PYP8QWQG diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/GDMESS8YWP71B6ED38R0 b/icechunk-python/tests/data/split-repo-v2/chunks/H5WSPCWRFD1YA57TCTF0 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/GDMESS8YWP71B6ED38R0 rename to icechunk-python/tests/data/split-repo-v2/chunks/H5WSPCWRFD1YA57TCTF0 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/AM4MDB719X60VZNV1HRG b/icechunk-python/tests/data/split-repo-v2/chunks/JK26TEYFD1MHC1FN5QQ0 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/AM4MDB719X60VZNV1HRG rename to icechunk-python/tests/data/split-repo-v2/chunks/JK26TEYFD1MHC1FN5QQ0 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/XK5D3J7F0CB7XCGM5P0G b/icechunk-python/tests/data/split-repo-v2/chunks/KCF4T3CA37RVSKVCD400 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/XK5D3J7F0CB7XCGM5P0G rename to icechunk-python/tests/data/split-repo-v2/chunks/KCF4T3CA37RVSKVCD400 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/JH9NKZCG72NN89BQ5J5G b/icechunk-python/tests/data/split-repo-v2/chunks/M34NP9DW3AJEKH8N7BM0 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/JH9NKZCG72NN89BQ5J5G rename to icechunk-python/tests/data/split-repo-v2/chunks/M34NP9DW3AJEKH8N7BM0 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/KJ1GD250EA5RAEKY4Y80 b/icechunk-python/tests/data/split-repo-v2/chunks/M511AR8G78XKKDW65QMG similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/KJ1GD250EA5RAEKY4Y80 rename to icechunk-python/tests/data/split-repo-v2/chunks/M511AR8G78XKKDW65QMG diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/MFY18CRAF4Y3W6JQF4JG b/icechunk-python/tests/data/split-repo-v2/chunks/MXXZ2G6ZWWMHG2BNW7HG similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/MFY18CRAF4Y3W6JQF4JG rename to icechunk-python/tests/data/split-repo-v2/chunks/MXXZ2G6ZWWMHG2BNW7HG diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/CPCPTQQ56P6YNS1R03G0 b/icechunk-python/tests/data/split-repo-v2/chunks/NPK0H3EV56TAEG3Z9330 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/CPCPTQQ56P6YNS1R03G0 rename to icechunk-python/tests/data/split-repo-v2/chunks/NPK0H3EV56TAEG3Z9330 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/XDGFAQJYQK3BG01ZX0E0 b/icechunk-python/tests/data/split-repo-v2/chunks/NPZQD57AEZHAKEFBZ9K0 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/XDGFAQJYQK3BG01ZX0E0 rename to icechunk-python/tests/data/split-repo-v2/chunks/NPZQD57AEZHAKEFBZ9K0 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/87GEY24J329VP5R7Q4TG b/icechunk-python/tests/data/split-repo-v2/chunks/NQJTJS9PQ4VHRE58N0GG similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/87GEY24J329VP5R7Q4TG rename to icechunk-python/tests/data/split-repo-v2/chunks/NQJTJS9PQ4VHRE58N0GG diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/BVEDXEP5KE4FMM6P0XC0 b/icechunk-python/tests/data/split-repo-v2/chunks/Q911RVVQ0EKWWZWWJ9F0 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/BVEDXEP5KE4FMM6P0XC0 rename to icechunk-python/tests/data/split-repo-v2/chunks/Q911RVVQ0EKWWZWWJ9F0 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/X93EBNXKQ5H5R7KERT0G b/icechunk-python/tests/data/split-repo-v2/chunks/QBHMDWWX919N6YG7Q700 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/X93EBNXKQ5H5R7KERT0G rename to icechunk-python/tests/data/split-repo-v2/chunks/QBHMDWWX919N6YG7Q700 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/Y46GZWQVNK6DV1CH5HEG b/icechunk-python/tests/data/split-repo-v2/chunks/QHCCRMBV7QW79RBGPCPG similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/Y46GZWQVNK6DV1CH5HEG rename to icechunk-python/tests/data/split-repo-v2/chunks/QHCCRMBV7QW79RBGPCPG diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/F33380T3858ZKGYDGW8G b/icechunk-python/tests/data/split-repo-v2/chunks/QJ6DWNQVXK1571KZ88V0 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/F33380T3858ZKGYDGW8G rename to icechunk-python/tests/data/split-repo-v2/chunks/QJ6DWNQVXK1571KZ88V0 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/G7W85S2KTE34ZQEJEH70 b/icechunk-python/tests/data/split-repo-v2/chunks/QJ788RDGF6AVTNRXZBFG similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/G7W85S2KTE34ZQEJEH70 rename to icechunk-python/tests/data/split-repo-v2/chunks/QJ788RDGF6AVTNRXZBFG diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/VNR90DZ4RPRK7NJ90AVG b/icechunk-python/tests/data/split-repo-v2/chunks/QQ84SV9F3M4WX0EE4ET0 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/VNR90DZ4RPRK7NJ90AVG rename to icechunk-python/tests/data/split-repo-v2/chunks/QQ84SV9F3M4WX0EE4ET0 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/P0WZ6GMXYR4HE19B8B50 b/icechunk-python/tests/data/split-repo-v2/chunks/SFYHNKEMZJVF45W1S41G similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/P0WZ6GMXYR4HE19B8B50 rename to icechunk-python/tests/data/split-repo-v2/chunks/SFYHNKEMZJVF45W1S41G diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/GRKFS2F8E6NH31A6NVFG b/icechunk-python/tests/data/split-repo-v2/chunks/TE96DSKTEXF5MEKKHNNG similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/GRKFS2F8E6NH31A6NVFG rename to icechunk-python/tests/data/split-repo-v2/chunks/TE96DSKTEXF5MEKKHNNG diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/P3G1MRX812GE0C246QC0 b/icechunk-python/tests/data/split-repo-v2/chunks/VBPPHGBH848RA7Z4QH9G similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/P3G1MRX812GE0C246QC0 rename to icechunk-python/tests/data/split-repo-v2/chunks/VBPPHGBH848RA7Z4QH9G diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/VRYMN42BEW3T7MVZAS50 b/icechunk-python/tests/data/split-repo-v2/chunks/WS1YDPY2KVBKB9W5VTT0 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/VRYMN42BEW3T7MVZAS50 rename to icechunk-python/tests/data/split-repo-v2/chunks/WS1YDPY2KVBKB9W5VTT0 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/9QMQVTCGJ0C1K3KY289G b/icechunk-python/tests/data/split-repo-v2/chunks/XDMKRBFTBT5MQ71BDRE0 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/9QMQVTCGJ0C1K3KY289G rename to icechunk-python/tests/data/split-repo-v2/chunks/XDMKRBFTBT5MQ71BDRE0 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/RR89JQRAA22RHQ8KSFE0 b/icechunk-python/tests/data/split-repo-v2/chunks/YHHCBZ4GDMZR0PGFZEV0 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/RR89JQRAA22RHQ8KSFE0 rename to icechunk-python/tests/data/split-repo-v2/chunks/YHHCBZ4GDMZR0PGFZEV0 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/TDWAZA5M9SEKQ6D2Q700 b/icechunk-python/tests/data/split-repo-v2/chunks/Z36YFV65G14D0YG98ZS0 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/TDWAZA5M9SEKQ6D2Q700 rename to icechunk-python/tests/data/split-repo-v2/chunks/Z36YFV65G14D0YG98ZS0 diff --git a/icechunk-python/tests/data/split-repo-v2/chunks/Q8ZDFEVM1CNJ98JEQFC0 b/icechunk-python/tests/data/split-repo-v2/chunks/ZGC3DR5JF6MWGCQ8PNT0 similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/chunks/Q8ZDFEVM1CNJ98JEQFC0 rename to icechunk-python/tests/data/split-repo-v2/chunks/ZGC3DR5JF6MWGCQ8PNT0 diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/05GNNZ5XA0Z6ASVB6R8G b/icechunk-python/tests/data/split-repo-v2/manifests/05GNNZ5XA0Z6ASVB6R8G deleted file mode 100644 index b67cb4778..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/05GNNZ5XA0Z6ASVB6R8G and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/05VC19ZP794YMR42WS0G b/icechunk-python/tests/data/split-repo-v2/manifests/05VC19ZP794YMR42WS0G new file mode 100644 index 000000000..5d212fb46 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/05VC19ZP794YMR42WS0G differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/09NGF1V9ADE2R1JADMB0 b/icechunk-python/tests/data/split-repo-v2/manifests/09NGF1V9ADE2R1JADMB0 new file mode 100644 index 000000000..20227ec66 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/09NGF1V9ADE2R1JADMB0 differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/0ED3P81SQEGJJK7WJB50 b/icechunk-python/tests/data/split-repo-v2/manifests/0ED3P81SQEGJJK7WJB50 deleted file mode 100644 index 99da3e798..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/0ED3P81SQEGJJK7WJB50 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/0J0WF0XN85EYGYKT5MY0 b/icechunk-python/tests/data/split-repo-v2/manifests/0J0WF0XN85EYGYKT5MY0 deleted file mode 100644 index c0be257d7..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/0J0WF0XN85EYGYKT5MY0 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/1BDRKBXJSJ00FBAFR62G b/icechunk-python/tests/data/split-repo-v2/manifests/1BDRKBXJSJ00FBAFR62G new file mode 100644 index 000000000..f3993da29 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/1BDRKBXJSJ00FBAFR62G differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/23CS3K56RYXMCPDZSA90 b/icechunk-python/tests/data/split-repo-v2/manifests/23CS3K56RYXMCPDZSA90 new file mode 100644 index 000000000..b40e0724d Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/23CS3K56RYXMCPDZSA90 differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/2C8860RAEMNS9VCBYQR0 b/icechunk-python/tests/data/split-repo-v2/manifests/2C8860RAEMNS9VCBYQR0 deleted file mode 100644 index 3d25e1287..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/2C8860RAEMNS9VCBYQR0 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/2KW69A63064B0ABXRAC0 b/icechunk-python/tests/data/split-repo-v2/manifests/2KW69A63064B0ABXRAC0 new file mode 100644 index 000000000..09271083e Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/2KW69A63064B0ABXRAC0 differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/3E2S1W1DFTPTZMN9W090 b/icechunk-python/tests/data/split-repo-v2/manifests/3E2S1W1DFTPTZMN9W090 deleted file mode 100644 index fe4ab114c..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/3E2S1W1DFTPTZMN9W090 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/3K20NQMMY0JFG589K8PG b/icechunk-python/tests/data/split-repo-v2/manifests/3K20NQMMY0JFG589K8PG new file mode 100644 index 000000000..1ffcd74d2 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/3K20NQMMY0JFG589K8PG differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/4Z6RT3RYZQP287HGAFS0 b/icechunk-python/tests/data/split-repo-v2/manifests/4Z6RT3RYZQP287HGAFS0 deleted file mode 100644 index c3a6b0e94..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/4Z6RT3RYZQP287HGAFS0 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/5QCXNMJ5PGW524HM4X2G b/icechunk-python/tests/data/split-repo-v2/manifests/5QCXNMJ5PGW524HM4X2G new file mode 100644 index 000000000..c9e4bf352 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/5QCXNMJ5PGW524HM4X2G differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/63PY17KJ3WT9TNYFVT80 b/icechunk-python/tests/data/split-repo-v2/manifests/63PY17KJ3WT9TNYFVT80 new file mode 100644 index 000000000..7c0fc34c7 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/63PY17KJ3WT9TNYFVT80 differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/6H65H84XKNVWQD844QTG b/icechunk-python/tests/data/split-repo-v2/manifests/6H65H84XKNVWQD844QTG new file mode 100644 index 000000000..aa21bab01 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/6H65H84XKNVWQD844QTG differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/6H9N07P6QR35V6SS5EM0 b/icechunk-python/tests/data/split-repo-v2/manifests/6H9N07P6QR35V6SS5EM0 deleted file mode 100644 index 4570dd189..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/6H9N07P6QR35V6SS5EM0 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/6K862RRA4ZX6S69XTSCG b/icechunk-python/tests/data/split-repo-v2/manifests/6K862RRA4ZX6S69XTSCG new file mode 100644 index 000000000..b0cb6851a Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/6K862RRA4ZX6S69XTSCG differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/6WA0HNA0XKMSW9Y5X7AG b/icechunk-python/tests/data/split-repo-v2/manifests/6WA0HNA0XKMSW9Y5X7AG new file mode 100644 index 000000000..1be944f0c Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/6WA0HNA0XKMSW9Y5X7AG differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/7KR7B7S9Z14D806ZCT5G b/icechunk-python/tests/data/split-repo-v2/manifests/7KR7B7S9Z14D806ZCT5G deleted file mode 100644 index f58ee03df..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/7KR7B7S9Z14D806ZCT5G and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/84M51BCG9F91BV0S56J0 b/icechunk-python/tests/data/split-repo-v2/manifests/84M51BCG9F91BV0S56J0 deleted file mode 100644 index 77b2a9988..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/84M51BCG9F91BV0S56J0 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/8NFWWNHXDDKZKCH1JBQ0 b/icechunk-python/tests/data/split-repo-v2/manifests/8NFWWNHXDDKZKCH1JBQ0 deleted file mode 100644 index ac4f57337..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/8NFWWNHXDDKZKCH1JBQ0 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/8SM0XZF614EB0W2RW6QG b/icechunk-python/tests/data/split-repo-v2/manifests/8SM0XZF614EB0W2RW6QG new file mode 100644 index 000000000..4ef1154d4 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/8SM0XZF614EB0W2RW6QG differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/8WXFZ1EETJMBQ1HN2NWG b/icechunk-python/tests/data/split-repo-v2/manifests/8WXFZ1EETJMBQ1HN2NWG deleted file mode 100644 index 9d67e9b3b..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/8WXFZ1EETJMBQ1HN2NWG and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/8X5F17D0BEW3Q77CC3XG b/icechunk-python/tests/data/split-repo-v2/manifests/8X5F17D0BEW3Q77CC3XG deleted file mode 100644 index 949b3ee40..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/8X5F17D0BEW3Q77CC3XG and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/90T6DZ9Z3VY4YDB64NP0 b/icechunk-python/tests/data/split-repo-v2/manifests/90T6DZ9Z3VY4YDB64NP0 new file mode 100644 index 000000000..2a5baf38c Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/90T6DZ9Z3VY4YDB64NP0 differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/910G2QXPX5AQC1HFTAVG b/icechunk-python/tests/data/split-repo-v2/manifests/910G2QXPX5AQC1HFTAVG deleted file mode 100644 index 1f674e15b..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/910G2QXPX5AQC1HFTAVG and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/96M9JFSGJGSNBDZ4W820 b/icechunk-python/tests/data/split-repo-v2/manifests/96M9JFSGJGSNBDZ4W820 deleted file mode 100644 index 9b1e46903..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/96M9JFSGJGSNBDZ4W820 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/9EZESJ6VVK253WWJ8VC0 b/icechunk-python/tests/data/split-repo-v2/manifests/9EZESJ6VVK253WWJ8VC0 deleted file mode 100644 index d2762d0a8..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/9EZESJ6VVK253WWJ8VC0 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/9FG7MP43CZR6KPX2S5PG b/icechunk-python/tests/data/split-repo-v2/manifests/9FG7MP43CZR6KPX2S5PG new file mode 100644 index 000000000..92f7cf995 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/9FG7MP43CZR6KPX2S5PG differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/9GM1E8F7197JG0H0F6SG b/icechunk-python/tests/data/split-repo-v2/manifests/9GM1E8F7197JG0H0F6SG deleted file mode 100644 index 421eacdfd..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/9GM1E8F7197JG0H0F6SG and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/9JPZ069QQBTYWQ8533D0 b/icechunk-python/tests/data/split-repo-v2/manifests/9JPZ069QQBTYWQ8533D0 new file mode 100644 index 000000000..d8630c6f9 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/9JPZ069QQBTYWQ8533D0 differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/B2CWJBR6WZ6C2E90D0GG b/icechunk-python/tests/data/split-repo-v2/manifests/B2CWJBR6WZ6C2E90D0GG deleted file mode 100644 index b3744eda5..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/B2CWJBR6WZ6C2E90D0GG and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/C7KT112D0TY2P5Y9YENG b/icechunk-python/tests/data/split-repo-v2/manifests/C7KT112D0TY2P5Y9YENG deleted file mode 100644 index 08ab36626..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/C7KT112D0TY2P5Y9YENG and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/CMQDB27HK82R07164NFG b/icechunk-python/tests/data/split-repo-v2/manifests/CMQDB27HK82R07164NFG deleted file mode 100644 index a598f8339..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/CMQDB27HK82R07164NFG and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/D6H2VDFBW00D1C8FJ2CG b/icechunk-python/tests/data/split-repo-v2/manifests/D6H2VDFBW00D1C8FJ2CG new file mode 100644 index 000000000..3d03b2c64 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/D6H2VDFBW00D1C8FJ2CG differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/D7BJR3Y32XY9B0XV4ZKG b/icechunk-python/tests/data/split-repo-v2/manifests/D7BJR3Y32XY9B0XV4ZKG new file mode 100644 index 000000000..53b5e5ca2 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/D7BJR3Y32XY9B0XV4ZKG differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/DAEJV7V4BZM2VBH1QYK0 b/icechunk-python/tests/data/split-repo-v2/manifests/DAEJV7V4BZM2VBH1QYK0 deleted file mode 100644 index 084649ff1..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/DAEJV7V4BZM2VBH1QYK0 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/DHXDCKYFAZT2EEC1M04G b/icechunk-python/tests/data/split-repo-v2/manifests/DHXDCKYFAZT2EEC1M04G new file mode 100644 index 000000000..e9552d7ae Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/DHXDCKYFAZT2EEC1M04G differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/DQ449BPS7CZ51FQNCSHG b/icechunk-python/tests/data/split-repo-v2/manifests/DQ449BPS7CZ51FQNCSHG new file mode 100644 index 000000000..ce538f081 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/DQ449BPS7CZ51FQNCSHG differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/DW698P3XQFZWE1AGQ090 b/icechunk-python/tests/data/split-repo-v2/manifests/DW698P3XQFZWE1AGQ090 new file mode 100644 index 000000000..a8b45eebb Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/DW698P3XQFZWE1AGQ090 differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/EFFGAJ4JPP44Q1GQEJG0 b/icechunk-python/tests/data/split-repo-v2/manifests/EFFGAJ4JPP44Q1GQEJG0 new file mode 100644 index 000000000..c6eb3b6d8 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/EFFGAJ4JPP44Q1GQEJG0 differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/EPM0ZX76PEJCN4KP2Y2G b/icechunk-python/tests/data/split-repo-v2/manifests/EPM0ZX76PEJCN4KP2Y2G deleted file mode 100644 index 018fe06bc..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/EPM0ZX76PEJCN4KP2Y2G and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/ES8TNF4XHA4P8XRX56BG b/icechunk-python/tests/data/split-repo-v2/manifests/ES8TNF4XHA4P8XRX56BG new file mode 100644 index 000000000..7e02142ef Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/ES8TNF4XHA4P8XRX56BG differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/EZ8Z5VJMP9JEGD144A20 b/icechunk-python/tests/data/split-repo-v2/manifests/EZ8Z5VJMP9JEGD144A20 deleted file mode 100644 index b81e74fdd..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/EZ8Z5VJMP9JEGD144A20 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/F5QZQCTEF0AEDQJRNB40 b/icechunk-python/tests/data/split-repo-v2/manifests/F5QZQCTEF0AEDQJRNB40 deleted file mode 100644 index 36a7eba6a..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/F5QZQCTEF0AEDQJRNB40 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/FPVY9TW7RCSR5XKR16Z0 b/icechunk-python/tests/data/split-repo-v2/manifests/FPVY9TW7RCSR5XKR16Z0 deleted file mode 100644 index 417bb512a..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/FPVY9TW7RCSR5XKR16Z0 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/FV89KH0ZJA8863Z4SBMG b/icechunk-python/tests/data/split-repo-v2/manifests/FV89KH0ZJA8863Z4SBMG new file mode 100644 index 000000000..b8a54c324 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/FV89KH0ZJA8863Z4SBMG differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/HDQ1QK3KFHW7TFZ6QM70 b/icechunk-python/tests/data/split-repo-v2/manifests/HDQ1QK3KFHW7TFZ6QM70 deleted file mode 100644 index cc128efd2..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/HDQ1QK3KFHW7TFZ6QM70 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/HGYS85FE4EGJ2612K340 b/icechunk-python/tests/data/split-repo-v2/manifests/HGYS85FE4EGJ2612K340 deleted file mode 100644 index 13722b800..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/HGYS85FE4EGJ2612K340 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/HJJFVAX6VXKGHHPHTMFG b/icechunk-python/tests/data/split-repo-v2/manifests/HJJFVAX6VXKGHHPHTMFG new file mode 100644 index 000000000..cc898639b Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/HJJFVAX6VXKGHHPHTMFG differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/J8Y2NRAERJ8B67XS8C1G b/icechunk-python/tests/data/split-repo-v2/manifests/J8Y2NRAERJ8B67XS8C1G new file mode 100644 index 000000000..85aafb404 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/J8Y2NRAERJ8B67XS8C1G differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/M2E137KNPPP32JAHZKMG b/icechunk-python/tests/data/split-repo-v2/manifests/M2E137KNPPP32JAHZKMG new file mode 100644 index 000000000..4deed8d9d Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/M2E137KNPPP32JAHZKMG differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/NVNFXM580ATSE0SNYZ20 b/icechunk-python/tests/data/split-repo-v2/manifests/NVNFXM580ATSE0SNYZ20 new file mode 100644 index 000000000..66d54b900 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/NVNFXM580ATSE0SNYZ20 differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/PWC286JD1W27VCXT98D0 b/icechunk-python/tests/data/split-repo-v2/manifests/PWC286JD1W27VCXT98D0 deleted file mode 100644 index fb5b61f57..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/PWC286JD1W27VCXT98D0 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/QFGKR9MMTCCE4S82PYT0 b/icechunk-python/tests/data/split-repo-v2/manifests/QFGKR9MMTCCE4S82PYT0 new file mode 100644 index 000000000..392a40625 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/QFGKR9MMTCCE4S82PYT0 differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/QXT7BWMAF0HPT0X816Z0 b/icechunk-python/tests/data/split-repo-v2/manifests/QXT7BWMAF0HPT0X816Z0 new file mode 100644 index 000000000..29e5fe08d Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/QXT7BWMAF0HPT0X816Z0 differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/R1H5C67M4HF61RRN1DDG b/icechunk-python/tests/data/split-repo-v2/manifests/R1H5C67M4HF61RRN1DDG new file mode 100644 index 000000000..54168b322 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/R1H5C67M4HF61RRN1DDG differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/R68838EDRFFQWR9KEFS0 b/icechunk-python/tests/data/split-repo-v2/manifests/R68838EDRFFQWR9KEFS0 new file mode 100644 index 000000000..4056cf083 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/R68838EDRFFQWR9KEFS0 differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/RBT6TN7AQ8J8WKXSJPGG b/icechunk-python/tests/data/split-repo-v2/manifests/RBT6TN7AQ8J8WKXSJPGG deleted file mode 100644 index 08afacabe..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/RBT6TN7AQ8J8WKXSJPGG and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/SB4YED27P09EAJ4WMYQG b/icechunk-python/tests/data/split-repo-v2/manifests/SB4YED27P09EAJ4WMYQG new file mode 100644 index 000000000..8933e6a08 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/SB4YED27P09EAJ4WMYQG differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/W9HJ3Z5CGWVZVCWXKBB0 b/icechunk-python/tests/data/split-repo-v2/manifests/W9HJ3Z5CGWVZVCWXKBB0 deleted file mode 100644 index 1bdc60661..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/W9HJ3Z5CGWVZVCWXKBB0 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/W9WNJFG5DM1JB99DRJ20 b/icechunk-python/tests/data/split-repo-v2/manifests/W9WNJFG5DM1JB99DRJ20 new file mode 100644 index 000000000..69b4c9a53 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/W9WNJFG5DM1JB99DRJ20 differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/WMH6AC9YYRJ3B5NQAMJG b/icechunk-python/tests/data/split-repo-v2/manifests/WMH6AC9YYRJ3B5NQAMJG deleted file mode 100644 index c2149994b..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/WMH6AC9YYRJ3B5NQAMJG and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/X4R3GSVF4KHTZ3B7N7CG b/icechunk-python/tests/data/split-repo-v2/manifests/X4R3GSVF4KHTZ3B7N7CG deleted file mode 100644 index 05238807f..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/X4R3GSVF4KHTZ3B7N7CG and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/XP9N8W346GJW6C1TYMP0 b/icechunk-python/tests/data/split-repo-v2/manifests/XP9N8W346GJW6C1TYMP0 deleted file mode 100644 index 8dbb5d1b4..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/XP9N8W346GJW6C1TYMP0 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/XQRV8VM9MAB4WN6RPC00 b/icechunk-python/tests/data/split-repo-v2/manifests/XQRV8VM9MAB4WN6RPC00 new file mode 100644 index 000000000..bfc45339e Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/XQRV8VM9MAB4WN6RPC00 differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/YFDWAS13BXCDYJXRSP10 b/icechunk-python/tests/data/split-repo-v2/manifests/YFDWAS13BXCDYJXRSP10 deleted file mode 100644 index 35a1465d4..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/YFDWAS13BXCDYJXRSP10 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/YQ9HTJNVE7P7696N6AMG b/icechunk-python/tests/data/split-repo-v2/manifests/YQ9HTJNVE7P7696N6AMG deleted file mode 100644 index 24c383327..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/YQ9HTJNVE7P7696N6AMG and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/Z2AN639VEMTQGGS5P4E0 b/icechunk-python/tests/data/split-repo-v2/manifests/Z2AN639VEMTQGGS5P4E0 new file mode 100644 index 000000000..a2fc11260 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/manifests/Z2AN639VEMTQGGS5P4E0 differ diff --git a/icechunk-python/tests/data/split-repo-v2/manifests/Z624199ECSNV8FSVMTM0 b/icechunk-python/tests/data/split-repo-v2/manifests/Z624199ECSNV8FSVMTM0 deleted file mode 100644 index 0828f4e4c..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/manifests/Z624199ECSNV8FSVMTM0 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/overwritten/config.yaml.30738960578873.5B3X7KBDMJ600P4QJ1X0 b/icechunk-python/tests/data/split-repo-v2/overwritten/config.yaml.30734148059791.5XRG9V6QK7XRRSNDWA8G similarity index 100% rename from icechunk-python/tests/data/split-repo-v2/overwritten/config.yaml.30738960578873.5B3X7KBDMJ600P4QJ1X0 rename to icechunk-python/tests/data/split-repo-v2/overwritten/config.yaml.30734148059791.5XRG9V6QK7XRRSNDWA8G diff --git a/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30734148059725.62EMTM4TRVPG1X928F50 b/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30734148059725.62EMTM4TRVPG1X928F50 new file mode 100644 index 000000000..2fd351a8e Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30734148059725.62EMTM4TRVPG1X928F50 differ diff --git a/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30734148059794.ADT7TX2VC87HF03DD360 b/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30734148059794.ADT7TX2VC87HF03DD360 new file mode 100644 index 000000000..ec0ea5819 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30734148059794.ADT7TX2VC87HF03DD360 differ diff --git a/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30734148059822.PSGV85PQJW2WV40VAW6G b/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30734148059822.PSGV85PQJW2WV40VAW6G new file mode 100644 index 000000000..7949dddaf Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30734148059822.PSGV85PQJW2WV40VAW6G differ diff --git a/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30734148059859.WX09ZNMCS34JAW86XD10 b/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30734148059859.WX09ZNMCS34JAW86XD10 new file mode 100644 index 000000000..d22aefb2f Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30734148059859.WX09ZNMCS34JAW86XD10 differ diff --git a/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30738960578814.AV4S7MB8962MSZ03DA40 b/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30738960578814.AV4S7MB8962MSZ03DA40 deleted file mode 100644 index 1d6a61d71..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30738960578814.AV4S7MB8962MSZ03DA40 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30738960578875.W6AHWEQ7GSS4519Z0GWG b/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30738960578875.W6AHWEQ7GSS4519Z0GWG deleted file mode 100644 index 40a13d5f4..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30738960578875.W6AHWEQ7GSS4519Z0GWG and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30738960578909.B8W6FVSZCX8FYH7GQC80 b/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30738960578909.B8W6FVSZCX8FYH7GQC80 deleted file mode 100644 index 5bc71aab9..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30738960578909.B8W6FVSZCX8FYH7GQC80 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30738960578949.VMBD17Z5DWZKGXNBYCA0 b/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30738960578949.VMBD17Z5DWZKGXNBYCA0 deleted file mode 100644 index 36cbec4ee..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/overwritten/repo.30738960578949.VMBD17Z5DWZKGXNBYCA0 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/repo b/icechunk-python/tests/data/split-repo-v2/repo index b8c10538e..893aab181 100644 Binary files a/icechunk-python/tests/data/split-repo-v2/repo and b/icechunk-python/tests/data/split-repo-v2/repo differ diff --git a/icechunk-python/tests/data/split-repo-v2/snapshots/0Z5H3932DXGKMTNG3JCG b/icechunk-python/tests/data/split-repo-v2/snapshots/0Z5H3932DXGKMTNG3JCG deleted file mode 100644 index a5f0605f6..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/snapshots/0Z5H3932DXGKMTNG3JCG and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/snapshots/0Z6K15F35ZZS78PRRJK0 b/icechunk-python/tests/data/split-repo-v2/snapshots/0Z6K15F35ZZS78PRRJK0 new file mode 100644 index 000000000..a34c2ac9f Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/snapshots/0Z6K15F35ZZS78PRRJK0 differ diff --git a/icechunk-python/tests/data/split-repo-v2/snapshots/10WGST4FQ11W3ZBH7ESG b/icechunk-python/tests/data/split-repo-v2/snapshots/10WGST4FQ11W3ZBH7ESG deleted file mode 100644 index e01ce2a70..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/snapshots/10WGST4FQ11W3ZBH7ESG and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/snapshots/1CECHNKREP0F1RSTCMT0 b/icechunk-python/tests/data/split-repo-v2/snapshots/1CECHNKREP0F1RSTCMT0 index 6336e4e34..031b72881 100644 Binary files a/icechunk-python/tests/data/split-repo-v2/snapshots/1CECHNKREP0F1RSTCMT0 and b/icechunk-python/tests/data/split-repo-v2/snapshots/1CECHNKREP0F1RSTCMT0 differ diff --git a/icechunk-python/tests/data/split-repo-v2/snapshots/B4AJC8B0PRRVB9X9M3Q0 b/icechunk-python/tests/data/split-repo-v2/snapshots/B4AJC8B0PRRVB9X9M3Q0 deleted file mode 100644 index 87c8262e7..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/snapshots/B4AJC8B0PRRVB9X9M3Q0 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/snapshots/HPQQ6MGCRJD029TCQET0 b/icechunk-python/tests/data/split-repo-v2/snapshots/HPQQ6MGCRJD029TCQET0 new file mode 100644 index 000000000..f05ab5cf2 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/snapshots/HPQQ6MGCRJD029TCQET0 differ diff --git a/icechunk-python/tests/data/split-repo-v2/snapshots/NZ04D085YQ9G17G1ZBSG b/icechunk-python/tests/data/split-repo-v2/snapshots/NZ04D085YQ9G17G1ZBSG deleted file mode 100644 index 5ca3e803d..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/snapshots/NZ04D085YQ9G17G1ZBSG and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/snapshots/PP97N5KCA4688DYM7KNG b/icechunk-python/tests/data/split-repo-v2/snapshots/PP97N5KCA4688DYM7KNG new file mode 100644 index 000000000..6b8d33cc0 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/snapshots/PP97N5KCA4688DYM7KNG differ diff --git a/icechunk-python/tests/data/split-repo-v2/snapshots/V7EWTH8VACC9VYW7KXJG b/icechunk-python/tests/data/split-repo-v2/snapshots/V7EWTH8VACC9VYW7KXJG new file mode 100644 index 000000000..fd76c885d Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/snapshots/V7EWTH8VACC9VYW7KXJG differ diff --git a/icechunk-python/tests/data/split-repo-v2/transactions/0Z5H3932DXGKMTNG3JCG b/icechunk-python/tests/data/split-repo-v2/transactions/0Z5H3932DXGKMTNG3JCG deleted file mode 100644 index 57276273c..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/transactions/0Z5H3932DXGKMTNG3JCG and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/transactions/0Z6K15F35ZZS78PRRJK0 b/icechunk-python/tests/data/split-repo-v2/transactions/0Z6K15F35ZZS78PRRJK0 new file mode 100644 index 000000000..580d6285a Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/transactions/0Z6K15F35ZZS78PRRJK0 differ diff --git a/icechunk-python/tests/data/split-repo-v2/transactions/10WGST4FQ11W3ZBH7ESG b/icechunk-python/tests/data/split-repo-v2/transactions/10WGST4FQ11W3ZBH7ESG deleted file mode 100644 index d6a77b488..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/transactions/10WGST4FQ11W3ZBH7ESG and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/transactions/B4AJC8B0PRRVB9X9M3Q0 b/icechunk-python/tests/data/split-repo-v2/transactions/B4AJC8B0PRRVB9X9M3Q0 deleted file mode 100644 index 40831c0c0..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/transactions/B4AJC8B0PRRVB9X9M3Q0 and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/transactions/HPQQ6MGCRJD029TCQET0 b/icechunk-python/tests/data/split-repo-v2/transactions/HPQQ6MGCRJD029TCQET0 new file mode 100644 index 000000000..fd8afa71d Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/transactions/HPQQ6MGCRJD029TCQET0 differ diff --git a/icechunk-python/tests/data/split-repo-v2/transactions/NZ04D085YQ9G17G1ZBSG b/icechunk-python/tests/data/split-repo-v2/transactions/NZ04D085YQ9G17G1ZBSG deleted file mode 100644 index e427238c8..000000000 Binary files a/icechunk-python/tests/data/split-repo-v2/transactions/NZ04D085YQ9G17G1ZBSG and /dev/null differ diff --git a/icechunk-python/tests/data/split-repo-v2/transactions/PP97N5KCA4688DYM7KNG b/icechunk-python/tests/data/split-repo-v2/transactions/PP97N5KCA4688DYM7KNG new file mode 100644 index 000000000..0be3bd5f2 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/transactions/PP97N5KCA4688DYM7KNG differ diff --git a/icechunk-python/tests/data/split-repo-v2/transactions/V7EWTH8VACC9VYW7KXJG b/icechunk-python/tests/data/split-repo-v2/transactions/V7EWTH8VACC9VYW7KXJG new file mode 100644 index 000000000..12c7b4834 Binary files /dev/null and b/icechunk-python/tests/data/split-repo-v2/transactions/V7EWTH8VACC9VYW7KXJG differ diff --git a/icechunk-python/tests/data/test-repo-v2-migrated/repo b/icechunk-python/tests/data/test-repo-v2-migrated/repo index a8692437c..ecc0bd19c 100644 Binary files a/icechunk-python/tests/data/test-repo-v2-migrated/repo and b/icechunk-python/tests/data/test-repo-v2-migrated/repo differ diff --git a/icechunk-python/tests/data/test-repo-v2/chunks/0MN5THX4SV1CCEWVAB8G b/icechunk-python/tests/data/test-repo-v2/chunks/4K2JE645QXEXJ8BFDX70 similarity index 100% rename from icechunk-python/tests/data/test-repo-v2/chunks/0MN5THX4SV1CCEWVAB8G rename to icechunk-python/tests/data/test-repo-v2/chunks/4K2JE645QXEXJ8BFDX70 diff --git a/icechunk-python/tests/data/test-repo-v2/chunks/7PACHWZRT9V1QNRN24H0 b/icechunk-python/tests/data/test-repo-v2/chunks/E0FJFGF1YQVC8DT8M5MG similarity index 100% rename from icechunk-python/tests/data/test-repo-v2/chunks/7PACHWZRT9V1QNRN24H0 rename to icechunk-python/tests/data/test-repo-v2/chunks/E0FJFGF1YQVC8DT8M5MG diff --git a/icechunk-python/tests/data/test-repo-v2/chunks/BXR0YJ79EYHVDY39V3KG b/icechunk-python/tests/data/test-repo-v2/chunks/SQQ3AVPBFNNNC7H1GP40 similarity index 100% rename from icechunk-python/tests/data/test-repo-v2/chunks/BXR0YJ79EYHVDY39V3KG rename to icechunk-python/tests/data/test-repo-v2/chunks/SQQ3AVPBFNNNC7H1GP40 diff --git a/icechunk-python/tests/data/test-repo-v2/chunks/VRK86HJK1GAAQXMACME0 b/icechunk-python/tests/data/test-repo-v2/chunks/WT169S58742YW5ABZDAG similarity index 100% rename from icechunk-python/tests/data/test-repo-v2/chunks/VRK86HJK1GAAQXMACME0 rename to icechunk-python/tests/data/test-repo-v2/chunks/WT169S58742YW5ABZDAG diff --git a/icechunk-python/tests/data/test-repo-v2/manifests/36HQ5JPT76P59XT4X1TG b/icechunk-python/tests/data/test-repo-v2/manifests/36HQ5JPT76P59XT4X1TG new file mode 100644 index 000000000..22143b746 Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/manifests/36HQ5JPT76P59XT4X1TG differ diff --git a/icechunk-python/tests/data/test-repo-v2/manifests/A8V4WDV6Q782JCMRPGS0 b/icechunk-python/tests/data/test-repo-v2/manifests/A8V4WDV6Q782JCMRPGS0 deleted file mode 100644 index f1c803330..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/manifests/A8V4WDV6Q782JCMRPGS0 and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/manifests/Q04YWCM3Y6B98E101BTG b/icechunk-python/tests/data/test-repo-v2/manifests/Q04YWCM3Y6B98E101BTG deleted file mode 100644 index a49a1469f..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/manifests/Q04YWCM3Y6B98E101BTG and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/manifests/S7FX8532BKFJJXRMXAAG b/icechunk-python/tests/data/test-repo-v2/manifests/S7FX8532BKFJJXRMXAAG new file mode 100644 index 000000000..dc26d04ac Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/manifests/S7FX8532BKFJJXRMXAAG differ diff --git a/icechunk-python/tests/data/test-repo-v2/manifests/TA3PXCJPDTCZX857K5MG b/icechunk-python/tests/data/test-repo-v2/manifests/TA3PXCJPDTCZX857K5MG deleted file mode 100644 index e0afb38ba..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/manifests/TA3PXCJPDTCZX857K5MG and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/manifests/WZ1JD746W93MJF2KW4F0 b/icechunk-python/tests/data/test-repo-v2/manifests/WZ1JD746W93MJF2KW4F0 new file mode 100644 index 000000000..e61e044a0 Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/manifests/WZ1JD746W93MJF2KW4F0 differ diff --git a/icechunk-python/tests/data/test-repo-v2/manifests/X7802Y9XCC60FQ6MFG3G b/icechunk-python/tests/data/test-repo-v2/manifests/X7802Y9XCC60FQ6MFG3G new file mode 100644 index 000000000..e1a90fe1c Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/manifests/X7802Y9XCC60FQ6MFG3G differ diff --git a/icechunk-python/tests/data/test-repo-v2/manifests/X8KFDNKPX7CY28YMRP70 b/icechunk-python/tests/data/test-repo-v2/manifests/X8KFDNKPX7CY28YMRP70 deleted file mode 100644 index ed140d0a3..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/manifests/X8KFDNKPX7CY28YMRP70 and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059873.TW1NEHWH2D7298GNDEKG b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059873.TW1NEHWH2D7298GNDEKG new file mode 100644 index 000000000..ab0ff82f7 Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059873.TW1NEHWH2D7298GNDEKG differ diff --git a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059875.EHKAFE03WN6N4YRCC0GG b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059875.EHKAFE03WN6N4YRCC0GG new file mode 100644 index 000000000..96249d00f Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059875.EHKAFE03WN6N4YRCC0GG differ diff --git a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059890.Y132Q55GQZ24VFMW21GG b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059890.Y132Q55GQZ24VFMW21GG new file mode 100644 index 000000000..37154a4d7 Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059890.Y132Q55GQZ24VFMW21GG differ diff --git a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059891.AAY7TN7T20HF66NT4AH0 b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059891.AAY7TN7T20HF66NT4AH0 new file mode 100644 index 000000000..1f37f73db Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059891.AAY7TN7T20HF66NT4AH0 differ diff --git a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059893.RXVHR4739VD3EX3043DG b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059893.RXVHR4739VD3EX3043DG new file mode 100644 index 000000000..af20d672c Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059893.RXVHR4739VD3EX3043DG differ diff --git a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059894.TSSP1B440DHD9WSRF66G b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059894.TSSP1B440DHD9WSRF66G new file mode 100644 index 000000000..3d9311cb4 Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059894.TSSP1B440DHD9WSRF66G differ diff --git a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059901.0NGA1A369AW4YHVH4YT0 b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059901.0NGA1A369AW4YHVH4YT0 new file mode 100644 index 000000000..e28ff54c0 Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059901.0NGA1A369AW4YHVH4YT0 differ diff --git a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059904.6GC36K84GD0NFHQEKJJG b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059904.6GC36K84GD0NFHQEKJJG new file mode 100644 index 000000000..4cd584e4a Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059904.6GC36K84GD0NFHQEKJJG differ diff --git a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059912.CZTTA9BT66T4YM1RT5J0 b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059912.CZTTA9BT66T4YM1RT5J0 new file mode 100644 index 000000000..9a2a2388c Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059912.CZTTA9BT66T4YM1RT5J0 differ diff --git a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059935.RNN753SD89DT61YMPZY0 b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059935.RNN753SD89DT61YMPZY0 new file mode 100644 index 000000000..242e70cbf Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30734148059935.RNN753SD89DT61YMPZY0 differ diff --git a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578971.SRFY1MFF011W116DSAC0 b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578971.SRFY1MFF011W116DSAC0 deleted file mode 100644 index 112ef5f67..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578971.SRFY1MFF011W116DSAC0 and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578972.NMYSRVRNE4B4H82HDJRG b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578972.NMYSRVRNE4B4H82HDJRG deleted file mode 100644 index 50bf9b0fc..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578972.NMYSRVRNE4B4H82HDJRG and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578990.71JQYTZD4M5GZ88HCKY0 b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578990.71JQYTZD4M5GZ88HCKY0 deleted file mode 100644 index 09acbffdf..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578990.71JQYTZD4M5GZ88HCKY0 and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578991.1PPW7B6N1PM5VHG2PE5G b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578991.1PPW7B6N1PM5VHG2PE5G deleted file mode 100644 index 9b323baa4..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578991.1PPW7B6N1PM5VHG2PE5G and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578992.7Y8PDTCY1SQPXS8EFHZG b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578992.7Y8PDTCY1SQPXS8EFHZG deleted file mode 100644 index 8e19b7f38..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578992.7Y8PDTCY1SQPXS8EFHZG and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578993.T5S4424ZJWSD6W1XGWQ0 b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578993.T5S4424ZJWSD6W1XGWQ0 deleted file mode 100644 index 8b1bddfba..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578993.T5S4424ZJWSD6W1XGWQ0 and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578997.2NMTVEH2YTFATVG4H3PG b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578997.2NMTVEH2YTFATVG4H3PG deleted file mode 100644 index 667bd452f..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578997.2NMTVEH2YTFATVG4H3PG and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578999.X7AM3SGWZMR8KHZDCX50 b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578999.X7AM3SGWZMR8KHZDCX50 deleted file mode 100644 index 9850f4f71..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960578999.X7AM3SGWZMR8KHZDCX50 and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960579009.TKMHSXC4G7T5PK4RB5EG b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960579009.TKMHSXC4G7T5PK4RB5EG deleted file mode 100644 index a639e07e5..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960579009.TKMHSXC4G7T5PK4RB5EG and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960579040.1XJXDTXMBKP48SK55QM0 b/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960579040.1XJXDTXMBKP48SK55QM0 deleted file mode 100644 index fa503831c..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/overwritten/repo.30738960579040.1XJXDTXMBKP48SK55QM0 and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/repo b/icechunk-python/tests/data/test-repo-v2/repo index 0a898b0ea..5dff5f79e 100644 Binary files a/icechunk-python/tests/data/test-repo-v2/repo and b/icechunk-python/tests/data/test-repo-v2/repo differ diff --git a/icechunk-python/tests/data/test-repo-v2/snapshots/1CECHNKREP0F1RSTCMT0 b/icechunk-python/tests/data/test-repo-v2/snapshots/1CECHNKREP0F1RSTCMT0 index 634a6b670..97718d8e0 100644 Binary files a/icechunk-python/tests/data/test-repo-v2/snapshots/1CECHNKREP0F1RSTCMT0 and b/icechunk-python/tests/data/test-repo-v2/snapshots/1CECHNKREP0F1RSTCMT0 differ diff --git a/icechunk-python/tests/data/test-repo-v2/snapshots/3N4TG29AR4CGKCVXCD2G b/icechunk-python/tests/data/test-repo-v2/snapshots/3N4TG29AR4CGKCVXCD2G new file mode 100644 index 000000000..2881d88b9 Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/snapshots/3N4TG29AR4CGKCVXCD2G differ diff --git a/icechunk-python/tests/data/test-repo-v2/snapshots/4JWE072CMB4WMAXG111G b/icechunk-python/tests/data/test-repo-v2/snapshots/4JWE072CMB4WMAXG111G new file mode 100644 index 000000000..0cf75f493 Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/snapshots/4JWE072CMB4WMAXG111G differ diff --git a/icechunk-python/tests/data/test-repo-v2/snapshots/75JMBMT1KC3F5W22MVCG b/icechunk-python/tests/data/test-repo-v2/snapshots/75JMBMT1KC3F5W22MVCG new file mode 100644 index 000000000..5a8c52a81 Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/snapshots/75JMBMT1KC3F5W22MVCG differ diff --git a/icechunk-python/tests/data/test-repo-v2/snapshots/79M77QBC5QCCZ84HRCSG b/icechunk-python/tests/data/test-repo-v2/snapshots/79M77QBC5QCCZ84HRCSG deleted file mode 100644 index 885b2c5b7..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/snapshots/79M77QBC5QCCZ84HRCSG and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/snapshots/D1EQ7STM15HGEPKBED60 b/icechunk-python/tests/data/test-repo-v2/snapshots/D1EQ7STM15HGEPKBED60 deleted file mode 100644 index d6ac9e659..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/snapshots/D1EQ7STM15HGEPKBED60 and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/snapshots/EVX990M143W8Y2FK8FP0 b/icechunk-python/tests/data/test-repo-v2/snapshots/EVX990M143W8Y2FK8FP0 deleted file mode 100644 index 52048e486..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/snapshots/EVX990M143W8Y2FK8FP0 and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/snapshots/FB7XMMP6S8NXP93N5K40 b/icechunk-python/tests/data/test-repo-v2/snapshots/FB7XMMP6S8NXP93N5K40 deleted file mode 100644 index 294e4a008..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/snapshots/FB7XMMP6S8NXP93N5K40 and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/snapshots/RJYBAY6C56WQFYHAGRN0 b/icechunk-python/tests/data/test-repo-v2/snapshots/RJYBAY6C56WQFYHAGRN0 deleted file mode 100644 index 24601d034..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/snapshots/RJYBAY6C56WQFYHAGRN0 and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/snapshots/TVEX41PB5DWKEAWC2TWG b/icechunk-python/tests/data/test-repo-v2/snapshots/TVEX41PB5DWKEAWC2TWG new file mode 100644 index 000000000..1f93818a7 Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/snapshots/TVEX41PB5DWKEAWC2TWG differ diff --git a/icechunk-python/tests/data/test-repo-v2/snapshots/VB923QE7FM9GYHJCNS00 b/icechunk-python/tests/data/test-repo-v2/snapshots/VB923QE7FM9GYHJCNS00 new file mode 100644 index 000000000..acf0c582f Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/snapshots/VB923QE7FM9GYHJCNS00 differ diff --git a/icechunk-python/tests/data/test-repo-v2/transactions/3N4TG29AR4CGKCVXCD2G b/icechunk-python/tests/data/test-repo-v2/transactions/3N4TG29AR4CGKCVXCD2G new file mode 100644 index 000000000..3fb87ab87 Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/transactions/3N4TG29AR4CGKCVXCD2G differ diff --git a/icechunk-python/tests/data/test-repo-v2/transactions/4JWE072CMB4WMAXG111G b/icechunk-python/tests/data/test-repo-v2/transactions/4JWE072CMB4WMAXG111G new file mode 100644 index 000000000..ccf730c34 Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/transactions/4JWE072CMB4WMAXG111G differ diff --git a/icechunk-python/tests/data/test-repo-v2/transactions/75JMBMT1KC3F5W22MVCG b/icechunk-python/tests/data/test-repo-v2/transactions/75JMBMT1KC3F5W22MVCG new file mode 100644 index 000000000..a4d026542 Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/transactions/75JMBMT1KC3F5W22MVCG differ diff --git a/icechunk-python/tests/data/test-repo-v2/transactions/79M77QBC5QCCZ84HRCSG b/icechunk-python/tests/data/test-repo-v2/transactions/79M77QBC5QCCZ84HRCSG deleted file mode 100644 index dd691a624..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/transactions/79M77QBC5QCCZ84HRCSG and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/transactions/D1EQ7STM15HGEPKBED60 b/icechunk-python/tests/data/test-repo-v2/transactions/D1EQ7STM15HGEPKBED60 deleted file mode 100644 index 0fd15036a..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/transactions/D1EQ7STM15HGEPKBED60 and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/transactions/EVX990M143W8Y2FK8FP0 b/icechunk-python/tests/data/test-repo-v2/transactions/EVX990M143W8Y2FK8FP0 deleted file mode 100644 index 7ad16c395..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/transactions/EVX990M143W8Y2FK8FP0 and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/transactions/FB7XMMP6S8NXP93N5K40 b/icechunk-python/tests/data/test-repo-v2/transactions/FB7XMMP6S8NXP93N5K40 deleted file mode 100644 index 476577a0b..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/transactions/FB7XMMP6S8NXP93N5K40 and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/transactions/RJYBAY6C56WQFYHAGRN0 b/icechunk-python/tests/data/test-repo-v2/transactions/RJYBAY6C56WQFYHAGRN0 deleted file mode 100644 index e5a89615f..000000000 Binary files a/icechunk-python/tests/data/test-repo-v2/transactions/RJYBAY6C56WQFYHAGRN0 and /dev/null differ diff --git a/icechunk-python/tests/data/test-repo-v2/transactions/TVEX41PB5DWKEAWC2TWG b/icechunk-python/tests/data/test-repo-v2/transactions/TVEX41PB5DWKEAWC2TWG new file mode 100644 index 000000000..2a3c2ba89 Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/transactions/TVEX41PB5DWKEAWC2TWG differ diff --git a/icechunk-python/tests/data/test-repo-v2/transactions/VB923QE7FM9GYHJCNS00 b/icechunk-python/tests/data/test-repo-v2/transactions/VB923QE7FM9GYHJCNS00 new file mode 100644 index 000000000..044fb1c18 Binary files /dev/null and b/icechunk-python/tests/data/test-repo-v2/transactions/VB923QE7FM9GYHJCNS00 differ diff --git a/icechunk-python/tests/test_timetravel.py b/icechunk-python/tests/test_timetravel.py index 7d988491d..d8297c35f 100644 --- a/icechunk-python/tests/test_timetravel.py +++ b/icechunk-python/tests/test_timetravel.py @@ -1070,3 +1070,44 @@ async def test_long_ops_log(spec_version: int | None) -> None: assert t == ic.BranchCreatedUpdate # TODO: add check for next updates page path + + +def test_ops_log_commit_snap_id() -> None: + repo = ic.Repository.create( + storage=ic.in_memory_storage(), + ) + + session = repo.writable_session("main") + group = zarr.group(store=session.store, overwrite=True) + array = group.create_array("array", shape=(10,), chunks=(5,), dtype="i4") + array[:] = 42 + snap_id = session.commit("commit 1") + + change = next(repo.ops_log()) + assert isinstance(change, ic.NewCommitUpdate) + assert change.new_snap_id == snap_id + assert change.branch == "main" + + +def test_ops_log_amend_snap_id() -> None: + repo = ic.Repository.create( + storage=ic.in_memory_storage(), + ) + + session = repo.writable_session("main") + group = zarr.group(store=session.store, overwrite=True) + array = group.create_array("array", shape=(10,), chunks=(5,), dtype="i4") + array[:] = 42 + old_snap_id = session.commit("commit 1") + + session = repo.writable_session("main") + group = zarr.open_group(store=session.store) + array = cast("zarr.core.array.Array[Any]", group["array"]) + array[:] = 43 + new_snap_id = session.amend("amended") + + change = next(repo.ops_log()) + assert isinstance(change, ic.CommitAmendedUpdate) + assert change.new_snap_id == new_snap_id + assert change.previous_snap_id == old_snap_id + assert change.branch == "main" diff --git a/icechunk/flatbuffers/repo.fbs b/icechunk/flatbuffers/repo.fbs index a64834583..f6066d083 100644 --- a/icechunk/flatbuffers/repo.fbs +++ b/icechunk/flatbuffers/repo.fbs @@ -55,10 +55,12 @@ table BranchResetUpdate { } table NewCommitUpdate { branch: string (required); + new_snap_id: ObjectId12 (required); } table CommitAmendedUpdate { branch: string (required); previous_snap_id: ObjectId12 (required); + new_snap_id: ObjectId12 (required); } table NewDetachedSnapshotUpdate { new_snap_id: ObjectId12 (required); diff --git a/icechunk/src/format/flatbuffers/all_generated.rs b/icechunk/src/format/flatbuffers/all_generated.rs index 5b6f63593..cc2d631bf 100644 --- a/icechunk/src/format/flatbuffers/all_generated.rs +++ b/icechunk/src/format/flatbuffers/all_generated.rs @@ -5124,6 +5124,7 @@ pub mod generated { impl<'a> NewCommitUpdate<'a> { pub const VT_BRANCH: flatbuffers::VOffsetT = 4; + pub const VT_NEW_SNAP_ID: flatbuffers::VOffsetT = 6; #[inline] pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self { @@ -5140,6 +5141,9 @@ pub mod generated { args: &'args NewCommitUpdateArgs<'args>, ) -> flatbuffers::WIPOffset> { let mut builder = NewCommitUpdateBuilder::new(_fbb); + if let Some(x) = args.new_snap_id { + builder.add_new_snap_id(x); + } if let Some(x) = args.branch { builder.add_branch(x); } @@ -5160,6 +5164,17 @@ pub mod generated { .unwrap() } } + #[inline] + pub fn new_snap_id(&self) -> &'a ObjectId12 { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { + self._tab + .get::(NewCommitUpdate::VT_NEW_SNAP_ID, None) + .unwrap() + } + } } impl flatbuffers::Verifiable for NewCommitUpdate<'_> { @@ -5175,19 +5190,22 @@ pub mod generated { Self::VT_BRANCH, true, )? + .visit_field::("new_snap_id", Self::VT_NEW_SNAP_ID, true)? .finish(); Ok(()) } } pub struct NewCommitUpdateArgs<'a> { pub branch: Option>, + pub new_snap_id: Option<&'a ObjectId12>, } impl<'a> Default for NewCommitUpdateArgs<'a> { #[inline] fn default() -> Self { NewCommitUpdateArgs { - branch: None, // required field - } + branch: None, // required field + new_snap_id: None, // required field + } } } @@ -5204,6 +5222,13 @@ pub mod generated { ); } #[inline] + pub fn add_new_snap_id(&mut self, new_snap_id: &ObjectId12) { + self.fbb_.push_slot_always::<&ObjectId12>( + NewCommitUpdate::VT_NEW_SNAP_ID, + new_snap_id, + ); + } + #[inline] pub fn new( _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>, ) -> NewCommitUpdateBuilder<'a, 'b, A> { @@ -5214,6 +5239,7 @@ pub mod generated { pub fn finish(self) -> flatbuffers::WIPOffset> { let o = self.fbb_.end_table(self.start_); self.fbb_.required(o, NewCommitUpdate::VT_BRANCH, "branch"); + self.fbb_.required(o, NewCommitUpdate::VT_NEW_SNAP_ID, "new_snap_id"); flatbuffers::WIPOffset::new(o.value()) } } @@ -5222,6 +5248,7 @@ pub mod generated { fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { let mut ds = f.debug_struct("NewCommitUpdate"); ds.field("branch", &self.branch()); + ds.field("new_snap_id", &self.new_snap_id()); ds.finish() } } @@ -5243,6 +5270,7 @@ pub mod generated { impl<'a> CommitAmendedUpdate<'a> { pub const VT_BRANCH: flatbuffers::VOffsetT = 4; pub const VT_PREVIOUS_SNAP_ID: flatbuffers::VOffsetT = 6; + pub const VT_NEW_SNAP_ID: flatbuffers::VOffsetT = 8; #[inline] pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self { @@ -5259,6 +5287,9 @@ pub mod generated { args: &'args CommitAmendedUpdateArgs<'args>, ) -> flatbuffers::WIPOffset> { let mut builder = CommitAmendedUpdateBuilder::new(_fbb); + if let Some(x) = args.new_snap_id { + builder.add_new_snap_id(x); + } if let Some(x) = args.previous_snap_id { builder.add_previous_snap_id(x); } @@ -5293,6 +5324,17 @@ pub mod generated { .unwrap() } } + #[inline] + pub fn new_snap_id(&self) -> &'a ObjectId12 { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { + self._tab + .get::(CommitAmendedUpdate::VT_NEW_SNAP_ID, None) + .unwrap() + } + } } impl flatbuffers::Verifiable for CommitAmendedUpdate<'_> { @@ -5313,6 +5355,7 @@ pub mod generated { Self::VT_PREVIOUS_SNAP_ID, true, )? + .visit_field::("new_snap_id", Self::VT_NEW_SNAP_ID, true)? .finish(); Ok(()) } @@ -5320,6 +5363,7 @@ pub mod generated { pub struct CommitAmendedUpdateArgs<'a> { pub branch: Option>, pub previous_snap_id: Option<&'a ObjectId12>, + pub new_snap_id: Option<&'a ObjectId12>, } impl<'a> Default for CommitAmendedUpdateArgs<'a> { #[inline] @@ -5327,6 +5371,7 @@ pub mod generated { CommitAmendedUpdateArgs { branch: None, // required field previous_snap_id: None, // required field + new_snap_id: None, // required field } } } @@ -5351,6 +5396,13 @@ pub mod generated { ); } #[inline] + pub fn add_new_snap_id(&mut self, new_snap_id: &ObjectId12) { + self.fbb_.push_slot_always::<&ObjectId12>( + CommitAmendedUpdate::VT_NEW_SNAP_ID, + new_snap_id, + ); + } + #[inline] pub fn new( _fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>, ) -> CommitAmendedUpdateBuilder<'a, 'b, A> { @@ -5366,6 +5418,7 @@ pub mod generated { CommitAmendedUpdate::VT_PREVIOUS_SNAP_ID, "previous_snap_id", ); + self.fbb_.required(o, CommitAmendedUpdate::VT_NEW_SNAP_ID, "new_snap_id"); flatbuffers::WIPOffset::new(o.value()) } } @@ -5375,6 +5428,7 @@ pub mod generated { let mut ds = f.debug_struct("CommitAmendedUpdate"); ds.field("branch", &self.branch()); ds.field("previous_snap_id", &self.previous_snap_id()); + ds.field("new_snap_id", &self.new_snap_id()); ds.finish() } } diff --git a/icechunk/src/format/repo_info.rs b/icechunk/src/format/repo_info.rs index 1bbd7a78d..43853e5c2 100644 --- a/icechunk/src/format/repo_info.rs +++ b/icechunk/src/format/repo_info.rs @@ -59,17 +59,42 @@ impl std::fmt::Debug for RepoInfo { #[derive(Debug, Clone, PartialEq, Eq)] pub enum UpdateType { RepoInitializedUpdate, - RepoMigratedUpdate { from_version: SpecVersionBin, to_version: SpecVersionBin }, + RepoMigratedUpdate { + from_version: SpecVersionBin, + to_version: SpecVersionBin, + }, ConfigChangedUpdate, // FIXME: implement MetadataChangedUpdate, - TagCreatedUpdate { name: String }, - TagDeletedUpdate { name: String, previous_snap_id: SnapshotId }, - BranchCreatedUpdate { name: String }, - BranchDeletedUpdate { name: String, previous_snap_id: SnapshotId }, - BranchResetUpdate { name: String, previous_snap_id: SnapshotId }, - NewCommitUpdate { branch: String }, - CommitAmendedUpdate { branch: String, previous_snap_id: SnapshotId }, - NewDetachedSnapshotUpdate { new_snap_id: SnapshotId }, + TagCreatedUpdate { + name: String, + }, + TagDeletedUpdate { + name: String, + previous_snap_id: SnapshotId, + }, + BranchCreatedUpdate { + name: String, + }, + BranchDeletedUpdate { + name: String, + previous_snap_id: SnapshotId, + }, + BranchResetUpdate { + name: String, + previous_snap_id: SnapshotId, + }, + NewCommitUpdate { + branch: String, + new_snap_id: SnapshotId, + }, + CommitAmendedUpdate { + branch: String, + previous_snap_id: SnapshotId, + new_snap_id: SnapshotId, + }, + NewDetachedSnapshotUpdate { + new_snap_id: SnapshotId, + }, GCRanUpdate, ExpirationRanUpdate, } @@ -872,14 +897,20 @@ impl RepoInfo { } generated::UpdateType::NewCommitUpdate => { let up = update.update_type_as_new_commit_update().unwrap(); - Ok(UpdateType::NewCommitUpdate { branch: up.branch().to_string() }) + let new_snap_id = SnapshotId::new(up.new_snap_id().0); + Ok(UpdateType::NewCommitUpdate { + branch: up.branch().to_string(), + new_snap_id, + }) } generated::UpdateType::CommitAmendedUpdate => { let up = update.update_type_as_commit_amended_update().unwrap(); let previous_snap_id = SnapshotId::new(up.previous_snap_id().0); + let new_snap_id = SnapshotId::new(up.new_snap_id().0); Ok(UpdateType::CommitAmendedUpdate { branch: up.branch().to_string(), previous_snap_id, + new_snap_id, }) } generated::UpdateType::NewDetachedSnapshotUpdate => { @@ -1126,26 +1157,34 @@ fn update_type_to_fb<'bldr>( .as_union_value(), )) } - UpdateType::NewCommitUpdate { branch } => { + UpdateType::NewCommitUpdate { branch, new_snap_id } => { let branch = Some(builder.create_string(branch)); + let object_id12 = generated::ObjectId12::new(&new_snap_id.0); + let new_snap_id = Some(&object_id12); Ok(( generated::UpdateType::NewCommitUpdate, generated::NewCommitUpdate::create( builder, - &generated::NewCommitUpdateArgs { branch }, + &generated::NewCommitUpdateArgs { branch, new_snap_id }, ) .as_union_value(), )) } - UpdateType::CommitAmendedUpdate { branch, previous_snap_id } => { + UpdateType::CommitAmendedUpdate { branch, previous_snap_id, new_snap_id } => { let branch = Some(builder.create_string(branch)); let object_id12 = generated::ObjectId12::new(&previous_snap_id.0); let previous_snap_id = Some(&object_id12); + let object_id12 = generated::ObjectId12::new(&new_snap_id.0); + let new_snap_id = Some(&object_id12); Ok(( generated::UpdateType::CommitAmendedUpdate, generated::CommitAmendedUpdate::create( builder, - &generated::CommitAmendedUpdateArgs { branch, previous_snap_id }, + &generated::CommitAmendedUpdateArgs { + branch, + previous_snap_id, + new_snap_id, + }, ) .as_union_value(), )) @@ -1210,7 +1249,10 @@ mod tests { SpecVersionBin::current(), snap2.clone(), Some("main"), - UpdateType::NewCommitUpdate { branch: "main".to_string() }, + UpdateType::NewCommitUpdate { + branch: "main".to_string(), + new_snap_id: snap2.id.clone(), + }, "foo/bar", )?; assert_eq!(&repo.resolve_branch("main")?, &snap2.id); @@ -1238,7 +1280,10 @@ mod tests { SpecVersionBin::current(), snap3.clone(), Some("main"), - UpdateType::NewCommitUpdate { branch: "main".to_string() }, + UpdateType::NewCommitUpdate { + branch: "main".to_string(), + new_snap_id: snap3.id.clone(), + }, "foo", )?; assert_eq!(&repo.resolve_branch("main")?, &snap3.id); @@ -1308,9 +1353,12 @@ mod tests { }; let repo = repo.add_snapshot( SpecVersionBin::current(), - snap2, + snap2.clone(), Some("main"), - UpdateType::NewCommitUpdate { branch: "main".to_string() }, + UpdateType::NewCommitUpdate { + branch: "main".to_string(), + new_snap_id: snap2.id.clone(), + }, "foo", )?; let repo = repo.add_branch(SpecVersionBin::current(), "baz", &id2, "/foo/bar")?; diff --git a/icechunk/src/session.rs b/icechunk/src/session.rs index cf4955a8d..ccc979726 100644 --- a/icechunk/src/session.rs +++ b/icechunk/src/session.rs @@ -2617,12 +2617,14 @@ async fn do_commit_v2( }; let update_type = match commit_method { - CommitMethod::NewCommit => { - UpdateType::NewCommitUpdate { branch: branch_name.to_string() } - } + CommitMethod::NewCommit => UpdateType::NewCommitUpdate { + branch: branch_name.to_string(), + new_snap_id: new_snapshot_id.clone(), + }, CommitMethod::Amend => UpdateType::CommitAmendedUpdate { branch: branch_name.to_string(), previous_snap_id: parent_snapshot.id.clone(), + new_snap_id: new_snapshot_id.clone(), }, }; Ok(Arc::new(repo_info.add_snapshot( @@ -3221,7 +3223,10 @@ mod tests { SpecVersionBin::current(), snapshot.as_ref().try_into()?, Some("main"), - UpdateType::NewCommitUpdate { branch: "main".to_string() }, + UpdateType::NewCommitUpdate { + branch: "main".to_string(), + new_snap_id: snapshot.id().clone(), + }, "backup_path", )?; asset_manager.create_repo_info(Arc::new(repo_info)).await?; @@ -4186,7 +4191,7 @@ mod tests { let repo = create_memory_store_repository().await; let mut session = repo.writable_session("main").await?; session.add_group(Path::root(), Bytes::copy_from_slice(b"")).await?; - session.commit("make root", None).await?; + let snap1 = session.commit("make root", None).await?; let mut session = repo.writable_session("main").await?; session.add_group("/a".try_into().unwrap(), Bytes::copy_from_slice(b"")).await?; @@ -4221,7 +4226,7 @@ mod tests { session .add_group("/error".try_into().unwrap(), Bytes::copy_from_slice(b"")) .await?; - session.amend("second amend", None).await?; + let after_amend2 = session.amend("second amend", None).await?; let anc_from_tag: Vec<_> = repo .ancestry(&VersionInfo::TagRef("tag".to_string())) @@ -4253,15 +4258,20 @@ mod tests { vec![ CommitAmendedUpdate { branch: "main".to_string(), - previous_snap_id: before_amend2 + previous_snap_id: before_amend2.clone(), + new_snap_id: after_amend2.clone(), }, TagCreatedUpdate { name: "tag".to_string() }, CommitAmendedUpdate { branch: "main".to_string(), - previous_snap_id: before_amend1 + previous_snap_id: before_amend1.clone(), + new_snap_id: before_amend2.clone(), + }, + NewCommitUpdate { + branch: "main".to_string(), + new_snap_id: before_amend1 }, - NewCommitUpdate { branch: "main".to_string() }, - NewCommitUpdate { branch: "main".to_string() }, + NewCommitUpdate { branch: "main".to_string(), new_snap_id: snap1 }, RepoInitializedUpdate, ] );