apache / apache/datafusion

Support ExistenceJoin type in HashJoin

オープン
#4,655 コメント 0 件 リアクション 1 件 担当者 0 名 GitHub で見る
enhancement
主要言語
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

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。