_v.log 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. ============================================================
  2. TsDB2 全功能综合测试
  3. 涵盖: 表/索引/CRUD/事务/WAL/BufferPool/提交策略/恢复
  4. ============================================================
  5. ================================================== 1. 数据库配置与打开
  6. ✅ OpenDB
  7. ✅ 配置: BufferPool=200页, DirtyThreshold=50页, Debounce=500ms, Preset=online
  8. ================================================== 2. 表创建 (泛型 UseTable)
  9. ✅ UseTable[User] (自动建表+主键索引)
  10. ✅ UseTable[Order] (自动建表+主键索引)
  11. ✅ 重复 UseTable[User] 自动同步 schema
  12. ================================================== 3. 二级索引创建 (标签自动创建)
  13. ✅ 索引已通过标签自动创建
  14. ================================================== 4. 基础 CRUD
  15. ✅ Insert 20 行 (ID=1~20)
  16. ✅ Find(5): Name=User005 Age=25 Score=65 Dept=D0
  17. ✅ Update(5) Score=999
  18. ✅ 验证更新: Score=999
  19. ✅ Delete(10)
  20. ✅ 验证删除: ID=10 不存在
  21. ================================================== 5. 条件查询
  22. ✅ WHERE Age=25: 0 行
  23. ✅ WHERE Age>=20 AND Age<=25: 4 行
  24. ✅ WHERE Age>40: 0 行
  25. ✅ WHERE Name LIKE 'User%': 18 行
  26. ✅ WHERE Age!=25: 19 行
  27. ================================================== 6. 排序 + 分页
  28. ✅ ORDER BY Age DESC LIMIT 5:
  29. [1] Name=User020 Age=40 Score=110
  30. [2] Name=User019 Age=39 Score=107
  31. [3] Name=User018 Age=38 Score=104
  32. [4] Name=User017 Age=37 Score=101
  33. [5] Name=User016 Age=36 Score=98
  34. ✅ ORDER BY Age ASC OFFSET 5 LIMIT 5:
  35. [1] Name=User006 Age=26 Score=68
  36. [2] Name=User007 Age=27 Score=71
  37. [3] Name=User008 Age=28 Score=74
  38. [4] Name=User009 Age=29 Score=77
  39. [5] Name=User011 Age=31 Score=83
  40. ================================================== 7. 聚合查询
  41. ✅ COUNT(*): 19
  42. ✅ COUNT WHERE Age=25: 0
  43. ================================================== 8. Scan 流式遍历
  44. ✅ Scan LIMIT 10: 遍历 10 行
  45. ================================================== 9. 事务 - 提交
  46. ✅ 事务内插入 10 行 (ID=21~30)
  47. ✅ 事务内 Update(21) Score=8888
  48. ✅ 事务内 Delete(25)
  49. ✅ Transaction.Commit()
  50. ✅ 提交后验证: ID=21 Score=8888
  51. ✅ 提交后验证: ID=25 已删除
  52. ================================================== 10. 事务 - 回滚
  53. ✅ 事务内插入 10 行 (ID=31~40)
  54. ✅ Transaction.Rollback()
  55. ⏳ 回滚后数据验证将在重开后进行
  56. ================================================== 11. WAL + Commit 持久化
  57. ✅ DB.Commit() (WAL 写入)
  58. ================================================== 12. 多表操作
  59. ✅ orders 表插入 10 行
  60. ✅ orders WHERE Status=0: 3 行
  61. ================================================== 13. DropTable
  62. ✅ DropTable orders
  63. ✅ orders 表已不存在
  64. ✅ users 表不受影响
  65. ================================================== 14. 关闭 + 重开验证持久化
  66. ✅ DB.Close()
  67. ✅ 重新打开数据库
  68. ✅ 重开后 Find(1): Name=User001 Age=21
  69. ✅ 重开后 Find(5): Score=999 (更新持久化)
  70. ✅ 重开后 ID=10 (已删除) 不存在
  71. ✅ 重开后 Find(21) (事务提交+更新): Score=8888
  72. ✅ 重开后 ID=25 (事务内删除) 不存在
  73. ✅ 重开后 ID=31 (回滚) 不存在
  74. ================================================== 15. 防抖自动提交
  75. ✅ 插入 10 行, 等待防抖自动提交 (500ms)...
  76. ✅ 防抖自动提交后重开: ID=5 存在 (Name=Auto005)
  77. ================================================== 16. LockTable 机制
  78. ✅ LockWrites() 成功
  79. ✅ UnlockWrites() 成功
  80. ================================================== 17. 提交策略预设
  81. ✅ Preset 'batch' 设置成功
  82. ✅ Preset 'online' 设置成功
  83. ✅ Preset 'safe' 设置成功
  84. ================================================== 18. 批量插入 (BatchInsert)
  85. ✅ BatchInsert 10 行
  86. ================================================== 19. First 查询
  87. ✅ First(): Name=Auto001 Age=25
  88. ================================================== 20. FindAll
  89. ✅ FindAll(): 20 行
  90. ============================================================
  91. 测试结果: 53 通过, 0 失败
  92. 🎉 全部通过!
  93. ============================================================