The existing SubstraitRelNodeConverter was not extensible enough to allow for conversion of custom scalar and aggregate functions from Substrait to Calcite and back.
These changes:
Add builder utils for building scalar and aggregate functions.
Expose existing extension building code in SimpleExtension to allow for easier re-use.
Update SubstraitRelNodeConverter with a constructor that takes a ScalarFunctionConverter and AggregateFunctionConverter to allow end users to include additional sigs.
Does the same w SubstraitRelVisitor.
Adds an AggregateFunctionConverter constructor that consumes additionalSignatures.
All of this functionality is tested in CustomFunctionTest
The existing SubstraitRelNodeConverter was not extensible enough to allow for conversion of custom scalar and aggregate functions from Substrait to Calcite and back.
These changes:
SimpleExtension
to allow for easier re-use.SubstraitRelNodeConverter
with a constructor that takes aScalarFunctionConverter
andAggregateFunctionConverter
to allow end users to include additional sigs.SubstraitRelVisitor
.AggregateFunctionConverter
constructor that consumes additionalSignatures.All of this functionality is tested in
CustomFunctionTest