|
[XQuery Talk Mailing List Archive Home] [By Date] [By Thread] [By Subject] [By Author] [Recent Entries] [Reply To This Message] OptimizationsRémi Dewitte remi at gide.netFri Oct 3 16:17:13 PDT 2008
Hi, I have made a little experiment after reading Michael (Kay) blog posts about optimizations and recent James Fuller article. I have a question quite specific to saxon still interesting in general. Why in the following example even the function call is not skipped ? XQuery is :: declare variable $level := 3; declare function local:debug($what){ if($level >=4) then <debug>{$what}</debug> else () }; let $dosmthg := <oki>test trace</oki> return (local:debug($dosmthg),$dosmthg) When I run saxon with -explain we get <query> <globalVariables> <declareVariable name="level"> <literal value="3" type="xs:integer"/> </declareVariable> </globalVariables> <declareFunction name="local:debug" tailRecursive="false"> <literal value="()"/> </declareFunction> <body> <let variable="dosmthg" as="element(oki, { http://www.w3.org/2001/XMLSchema}untyped)"> <be> <directElement name="oki" validation="skip"> <valueOf> <literal value="test trace" type="xs:string"/> </valueOf> </directElement> </be> <return> <sequence> <functionCall name="local:debug" tailCall="false"> <variableReference name="dosmthg"/> </functionCall> <variableReference name="dosmthg"/> </sequence> </return> </let> </body> </query> Cheers, Rémi -------------- next part -------------- An HTML attachment was scrubbed... URL: http://x-query.com/pipermail/talk/attachments/20081003/a4459d62/attachment.htm
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|






