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

feat!: require compound functions names in extension references #537

Merged
merged 3 commits into from
Aug 9, 2023

Conversation

vbarua
Copy link
Member

@vbarua vbarua commented Aug 7, 2023

BREAKING CHANGE: plans referencing functions using simple
names (e.g. not vs not:bool) will no longer be valid.

@github-actions
Copy link

github-actions bot commented Aug 7, 2023

ACTION NEEDED

Substrait follows the Conventional Commits
specification
for
release automation.

The PR title and description are used as the merge commit message. Please update your PR title and description to match the specification.

@vbarua
Copy link
Member Author

vbarua commented Aug 7, 2023

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).

@vbarua vbarua changed the title feat! require compound functions names in extension references feat!: require compound functions names in extension references Aug 7, 2023
mbrobbel
mbrobbel previously approved these changes Aug 7, 2023
@vbarua vbarua force-pushed the vbarua/require-types-in-function-names branch from f7ef283 to 2595292 Compare August 7, 2023 20:43
Copy link
Member

@westonpace westonpace left a 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.

site/docs/extensions/index.md Outdated Show resolved Hide resolved
site/docs/extensions/index.md Outdated Show resolved Hide resolved
@jacques-n
Copy link
Contributor

I'm good with this change

Copy link
Member

@westonpace westonpace left a 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.

@vbarua
Copy link
Member Author

vbarua commented Aug 8, 2023

@westonpace
Added a BREAKING CHANGE to the commit message. The feat! should also mark this as a breaking change. Is that what you had in mind, or is there something else I need to do?

@vbarua vbarua requested a review from westonpace August 8, 2023 20:31
@mbrobbel
Copy link
Member

mbrobbel commented Aug 9, 2023

@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.

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.

@westonpace westonpace merged commit 2503beb into main Aug 9, 2023
15 of 16 checks passed
@westonpace
Copy link
Member

Thanks for writing up this change!

EpsilonPrime pushed a commit that referenced this pull request Aug 21, 2023
#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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants