On 29/10/2015 04:02, Claudio Valderrama C. wrote:
>> -----Original Message-----
>> From: Arno Brinkman [mailto:fbsupp...@abvisie.nl] 
>> Sent: MiƩrcoles, 28 de Octubre de 2015 21:27
>>
>> I've to dig deep in my memory (ooh boy), but i think the 
>> stream flag NULL is 
>> not treated proper in this case.
>>
>> Thinking i've fixed something simular or even this in the 
>> past, but seems 
>> not :-/
> After reading Adriano's mail, I stopped looking at v2.5.
> :-)
>
> I think the case can be summarized and optimized:
>
> given
> T = table
> V = the result of a selectable proc, view or derived table,
> if T left join V produces a null record in V caused by a non-matching outer
> join,
> then coalesce() in V should produce null immediately, no need to evaluate
> the arguments. 
>
But not only COALESCE... For example, an UDF should not run in this case.

So the verification should be done before run the view's field expression.

And that is my idea. A generic (for all expression nodes) set of stream
(like blr_derived_expr has) that will be verified directly by EVL_expr,
before calling the node->execute.


Adriano


------------------------------------------------------------------------------
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to