- 2023 OceanBase 数据库大赛初赛已正式开启!!!同时报名截止到10月25日,同学们抓紧报名啦~
初赛时间:10月17日-11月6日
初赛提测链接
2023-miniob:OceanBase 社区
2023-oceanbase-附加赛题:OceanBase 社区
初赛代码Github:GitHub - oceanbase/miniob: MiniOB is a compact database that assists developers in understanding the fundamental workings of a database.
初赛成绩将在英雄榜实时更新,请大家及时关注榜单新动态:OceanBase 社区
本次大赛答疑均在钉钉群进行,微信群仅作为重要通知提醒。请各位参赛同学尽快加入大赛钉钉答疑群(群号:35326455)
团队每位同学都能提测,每支队伍每日提测上限次数是10次,请同学们注意提测次数。
大赛报名:OceanBase 社区
1、 今年的比赛只支持 GitHub 吗?
推荐使用GitHub。
2、 请问是每天每道题十次提测机会,还是每天所有题加起来只有十次机会? 去年的赛题还能提测么,提测去年的题目会不会浪费次数?
每个团队每天只有十次提测机会,团队内部注意协调好提测。可以提测,不会占用次数。
3、 之前说用miniob_test,但是现在又多了一个oceanbase-competition-2023,所以我们应该用哪个分支开发?
miniob_test 和 oceanbase-competition-2023 分支没有差别,两个都可以使用。最开始使用的是miniob_test,后来为了让大家更容易找到需要的分支,使用了更容易明白的“oceanbase-competition-2023”。给大家造成的误解道歉。
4、 请问test分支,和2023分支用那个都可以嘛?不同分支对以后的解题有影响嘛?
没影响,现在几个分支代码都差不多。
5、不知道如何提交代码?
可以参考MiniOB文档:https://oceanbase.github.io/miniob/
6、public repo not allowed,clone repo failed
2023年开始,比赛中不允许使用 public 仓库,即公共仓库提交测试,必须改为私有(private仓库)。大家可以参考 MiniOB GitHub 在训练营中的使用说明12。
7、题目描述与实际提测情况不符
比如update-select题目中,update val=(select xxxx) where id=1; 如果子查询返回的值个数超过1个通常我们都要返回失败,但是在MySQL中,由于where id=1返回的数据量是0,所以此语句返回成功,但是不实际更新数据。
总结:以实际MySQL表现为准。
8、浮点数处理异常
由于MySQL中对float字段的精度处理非常差,会遇到a < a的情况,比如 insert into t values(29.14);但是select * from t where id < 29.14;可以得到29.14这个数据。
另外还有比较长的浮点数,比如10356.23,在MySQL中会保存为10356.2,无法与miniob的要求保持一致,而且比较难找到一种规则。
如果同学们遇到上面的情况,可以在群内与我们沟通,来调整case,避免这种情况的发生。
9、failed to receive response from observer. reason=Failed to receive from server. poll return POLLHUP=16 or POLLERR=str(event & select.POLLERR), sql=
没有收到服务端的回复。测试程序会使用poll来探测服务端发来的消息,这里在探测时返回了异常,说明服务端通讯出现了异常。
10、训练营的提示信息是什么意思?
训练营测试时,会向服务端发起SQL 请求,同时期望收到回复。每个SQL都会有期望的正确回复,与实际上收到的选手提测代码的回复。如果两者不一致,就认为case不通过,同时以"- " 前缀表示我们期望收到的正确答案,而 "+ " 表示收到的选手提测答案。
11、SQL DEBUG无法使用
经过测试,SQL DEBUG有BUG,需要同学们拉取patch到自己的代码:
https://github.com/oceanbase/miniob/pull/298
后续提交测试就可以看到了。
直接在Linux上下载patch文件的方法:
wget https://github.com/oceanbase/miniob/pull/298.patch
12、编译执行到一半卡住不动了
看起来是并发编译消耗的资源太多,把build.sh中-j参数删除,重新编译即可。
13、GitHub 二次认证无法选择中国电话号码
https://blog.csdn.net/weixin_44367884/article/details/105273108
客户端只能接受不超过4096字符的输入
在系统上安装readline开发包,然后重新编译。
在ubuntu上,是安装 libreadline-dev ,其它系统需要安装对应的包,即readline的开发包。
大赛钉钉官方交流群(群号:35326455)