Public bug reported:

If a FLWOR has a sequential return clause, all of the binding sequences
of the clauses are materialized before the return clause is executed.
This behavior is correct according to the latest Scripting specification
and avoids confusion if the return clause would modify any input to one
of the clauses.

However, the downside is that there is currently no way to stream the
input. For example, in the following query, $contents is completely
materialized before the sequential local:test function is invoked.

variable $xmlcontents := fetch:content("big-file.xml");

let $contents := parse-xml:parse(
      $xmlcontents,
      <opt:options>
        <opt:parse-external-parsed-entity opt:skip-root-nodes="1" />
      </opt:options>)
for $w at $pos in $contents
return
{
    local:test();
    $w
}

There has been an extensive discussion on zorba-dev (subject "Streaming
and Sequential FLWOR -> no good") on this topic but no satisfying
solution has been found, yet.

** Affects: zorba
     Importance: High
         Status: New

-- 
You received this bug notification because you are a member of Zorba
Coders, which is the registrant for Zorba.
https://bugs.launchpad.net/bugs/1026250

Title:
  streaming and sequential flwor

Status in Zorba - The XQuery Processor:
  New

Bug description:
  If a FLWOR has a sequential return clause, all of the binding
  sequences of the clauses are materialized before the return clause is
  executed. This behavior is correct according to the latest Scripting
  specification and avoids confusion if the return clause would modify
  any input to one of the clauses.

  However, the downside is that there is currently no way to stream the
  input. For example, in the following query, $contents is completely
  materialized before the sequential local:test function is invoked.

  variable $xmlcontents := fetch:content("big-file.xml");

  let $contents := parse-xml:parse(
        $xmlcontents,
        <opt:options>
          <opt:parse-external-parsed-entity opt:skip-root-nodes="1" />
        </opt:options>)
  for $w at $pos in $contents
  return
  {
      local:test();
      $w
  }

  There has been an extensive discussion on zorba-dev (subject
  "Streaming and Sequential FLWOR -> no good") on this topic but no
  satisfying solution has been found, yet.

To manage notifications about this bug go to:
https://bugs.launchpad.net/zorba/+bug/1026250/+subscriptions

-- 
Mailing list: https://launchpad.net/~zorba-coders
Post to     : zorba-coders@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zorba-coders
More help   : https://help.launchpad.net/ListHelp

Reply via email to