> -----Original Message-----
> From: Adriano dos Santos Fernandes [mailto:adrian...@gmail.com] 
> Sent: Martes, 27 de Octubre de 2015 6:40
> 
> The problem is that we can't go to evaluate blr_coalesce for a "null
> stream".

Yes, I thought so but there are two cases with a null stream:

- coalesce inside a view:
if the view if the non-mandatory table in a left join, coalesce shouldn't
run (the case in the tracker)

- coalesce in a typical left join between two tables, obviously coalesce
should run. :-)
select lt.A, coalesce(rt.A, lt.A)
from lt left join rt on <cond>

I wasn't sure how to distinguish the two cases. I had two elements:
indicator of end of stream and indicator that the relation was a view, but I
need to make sure such view is the non-mandatory side of a left join.

> Currently that can be done with blr_derived-expr but it's 
> very invasive
> in the optimization process.

I looked at it in the code but seemed like too much. ;-)

> I've sent for Dmitry's analysis an idea to use a kind of 
> "runtime only"
> blr_derived_expr.

Nice to know.

C.


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

Reply via email to