On 12/07/11 13:39, Adriano dos Santos Fernandes wrote:
> On 07/12/2011 07:31, Alex Peshkoff wrote:
>>   On 12/05/11 04:23, Geoff Worboys wrote:
>>> So the power example would become:
>>>
>>> declare external function dPower
>>> double precision by descriptor, double precision by descriptor,
>>> double precision by descriptor, integer by descriptor
>>> returns parameter 3
>>> returns exception 4
>>> entry_point 'power' module_name 'fbudf';
>>>
>>> and the relevant part of the udf code could become:
>>> FBUDF_API void power(const paramdsc* v, const paramdsc* v2,
>>>    paramdsc* rc, paramdsc* rce)
>>> [...]
>>>          if (rct<  0 || rct2<  0 || !d&&  d2<  0)
>>>          {
>>>                  internal::setnull(rc);
>>>                  internal::set_int_type(rce, 1);
>>>                  return;
>>>          }
>>>
>>> Something like this could make UDFs more powerful and error
>>> situations easier to deal with.
>> On my mind much simpler way will be to have special interface (we talk
>> about FB3 and higher, though in 2X speical entrypoint may be easily
>> used) to notify engine about error condition in UDF. Something like:
>>
>> if (rct<  0 || rct2<  0 || !d&&  d2<  0)
>> {
>>      fb_get_master_interface()->getUdfHelper()->signalError(FB_MATH_ERROR);
>>      return 0.0;
>> }
>>
>> Certainly, UdfHelper interface name is just a sample like FB_MATH_ERROR
>> constant too.
>> This helps avoid artificial parameters passed to UDF.
>>
>>
> UDFs has there for what, 20 years?
>
> Why do we should add hacks to the new API to support them, now that we 
> have a replacement for it?

You are absolutely right, I have missed it.


------------------------------------------------------------------------------
Cloud Services Checklist: Pricing and Packaging Optimization
This white paper is intended to serve as a reference, checklist and point of 
discussion for anyone considering optimizing the pricing and packaging model 
of a cloud services business. Read Now!
http://www.accelacomm.com/jaw/sfnl/114/51491232/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to