Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add substrait query frontend #2075

Closed
wants to merge 7 commits into from
Closed

Add substrait query frontend #2075

wants to merge 7 commits into from

Conversation

mavam
Copy link
Member

@mavam mavam commented Feb 9, 2022

This PR adds support for a new query language frontend using substrait, a cross-language protobuf-spec for query plans. The idea of this query language plugin is that users can easily connect any query language that compiles into substrait, and VAST takes the query plan as binary substrait blob.

This code originated from our bi-monthly hackathon and was heavily inspired by the awesome work from the @duckdb folks over at duckdb/duckdb#3034. It's highly experimental in nature.

Moving forward, we may consider pushing substrait deeper into VAST and adopting it as only internal representation for a query plan, similar to what Arrow aims at with Compute IR.

📝 Checklist

  • Add substrait as subtree
  • Compile protobufs via CMake
  • Add plugin scaffold
  • Implement translation logic
  • Add unit tests
  • Add integration tests
  • Rebase onto master after merging Add new query language plugin #2074
  • Add changelog entry
  • Update docs

🎯 Review Instructions

File-by-file.

mavam and others added 6 commits February 9, 2022 14:44
This commit adds a new query language plugin that allows for specifying
"frontend" languages.

We rewrote the Sigma rule parser as an example plugin to demonstrate the
use.
@mavam mavam added the feature New functionality label Feb 9, 2022
@dominiklohmann
Copy link
Member

@mavam do you plan to proceed this work sometime in the future, or can we close this as it's unlikely to be picked up again?

@mavam
Copy link
Member Author

mavam commented Mar 4, 2022

We can close it until we pick it up again. This was a 24h hackathon experiment. We got a good understanding how DuckDB integrates with Substrait and learned about DuckDB's internal query plan representation. We also got hands-on experience with Substrait and were able to extract WHERE expressions. So a success overall.

Before going deeper, we have to do some homework in VAST so that we can equip query engines with the needed partitions relevant to a query, as well as sqlizing VASTQL.

@mavam mavam closed this Mar 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants