4paradigm / 4paradigm/OpenMLDB
Support null equal in last join for openmldb-batch
- 主要语言
- C++
- 星标
- 1.7k
- 派生
- 331
- 平均合并
- 12 天 12 小时
- 30 天内合并 PR
- 1
描述
We may support `===` and `<=>` for last join.
```
--- a/java/openmldb-batch/src/main/scala/com/_4paradigm/openmldb/batch/nodes/JoinPlan.scala
+++ b/java/openmldb-batch/src/main/scala/com/_4paradigm/openmldb/batch/nodes/JoinPlan.scala
@@ -91,10 +91,18 @@ object JoinPlan {
for (i <- 0 until keyNum) {
val leftColumn = SparkColumnUtil.resolveExprNodeToColumn(leftKeys.GetChild(i), node.GetProducer(0), leftDf)
val rightColumn = SparkColumnUtil.resolveExprNodeToColumn(rightKeys.GetChild(i), node.GetProducer(1), rightDf)
- joinConditions += (leftColumn === rightColumn)
+ joinConditions += leftColumn.eqNullSafe(rightColumn)
}
}
```
贡献指南
调研方向
The change is in JoinPlan.scala, specifically the join condition logic. Start by understanding the existing last join implementation and how null equality is currently handled. Look at the SparkColumnUtil and the eqNullSafe method. Run tests related to join operations to verify the new behavior.
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- scala, spark
- 领域
- databases, machine-learning
- Issue 类型
- 功能
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 45/100