Skip to content
This repository was archived by the owner on Dec 18, 2025. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
363 commits
Select commit Hold shift + click to select a range
b568e93
fix: 包含 null 的谓词条件不做类型转换
Kosthi Oct 2, 2024
447813f
初步完成复杂子查询(相关子查询)
mmmttt000045 Oct 3, 2024
58ce991
完成了or,和simple sub的bug
mmmttt000045 Oct 3, 2024
9a06542
增加了输出的os流
mmmttt000045 Oct 3, 2024
d34a785
修复了复杂子查询错误的处理
mmmttt000045 Oct 3, 2024
2f990ba
完成UNIQUE的语法解析
HuXin0817 Oct 3, 2024
f4f156f
完成索引元数据的UNIQUE
HuXin0817 Oct 3, 2024
3da8111
BplusTreeIndex::insert_entry独立性检验
HuXin0817 Oct 3, 2024
c6c8cfe
完成了子查询
mmmttt000045 Oct 3, 2024
e770377
修改ix_compare
HuXin0817 Oct 3, 2024
54f7ab8
feat: 合并 MingTai 的分支,完成复杂子查询
Kosthi Oct 3, 2024
f554f34
fix: 包含 null 的谓词条件不做类型转换
Kosthi Oct 3, 2024
0d7680a
Merge remote-tracking branch 'origin/main' into unique
HuXin0817 Oct 3, 2024
3266b41
test: 加强唯一索引和复杂子查询的测试
Kosthi Oct 3, 2024
68b3ffc
feat: 实现 update-select
Kosthi Oct 3, 2024
a6fc8a7
fix: update-select 中只允许子查询返回一行一列
Kosthi Oct 3, 2024
0a51ffb
完成了exists
mmmttt000045 Oct 4, 2024
b2c22f8
修复了not exists的bug
mmmttt000045 Oct 4, 2024
afb58b7
alias 支持table.*
mmmttt000045 Oct 4, 2024
c55661f
fix: find_index_by_field索引匹配问题
HuXin0817 Oct 4, 2024
67b34d4
*不能有别名
mmmttt000045 Oct 4, 2024
aca3bfe
fix: compare_key忽略fields_offset的问题
HuXin0817 Oct 4, 2024
e1a5214
fix: update rollback的问题
HuXin0817 Oct 4, 2024
e1c084a
更新show index
HuXin0817 Oct 4, 2024
2a6107c
fix bug: show index输出格式
HuXin0817 Oct 4, 2024
ebf0155
feat: 合并实现了 unique 的 main 分支
Kosthi Oct 4, 2024
e2cf4a9
refactor functions
HuXin0817 Oct 4, 2024
202c498
refactor functions
HuXin0817 Oct 4, 2024
a73c573
fix: assert(unbound_aggregate_expr->child().size() == 1)
HuXin0817 Oct 4, 2024
d9ca780
fix bug: expression_list empty args
HuXin0817 Oct 4, 2024
b221403
count argument
HuXin0817 Oct 4, 2024
b719b71
refactor function
HuXin0817 Oct 4, 2024
5d7841c
refactor function
HuXin0817 Oct 4, 2024
882b59c
fix: update-select 中子查询的结果如果为空当作 null 值来尝试更新
Kosthi Oct 4, 2024
8dbfd89
refactor set_name
HuXin0817 Oct 4, 2024
cf2882b
fix: 子查询中 RC::RECORD_EOF 当成 RC::SUCCESS 返回导致的死循环
Kosthi Oct 4, 2024
d68fdb6
new class: NormalFunctionExpr
HuXin0817 Oct 4, 2024
25ca350
test binding_sonexpr
HuXin0817 Oct 5, 2024
2105575
fix: recordPageIterator 没有在 close scan 时初始化,导致指向已经释放的地址
Kosthi Oct 5, 2024
493beff
add std_function
HuXin0817 Oct 5, 2024
646991d
实现LENGTH,ROUND
HuXin0817 Oct 5, 2024
13f4706
实现LENGTH,ROUND
HuXin0817 Oct 5, 2024
00a3feb
fix bug: size_t非负的问题
HuXin0817 Oct 5, 2024
cee9be3
完成function类型转换问题
HuXin0817 Oct 5, 2024
c37c6d7
完成DATE_FORMAT
HuXin0817 Oct 5, 2024
c7837c5
fix: DATE_FORMAT时类型转换的问题
HuXin0817 Oct 5, 2024
17f7940
新增%M,%D
HuXin0817 Oct 5, 2024
fa8c5bd
修复了record_page_iterator_没有cleanup的bug
mmmttt000045 Oct 5, 2024
a159330
修复get_int
HuXin0817 Oct 5, 2024
1388294
修复%
HuXin0817 Oct 5, 2024
3bb4b4b
找到了子查询中scale groupby为空时,没有正常处理的bug
mmmttt000045 Oct 5, 2024
88c5316
略微修改逻辑
mmmttt000045 Oct 5, 2024
32108c6
refactor: 优化子查询 in 和 not in 的代码逻辑
Kosthi Oct 5, 2024
6d608d9
alias对*的处理
mmmttt000045 Oct 5, 2024
2e2f6ca
暂时回滚
mmmttt000045 Oct 5, 2024
e327861
feat: 合并 update-select 分支
Kosthi Oct 5, 2024
07ddfea
略微修改逻辑
mmmttt000045 Oct 5, 2024
723635c
alias对于重复表名的判断
mmmttt000045 Oct 5, 2024
e287ab7
test: 增强子查询的测试
Kosthi Oct 5, 2024
bf50f8a
在MySQL 5.7及之前的版本中,唯一索引不允许出现重复的非`NULL`值,但是可以有多个`NULL`值,因为`NULL`值并不被视为等…
HuXin0817 Oct 5, 2024
521b74b
fix: 在需要更新的记录为空的情况下,即使更新值校验异常也应该返回成功
Kosthi Oct 6, 2024
9a9b7cd
Merge remote-tracking branch 'origin/update-select'
Kosthi Oct 6, 2024
2c17c8b
test: 新增 update-select 的测试
Kosthi Oct 6, 2024
29f9957
build: 移除无用的 DEBUG 变量
Kosthi Oct 6, 2024
fda1adb
fix: 再次修复 count(*) 表头没有输出星号
Kosthi Oct 7, 2024
2b9b567
feat: 合并 main 分支
Kosthi Oct 7, 2024
9ce408e
fix bug: 聚合空值不输出NULL
HuXin0817 Oct 7, 2024
1a0e93b
在function中新增日期检查
HuXin0817 Oct 7, 2024
ea0a070
fix bug: 聚合空值不输出NULL
HuXin0817 Oct 7, 2024
48494c8
日期类型检查
HuXin0817 Oct 7, 2024
8676f9a
feat: text 类型支持存储最多 65535 字节
Kosthi Oct 7, 2024
be93359
fix: 如果插入或更新的 text 字段长度超过 65535 应该报错
Kosthi Oct 7, 2024
55c1625
test: 更新 22 年的 text 测试,即使字段长度超过 4096 也不截断
Kosthi Oct 7, 2024
43a1563
Merge remote-tracking branch 'origin/main'
Kosthi Oct 7, 2024
e83b9c4
fix: 包含子查询的 SQL 查询失败但是输出流未清空,导致下次查询会有上次查询未输出的内容
Kosthi Oct 8, 2024
4bdbde3
test: 增强简单子查询的测试,子查询失败后对输出流进行检查
Kosthi Oct 8, 2024
081394c
feat: 字段默认支持 null 值,除非定义为 not null,与 MySQL 8.0 对应
Kosthi Oct 8, 2024
7aba731
test: 修改 null 测试为 2023 版本,支持字段默认 null 定义
Kosthi Oct 8, 2024
8811525
test: 修改 update-select 的测试为 2023 版本,字段默认支持 null
Kosthi Oct 8, 2024
da47173
refactor: 重构更新算子代码,避免 null 值发生无意义的数据拷贝
Kosthi Oct 8, 2024
bca2631
完成create_table_select的语法解析
HuXin0817 Oct 9, 2024
0dbac92
feat: 修改OP_IS,与其他运算符保持一致
HuXin0817 Oct 9, 2024
a9924a6
test: 新增 function 的测试
Kosthi Oct 9, 2024
86f89eb
合并到main
mmmttt000045 Oct 9, 2024
f8a68ab
feat: 初步实现 update-mvcc
Kosthi Oct 9, 2024
ba60ea4
feat: 在SelectStmt中新增order_by_, order_by_is_asc_
HuXin0817 Oct 9, 2024
ae1cc47
尝试修复alias传递的bug
mmmttt000045 Oct 9, 2024
dfcf5e2
Merge remote-tracking branch 'origin/main' into MingTai
mmmttt000045 Oct 9, 2024
fd2609d
feat: 合并 MingTai 的分支,实现 alias
Kosthi Oct 9, 2024
a6bb713
fix: 修改SelectStmt中order_by字段的类型
HuXin0817 Oct 9, 2024
68ec237
feat: 新增PhysicalOperatorType::ORDER_BY, LogicalOperatorType::ORDER_BY
HuXin0817 Oct 9, 2024
4c7ade5
Merge remote-tracking branch 'origin/main' into order-by
HuXin0817 Oct 9, 2024
0c3b6cb
删除order_unit_expr
HuXin0817 Oct 9, 2024
01eaead
Merge branch 'refs/heads/our-main' into MingTai
mmmttt000045 Oct 9, 2024
ce3cbf0
having逻辑部分完成
mmmttt000045 Oct 9, 2024
acb9219
having支持查询不存在的列
mmmttt000045 Oct 9, 2024
6260304
bug,有的没有having会出现空指针访问
mmmttt000045 Oct 9, 2024
6dfd5af
实现基础order by
HuXin0817 Oct 9, 2024
be3ad16
fix bug: table_map => temp_map
HuXin0817 Oct 9, 2024
f808503
fix: 插入 null 值直接更新标记位,避免发生内存越界拷贝数据
Kosthi Oct 9, 2024
8137237
Merge branch 'our-main' into MingTai
mmmttt000045 Oct 9, 2024
aae41f6
fix bug: stmt = select_stmt;
HuXin0817 Oct 9, 2024
de6b1f2
fix: 字符型 null 值被当作字符串分配内存导致拷贝构造出现内存越界
Kosthi Oct 10, 2024
900f101
test: 增强 group-by 的测试
Kosthi Oct 10, 2024
3492d1e
test: 增强 typecast 的测试,考虑比较表达式的类型提升
Kosthi Oct 10, 2024
b070da7
fix: float 转 int 丢失精度的代价为不可转换的
Kosthi Oct 10, 2024
9732bb5
test: 增强 group-by 的测试,考虑 having 的类型提升
Kosthi Oct 10, 2024
39664aa
完成order_by
HuXin0817 Oct 10, 2024
f90f635
Merge remote-tracking branch 'origin/order-by'
HuXin0817 Oct 10, 2024
3bcc08d
在CreateTableStmt中新增SelectStmt
HuXin0817 Oct 10, 2024
4a0d164
完成attr_infos推断
HuXin0817 Oct 10, 2024
2087264
完成create table select
HuXin0817 Oct 10, 2024
6ea5d70
create table as select 的as可选
HuXin0817 Oct 10, 2024
ed05b45
重构create table语法解析
HuXin0817 Oct 10, 2024
0f6620d
新增CREATE TABLE ID LBRACE attr_def attr_def_list RBRACE storage_format…
HuXin0817 Oct 10, 2024
23fd890
delete // TODO: insert records
HuXin0817 Oct 10, 2024
fd2548d
完成create table f(i int not null, j char(1)) as select i, j from b;的判断
HuXin0817 Oct 10, 2024
87e5054
完成create table e as select id, age, id+age as id_age from a;
HuXin0817 Oct 10, 2024
7e1561a
fix: create table hm as select t1.id, t1.age, t2.name from create_tab…
HuXin0817 Oct 10, 2024
8b98ae5
删除delete $2;
HuXin0817 Oct 10, 2024
9b9ea84
重构NUMBER解析
HuXin0817 Oct 12, 2024
11c1cc5
feat: 实现 create view 和 drop view 的解析并 format codes
Kosthi Oct 12, 2024
134e8b0
修复负号解析的时候right_被使用的问题
HuXin0817 Oct 12, 2024
d96828f
修复负号解析的时候right_被使用的问题
HuXin0817 Oct 12, 2024
a86053b
修复1/0的问题
HuXin0817 Oct 12, 2024
05d65e5
修复1/0的问题
HuXin0817 Oct 12, 2024
709796c
null calc_value问题
HuXin0817 Oct 12, 2024
023a8d2
find . -name "*.cpp" -o -name "*.h" | xargs clang-format -i
HuXin0817 Oct 12, 2024
aa73944
remove Value::set_null
HuXin0817 Oct 12, 2024
f8812b5
Merge remote-tracking branch 'origin/main' into feat/create-view
Kosthi Oct 12, 2024
f9b455c
test: 修复 basic 测试,除 0 结果返回 null 值
Kosthi Oct 12, 2024
5e1b9b7
test: 修复 update 测试,字符串转换数字失败默认为 0 值
Kosthi Oct 12, 2024
c1ca28e
fix: 修复更新或插入字段进行长度校验时由于包含 null 标记位可能导致的校验错误
Kosthi Oct 12, 2024
3fb5982
fix: 修复空字符串因为长度为 0 构造 value 时没有正确分配内存空间,导致析构时内存越界
Kosthi Oct 12, 2024
670745b
test: 加强 insert 测试,考虑空或过长字符串的插入
Kosthi Oct 12, 2024
5f0662c
feat: 合并 main 的改动
Kosthi Oct 12, 2024
82faa6b
feat: 实现 create view 和 drop view 并支持显示元数据
Kosthi Oct 12, 2024
b770bcc
表达式类型作为列他的长度应该还要算上null的标志位
HuXin0817 Oct 13, 2024
2e9c2d8
Merge remote-tracking branch 'origin/main'
HuXin0817 Oct 13, 2024
e8124a7
null calc_value问题
HuXin0817 Oct 13, 2024
76afc70
Merge branch 'main' into MingTai
mmmttt000045 Oct 13, 2024
a5db91c
Merge branch 'refs/heads/our-main' into MingTai
mmmttt000045 Oct 13, 2024
72bdfd7
feat: 实现视图查询
Kosthi Oct 13, 2024
8e4d8db
feat: 实现视图单表和多表的插入
Kosthi Oct 13, 2024
082df04
feat: 实现视图单表删除
Kosthi Oct 13, 2024
01fb458
修复alias的bug
mmmttt000045 Oct 14, 2024
c1c649e
feat: 实现视图更新,并对异常情况进行处理
Kosthi Oct 14, 2024
2529281
fix: 移除 #pragma once in vector_type.cpp
Kosthi Oct 14, 2024
32837c7
vector的建表和alias多项表达式的支持
mmmttt000045 Oct 14, 2024
863728d
sql必须以';'结尾
HuXin0817 Oct 14, 2024
dfc9149
Clauses 下划线命名
HuXin0817 Oct 14, 2024
535e3bb
feat: 支持建立视图时指定字段名称
Kosthi Oct 14, 2024
939a4f1
feat: 合并 main 分支
Kosthi Oct 14, 2024
e84503c
fix: 删除 token 来解决 'data' 的解析
Kosthi Oct 14, 2024
f4ebf34
fix: 视图支持查询列的别名作为新列名
Kosthi Oct 14, 2024
f8a5e1e
feat: 支持指定字段插入记录
Kosthi Oct 14, 2024
0085658
Merge branch 'main' into MingTai
mmmttt000045 Oct 15, 2024
d78dec2
vector存在对null的bug
mmmttt000045 Oct 15, 2024
e7f1aa1
完成vector
HuXin0817 Oct 15, 2024
50c7f2c
完成vector
HuXin0817 Oct 15, 2024
d8801a4
Merge remote-tracking branch 'origin/vector'
HuXin0817 Oct 15, 2024
d6e1887
统一VECTOR命名
HuXin0817 Oct 15, 2024
cb18d5c
TupleCellSpec 新增hash
HuXin0817 Oct 15, 2024
7a30277
OceanBase 完全自主研发,已连续 11 年稳定支撑双 11 ,创新推出“三地五中心”城市级容灾新标准,是全球唯一在 TPC-C 和…
HuXin0817 Oct 15, 2024
8e5e2c5
use string::empty()
HuXin0817 Oct 15, 2024
c1ce393
新增order_by脚本
HuXin0817 Oct 15, 2024
22c406f
改用堆排序
HuXin0817 Oct 15, 2024
68903e9
改用堆排序
HuXin0817 Oct 15, 2024
1eeee9e
#include <queue>
HuXin0817 Oct 15, 2024
bb37d25
count(*)=0的支持
mmmttt000045 Oct 15, 2024
d409b6f
实现基于order by的limit
HuXin0817 Oct 15, 2024
1cf5436
Merge remote-tracking branch 'origin/MingTai'
HuXin0817 Oct 15, 2024
d0381d1
修改order by逻辑
HuXin0817 Oct 16, 2024
27ba21a
exprs_(std::move(exprs))
HuXin0817 Oct 16, 2024
1f9730a
OrderByPhysicalOperator Tuple *tuple_ = nullptr;
HuXin0817 Oct 16, 2024
529f800
重构 function 为 namespace builtin
HuXin0817 Oct 16, 2024
b68abb8
修改check_type
HuXin0817 Oct 16, 2024
6f55a01
支持默认vector
HuXin0817 Oct 16, 2024
0b3df12
完成DISTANCE,STRING_TO_VECTOR,VECTOR_TO_STRING,VECTOR_DIM函数
HuXin0817 Oct 16, 2024
83d0354
完成YEAR,MONTH,DAY函数
HuXin0817 Oct 16, 2024
e49bcb8
fix: 修复多表自交,目前仅支持基表自交取了别名的情况
Kosthi Oct 16, 2024
ca409ae
fix: field epxr 使用 table_alias,而不是 alias
Kosthi Oct 16, 2024
2d2e467
fix: 查询存在 tab.* 时正确找到对应表的别名
Kosthi Oct 16, 2024
2708569
aggr_func_expr命名不合理,应该是func_expr,因为还包含了普通的函数
HuXin0817 Oct 16, 2024
e017063
Merge remote-tracking branch 'origin/feat/create-view'
HuXin0817 Oct 16, 2024
293ebf4
修改客户端
HuXin0817 Oct 16, 2024
f03395a
修改客户端
HuXin0817 Oct 16, 2024
0425b70
feat: 合并 main 分支的改动
Kosthi Oct 16, 2024
f82a336
test: char 类型字段定义从原来 4 字节修改为 1 字节同步测试
Kosthi Oct 16, 2024
d229a54
feat: 合并 main 分支改动
Kosthi Oct 17, 2024
d3fe721
Merge branch 'main' into MingTai
mmmttt000045 Oct 17, 2024
30c8cd3
Merge branch 'our-main' into MingTai
mmmttt000045 Oct 17, 2024
fffd607
银行家舍入
HuXin0817 Oct 17, 2024
346a6f8
fix: 银行家舍入:在 MySQL 中,`ROUND(4.5)` 返回 4 是因为它遵循银行家舍入(又称为偶数舍入)的规则。当一个数字正…
HuXin0817 Oct 17, 2024
272193e
add doc: MiniOB 向量数据库
HuXin0817 Oct 17, 2024
5a6b2ad
feat: 视图支持持久化
Kosthi Oct 17, 2024
65a1c94
Merge remote-tracking branch 'origin/feat/create-view'
HuXin0817 Oct 17, 2024
da3af01
Merge remote-tracking branch 'origin/main'
Kosthi Oct 17, 2024
7d965e9
client多了一行
HuXin0817 Oct 17, 2024
f0c241c
feat: 同步 2024 miniob 代码
Kosthi Oct 17, 2024
9e7aabf
修改vector_to_string
HuXin0817 Oct 17, 2024
7f8c65b
size_t的bug
mmmttt000045 Oct 17, 2024
340ddb5
Merge branch 'our-main' into MingTai
mmmttt000045 Oct 17, 2024
f0e4a9f
新增vector_distance接口
HuXin0817 Oct 17, 2024
1599581
TODO: 计算结果并赋值给result
HuXin0817 Oct 17, 2024
02934a4
TODO: 计算结果并赋值给result
HuXin0817 Oct 17, 2024
722ec96
修改yacc
HuXin0817 Oct 17, 2024
af101d0
完成list语法解析
HuXin0817 Oct 17, 2024
c1e3b5f
docs: 同步 vectordb doc
Kosthi Oct 17, 2024
84e8123
完成list语法解析
HuXin0817 Oct 17, 2024
a99c491
Merge remote-tracking branch 'Ours/list' into MingTai
mmmttt000045 Oct 17, 2024
d381462
完成vector的语法解析
HuXin0817 Oct 17, 2024
d81575e
重构vector
HuXin0817 Oct 17, 2024
d795813
Merge remote-tracking branch 'refs/remotes/Ours/list' into MingTai
mmmttt000045 Oct 17, 2024
7b8753f
float *vector_value_;
HuXin0817 Oct 17, 2024
d2a03d6
Merge remote-tracking branch 'Ours/vector_function' into MingTai
mmmttt000045 Oct 17, 2024
efcf933
实现了insert
mmmttt000045 Oct 17, 2024
f2108fc
完成l2_distance,cosine_distance,inner_product
HuXin0817 Oct 17, 2024
48daedb
add submodel miniob
HuXin0817 Oct 17, 2024
c767303
实现了向量的加减乘
mmmttt000045 Oct 17, 2024
1cc02e6
Merge remote-tracking branch 'origin/MingTai' into vector_function
HuXin0817 Oct 17, 2024
49068fd
Merge branch 'vector_function'
HuXin0817 Oct 17, 2024
1f99bf0
实现了向量的简单比较
mmmttt000045 Oct 17, 2024
ec3ca70
Merge remote-tracking branch 'origin/MingTai'
HuXin0817 Oct 17, 2024
ab1ffb8
修正L2_distance公式
HuXin0817 Oct 17, 2024
886ca28
@Koschei(减少使用腾讯软件) 谁让你不理我
HuXin0817 Oct 17, 2024
89981c8
feat: 实现建立向量索引的解析
Kosthi Oct 17, 2024
8e431b8
feat: 合并 main 分支的向量支持
Kosthi Oct 17, 2024
0e1ef1b
这个TODO已经实现了
HuXin0817 Oct 17, 2024
d56ebb2
修正vector to string
HuXin0817 Oct 18, 2024
e5119df
修正UnboundFunctionExpr表头空格
HuXin0817 Oct 18, 2024
b6ed498
修正COSINE
HuXin0817 Oct 18, 2024
f4b6173
func的名字问题
mmmttt000045 Oct 18, 2024
a72c116
Merge remote-tracking branch 'origin/MingTai'
HuXin0817 Oct 18, 2024
2ad3858
if (copy_len / sizeof(float) != data_len / sizeof(float)) {
HuXin0817 Oct 18, 2024
844a6db
向量在to_string的时候只输出两位
HuXin0817 Oct 18, 2024
2eb1b46
vector最高支持16000维
mmmttt000045 Oct 18, 2024
418bbca
Merge remote-tracking branch 'origin/MingTai'
HuXin0817 Oct 18, 2024
e7e1a60
向量在to_string的时候只输出两位
HuXin0817 Oct 18, 2024
cf78288
小数点后面两位的支持
mmmttt000045 Oct 18, 2024
0caef23
feat: 合并 main 分支基础向量的支持
Kosthi Oct 18, 2024
fbf36e1
优化order_by
HuXin0817 Oct 18, 2024
82cb2b5
删除builtin::vector_distance::Type
HuXin0817 Oct 18, 2024
dcea3d2
feat: 实现向量索引构建、索引查询和查询计划改写
Kosthi Oct 18, 2024
b638f7d
新增boolean
HuXin0817 Oct 18, 2024
ed101d0
新增boolean
HuXin0817 Oct 18, 2024
b26ffd1
更新order by测试
HuXin0817 Oct 18, 2024
3df6d28
feat: 支持与 pymysql 通信
Kosthi Oct 18, 2024
1001bad
perf: 改进 ann search 算法,显著提高召回率至 96%
Kosthi Oct 19, 2024
b375cfe
feat: 合并 main 分支,miniob 初赛 490 满分撒花 🎉🎉🎉
Kosthi Oct 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,10 @@ GRTAGS
GPATH
GTAGS
docs/book
test_sql
#*#

# commitizen
node_modules
package.json
package-lock.json
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,6 @@
[submodule "deps/3rd/benchmark"]
path = deps/3rd/benchmark
url = https://github.com/google/benchmark
[submodule "deps/3rd/miniob"]
path = deps/3rd/miniob
url = https://github.com/oceanbase/miniob
29 changes: 0 additions & 29 deletions .vscode/launch.json

This file was deleted.

32 changes: 0 additions & 32 deletions .vscode/tasks.json

This file was deleted.

85 changes: 50 additions & 35 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,22 +26,22 @@ OPTION(USE_MUSL_LIBC "Use musl libc" OFF)

MESSAGE(STATUS "HOME dir: $ENV{HOME}")
#SET(ENV{变量名} 值)
IF(WIN32)
IF (WIN32)
MESSAGE(STATUS "This is windows.")
ADD_DEFINITIONS(-DWIN32)
ELSEIF(WIN64)
ELSEIF (WIN64)
MESSAGE(STATUS "This is windows.")
ADD_DEFINITIONS(-DWIN64)
ELSEIF(APPLE)
ELSEIF (APPLE)
MESSAGE(STATUS "This is apple")
# normally __MACH__ has already been defined
ADD_DEFINITIONS(-D__MACH__ )
ELSEIF(UNIX)
ADD_DEFINITIONS(-D__MACH__)
ELSEIF (UNIX)
MESSAGE(STATUS "This is UNIX")
ADD_DEFINITIONS(-DUNIX -DLINUX)
ELSE()
ELSE ()
MESSAGE(STATUS "This is UNKNOW OS")
ENDIF(WIN32)
ENDIF (WIN32)

# This is for clangd plugin for vscode
# mute sign-compare error in lex/yacc
Expand All @@ -52,23 +52,39 @@ IF (ENABLE_NOPIE)
ENDIF (ENABLE_NOPIE)

# Requires support for avx2
IF(USE_SIMD)
IF (USE_SIMD)
SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -mavx2")
ADD_DEFINITIONS(-DUSE_SIMD)
ENDIF(USE_SIMD)
ENDIF (USE_SIMD)

IF(DEBUG)
MESSAGE(STATUS "DEBUG has been set as TRUE ${DEBUG}")
SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -O0 -g -DDEBUG ")
# Set the default build type to Release
IF (NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE "Release" CACHE STRING "BUILD TYPE" FORCE)
ENDIF ()

# Convert CMAKE_BUILD_TYPE to lowercase for case-insensitive comparison
STRING(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE)

# Configure compilation options based on the build type
IF (CMAKE_BUILD_TYPE STREQUAL "debug")
MESSAGE(STATUS "Building in Debug mode")
SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -O0 -g -DDEBUG")
ADD_DEFINITIONS(-DENABLE_DEBUG)
ELSEIF(NOT DEFINED ENV{DEBUG})
MESSAGE(STATUS "Disable debug")
SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -O2 -g ")
ELSE()
MESSAGE(STATUS "Enable debug")
SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -O0 -g -DDEBUG")
ELSEIF (CMAKE_BUILD_TYPE STREQUAL "release")
MESSAGE(STATUS "Building in Release mode")
SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -O2")
ELSEIF (CMAKE_BUILD_TYPE STREQUAL "relwithdebinfo")
MESSAGE(STATUS "Building in RelWithDebInfo mode")
SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -O2 -g -DDEBUG")
ADD_DEFINITIONS(-DENABLE_DEBUG)
ENDIF(DEBUG)
ELSEIF (CMAKE_BUILD_TYPE STREQUAL "minsizerel")
MESSAGE(STATUS "Building in MinSizeRel mode")
SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -Os")
ADD_DEFINITIONS(-DENABLE_MIN_SIZE)
ELSE ()
MESSAGE(WARNING "Unknown build type: ${CMAKE_BUILD_TYPE}. Defaulting to Release.")
SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -O2")
ENDIF ()

IF (CONCURRENCY)
MESSAGE(STATUS "CONCURRENCY is ON")
Expand All @@ -79,7 +95,7 @@ ENDIF (CONCURRENCY)
MESSAGE(STATUS "CMAKE_CXX_COMPILER_ID is " ${CMAKE_CXX_COMPILER_ID})
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND ${STATIC_STDLIB})
ADD_LINK_OPTIONS(-static-libgcc -static-libstdc++)
ENDIF()
ENDIF ()

