Hi, I have squashed the commits for merging[1] and have created an issue in the jira[2].
[1] https://github.com/apache/vxquery/pull/143 [2] https://issues.apache.org/jira/browse/VXQUERY-226 Thank you. Yours sincerely, Riyafa On 5 August 2016 at 22:53, Riyafa Abdul Hameed <[email protected]> wrote: > Hi, > > The issue was in the XMLQueryTranslator. I have fixed the issue with the > relevant tests[1]. > > [1] https://github.com/apache/vxquery/pull/138 > > Thank you. > > Yours sincerely, > Riyafa > > On 5 August 2016 at 21:01, Till Westmann <[email protected]> wrote: > >> Hi Riyafa, >> >> I agree with your expected results and at first glance it looks like an >> implementation issue to me. >> It seems that the direct application of the object key listing on an >> object >> results in a different plan than doing the same operation through a >> let-variable. >> To find the issue I would try to look at the different optimized plans for >> both queries and see what the difference between the plans is. It almost >> looks like the object key listing is not executed and so it might be that >> it >> is not part of the plan (even though that seems highly unlikely). >> If it is part of the plan, it would be interesting to find out what >> exactly >> the data model instance looks like that is passed from the key access to >> the >> object key listing. Using fn:trace to do that might be a good first step. >> >> Does this help? >> >> Cheers, >> Till >> >> On 5 Aug 2016, at 7:42, Riyafa Abdul Hameed wrote: >> >> Hi, >>> >>> When looking for a good example for the documentation, I came across the >>> following issue in Object key listing and Array unboxing: >>> >>> The code >>> >>> let $x := { >>> “name” : {“id” : 123, “first” : “Riyafa”, “Last” : “Abdul >>> Hameed”}}return $x(“name”)() >>> >>> returns >>> >>> {“id” : 123, “first” : “Riyafa”, “Last” : “Abdul Hameed”} >>> >>> but the code, >>> >>> let $x := { >>> “name” : {“id” : 123, “first” : “Riyafa”, “Last” : “Abdul Hameed”}} >>> let $y := $x(“name”)return $y() >>> >>> returns >>> >>> id >>> first >>> Last >>> >>> But, as I understand both code should return: >>> >>> id >>> first >>> Last >>> >>> The same issue is present in Array unboxing: >>> For example the code >>> >>> let $x := [[ “mercury”, “venus”, “earth”, “mars” ],[ “monday”, >>> “tuesday”, “wednesday”, “thursday” ]]return $x(1)() >>> >>> returns >>> >>> [ “mercury”, “venus”, “earth”, “mars” ] >>> >>> >>> while the code >>> >>> let $x := [[ “mercury”, “venus”, “earth”, “mars” ],[ “monday”, >>> “tuesday”, “wednesday”, “thursday” ]] >>> let $y := $x(1)return $y() >>> >>> returns >>> >>> mercury >>> venus >>> earth >>> mars >>> >>> Here also I think both should return: >>> >>> mercury >>> venus >>> earth >>> mars >>> >>> I would like to know whether this is a language feature or if its an >>> implementation issue. If it’s an implementation issue I am not sure I >>> understand where the issue is. Any suggestions would be highly >>> appreciated. >>> >>> -- >>> Riyafa Abdul Hameed >>> Undergraduate, University of Moratuwa >>> >>> Email: [email protected] >>> Website: https://riyafa.wordpress.com/ <http://riyafa.wordpress.com/> >>> <http://facebook.com/riyafa.ahf> <http://lk.linkedin.com/in/riyafa> >>> <http://twitter.com/Riyafa1> >>> >> > > > -- > Riyafa Abdul Hameed > Undergraduate, University of Moratuwa > > Email: [email protected] > Website: https://riyafa.wordpress.com/ <http://riyafa.wordpress.com/> > <http://facebook.com/riyafa.ahf> <http://lk.linkedin.com/in/riyafa> > <http://twitter.com/Riyafa1> > -- Riyafa Abdul Hameed Undergraduate, University of Moratuwa Email: [email protected] Website: https://riyafa.wordpress.com/ <http://riyafa.wordpress.com/> <http://facebook.com/riyafa.ahf> <http://lk.linkedin.com/in/riyafa> <http://twitter.com/Riyafa1>
