最近工作之余开个新坑,我的老朋友:CMU15-445,这是一门学习数据库的神课,以下便记录我的课程project的实现。
因为课程明确说明了不准把代码上传到开放平台,github之类的网站,因此我的记录只会贴一些关键代码。
0 准备工作
该课程会使用C++来完成project,如果不熟悉C++的同学可以先去学习。
https://15445.courses.cs.cmu.edu/fall2020/project0/
0.1 下载bustub仓库代码
$ git clone https://github.com/cmu-db/bustub.git
0.2 安装编译
进入到bustub目录,依次执行以下命令:
$ git remote add public https://github.com/cmu-db/bustub.git
$ git fetch public
$ git merge public/master
$ sudo ./build_support/packages.sh
- 如果用的是macbook,执行最后一条命令的时候可能会报一些权限相关的错误,把sudo去掉再执行一次
$ mkdir build
$ cd build
$ cmake ..
$ make
1 完成课程
完成project0只需要改动src/include/primer/p0_starter.h
文件
Matrix
- 在构造函数中对 rows,cols 进行赋值,然后为 linear 指针分配空间
- 在析构函数中释放分配给 linear 的空间
RowMatrix
- 在构造函数中给 data_ 分配一个行指针数组,然后初始化指针的值
RowMatrix(int r, int c) : Matrix<T>(r, c) {
data_ = reinterpret_cast<T **>(malloc(sizeof(T *) * r));
for (int i &#