db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From e...@jpox.org
Subject Re: [jira] Commented: (JDO-246) JPOX eliminates duplicates in the query result although DISTINCT is not specified.
Date Fri, 10 Feb 2006 11:05:12 GMT
Thanks for the comments, I agree with you all.

Regards,

Quoting Michael Bouschen <mbo.tech@spree.de>:

> Hi,
>
> I have the same understanding of the semantics of projections of
> collection and map fields as Wes and Bin Sun. The query would return the
> collections or maps as single cells, so the query result would be a list
> of collections or maps. I also agree that support for projections of
> collection and map fields does not add much value, but AFAIK the current
> spec allows this.
>
> I think the shape of the query result is different whether projecting a
> collection field or including a variable in the result that iterates the
> collection:
> (1) SELECT employees FROM Department
> (2) SELECT e FROM Department WHERE employees.contains(e)
> The first query returns a list of collections of employees, so for each
> department it returns the department's employee collection. Query (2)
> returns a list of employees, where each returned employee is included in
>   an employee collection of at least one department.
>
> Given the above is correct, JDOQL would never return Map.Entry
> instances. Either the query projects the entire map or it iterates the
> map using containsKey or containsValue, but there is no contains for maps.
>
> Regards Michael
>
> > Hi, all!
> >
> >     If I didn't miss anything in the spec, I would
> > expect 'single-cell' result for a collection or map
> > field, as if it is a simple field or reference field.
> >
> >     eg.
> >
> > "select employees from Department"
> > -->
> > [employees of Dept 1]
> > [employees of Dept 2]
> > [employees of Dept 3]
> > ...
> >
> > Assume Student.scores: Map<Course, Float>
> > "select name, scores from Student"
> > -->
> > aaa,[scores map for aaa]
> > bbb,[scores map for bbb]
> > ccc,[scores map for ccc]
> >
> >
> > --- erik@jpox.org wrote:
> >
> >
> >>Actually, you can project a collection field, but in
> >>fact what is projected are
> >>the elements of the collection.
> >>
> >>dept = {"dept1","dept2"}
> >>dept1.employees = {"emp1","emp2","emp3"}
> >>dept2.employees = {"emp4","emp5"}
> >>
> >>"select employees from Department" will result in
> >>
> >>emp1
> >>emp2
> >>emp3
> >>emp4
> >>emp5
> >>
> >>"select this, employees from Department" will result
> >>in
> >>
> >>dept1, emp1
> >>dept1, emp2
> >>dept1, emp3
> >>dept2, emp4
> >>dept2, emp5
> >>
> >>I would like to know what would that be in case of
> >>Map or arrays.
> >>
> >>Quoting Wes Biggs <wes@tralfamadore.com>:
> >>
> >>
> >>>It doesn't make much sense to me to project to map
> >>
> >>or collection fields,
> >>
> >>>though I don't see it explicitly discussed in the
> >>
> >>spec. I suppose if we
> >>
> >>>allowed it, the cell would be of type Map or
> >>
> >>Collection (or etc. as
> >>
> >>>declared).  Or am I missing some kind of automatic
> >>
> >>flattening function?
> >>
> >>>i.e., today can you do:
> >>>"select employees from Department" (returns cells
> >>
> >>of type Collection)?
> >>
> >>>Perhaps I'm confusing the issue.
> >>>
> >>>Wes
> >>>
> >>>erik@jpox.org wrote:
> >>>
> >>>
> >>>>Thanks Craig.
> >>>>
> >>>>If a map is projected, do we have two cells (key,
> >>
> >>value) or one cell with
> >>
> >>>type
> >>>
> >>>>Map.Entry ?
> >>>>
> >>>>I would expect it to be Map.Entry, what is in the
> >>
> >>spec?
> >>
> >>>>
> >>>>
> >>>
> >>
> >>
> >>
> >
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam?  Yahoo! Mail has the best spam protection around
> > http://mail.yahoo.com
>
>
> --
> Michael Bouschen		Tech@Spree Engineering GmbH
> mailto:mbo.tech@spree.de	http://www.tech.spree.de/
> Tel.:++49/30/235 520-33		Buelowstr. 66
> Fax.:++49/30/2175 2012		D-10783 Berlin
>




Mime
View raw message