- 暴露事务级 last_committed、sequence_number、transaction_length 和 commit timestamp - 在 GTID event 转换时透传 logical clock 元数据 - 新增 ParseOptions、ParseProgress,支持上下文取消和解析进度回调 - 保留 TransactionPayloadEvent 展开后的 tablemap 与压缩类型信息 - 增加 TransactionSummary 辅助结构,便于上层统计事务结果、耗时、表分布和逻辑时钟 - 清理测试对外部大 binlog 样本的依赖,保证独立库测试可运行 - 修正跨平台测试与 GTID 输出格式断言,提升发版稳定性
31 lines
725 B
Go
31 lines
725 B
Go
package binlog
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestGetGtidOfBinlog(t *testing.T) {
|
|
desc, err := GetGtidOfBinlog("./test/mysql-bin56.000003")
|
|
if nil != err {
|
|
t.Fatalf("unexpected error %v", err)
|
|
}
|
|
if "F60AB33CC60411E38E1CE66CCF50DB66:1-136" != normalizeGtidForTest(desc) {
|
|
t.Fatalf("wrong gtid %v", desc)
|
|
}
|
|
}
|
|
|
|
func normalizeGtidForTest(desc string) string {
|
|
parts := strings.Split(desc, ",")
|
|
for i, part := range parts {
|
|
gtidParts := strings.SplitN(part, ":", 2)
|
|
if len(gtidParts) != 2 {
|
|
parts[i] = strings.ToUpper(part)
|
|
continue
|
|
}
|
|
uuid := strings.ReplaceAll(strings.ToUpper(gtidParts[0]), "-", "")
|
|
parts[i] = uuid + ":" + strings.ToUpper(gtidParts[1])
|
|
}
|
|
return strings.Join(parts, ",")
|
|
}
|