-
Notifications
You must be signed in to change notification settings - Fork 156
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
feat!: require compound functions names in extension references #537
Conversation
ACTION NEEDED Substrait follows the Conventional Commits The PR title and description are used as the merge commit message. Please update your PR title and description to match the specification. |
As discussed in Slack, this PR removes the ability to use simple names in function references. This change makes function lookup easier from an implementor perspective. It also helps avoid a potential pitfall where, for a function with only a single implementation, adding an implementation becomes a breaking change as an plan that referenced that function using its simple name is no longer valid (as the function reference is now ambiguous). |
f7ef283
to
2595292
Compare
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.
Some minor wording suggestions but I agree with the overall change.
Co-authored-by: Weston Pace <[email protected]>
Co-authored-by: Weston Pace <[email protected]>
I'm good with this change |
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.
This is "technically" a breaking change. Although it's not actually a proto change so I doubt it will affect too many people. However, it would be good to label it as a breaking change. Can we do that real quick? Then I approve and we can merge.
@mbrobbel we might need to update the validator to be more strict now (and can probably simplify some things in the process). Let me know if I can help.
@westonpace |
Yes, this being more strict simplifies the validation logic. I haven't had much time lately to make progress on the parser, but I do plan on continuing the effort. I already have a TODO for this, because I didn't implement compound name parsing yet. |
Thanks for writing up this change! |
#537 clarified that compound extension signatures are now required. I noticed that the table specifying how to type those signatures didn't include booleans -- I _think_ it's probably `bool` but either way it should be included. Also in this PR, a quick indentation fix so that the `Note:` admonitions render correctly (there needs to be blank line and then an indented block)
BREAKING CHANGE: plans referencing functions using simple
names (e.g. not vs not:bool) will no longer be valid.