Skip to content

minzuuniversity/sqlcc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

514 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SQLCC - SQL Cloud Computing Database System

🚀 最新版本:v1.3.10 - 规范驱动开发 (SDD) 体系 ⭐NEW

发布日期: 2026-02-02 版本状态: ✅ 正式发布 版本亮点: 规范驱动开发 (SDD) 体系 - C++ 开发规范、SDD 模板、TDD 最佳实践


🌟 规范驱动开发 (SDD) ⭐NEW

什么是 SDD?

规范驱动开发 (Spec-Driven Development, SDD) 是一种以规范文档为核心驱动力的软件开发方法论。

┌─────────────────────────────────────────────────────────────────────────┐
│                         SDD 核心流程                                     │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│   spec-init      spec-requirements      spec-design      spec-tasks    │
│       │                │                    │                │         │
│       ▼                ▼                    ▼                ▼         │
│   ┌─────────┐    ┌─────────────┐    ┌─────────────┐    ┌─────────┐    │
│   │ 功能定义 │───▶│  EARS 格式  │───▶│  Mermaid    │───▶│ 任务    │    │
│   │         │    │   需求规范   │    │   架构图    │    │ 分解    │    │
│   └─────────┘    └─────────────┘    └─────────────┘    └─────────┘    │
│                                                                    │    │
│                                                                    ▼    │
│                                                            ┌─────────────┐│
│                                                            │  spec-impl  ││
│                                                            │   代码实现   ││
│                                                            └─────────────┘│
│                                                                          │
└─────────────────────────────────────────────────────────────────────────┘

SDD 核心原则

原则 说明
规范优先 任何代码变更都应从规范更新开始
渐进式精化 从需求到设计到实现逐步细化
规范即契约 规范是开发团队的共同语言
文档即代码 规范使用 Markdown 编写,版本化管理

SDD 文档模板

模板 用途 路径
需求模板 EARS 格式需求规范 docs/sdd/templates/requirements_template.md
设计模板 Mermaid 架构图 docs/sdd/templates/design_template.md
任务模板 带依赖的任务清单 docs/sdd/templates/tasks_template.md

SDD 实施指南


🤖 多Agent跨平台协作开发 ⭐NEW

概述

SQLCC项目采用多个AI Agent(Claude、OpenCode、Gemini、Codex等)进行协同开发,必须遵循统一的协作规范。

⭐⭐⭐ 必读:Issue #9 协作契约

