Skip to content

feat: GQL support#849

Draft
SemyonSinchenko wants to merge 20 commits into
graphframes:mainfrom
SemyonSinchenko:829-schema-and-export
Draft

feat: GQL support#849
SemyonSinchenko wants to merge 20 commits into
graphframes:mainfrom
SemyonSinchenko:829-schema-and-export

Conversation

@SemyonSinchenko

@SemyonSinchenko SemyonSinchenko commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

What changes were proposed in this pull request?

A foundation for the future GQL query-engine: a graph schema. I'm going to use it to determine possible paths and split query to parts at the stage of query analysis.

At the moment:

  • Schema classes
  • Helpers: schmea and schemaDOT for the PropertyGraphFrame

JVM only for now.

Why are the changes needed?

Close #829
Related to #561
Related to #521

How it looks like?

Schema:

Property graph schema:
Vertex property groups (2):
  - movies
  - people
Edge property groups (2):
  - likes: people -> movies
  - messages: people -> people

DOT-schema (can be imported to NetworkX or any other tool):

digraph SchemaGraph {
  "movies";
  "people";
  "people" -> "movies" [label="likes"];
  "people" -> "people" [label="messages"];
}

@SemyonSinchenko SemyonSinchenko self-assigned this Jun 9, 2026
@SemyonSinchenko SemyonSinchenko marked this pull request as draft June 15, 2026 14:27
@SemyonSinchenko SemyonSinchenko changed the title feat: PG schema and DOT-string export feat: GQL support Jun 18, 2026
@SemyonSinchenko

Copy link
Copy Markdown
Collaborator Author

Even if spark uses https://github.com/ihji/sbt-antlr4 the plugin looks unmaintained (last commit 5 years ago, staled PRs and unanswered issues). And the whole plugin is less than 200 lines (and we need only part of it). So, my decision was to add our own internal plugin.

@codecov-commenter

codecov-commenter commented Jun 19, 2026

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 88.90728% with 67 lines in your changes missing coverage. Please review.
✅ Project coverage is 80.33%. Comparing base (28d181c) to head (c6a65b5).

Files with missing lines Patch % Lines
...hframes/propertygraph/internal/QueryExecutor.scala 89.44% 23 Missing ⚠️
...raphframes/propertygraph/internal/GqlExplain.scala 77.61% 15 Missing ⚠️
...raphframes/propertygraph/internal/AstBuilder.scala 92.92% 7 Missing ⚠️
...rames/propertygraph/internal/GraphStatistics.scala 12.50% 7 Missing ⚠️
.../graphframes/propertygraph/internal/JoinPlan.scala 25.00% 6 Missing ⚠️
...graphframes/propertygraph/PropertyGraphFrame.scala 95.23% 2 Missing ⚠️
...rg/graphframes/propertygraph/internal/GqlAst.scala 80.00% 2 Missing ⚠️
...s/propertygraph/internal/SchemaGraphSnapshot.scala 95.23% 2 Missing ⚠️
...hframes/propertygraph/property/PropertyGroup.scala 33.33% 2 Missing ⚠️
.../graphframes/propertygraph/internal/Resolver.scala 98.70% 1 Missing ⚠️
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #849      +/-   ##
==========================================
+ Coverage   79.26%   80.33%   +1.06%     
==========================================
  Files          81       90       +9     
  Lines        4712     5293     +581     
  Branches      554      646      +92     
==========================================
+ Hits         3735     4252     +517     
- Misses        977     1041      +64     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: PropertyGraph schema and DOT-export

2 participants