Hi All,
In UDF executing the context->SetError(const char* error_msg) method impala again retries the UDF.
Below is my UDF:-
IntVal my_udf(
FunctionContext* context,
IntVal& sInput
)
{
if( sInput.val == 0 )
{
context->SetError( "Off Value" );
return 0;
}
IntVal iResult(sInput.val + 1);
return iResult;
}
DDL :--
CREATE FUNCTION my_udf(INTEGER) RETURNS INTEGER
LOCATION '/opt/impala/udfs/myudf.so'
SYMBOL = 'my_udf';
So if we debug this UDF using GDB.
If we add the break point at "context->SetError( "Off Value" );" this line then we come to know that if we pass 0 to this UDF this will hit the break point more than one time.
So please let me know that it is right behavior?
i ran this UDF in CDH 5.10 & CDH 5.11.