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
