打卡MatrixCamp活动,成为了MatrixOne社区的一员
作者:互联网
初识
一周前,在一个数据库技术交流群中,偶然看见了群友转发的这个活动。当时点进去一看,竟然是分布式数据库领域的写函数的活动。由于自己之前在学6.824和6.830,对分布式、数据库、Go语言都产生了兴趣,所以看见这次的活动自己变得很兴奋,立即就点进链接报名了,当天就领取到了属于自己的函数。
参与其中
1.看文档
领取了自己的函数后就开始看文档并着手进行调试开发了。首先根据开发文档中的指示,看完了示例abs()函数的实现过程。第二步开始看如何为社区贡献代码的文档,按照文档中的工作流程来进行开发并在Github上提交修改。
2.安装MatrixOne
按照安装单机版MatrixOne文档,在我们本地安装好MatrixOne
3.写代码
前提:熟悉Golang语言的基础语法、go mod 包管理工具、make工具的使用即可。
完成的代码展示:
说几个需要注意的点:
Acos函数的定义域是[-1,1],所以我们要注意判空。这里需要注意我们的空值不应该为NaN,而是NULL
results := encoding.DecodeFloat64Slice(resultVector.Data) results = results[:len(origVecCol)] nulls.Set(resultVector.Nsp, origVec.Nsp) acosResult := acos.AcosUint8(origVecCol, results) if nulls.Any(acosResult.Nsp) { if !nulls.Any(origVec.Nsp) { resultVector.Nsp = acosResult.Nsp } else { resultVector.Nsp.Or(acosResult.Nsp) } } resultVector.Col = acosResult.Result return resultVector, err
4.测试
本地单元测试:需要自己写测试样例,注意考虑周全
真实环境中运行:
这里需要我们把更改的代码重新执行下面两条命令。
$ make config
$ make build
测试后发现结果是正确的:
5.merge提交,等待review
这里需要赞一下社区的成员,反馈非常的及时!!!
最后,成为Contributor,完结撒花!感谢MatrixOne!!!
标签:MatrixCamp,acosResult,results,Nsp,文档,MatrixOne,打卡,resultVector 来源: https://www.cnblogs.com/JasonPeng1/p/16106864.html