25 Commits

Author SHA1 Message Date
30c3e74bd2 feat: 完善 WebUI basePath 支持并简化示例代码
主要改动:

1. WebUI basePath 逻辑完善
   - NewWebUI 支持可变参数 basePath
   - 新增 path() 辅助方法统一路径处理
   - handleTableAPI 正确处理 basePath 前缀
   - handleIndex 根据 basePath 替换占位符

2. 简化示例代码
   - 删除反向代理实现(111行)
   - 直接使用带 basePath 的 WebUI
   - 代码量减少 33%,架构更清晰

3. 前端优化
   - 新增 api.js 统一 API 服务层
   - 所有组件使用统一的 API 调用
   - 支持通过 window.API_BASE 配置 basePath

4. 修复 .gitignore
   - 使用通用模式支持 commands 目录
   - 无需为新示例项目修改配置
2025-10-14 22:23:30 +08:00
7ac4b99a9e feat: WebUI 重构与更新 2025-10-13 01:36:49 +08:00
fc7eeb3696 feat: 更新 table 与 WebUI 静态资源 2025-10-12 12:52:35 +08:00
c7cb1ae6c6 feat: 更新 sstable 并新增 examples/complex 示例 2025-10-12 06:02:19 +08:00
03ec262ca5 feat: updates to btree/index/query/sstable/table 2025-10-11 16:33:18 +08:00
c8cbe4178f 优化:改进 Compaction 和 WebUI 日志
- 简化 Compaction 日志输出,使用结构化日志
- 优化 WebUI 命令行参数处理
- 改进 WebUI 服务器启动和错误处理
- 统一日志格式和输出方式
2025-10-10 23:41:23 +08:00
3148bf226d 重构:添加结构化日志支持
- 引入 slog 替代 fmt.Printf 日志输出
- Database 和 Table 支持自定义 Logger
- 优化错误和警告信息的结构化记录
- 改进 Compaction 配置传递机制
- 完善数据库和表的初始化流程
2025-10-10 22:11:58 +08:00
65bdf1c50d 文档:添加 MIT LICENSE 并优化 README
- 添加 MIT 开源许可证
- 精简 README.md 内容
- 完善项目描述
2025-10-10 20:09:32 +08:00
5b8e5e7bd2 文档:更新和优化项目文档
- 更新 DESIGN.md:
  - 强调强制 Schema(21 种类型)
  - 更新核心代码行数为 ~5,400 行
  - 优化 ROW1 格式说明(英文)
  - 完善性能指标和项目成果
- 精简 DOCS.md 和 README.md
- 统一文档风格和术语
2025-10-10 20:00:23 +08:00
39d57134f1 清理:删除运行时文件和二进制文件
- 删除 examples/webui/data/ 运行时数据
- 更新 .gitignore 防止再次提交二进制和数据文件
- 只保留示例源代码文件(.go, go.mod, go.sum, README.md)
2025-10-10 18:38:27 +08:00
7d2bb4745c 重构:清理项目结构和完善文档
- 添加完整的 DOCS.md 文档(1376 行)
- 更新 README.md,增强项目说明
- 清理临时示例和测试数据
- 删除诊断工具(已完成测试)
- 为 webui 示例准备测试数据
- 优化 .gitignore 配置
- 增强 Query 和 Schema 功能
- 改进 SSTable 编码处理
2025-10-10 18:36:22 +08:00
8d750505fb 功能:添加可空字段和标签格式支持
- 实现可空字段(nullable)功能
  - 支持 *int, *string 等指针类型
  - 添加 nullable 示例程序
  - 完善可空字段验证测试
- 添加标签格式(tag format)支持
  - 支持自定义字段标签
  - 添加 tag_format 示例程序
  - 增强 Schema 标签解析能力
- 优化 Schema 和 SSTable 处理逻辑
- 添加诊断工具测试用例
2025-10-10 15:44:38 +08:00
fc1ad9832d 工具:添加诊断工具和优化查询功能
- 添加 diagnose 诊断工具集
  - test_index: 索引功能测试
  - test_new_data: 新数据写入测试
  - test_query_order: 查询顺序验证
- 优化 Query 查询逻辑和性能
- 改进 Table 数据处理
- 增强错误诊断能力
2025-10-10 13:59:13 +08:00
77087d36c6 功能:增强 Schema 系统和添加新示例
- 扩展 Schema 支持更多数据类型(Duration、URL、JSON 等)
- 优化 SSTable 编码解码性能
- 添加多个新示例程序:
  - all_types: 展示所有支持的数据类型
  - new_types: 演示新增类型的使用
  - struct_tags: 展示结构体标签功能
  - time_duration: 时间和持续时间处理示例