IF(USE_MUSL_LIBC)
ADD_DEFINITIONS(-D__MUSL__)
Expand All @@ -95,8 +111,8 @@ IF (ENABLE_ASAN)
SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -fno-omit-frame-pointer -fsanitize=address -fsanitize-address-use-after-scope")
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND ${STATIC_STDLIB})
ADD_LINK_OPTIONS(-static-libasan)
ENDIF()
ENDIF()
ENDIF ()
ENDIF ()

IF (ENABLE_TSAN)
# supported flags
Expand All @@ -110,7 +126,7 @@ IF (ENABLE_TSAN)
# -Qunused-arguments 有些编译器不支持,所以先删掉
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND ${STATIC_STDLIB})
ADD_LINK_OPTIONS(-static-libtsan)
ENDIF()
ENDIF ()
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${TSAN_FLAGS}")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${TSAN_FLAGS}")
ENDIF (ENABLE_TSAN)
Expand All @@ -131,12 +147,12 @@ IF (ENABLE_UBSAN)
ENDIF (ENABLE_UBSAN)

IF (CMAKE_INSTALL_PREFIX)
MESSAGE(STATUS "CMAKE_INSTALL_PREFIX has been set as " ${CMAKE_INSTALL_PREFIX} )
ELSEIF(DEFINED ENV{CMAKE_INSTALL_PREFIX})
MESSAGE(STATUS "CMAKE_INSTALL_PREFIX has been set as " ${CMAKE_INSTALL_PREFIX})
ELSEIF (DEFINED ENV{CMAKE_INSTALL_PREFIX})
SET(CMAKE_INSTALL_PREFIX $ENV{CMAKE_INSTALL_PREFIX})
ELSE()
ELSE ()
SET(CMAKE_INSTALL_PREFIX /tmp/${PROJECT_NAME})
ENDIF()
ENDIF ()
MESSAGE(STATUS "Install target dir is " ${CMAKE_INSTALL_PREFIX})

