<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>4521</bug_id>
          
          <creation_ts>2007-05-02 13:25:29 +0000</creation_ts>
          <short_desc>K2-Axes-32</short_desc>
          <delta_ts>2007-06-13 09:38:29 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>XML Query Test Suite</product>
          <component>XML Query Test Suite</component>
          <version>1.0.2</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows NT</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Mills">tim</reporter>
          <assigned_to name="Frans Englich">frans.englich</assigned_to>
          
          
          <qa_contact name="Mailing list for public feedback on specs from XSL and XML Query WGs">public-qt-comments</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>14976</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Mills">tim</who>
    <bug_when>2007-05-02 13:25:29 +0000</bug_when>
    <thetext>Having started to look at optimization of queries, I believe this query can be reduced to &quot;true&quot; avoiding the expected error.

Since (/) introduces a &quot;treat as document&quot;, the static type of the argument to fn:root can be deduced as empty-sequence, because we know that the parent of a document node is empty-sequence.  fn:root therefore returns empty-sequence, then empty() returns true.

I believe this to be similar to the case pointed out by Mike Kay in bug report 4277 (in which static type analysis means that a cast which would fail need not be evaluated).

(:*******************************************************:)
(: Test: K2-Axes-32                                      :)
(: Written by: Frans Englich                             :)
(: Date: 2007-01-22T21:16:10+01:00                       :)
(: Purpose: Apply axis &apos;..&apos; to the return value of fn:root(). :)
(:*******************************************************:)
declare variable $myVar := &lt;e/&gt;;
            empty(fn:root($myVar/(/)/..))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15384</commentid>
    <comment_count>1</comment_count>
    <who name="Andrew Eisenberg">andrew.eisenberg</who>
    <bug_when>2007-06-12 19:48:33 +0000</bug_when>
    <thetext>You&apos;ve raised an interesting issue, Tim. The WGs discussed this at our June 5 meeting and we agreed that if static analysis can be used to determine the result of a query, then dynamic evaluation need not occur.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15409</commentid>
    <comment_count>2</comment_count>
    <who name="Frans Englich">frans.englich</who>
    <bug_when>2007-06-13 08:53:03 +0000</bug_when>
    <thetext>And XQTS_current.zip has been updated in CVS to reflect that, hopefully. K2-Axes-32 now has the baselines XPST0005, XPDY0002, and &quot;true&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15410</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Mills">tim</who>
    <bug_when>2007-06-13 09:38:29 +0000</bug_when>
    <thetext>Thanks.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>