-
Notifications
You must be signed in to change notification settings - Fork 606
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
Reimplement IFunctionTypeInfoBuilder15 via NVI #4405
Reimplement IFunctionTypeInfoBuilder15 via NVI #4405
Conversation
⚪
|
⚪
|
@@ -646,8 +646,8 @@ class IFunctionTypeInfoBuilder14: public IFunctionTypeInfoBuilder13 { | |||
#if UDF_ABI_COMPATIBILITY_VERSION_CURRENT >= UDF_ABI_COMPATIBILITY_VERSION(2, 28) | |||
class IFunctionTypeInfoBuilder15: public IFunctionTypeInfoBuilder14 { | |||
public: | |||
virtual IFunctionTypeInfoBuilder15& SupportsBlocks() = 0; | |||
virtual IFunctionTypeInfoBuilder15& IsStrict() = 0; | |||
virtual IFunctionTypeInfoBuilder15& SupportsBlocksImpl(void) = 0; |
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.
Давай тут вид уберем
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.
Done.
@@ -709,6 +709,18 @@ class IFunctionTypeInfoBuilder: public IFunctionTypeInfoBuilderImpl { | |||
return *this; | |||
} | |||
|
|||
#if UDF_ABI_COMPATIBILITY_VERSION_CURRENT >= UDF_ABI_COMPATIBILITY_VERSION(2, 28) | |||
IFunctionTypeInfoBuilder& SupportsBlocks(void) { | |||
SupportsBlocksImpl(); |
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.
Тогда уж return SupportsBlocksImpl();
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.
Discussed offline: decided to left intact to be in sync with the surrounding sources.
All the interfaces provided by IFunctionTypeInfoBuilder15 has no non-virtual wrappers in the public interface IFunctionTypeInfoBuilder, and yield the instance of the particular version of the interface. This might break the chain of hints for function type builder. This patch reimplements IFunctionTypeInfoBuilder15 via NVI pattern following the way all previous versions of this interface are written.
To ensure everything works fine as a result of the previous patch, the hints used to create simple Arrow UDFs with optional arguments are reordered in the right way.
5bd7fff
to
a2b08e0
Compare
⚪
|
⚪
|
All the interfaces provided by
IFunctionTypeInfoBuilder15
has no non-virtual wrappers in the public interfaceIFunctionTypeInfoBuilder
, and yield the instance of the particular version of the interface. This might break the chain of hints for function type builder.This patch reimplements
IFunctionTypeInfoBuilder15
via NVI pattern following the way all previous versions of this interface are written.To ensure everything works fine as a result of the previous patch, the hints used to create simple Arrow UDFs with optional arguments are reordered in the right way.
Changelog category