Hi -

> The text certainly helped, especially in understanding the premise of
> the algorithm.  I admit though that I did skim some of the later parts
> of the documentation, diving into the code instead.  I ultimately just
> let the code and algorithm sink in by staring at and working with the
> code for an extended period of time.
> 
> I was hoping to resolve this issue soon, but it continues to haunt me.
>  Right now I'm playing with:
> 
>     Coalesce(a.B.C, d.E.F)
> 
> In the current code you'd end up with essentially (a.B.C, N) and
> (d.E.F, N), 

That's going down, in my opinion, a very slippery path. The last change 
destroyed one conceptual premise of SQL and HQL: Namely that conditions and 
expressions are two very different things. If you read the comment in the code 
above _memberExpressionMappings, you will see that it is now completely wrong. 
Also that paragraph that very clearly said that logical-null and value-null are 
two different things is now no longer true!

I find that an interesting semantics. However, you must accept that it is 
neither SQL semantics (where conditions and expressions are never mixed - you 
CANNOT assign the result of a condition like (A IS NULL OR B IS NOT NULL) to a 
variable) nor C# semantics (which has a different null semantics). So, we have 
to write down as precisely as possible that semantics.

> but the Coalesce of those two might be a non-null value
> since when we emptily outer join a.B.C, we don't know what d.E.F will
> be.  So Coalesce(N,N) may result in a true expression.  I'm
> considering introducing a "V" to represent a non-null non-boolean
> value.  

Please don't do it that way. A *condition* can never have a value different 
from T, N or F. So there cannot be any other mapping result of a member 
expression. After all, the meaning of that mapping (in 
_memberExpressionMappings) is "what the member expression's being null can have 
as result on the *condition*"!!
Please, let us not mix possible *condition* result and possible *expression* 
results!! I'll try to think about this a little ...

Regards
Harald

-- 
Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir
belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de

Reply via email to