4paradigm / 4paradigm/OpenMLDB
Support null equal in last join for openmldb-batch
- 主要言語
- C++
- スター
- 1.7k
- フォーク
- 331
- 平均マージ
- 12日 12時間
- マージ済み PR(30日)
- 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