- 从原始的 project 要求的 pdf 生成了
readme.md
,拿 cursor 直接生成整个项目会报很多错,觉得只生成 TODO 再自己逐步实现比较好。 - 确定了一下项目结构。
- 感觉还是加一个 lexer 词法分析器比较好,重新调了下项目结构。拿 cursor 生成了整个项目框架。
- 看到这个 iSTLsql 应该是电科的大作业,也是 C++ 实现 sql,他的经验是直接拿
std::multiset
就能完成要求了,那我也这样吧。但还是去学了下 B+ 树。 - 晚上去喝酒了进度缓慢。
- 其实不需要用平衡树实现,用基础的数据结构就行了,我看了下 SQL 一般是需要用户手动建立索引才会用到平衡树。
- 越写越复杂,为什么这作业要求支持这么多语句啊???Parser 写到吐。
- 至少现在的版本能 build,先放这了。
- 添加了 gitignore。
- 因为之前
README.md
不详细,导致 cursor 生成的代码缺失了很多功能。重新写了README.md
,重新生成了项目框架。 - 煮啵现在又重新开始整个项目了。
- 写了
Lexer
和Parser
,可以 build,但是 parse 有 bug。
- 修了 parse 的 bug。
- 添加了
InnerJoinStatement
。 - 写了一部分 Table 和 Database 的功能。
- 修 Parser 的 Bug(后期 80% 的问题都是 Parser 导致的)。
- 写完了 Table 和 Database。
- Version 1.0!
- 下一步:
- SQL 输入里注释的支持。
- 报错信息支持文件行号。
- 牢师更新了作业要求和 Q&A,UPDATE 语句的要求变得更复杂了,甚至得递归表达式求值。但是我邮件问了下细节又说会简化这个要求。
- 把所有实现放到了 hpp。
- 报错信息支持文件行号。
- 读错项目要求了。本来需要支持把数据持久化到磁盘,没做,现在补上了。
- 居然有 110 分的打分标准,吐了。
- AI 代工弄了 complex WHERE condition 和 SET condition(括号嵌套)。
- 多个表之间的 INNER JOIN 操作。
- 交作业了。