IF (DEFINED ENV{LD_LIBRARY_PATH})
Expand All @@ -147,20 +163,20 @@ IF (DEFINED ENV{LD_LIBRARY_PATH})
ENDIF ()

IF (EXISTS /usr/local/lib)
LINK_DIRECTORIES (/usr/local/lib)
LINK_DIRECTORIES(/usr/local/lib)
ENDIF ()
IF (EXISTS /usr/local/lib64)
LINK_DIRECTORIES (/usr/local/lib64)
LINK_DIRECTORIES(/usr/local/lib64)
ENDIF ()

INCLUDE_DIRECTORIES(. ${PROJECT_SOURCE_DIR}/deps /usr/local/include)

IF(WITH_UNIT_TESTS)
IF (WITH_UNIT_TESTS)
IF (ENABLE_COVERAGE)
SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -fprofile-arcs -ftest-coverage")
ENDIF (ENABLE_COVERAGE)
enable_testing()
ENDIF(WITH_UNIT_TESTS)
ENDIF (WITH_UNIT_TESTS)

SET(CMAKE_CXX_FLAGS ${CMAKE_COMMON_FLAGS})
SET(CMAKE_C_FLAGS ${CMAKE_COMMON_FLAGS})
Expand All @@ -175,9 +191,8 @@ ADD_SUBDIRECTORY(tools)

IF (WITH_BENCHMARK)
ADD_SUBDIRECTORY(benchmark)
ENDIF(WITH_BENCHMARK)
ENDIF (WITH_BENCHMARK)

IF(WITH_UNIT_TESTS)
IF (WITH_UNIT_TESTS)
ADD_SUBDIRECTORY(unittest)
ENDIF(WITH_UNIT_TESTS)

ENDIF (WITH_UNIT_TESTS)
6 changes: 3 additions & 3 deletions benchmark/aggregate_hash_table_performance_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ class DISABLED_StandardAggregateHashTableBenchmark : public AggregateHashTableBe
{

AggregateHashTableBenchmark::SetUp(state);
AggregateExpr aggregate_expr(AggregateExpr::Type::SUM, nullptr);
vector<Expression *> aggregate_exprs;
AggregateFunctionExpr aggregate_expr(AggregateFunctionExpr::Type::SUM, nullptr);
vector<Expression *> aggregate_exprs;
aggregate_exprs.push_back(&aggregate_expr);
standard_hash_table_ = make_unique<StandardAggregateHashTable>(aggregate_exprs);
}
Expand All @@ -75,7 +75,7 @@ class DISABLED_LinearProbingAggregateHashTableBenchmark : public AggregateHashTa
{

AggregateHashTableBenchmark::SetUp(state);
linear_probing_hash_table_ = make_unique<LinearProbingAggregateHashTable<int>>(AggregateExpr::Type::SUM);
linear_probing_hash_table_ = make_unique<LinearProbingAggregateHashTable<int>>(AggregateFunctionExpr::Type::SUM);
}

protected:
Expand Down
Loading
Loading