Support ExistenceJoin type in HashJoin
- 主要言語
- Rust
- スター
- 9.3k
- フォーク
- 2.4k
- 平均マージ
- 3日 11時間
- マージ済み PR(30日)
- 362
説明
**Is your feature request related to a problem or challenge? Please describe what you are trying to do.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
(This section helps Arrow developers understand the context and *why* for this feature, in addition to the *what*)
```
SELECT t1_id, t1_name from t1 WHERE
t1_id IN (SELECT t2_id FROM t2 where t2_name = 'b') OR
t1_id IN (SELECT t3_id FROM t3 where t3_name = 'c')
````
````
SELECT t1_id, t1_name from t1 WHERE
t1_id IN (SELECT t2_id FROM t2 where t2_name = 'b') OR
t1_name IN (SELECT t2_name FROM t2 where t2_name = 'b')
````
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
コントリビューションガイド
調査の方向性
まず、DataFusion 内の HashJoin の実装と、既存の ExistenceJoin の処理を探します。2 つの SQL 例を動作ケースとして使用し、OR と組み合わせた IN サブクエリ、および異なるキー列を対象にします。これらのクエリがサポートされ、適切なテストでカバーされれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- rust, sql
- 領域
- backend, databases
- issue の種類
- 機能追加
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 25/100