... |
* _invocationClass/invocationMethod_\- optional properties indicating the method to invoke when the UDF is not pushed down. |
* _Deterministic_\- if the method will always return the same result for the same input parameters. Defaults to false. It is important to mark the function as deterministic if it returns the same value for the same inputs as this will lead to better performance. See also the Relational extension boolean metadata property "deterministic" and the DDL OPTION property "determinism". |
Even _Pushdown_ required functions need to be added as a UDF to allow Teiid to properly parse and resolve the function. _Pushdown_ scalar functions differ from normal user-defined functions in that no code is provided for evaluation in the engine. An exception will be raised if a pushdown required function cannot be evaluated by the appropriate source. |
If you need to extend Teiid's scalar or aggregate function library, then Teiid provides a means to define custom or User Defined Functions(UDF).
The following are used to define a UDF.
Even Pushdown required functions need to be added as a UDF to allow Teiid to properly parse and resolve the function. Pushdown scalar functions differ from normal user-defined functions in that no code is provided for evaluation in the engine. An exception will be raised if a pushdown required function cannot be evaluated by the appropriate source.