-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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 initial support for serializing physical plans with Substrait #5176
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks Andy
@@ -15,8 +15,8 @@ | |||
// specific language governing permissions and limitations | |||
// under the License. | |||
|
|||
pub mod consumer; | |||
pub mod producer; | |||
pub mod logical_plan; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like these name changes. Make it much more clear what the library is trying to offer.
expression::MaskExpression, read_rel::ReadType, rel::RelType, Rel, | ||
}; | ||
|
||
/// Convert Substrait Rel to DataFusion LogicalPlan |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit, shouldn't this be ExecutionPlan
match &rel.rel_type { | ||
Some(RelType::Read(read)) => { | ||
if read.filter.is_some() || read.best_effort_filter.is_some() { | ||
return Err(DataFusionError::NotImplemented( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this just because this is a first pass at getting the framework together or is it truly not possible with DataFusion today?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, just a first pass. I plan on following up with smaller PRs to make this usable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me 🚀
I also tried to do physical plan - substrait proto conversion, but gives up and turns to logical plan for simplicity. Glad to see this work starts again.
Benchmark runs are scheduled for baseline = d5077b5 and contender = de3deb3. de3deb3 is a master commit associated with this PR. Results will be available as each benchmark for each run completes. |
Which issue does this PR close?
Part of #5173
Rationale for this change
I would like to be able to use Substrait with physical plans.
What changes are included in this PR?
substrait::logical_plan
namespace.substrait::physical_plan
namespace.ParquetExec
(really, not enough to be actually useful, but gets the structure in place).Are these changes tested?
New test added
Are there any user-facing changes?
No