UDX return value macros

There are macros that you can use to ensure that return values from the evaluate() and finalResult() methods are valid values. These macros are defined in the /nz/kit/sys/include/udxbase.h header file.
int returnType()
IntervalReturn* intervalReturnInfo()
TimeTzReturn* timetzReturnInfo()
StringReturn* stringReturnInfo()
Numeric128Val* numeric128ReturnInfo()
Numeric64Val* numeric64ReturnInfo()
Numeric32Val* numeric32ReturnInfo()
void setReturnNull(bool val)
NZ_UDX_RETURN_NULL()
NZ_UDX_RETURN_STRING(x)
NZ_UDX_RETURN_BOOL(x)
NZ_UDX_RETURN_DATE(x)
NZ_UDX_RETURN_TIME(x)
NZ_UDX_RETURN_TIMETZ(x)
NZ_UDX_RETURN_NUMERIC32(x)
NZ_UDX_RETURN_NUMERIC64(x)
NZ_UDX_RETURN_NUMERIC128(x)
NZ_UDX_RETURN_FLOAT(x)
NZ_UDX_RETURN_DOUBLE(x)
NZ_UDX_RETURN_INTERVAL(x)
NZ_UDX_RETURN_INT64(x)
NZ_UDX_RETURN_INT32(x)
NZ_UDX_RETURN_INT16(x)
NZ_UDX_RETURN_INT8(x)
NZ_UDX_RETURN_TIMESTAMP(x)
NZ_UDX_RETURN_JSON(x)
NZ_UDX_RETURN_JSONB(x)
NZ_UDX_RETURN_JSONPATH(x)