重要: Issue #9: Unified AI-CLI Workflow 是 SQLCC 多Agent协作的默认契约,定义了:

  • Agent 角色: Human (审批), Codex (总控), Claude (主开发), OpenCode (验证), Gemini (复检)
  • 工作目录: /Users/liying/sqlcc-* 独立工作目录
  • 分支命名: feat/claude/*, test/opencode/*, docs/gemini/*
  • 消息协议: TASK_CLAIM, PROGRESS_UPDATE, BLOCKER_NOTIFICATION, TASK_COMPLETE
  • 质量门禁: 编译 → 测试 → 覆盖 → 评审 → 合并

Agent身份体系

Agent 角色 工作目录 分支模式
Claude 主开发 /Users/liying/sqlcc-claude feat/claude/<task-id>-*
OpenCode 验证 /Users/liying/sqlcc-opencode test/opencode/<task-id>-verify
Gemini 复检/文档 /Users/liying/sqlcc-gemini docs/gemini/<task-id>-review
Codex 总控 /Users/liying/sqlcc-codex coord/codex/<topic>

相关文档


📊 项目功能状态评估

✅ 核心功能完整性

功能模块 状态 支持度 说明
存储引擎 ✅ 完整 100% 8KB定长页管理,V3 BufferPool架构
SQL解析器 ✅ 完整 100% ParserNew架构,支持SQL-92标准
索引系统 ✅ 完整 100% B+树实现,支持点查询和范围查询
事务管理 ✅ 完整 100% ACID特性,WAL日志,两阶段锁
DDL语句 ✅ 完整 100% CREATE/DROP/ALTER TABLE等
DML语句 ✅ 完整 100% INSERT/SELECT/UPDATE/DELETE
DCL语句 ✅ 完整 100% GRANT/REVOKE/用户管理
TCL语句 ✅ 完整 100% COMMIT/ROLLBACK/SAVEPOINT
JOIN操作 ✅ 完整 100% INNER/LEFT/RIGHT/FULL JOIN
子查询 ✅ 完整 100% 嵌套子查询,相关子查询
窗口函数 ✅ 完整 100% ROW_NUMBER/RANK/SUM等
递归查询 ✅ 完整 100% WITH RECURSIVE支持

📈 SQL-92标准符合度

  • 总体支持度: 100% 完全支持
  • 语法正确性: ⭐⭐⭐⭐⭐ 100% 完全符合SQL-92标准语法
  • 语义正确性: ⭐⭐⭐⭐⭐ 100% 语义执行完全正确

📊 查看完整功能矩阵 - 详细的SQL-92标准符合度说明


🧪 测试情况

Level 1 Foundation 测试覆盖率

模块 测试用例数 通过率 覆盖特性
Exception 32 100% 基础异常、继承关系、异常捕获、性能测试
Types ~60 100% Value类型、域管理、事务ID、锁类型
Logger ~30 100% 单例模式、日志级别、文件输出、线程安全
Config ~40 100% 配置管理、文件读写、线程安全、批量操作
Level 1 Foundation ~160 100% 真实实现,完整覆盖

测试框架

  • 测试框架: Google Test (GTest) + Bazel测试框架
  • 覆盖率工具: LLVM 20 + Clang 20 覆盖率工具链
  • 编程语言: C++20标准
  • 测试分类: 单元测试、集成测试、网络测试、性能测试、SQL测试
  • 测试规范: C++ 开发规范 - TDD章节

TDD 最佳实践

SQLCC 采用 测试驱动开发 (TDD) 方法论:

Red (失败测试) → Green (最小实现) → Refactor (重构)

✅ 每次提交都有测试覆盖
✅ 测试先于代码编写
✅ 规范定义测试用例

📋 v1.3.10 版本变更摘要 ⭐NEW

🎯 主要变更

  1. 规范驱动开发 (SDD) 体系

    • 创建 SDD 使用指南(规范驱动开发方法论)
    • 创建 SDD 模板(需求、设计、任务)
    • 集成 cc-sdd 最佳实践
  2. C++ 开发规范

    • 创建完整的 C++ 开发、测试与重构规范
    • 集成 TDD(测试驱动开发)最佳实践
    • 集成 GoogleTest 框架使用规范
  3. BUILD 文件规范增强

    • 集成头文件引用规范
    • 完善 strip_include_prefix 配置说明
    • 添加前向声明使用指南

📊 变更统计

  • 新增文档: 5个

    • docs/sdd/SPEC_DRIVEN_DEVELOPMENT.md
    • docs/sdd/templates/requirements_template.md
    • docs/sdd/templates/design_template.md
    • docs/sdd/templates/tasks_template.md
    • docs/ai_tools/CPP_DEVELOPMENT_SPECIFICATION.md
  • 更新文档: 4个

    • docs/ai_tools/BUILD_FILE_SPECIFICATION.md
    • docs/ai_tools/index.md
    • docs/index.md
    • README.md

🔗 详细文档


📋 v1.3.9 版本变更摘要

🎯 主要变更

  1. Level 1 Foundation完整单元测试

    • 为异常处理、类型系统、日志系统、配置管理四大核心模块编写了完整的单元测试
    • 约160个测试用例,覆盖所有核心功能
    • 修复了6个失败的types_test用例
  2. 真实实现测试

    • 所有测试使用真实实现,非Mock测试
    • 验证实际系统行为
  3. 测试架构优化

    • 合并level2_core和level2_core_services测试目录
    • 每个模块有独立的BUILD.bazel文件
    • 头文件规范修复,严格遵守include规范

🏗️ 系统架构

核心组件

SQLCC 架构
├── 存储引擎 (Storage Engine)
│   ├── BufferPool (V3分片缓冲池)
│   ├── B+树索引 (B+ Tree Index)
│   └── 磁盘管理 (Disk Manager)
├── SQL解析器 (SQL Parser)
│   ├── 词法分析器 (Lexer)
│   ├── 语法分析器 (Parser)
│   └── AST抽象语法树
├── 执行引擎 (Execution Engine)
│   ├── 查询计划 (Query Plan)
│   └── 执行器 (Executor)
├── 事务管理器 (Transaction Manager)
│   ├── WAL日志 (Write-Ahead Log)
│   └── 并发控制 (Concurrency Control)
└── 网络通信 (Network)
    ├── 连接管理 (Connection)
    └── 协议处理 (Protocol)

技术特性

  • 内存安全: A++等级,95%+智能指针化
  • 并发控制: 多任务执行器架构,TaskExecutor类
  • 网络通信: AES加密,TLS/SSL支持
  • 权限管理: 完整的RBAC权限模型

🚀 快速开始

系统要求

  • 操作系统: Linux Ubuntu 20.04+ / CentOS 8+
  • 编译器: GCC 9.0+ / Clang 10.0+ (推荐Clang 20)
  • 构建系统: Bazel 8.0+
  • 内存: 最少4GB RAM (推荐8GB+)
  • 存储: 最少10GB可用空间

安装部署

# 克隆代码仓库
git clone https://gitee.com/yinglichina/sqlcc.git
cd sqlcc

# 使用Bazel构建
bazel build //src:sqlcc_server

# 启动数据库服务
./bazel-bin/src/sqlcc_server --config=config/sqlcc.conf

运行测试

# 运行所有测试
bazel test //...

# 运行Level 1测试
bazel test //tests/level1_foundation/...

# 生成覆盖率报告
bazel coverage //...

📚 文档索引

快速导航

分类 文档 说明
项目概述 README.md 完整的项目介绍
文档索引 docs/index.md 所有文档的统一入口
开发者指南 docs/development/guides/ 开发指南集合
API文档 docs/api/ 接口文档
架构设计 docs/design/ 架构设计文档
版本发布 docs/releases/ 版本发布文档
项目进展 docs/project/versions/ 版本历史记录

版本文档


🔗 相关链接


📚 规范文档体系 ⭐NEW

SQLCC 项目建立了完整的规范文档体系,指导开发、测试和重构:

核心规范

规范 文件 版本 说明
SDD 规范 docs/sdd/SPEC_DRIVEN_DEVELOPMENT.md v1.3.10 规范驱动开发方法论
C++ 开发规范 docs/ai_tools/CPP_DEVELOPMENT_SPECIFICATION.md v1.3.10 C++ 开发、测试与重构
AI 开发规范 docs/ai_tools/AI_DEVELOPMENT_GUIDELINES.md v1.3.9 AI Agent 开发规范
BUILD 规范 docs/ai_tools/BUILD_FILE_SPECIFICATION.md v1.3.10 Bazel 构建规范
测试规范 docs/ai_tools/improvement_guide.md v1.3.9 测试开发规范
重构规范 docs/ai_tools/systematic_refactoring_knowledge_base.md v1.3.9 系统化重构方法

规范使用流程

1. 新功能开发
   ├── 需求定义 → docs/sdd/templates/requirements_template.md
   ├── 架构设计 → docs/sdd/templates/design_template.md
   └── 任务分解 → docs/sdd/templates/tasks_template.md

2. 代码实现
   ├── 遵循 C++ 开发规范
   ├── 遵循 BUILD 文件规范
   └── 遵循测试规范

3. 重构优化
   ├── 使用重构规范
   └── 验证质量门禁

最后更新: 2026-02-02 版本: v1.3.10

About

An C++ SQL DBMS for teaching and training.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors