Hi Patrick -

(a) Timeline: "Slow going". I can work on my commute (Munich S-Bahn, about 45 
minutes/direction = 90 minutes/day).

(b) No, no tests for self joins. I'll add them in the evening.

BUT!!!!!!!!!!!!

(c) De Morgan allows us to "write an || with &&": A || B is the same as !(!A && 
!B). Although it is not clear that this is also true under the "navigational 
logic extension of ||", I managed to write a short test that shows that my code 
is still wrong. Adding some code for the ! operator fixed it, but I'm far from 
a complete test suite; and moreover, !(!(...)) will now create "suboptimal 
joins".

(d) 2 more testcases I wrote with ||s of depth 3 fail. I have to look ...

(e) I'm worried about the Any operator. I have not yet written tests for it, 
but I fear that "it doesn't work at all" (if the condition inside has 
navigations + ||s). I fear that this cannot be solved with Linq rewriting, but 
rather requires changes to the HQL generator (create OUTER JOINs for 
subselects???).

So long :-(

Harald


-------- Original-Nachricht --------
> Datum: Mon, 28 Mar 2011 20:18:29 -0600
> Von: Patrick Earl <[email protected]>
> An: [email protected]
> Betreff: Re: [nhibernate-development] NH-2583 - Query with || operator and 
> navigations (many-to-one) creates wrong joins

> Hi Harald.
> 
> Thanks for your continued work on this.
> 
> I'm wondering... does your solution support self-joins?  Do you have
> tests for that?  If not, it would be fantastic if you could add that.
> If you have enough time to help with this early this week, we can get
> it into the next 3.2 release.
> 
> At this point, I'm looking over your code, trying to understand what's
> going on.
> 
> Thanks!
> 
>         Patrick Earl
> 
> 
> On Mon, Mar 28, 2011 at 2:09 AM, Harald Mueller <[email protected]>
> wrote:
> > Hi Patrick, all,
> >
> > In my long text from yesterday, there are (at least) two errors:
> >
> > ----
> > In section 2., about 3 lines below (||-1), there is a "not" missing:
> >
> > Other member expressions (with simple types or component types) are NOT
> of relevance to this discussion, except where explicitly noted.
> >
> > ----
> > In section 8., the third of the "Four examples" is simply wrong! The
> correct argument is:
> >
> > * When we encounter a.B.C.Q == null (which would become a_B_C.Q IS NULL
> on the database), we do not know anything: This condition becoming true
> could be the result of a missing a.B, or a missing a.B.C, or actually that
> a.B.C.Q is null. So we cannot add anything to the "definitely != null" member
> expression set.
> >
> > Sorry for the glitches.
> >
> > Best regards
> > Harald
> >
> > --
> > NEU: FreePhone - kostenlos mobil telefonieren und surfen!
> > Jetzt informieren: http://www.gmx.net/de/go/freephone
> >

-- 
GMX DSL Doppel-Flat ab 19,99 Euro/mtl.! Jetzt mit 
gratis Handy-Flat! http://portal.gmx.net/de/go/dsl

Reply via email to