1. 05 9月, 2023 1 次提交
    • Y
      fix: add missing header files (#257) · 6c7d1bbb
      YunShu 提交于
      my gcc version:
      
      ```text
      gcc 版本 13.2.1 20230801 (GCC)
      ```
      
      build log:
      ```log
      [ 69%] Building CXX object src/observer/CMakeFiles/observer_static.dir/storage/trx/trx.cpp.o
      In file included from /home/yunshu/Studio/GitHub/miniob/src/observer/storage/persist/persist.cpp:18:
      /home/yunshu/Studio/GitHub/miniob/src/observer/storage/persist/persist.h:48:15: 错误:‘uint64_t’未声明
         48 |   RC write_at(uint64_t offset, int size, const char *data, int64_t *out_size = nullptr);
            |               ^~~~~~~~
      ```
      
      ### What problem were solved in this pull request?
      
      Problem: build failed because the declaration of uint64_t could not be
      found.
      
      ### What is changed and how it works?
      
      add `<stdint.h>`
      6c7d1bbb
  2. 04 9月, 2023 1 次提交
    • 羽飞's avatar
      fix docker security issues (#251) · 40a22df0
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      ref #205
      
      Problem:
      docker image has some security issues
      
      ### What is changed and how it works?
      move step chpassword to startup
      40a22df0
  3. 25 8月, 2023 1 次提交
    • X
      Add clangd config file (#249) · 76221e46
      xzhangxian1008 提交于
      ### What problem were solved in this pull request?
      Problem:
      clangd default finds `compile_commands.json` in `build` directory and
      the miniob's default building directory is not `build` which will lead
      to the clangd's failure of searching `compile_commands.json`.
      
      ### What is changed and how it works?
      
      create a soft link from build to build_xxx in build.sh when building.
      76221e46
  4. 24 8月, 2023 1 次提交
    • 羽飞's avatar
      add static_stdlib option as there is no static gcc library on rockylinux (#248) · 2fedf8b4
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Issue Number: close #247 
      
      Problem:
      Compile miniob with static gcc and g++ failed while there is no static
      gcc library on rockylinux.
      
      ### What is changed and how it works?
      Add cmake option static_stdlib with default value off.
      In normal case, we compile miniob and run/debug it on the same machine,
      so dynamic linking works fun. If we want to move observer binary to
      other machine and test, we can recompile miniob with static_stdlib ON.
      2fedf8b4
  5. 23 8月, 2023 2 次提交
    • 羽飞's avatar
      install lex yacc on gitpod (#246) · 89239176
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Problem:
      gitpod开发环境中没有安装flex和yacc工具
      
      ### What is changed and how it works?
      在gitpod中安装flex和bison,以及readline
      89239176
    • 羽飞's avatar
      update docker (#245) · a9ce517a
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Issue Number: ref #205 
      
      Problem:
      The build method is different with the current docker image, so we need
      to update it.
      
      ### What is changed and how it works?
      Install build tools and dependencies when building image.
      a9ce517a
  6. 16 8月, 2023 3 次提交
    • 羽飞's avatar
      refactor logical plan generator (#236) · fa6e5c7f
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Issue Number: close #230 
      
      Problem:
      logical plan的生成代码全放在了optimize中,看起来很不清晰
      
      ### What is changed and how it works?
      将logical plan的代码提取出来放在logical plan generator中
      fa6e5c7f
    • 羽飞's avatar
      Expression 四则运算 (#233) · 3cd3c2f9
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Problem: close #229 
      当前的词法分析语法分析非常简单,那当遇到比较复杂的词法分析语法分析题目,比如表达式,有些同学就难以入手
      
      ### What is changed and how it works?
      增加一个支持四则运算的功能,关键字是calc,虽然与标准的SQL不同,但是可以作为学习表达式入门使用。
      使用示例:
      ```
      (base) build_debug $ ./bin/observer -f ../etc/observer.ini -P cli
      Successfully load ../etc/observer.ini
      miniob > calc 2*(2*(2+3));
      2*(2*(2+3))
      20
      
      miniob > calc (1+2) * (2 * (20+ -(5*1)))
      (1+2) * (2 * (20+ -(5*1)))
      90
      
      miniob > calc 1, 2, 3;
      1 | 2 | 3
      1 | 2 | 3
      
      miniob > calc 1 + 2 - 3+4;
      1 + 2 - 3+4
      4
      
      miniob > calc 2* 4;
      2* 4
      8
      
      miniob > calc 1, 2, 3;
      1 | 2 | 3
      1 | 2 | 3
      
      miniob > calc 1 + 2 - 3+4;
      1 + 2 - 3+4
      4
      
      miniob > calc 2* 4;
      2* 4
      8
      ```
      3cd3c2f9
    • Y
      Use Ubuntu docker as base image (#234) · 3896f772
      Yachen 提交于
      ### What problem were solved in this pull request?
      
      Update Dockerfile
      
      Issue Number: #205
      
      Problem:
      
      ### What is changed and how it works?
      
      1.  Use Ubuntu latest image
      2.  Use dpes on ubuntu
      3. Do not prepare deps when docker compose, because now we have
      `build.sh init`
      
      ### Other information
      3896f772
  7. 11 8月, 2023 1 次提交
    • J
      Fix problem that record may overflow the page (#232) · 7bff6c8b
      JugendTraum 提交于
      ### What problem were solved in this pull request?
      
      Issue Number: close #226
      
      Problem:
      记录管理部分中page_header_中record_capacity初始化有误,需要进行修正
      由于record_capacity的计算并没有考虑8字节对齐,计算的是不对齐时页面下容纳的最大记录量。
      但第一条记录偏移量first_record_offset需要8字节对齐,使得最后一条记录的数据可能会溢出页面。
      
      ### What is changed and how it works?
      如果溢出页面,则减少record_capacity数值
      同时去掉了部分冗余或含义不清的函数,修改了上取整的计算表达式
      完善了记录管理模块成员函数的注释
      7bff6c8b
  8. 09 8月, 2023 1 次提交
    • 羽飞's avatar
      Static gcc (#228) · f7b7c932
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Issue Number: close #222 
      
      Problem:
      gcc使用动态链接库,在复制observer到其它机器后,无法启动。
      
      ### What is changed and how it works?
      使用gcc静态链接库
      f7b7c932
  9. 08 8月, 2023 2 次提交
    • 羽飞's avatar
      parser中的一些变量重命名 (#225) · 5c3be1d5
      羽飞 提交于
      ### What problem were solved in this pull request?
      Problem:
      parse_defs中的一些变量命名不是很清晰
      
      ### What is changed and how it works?
      重命名,增加SqlNode后缀,希望看起来更清晰,知道这些变量的意图
      另外,增加了一个visual studio code的生成parser的任务
      5c3be1d5
    • 羽飞's avatar
      增加新文档链接 (#224) · 1e733d5e
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Problem:
      新增的几个文档没有增加链接,导致没有展示在文档中
      
      ### What is changed and how it works?
      在SUMMARY.md和introduction中增加链接
      
      ### Other information
      1e733d5e
  10. 07 8月, 2023 3 次提交
    • 羽飞's avatar
      sync doc from kernal-quick-start (#223) · 448e0724
      羽飞 提交于
      ### What is changed and how it works?
      同步一些学习中心的文档
      448e0724
    • 羽飞's avatar
      Docker build error (#221) · 3f9f43eb
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Issue Number: ref #205 
      
      Problem:
      build failed on docker container
      
      ### What is changed and how it works?
      fix compile error
      
      ### Other information
      3f9f43eb
    • 羽飞's avatar
      增加运行时参数介绍 (#220) · cbfe0849
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Problem:
      运行时参数介绍不够详细
      
      ### What is changed and how it works?
      增加当前支持的运行时参数介绍
      
      ### Other information
      cbfe0849
  11. 02 8月, 2023 1 次提交
  12. 01 8月, 2023 1 次提交
    • 羽飞's avatar
      fix compile on gcc 12 (#218) · 4b50761b
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Issue Number: close #217 
      
      Problem:
      compile error on gcc 12
      
      ### What is changed and how it works?
      
      ### Other information
      4b50761b
  13. 27 7月, 2023 2 次提交
  14. 26 7月, 2023 1 次提交
  15. 18 7月, 2023 1 次提交
    • 羽飞's avatar
      Mysql doc (#209) · 2a1ed79f
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Problem:
      There is no mysql protocol document
      
      ### What is changed and how it works?
      add a mysql protocol document.
      
      ### Other information
      2a1ed79f
  16. 17 7月, 2023 1 次提交
    • 羽飞's avatar
      Remove stages (#208) · 564e9432
      羽飞 提交于
      ### What problem were solved in this pull request?
      ref #138 
      
      Problem:
      
      SEDA的线程池模式是每个处理环节分开,可能会放到不同的线程上,也可以调整不同stage对应的处理线程个数。但是会增加复杂性,比如session会切换线程、代码逻辑复杂。
      
      ### What is changed and how it works?
      去掉了parse、resolve等stage,仅保留了session stage。代码中的名字依然叫stage,后续再调整。
      在session
      stage的处理逻辑中,直接调用其它流程处理,这样也使SQL处理流程变得更清晰。后续还可以考虑移除observer.ini,所有参数均通过命令行传递。
      
      ### Other information
      564e9432
  17. 11 7月, 2023 2 次提交
    • 羽飞's avatar
      Update README.md (#207) · fa316c2a
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Problem:
      readme文档内容较多
      
      ### What is changed and how it works?
      删掉几个链接
      
      ### Other information
      fa316c2a
    • 羽飞's avatar
      Sysbench (#206) · 8ac5c42c
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Issue Number: close #178 
      
      Problem:
      sysbench is a powerful concurrency test tool and we should use it to
      test our program.
      
      ### What is changed and how it works?
      I create two sysbench lua scripts and a github workflow.
      
      ### Other information
      8ac5c42c
  18. 30 6月, 2023 1 次提交
    • 羽飞's avatar
      Train debug (#203) · bc7919c3
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Problem:
      与训练营配合,可以在SQL命令请求过程中,添加调试信息
      
      ### What is changed and how it works?
      可以参考 debug-output.md 文档。
      增加 sql_debug 变量,使用set sql_debug=1; 可以设置。
      在SQL命令执行过程中,调用sql_debug函数,增加调试信息。在普通文本通讯协议中,调试信息会以 '#'
      开头的形式打印出来。但是注意调试信息中不要带换行符。
      
      ### Other information
      bc7919c3
  19. 28 6月, 2023 1 次提交
    • 羽飞's avatar
      实现value替换tuple_cell (#202) · 99da0457
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Issue Number: close #142 
      
      Problem:
      value和tuple_cell的语义是重合的,所以代码时冗余的
      
      ### What is changed and how it works?
      删除tuple_cell,都使用value来替换,并将tuple_cell中的接口都在value中实现
      
      ### Other information
      99da0457
  20. 27 6月, 2023 1 次提交
    • 羽飞's avatar
      Docs (#201) · 291eb33a
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Issue Number: close #191 
      
      Problem:
      doxy文档的首页没有描述
      
      ### What is changed and how it works?
      增加首页描述信息,写在了main.cpp中
      
      ### Other information
      291eb33a
  21. 26 6月, 2023 2 次提交
    • 羽飞's avatar
      增加一些文档 (#200) · f4e52131
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Issue Number: ref #165 
      ref #174 
      
      Problem:
      一些文档需要优化
      f4e52131
    • 羽飞's avatar
      observer可以直接在控制台输入命令 (#199) · 380fea38
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Issue Number: close #162 
      
      Problem:
      当前的observer启动流程和调试方法比较繁琐,必须使用客户端服务端的方式,先启动服务端程序,再使用客户端启动调试
      
      ### What is changed and how it works?
      observer可以直接启动,不监听tcp或unix socket,直接通过终端/控制台输入命令并执行,极大的方便了调试
      
      ### Other information
      新的启动方法:
      ./bin/observer -P cli -f ../etc/observer.ini
      380fea38
  22. 25 6月, 2023 1 次提交
    • 羽飞's avatar
      Network buffer (#198) · 39042c92
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Issue Number: close #151 
      
      Problem:
      当前在发送消息到客户端时,每个数据都会刷新socket buffer,效率很低
      
      ### What is changed and how it works?
      实现BufferedWriter,通过buffered
      writer将消息缓存在内存中,结果写完时或者buffer满时,才将结果真正的发送到客户端。
      
      ### Other information
      39042c92
  23. 15 6月, 2023 1 次提交
    • 羽飞's avatar
      Document (#197) · fe061d05
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Problem:
      当前生成的github pages不太整洁方便,可以优化一下
      
      ### What is changed and how it works?
      改用mdbook生成文档,并整理文档目录,调整链接
      fe061d05
  24. 14 6月, 2023 1 次提交
    • 羽飞's avatar
      Refactor (#195) · 93b79cc6
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Issue Number: close #173 close #136 
      
      ref #174 
      ref #165 
      
      Problem:
      这个PR修改了多个问题,可以参考各个issue。包括observer编译两次、代码目录规划不合理、command executor未全部实现等
      
      ### What is changed and how it works?
      做一些重构优化,包括CMakelist、一些代码目录、command executor
      93b79cc6
  25. 13 6月, 2023 1 次提交
    • 羽飞's avatar
      合并之前的持久化代码到mvcc (#194) · aea25b25
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      close issue: #186 
      
      Problem:
      实现MVCC代码后没有将持久化代码合并进来
      
      ### What is changed and how it works?
      支持并发模式下落日志,并在异常停机后回复。
      
      持久化是事务模块中最复杂的功能(没有之一),当前miniob实现的持久化简化了非常多,因此不能依赖持久化能力,仅仅作为一个学习测试的工具,在实际测试时也有一些限制。
      
      ### Other information
      aea25b25
  26. 31 5月, 2023 1 次提交
    • 羽飞's avatar
      修复clang 14 compile error (#193) · 1a2cf476
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Issue Number: close #192 
      
      Problem:
      clang 14编译失败
      
      ### What is changed and how it works?
      修复编译错误
      
      ### Other information
      1a2cf476
  27. 30 5月, 2023 1 次提交
    • 羽飞's avatar
      doxygen 文档 (#189) · 6d9a299a
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Issue Number: close #188 
      
      Problem:
      利用doxygen将代码注释生成文档
      
      ### What is changed and how it works?
      修改github action,增加doxygen生成文档,并gihtub pages部署发布
      
      ### Other information
      6d9a299a
  28. 29 5月, 2023 1 次提交
    • 羽飞's avatar
      Docxygen (#187) · e772a91f
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      使用doxygen生成代码文档
      
      Problem:
      doxygen可以很方便的把代码注释转换成文档,但是当前没有利用这个功能
      
      ### What is changed and how it works?
      增加了doxyfile,并在github action的workflow中增加了这个功能
      
      ### Other information
      e772a91f
  29. 25 5月, 2023 3 次提交
    • 羽飞's avatar
      Record manager doc (#185) · ac87eefd
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Issue Number: ref #165 
      
      Problem:
      record_manager 没有比较详细的注释
      
      ### What is changed and how it works?
      加一些注释
      
      ### Other information
      ac87eefd
    • 羽飞's avatar
      简化rc (#184) · 8587eb0f
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Issue Number: close #149 
      
      Problem:
      RC return code ,定义的东西太多,不太简洁,并且有很多错误码当前没有使用
      
      ### What is changed and how it works?
      仅使用enum RC 定义错误码,删掉其它枚举定义。
      删除当前没有使用的错误码。
      
      ### Other information
      8587eb0f
    • 羽飞's avatar
      remove cmake_link_directories in client/cmake (#183) · 3db46984
      羽飞 提交于
      ### What problem were solved in this pull request?
      
      Issue Number: close #61 
      
      Problem:
      cmake 3.10 版本不支持 cmake_link_directories 命令,而且miniob也不需要
      
      ### What is changed and how it works?
      将 cmake_link_directories 相关代码删除,可以正常编译
      3db46984