[BUG] `BothV()` not supported in Gremlin in Calcite-based Compiler
まだ誰も着手していません。
評価
調査の方向性
指定された planner 設定で lsqb データセットに対して Gremlin クエリを再現し、その後、issue に示されている論理プランと物理プランを比較します。bothV() を処理するコンパイラパスを追跡し、物理プランに不足している GetV オペレータが含まれ、エッジではなく頂点を返す場合に処理が完了することを確認します。
索引モデルが issue の本文から書いたものです。
説明
Describe the bug
A clear and concise description of what the bug is.
As titled.
Below is an example query on lsqb dataset that illustrates the problem:
gremlin> g.V().hasLabel("city").has("id", 111).bothE("isLocatedIn").bothV()
==>e[48167737][72088380363509640-isLocatedIn->648518346341351535]
==>e[48167890][72092778410023144-isLocatedIn->648518346341351535]
==>e[48169242][72066390130974264-isLocatedIn->648518346341351535]
==>e[48170302][72057594037953336-isLocatedIn->648518346341351535]
==>e[48170858][72092778410022784-isLocatedIn->648518346341351535]
==>e[48171593][72092778410034236-isLocatedIn->648518346341351535]
...
, where bothV() is ignored.
The logical plan looks like:
GraphLogicalProject($f0=[_], isAppend=[false])
GraphLogicalExpand(tableConfig=[{isAll=false, tables=[isLocatedIn]}], alias=[_], opt=[BOTH])
GraphLogicalSource(tableConfig=[{isAll=false, tables=[city]}], alias=[_], fusedFilter=[[=(_.id, 111)]], opt=[VERTEX])
and the physical plan looks like:
operations: [
PhysicalOpr {
opr: Scan(
Scan {
scan_opt: Vertex,
...
}
PhysicalOpr {
opr: Repartition(
Repartition {
strategy: Some(
ToAnother(
Shuffle {
shuffle_key: None,
},
),
),
},
),
},
PhysicalOpr {
opr: Edge(
EdgeExpand {
v_tag: None,
direction: Both,
params: Some(
QueryParams {
tables: [
NameOrId {
item: Some(
Id(
11,
),
),
},
],
columns: [],
is_all_columns: false,
limit: None,
predicate: None,
sample_ratio: 1.0,
extra: {},
},
),
alias: None,
expand_opt: Edge,
is_optional: false,
},
),
},
PhysicalOpr {
opr: Project(
Project {
...})}
which miss the GetV operator for bothV().
To reproduce, compiler configuration is as follows:
graph.planner.is.on=true
graph.planner.opt=RBO
graph.planner.rules=FilterIntoJoinRule, FilterMatchRule, ExtendIntersectRule, ExpandGetVFusionRule
graph.physical.opt=proto
gremlin.script.language.name=antlr_gremlin_calcite
- 主要言語
- C++
- スター
- 3.6k
- フォーク
- 470
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
alibaba/GraphScope のほかの issue
-
[BUG] Failed archive extraction deletes the dataset cache対応中かも @dajiaohuang が 10 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
alibaba/GraphScope#4674 ·
-
stale
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
alibaba/GraphScope#4655 · コメント 2 件 ·
-
stale
難易度 5/5 1週間以上 初心者へのやさしさ 38/100
alibaba/GraphScope#4654 · コメント 2 件 ·
-
stale
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
alibaba/GraphScope#4647 · コメント 3 件 ·
-
stale
難易度 4/5 3〜5日 初心者へのやさしさ 30/100
alibaba/GraphScope#4639 · コメント 2 件 ·
alibaba/GraphScope の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
bug needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
microsoft/microsoft-ui-xaml#12515 · コメント 1 件 · リアクション 1 件 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
FujiNetWIFI/fujinet-firmware#2261 ·
メンテナーはふだん 1 日以内に返信
-
bug difficulty: easy good first issue help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
nagisa-kamishiro/rosehip#73 ·
メンテナーはふだん 1 日以内に返信
-
bazel bug odb
難易度 1/5 1時間未満 初心者へのやさしさ 80/100
The-OpenROAD-Project/OpenROAD#12095 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信