MCPcopy Create free account
hub / github.com/apache/paimon-rust / test_prepare_commit_reusable

Function test_prepare_commit_reusable

crates/paimon/src/table/table_write.rs:1051–1080  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1049
1050 #[tokio::test]
1051 async fn test_prepare_commit_reusable() {
1052 let file_io = test_file_io();
1053 let table_path = "memory:/test_table_write_reuse";
1054 setup_dirs(&file_io, table_path).await;
1055
1056 let table = test_table(&file_io, table_path);
1057 let mut table_write = TableWrite::new(&table, "test-user".to_string()).unwrap();
1058
1059 // First write + prepare_commit
1060 table_write
1061 .write_arrow_batch(&make_batch(vec![1, 2], vec![10, 20]))
1062 .await
1063 .unwrap();
1064 let messages1 = table_write.prepare_commit().await.unwrap();
1065 assert_eq!(messages1.len(), 1);
1066 assert_eq!(messages1[0].new_files[0].row_count, 2);
1067
1068 // Second write + prepare_commit (reuse)
1069 table_write
1070 .write_arrow_batch(&make_batch(vec![3, 4, 5], vec![30, 40, 50]))
1071 .await
1072 .unwrap();
1073 let messages2 = table_write.prepare_commit().await.unwrap();
1074 assert_eq!(messages2.len(), 1);
1075 assert_eq!(messages2[0].new_files[0].row_count, 3);
1076
1077 // Empty prepare_commit is fine
1078 let messages3 = table_write.prepare_commit().await.unwrap();
1079 assert!(messages3.is_empty());
1080 }
1081
1082 #[tokio::test]
1083 async fn test_write_multiple_batches() {

Callers

nothing calls this directly

Calls 6

write_arrow_batchMethod · 0.80
test_file_ioFunction · 0.70
setup_dirsFunction · 0.70
test_tableFunction · 0.70
make_batchFunction · 0.70
prepare_commitMethod · 0.45

Tested by

no test coverage detected