Hi Riyafa,

sorry for coming late to the discussion.
Could you change the message of the commit to contain the issue number?
Then the JIRA issue will automatically be updated with a link to the commit. The message could be e.g. (also keeping to the 50 char limit for the subject
line):

VXQUERY-226: fix key listing and array unboxing

Cheers,
Till

On 7 Aug 2016, at 17:58, Riyafa Abdul Hameed wrote:

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>

Reply via email to