ecodeclub / eorm

简单 ORM 框架
Apache License 2.0
194 stars 64 forks source link

分库分表: 排序merger的nullable数据的支持 #195

Closed juniaoshaonian closed 1 year ago

juniaoshaonian commented 1 year ago

在sortmerger中支持nullable类型,大佬们看看这样搞可以不

codecov[bot] commented 1 year ago

Codecov Report

Merging #195 (408c4e1) into dev (400c80e) will increase coverage by 0.05%. The diff coverage is 87.75%.

@@            Coverage Diff             @@
##              dev     #195      +/-   ##
==========================================
+ Coverage   85.85%   85.91%   +0.05%     
==========================================
  Files          44       45       +1     
  Lines        3274     3309      +35     
==========================================
+ Hits         2811     2843      +32     
- Misses        372      374       +2     
- Partials       91       92       +1     
Impacted Files Coverage Δ
internal/merger/sortmerger/merger.go 89.85% <66.66%> (-0.05%) :arrow_down:
internal/merger/utils/convert_assign.go 66.66% <66.66%> (ø)
internal/merger/sortmerger/heap.go 98.33% <100.00%> (+1.36%) :arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

flycash commented 1 year ago

我已经验证过了,如果用户直接使用基本类型去接收 NULL,会出现 error。但是如果用户用基本类型的指针去接收 NULL,那么能够正常处理。

@longyue0521 的说法应该算是正确的,也就是我们倾向于认为用户应该使用 sql.NullXXX 类型或者自己实现类似的类型去处理 NULL 列。可惜的是 sql.NullXXX 出现得比较晚,所以目前 GO 这边的传统是用指针。

这也是很无奈的事情。

最后一点,将这个 err error 放进去 if ok 内部。然后再将文件名改名为 convert_assign.go 和 convert_assign_test.go

flycash commented 1 year ago

198

flycash commented 1 year ago

把 deepsource 修一下,把 convertAssign 改名叫做 sqlConvertAssign。这个 deepsource 有点蠢。

flycash commented 1 year ago

@longyue0521 可以再看看,没问题就直接合并了。

longyue0521 commented 1 year ago

@longyue0521 可以再看看,没问题就直接合并了。

好的