- 完善测试用例和文档
- 优化代码结构和错误处理
2025-10-10 02:57:36 +08:00
6d04487789 测试:完善和优化测试用例
- 优化 schema 测试用例,增加边界条件测试
- 完善 table、index、database 等模块的测试
- 改进测试数据清理和错误处理
- 更新示例程序以使用最新 API
- 增强测试覆盖率和可靠性
2025-10-10 00:19:05 +08:00
89af9e9259 优化:实现查询结果的惰性迭代器
- 重构 QueryBuilder 使用惰性迭代模式
- 添加 Iterator 接口支持流式处理
- 减少内存占用,支持大数据集查询
- 添加完整的惰性迭代器测试用例
2025-10-09 21:17:49 +08:00
dd8a534931 前端:优化 Manifest 视图文件显示
- 文件名区域改为左右布局
- 左侧显示文件名(如 000001.sst)
- 右侧显示级别标签(如 L0、L1)
- 添加级别标签样式,使用主题色背景
2025-10-09 20:53:37 +08:00
c4d79bc54b 功能:实现索引查询功能
- 为 Index 添加 Query 方法支持条件查询
- 实现 QueryBuilder 支持索引查询
- 添加索引查询测试用例
- 支持 Eq/Gt/Lt/Gte/Lte 等比较操作
2025-10-09 20:03:28 +08:00
4aade1cff1 前端:重构 Web UI 代码结构
- 添加 Import Map 支持 Lit 和本地模块的简洁导入
- 创建统一的 API 管理模块 (common/api.js)
- 重命名 styles/ 为 common/ 目录
- 修复分页时列选择被重置的问题
- 将 app.js 重命名为 main.js
- 所有导入路径使用 ~ 别名映射
2025-10-09 19:30:20 +08:00
8019f2d794 文档:更新 DESIGN.md,使用英文注释和调整项目结构说明 2025-10-09 15:46:42 +08:00
6499464f1c Merge commit 'a4582b9' 2025-10-09 01:06:37 +08:00
a4582b9e70 添加 Clean 和 Destroy 功能
主要改动:
- Engine: 添加 Clean() 和 Destroy() 方法
- Table: 添加 Clean() 和 Destroy() 方法(不持有 Database 引用)
- Database: 添加 Clean()、CleanTable()、DestroyTable()、Destroy() 方法
- 自动 flush: 添加长时间无写入自动 flush 策略(默认 30 秒)
- WebUI 优化: 优化分页查询性能

新增功能:
- Clean(): 清除数据但保留结构,Engine/Table/Database 仍可用
- Destroy(): 销毁并删除所有文件,对象不可用
- CleanTable(name): 清除指定表的数据
- DestroyTable(name): 销毁指定表并从 Database 中删除
- 自动 flush 监控: 后台定期检查,空闲时自动持久化

代码优化:
- Engine.Close(): 支持 Destroy 后调用,不会 panic
- 二级索引持久化: 在 flush 时自动持久化索引
- WebUI 分页: 预构建字段类型 map,减少 Schema 查询
- 职责分离: Table 不再持有 Database 引用

测试覆盖:
- engine_clean_test.go: Engine Clean/Destroy 测试
- table_clean_test.go: Table Clean/Destroy 测试
- database_clean_test.go: Database Clean/Destroy 测试
- database_table_ops_test.go: Database CleanTable/DestroyTable 测试
2025-10-09 01:05:44 +08:00
9175b98202 添加 Clean 和 Destroy 功能
主要改动:
- Engine: 添加 Clean() 和 Destroy() 方法
- Table: 添加 Clean() 和 Destroy() 方法(不持有 Database 引用)
- Database: 添加 Clean()、CleanTable()、DestroyTable()、Destroy() 方法
- 自动 flush: 添加长时间无写入自动 flush 策略(默认 30 秒)
- WebUI 优化: 优化分页查询性能

新增功能:
- Clean(): 清除数据但保留结构,Engine/Table/Database 仍可用
- Destroy(): 销毁并删除所有文件,对象不可用
- CleanTable(name): 清除指定表的数据
- DestroyTable(name): 销毁指定表并从 Database 中删除
- 自动 flush 监控: 后台定期检查,空闲时自动持久化

代码优化:
- Engine.Close(): 支持 Destroy 后调用,不会 panic
- 二级索引持久化: 在 flush 时自动持久化索引
- WebUI 分页: 预构建字段类型 map,减少 Schema 查询
- 职责分离: Table 不再持有 Database 引用

测试覆盖:
- engine_clean_test.go: Engine Clean/Destroy 测试
- table_clean_test.go: Table Clean/Destroy 测试
- database_clean_test.go: Database Clean/Destroy 测试
- database_table_ops_test.go: Database CleanTable/DestroyTable 测试
2025-10-09 01:03:22 +08:00
23843493b8 重构代码结构并添加完整功能
主要改动:
- 重构目录结构:合并子目录到根目录,简化项目结构
- 添加完整的查询 API:支持复杂条件查询、字段选择、游标模式
- 实现 LSM-Tree Compaction:7层结构、Score-based策略、后台异步合并
- 添加 Web UI:基于 Lit 的现代化管理界面,支持数据浏览和 Manifest 查看
- 完善文档:添加 README.md 和 examples/webui/README.md

新增功能:
- Query Builder:链式查询 API,支持 Eq/Lt/Gt/In/Between/Contains 等操作符
- Web UI 组件:srdb-app、srdb-table-list、srdb-data-view、srdb-manifest-view 等
- 列选择持久化:自动保存到 localStorage
- 刷新按钮:一键刷新当前视图
- 主题切换:深色/浅色主题支持

代码优化:
- 使用 Go 1.24 新特性:range 7、min()、maps.Copy()、slices.Sort()
- 统一组件命名:所有 Web Components 使用 srdb-* 前缀
- CSS 优化:提取共享样式,减少重复代码
- 清理遗留代码:删除未使用的方法和样式
2025-10-08 23:04:47 +08:00
ae87c38776 Initial commit: SRDB - High-performance LSM-Tree database
- Core engine with MemTable, SST, WAL
- B+Tree indexing for SST files  
- Leveled compaction strategy
- Multi-table database management
- Schema validation and secondary indexes
- Query builder with complex conditions
- Web UI with HTMX for data visualization
- Command-line tools for diagnostics
2025-10-08 06:38:28 +08:00