[Bug 27960] New: Grounded filter expressions are currently roaming and free-ranging in the analysis

https://www.w3.org/Bugs/Public/show_bug.cgi?id=27960

            Bug ID: 27960
           Summary: Grounded filter expressions are currently roaming and
                    free-ranging in the analysis
           Product: XPath / XQuery / XSLT
           Version: Last Call drafts
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P2
         Component: XSLT 3.0
          Assignee: mike@saxonica.com
          Reporter: abel.braaksma@xs4all.nl
        QA Contact: public-qt-comments@w3.org

In section 19.8.7.8 Streamability of Filter Expressions, a filter expression
B[P] is considered in situations (1) when B is crawling, (2) when P is
motionless and otherwise, the rules state that it is roaming and free-ranging.

These rules seem to be incomplete. 

Consider $doc[child::foo]. $doc is a VarRef, which is grounded by default
(except in functions). The expression should therefor be grounded and
motionless.

I think it would work if we change:

"2. If P is motionless, then the posture and sweep of B;", 

such that we make sure that P is assessed with the context posture set to the
posture of B, in which case $doc, which has grounded posture, would yield
child::foo in the example above as motionless.

Alternatively or in addition, we could simply add a rule: "If B is grounded,
B[P] is grounded and motionless".

In fact, it looks like we don't say at all what the context posture is in cases
of filter expressions. And rule 5 of 19.8.7.7 Streamability of Axis Steps
doesn't say it either for predicates in axis steps.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Wednesday, 4 February 2015 19:52:30 UTC