Sorry--just realized I confused the threads. Ignore me.

Cheers,

E.
—————
Eliot Kimber, Owner
Contrext, LLC
http://contrext.com




On 3/25/15, 1:19 PM, "Eliot Kimber" <ekim...@contrext.com> wrote:

>Note that I'm not using the GUI, I'm using the basexclient command via a
>bash script.
>
>I have the basexserver running as a "service" (meaning it's a background
>task under OS X and then I'm using git commit hooks to run bash scripts
>that call the basexclient command.
>
>Cheers,
>
>E.
>—————
>Eliot Kimber, Owner
>Contrext, LLC
>http://contrext.com
>
>
>
>
>On 3/25/15, 12:54 PM, "Christian Grün" <christian.gr...@gmail.com> wrote:
>
>>Phew, it's really difficult to say anything on this.As long as we
>>cannot reproduce this on at least a second machine, it's hardly
>>possible to tell what's happening here.
>>
>>As indicated, I haven't experienced a similar behavior so far, neither
>>on my own system, which is pretty similar to yours, nor on any server
>>machines in our productive instances. But of course I couldn't
>>seriously recommend to go on with your current setup as long as the
>>problem persists.
>>
>>If you want to continue working on this, maybe some more questions:
>>
>>1. Does this only happen in the GUI or also on command line?
>>2. Do you have any other JVM instance running beside the single BaseX
>>GUI instance?
>>3. Do you get the same error when restarting the GUI?
>>
>>Christian
>>
>>
>>
>>
>>On Wed, Mar 25, 2015 at 3:03 PM, Goetz Heller <hel...@hellerim.de> wrote:
>>> Hi Christian,
>>>
>>> this time, both the function you've seen already and a different query
>>>which tries to extract data from a larger Xml file fail with the
>>>behavior described. In both query execution plans you can see that there
>>>is some "optimization" which places an empty pair of parentheses into
>>>the optimized query where something different should be. It looks as if
>>>an shortage of some - memory? - resources throws an exception which is
>>>silently caught somewhere. I know from my own programming experience
>>>that it happens like that: a boring nuisance is caught in the middle of
>>>something nice being developed so you neutralize this effect temporarily
>>>- and then simply forget it. Is it possible that something similar
>>>happened in this case?
>>>
>>> The second query is too complicated to simply reduce its complexity.
>>>But I suppose you would be able to get the same behavior if you took a
>>>machine like mine - a laptop with 8 GB RAM and an Intel dual core
>>>processor running at 1,8 GHz and Win 8.1. Possibly reduce the RAM by 4
>>>GB, or run a VMWare virtual machine on it (what I cannot do here because
>>>Microsoft's Hypervisor is installed), and then experiment using your
>>>tools at hand. I had a Microsoft VS 2013 Community Edition installed,
>>>several Eclipse versions, and Node.js (none of these running when the
>>>problem showed up). No Microsoft Office. Unfortunately, I cannot invest
>>>to much time investigating the issue since I have a lot of other things
>>>to do, but let me know anyway if I can give you further information. At
>>>first sight, I liked BaseX very much for its simple installation and
>>>ease of use, its small footprint and its well-thought GUI, but I will
>>>not be able to use it in a project if I cannot rely on the results it
>>>delivers.
>>>
>>> Kind regards,
>>>
>>> Goetz
>>>
>>> P.S. Here the query plan for the second query; you will see that the
>>>$ti variable is not resolved appropriately (line 37 of output).
>>>
>>> BEGIN_OUTPUT>>>
>>> Compiling:
>>> - inlining $retVal_5
>>> - simplifying flwor expression
>>> - pre-evaluating doc("C:\test\Labels.xml")
>>> - rewriting (compare(@*:label, $key_0) = 0)
>>> - rewriting (compare(@*:LG, "DE") = 0)
>>> - inlining $retVal_1
>>> - simplifying flwor expression
>>> - rewriting (compare(@*:label, $key_2) = 0)
>>> - rewriting (compare(@*:LG, $lang_3) = 0)
>>> - rewriting (tokenize($nodocojs_9, "-"))[position() = 2]
>>> - inlining local:slz#1
>>> - inlining $arg_15
>>> - simplifying flwor expression
>>> - rewriting (tokenize($nodocojs_9, "/"))[position() = 1]
>>> - removing unknown element/attribute text
>>> - pre-evaluating $ti_7/*:TI_TEXT/()
>>> - inlining local:getLabel#1
>>> - inlining $key_16
>>> - simplifying flwor expression
>>> - inlining local:getLabel2#2
>>> - removing redundant $lang_18 as xs:string cast.
>>> - inlining $key_17
>>> - inlining $lang_18
>>> - removing unknown element/attribute TERM
>>> - pre-evaluating document-node
>>>{"Labels.xml"}/*:LABELS/*:LABEL[compare(@*:label, "_and") =
>>>0.0]/()/text()
>>> - simplifying flwor expression
>>> - inlining $pd_8
>>> - inlining $nd_10
>>> - inlining $oj_11
>>> - inlining $ds_12
>>> - inlining $dt_13
>>> - inlining $hd_14
>>> Query:
>>> declare variable $lang as xs:string := 'DE'; declare variable $labels
>>>:= doc('C:\test\Labels.xml'); declare function local:getLabel( $key ) {
>>>let $retVal := $labels/LABELS/LABEL[compare(@label, $key) =
>>>0]/TERM[compare(@LG, $lang) = 0]/text() return $retVal }; declare
>>>function local:getLabel2( $key, $lang as xs:string ) {
>>>$labels/LABELS/LABEL[compare(@label, $key) = 0]/TERM[compare(@LG, $lang)
>>>= 0]/text() }; declare function local:slz( $arg ) { let $retVal :=
>>>xs:string(xs:double($arg)) return $retVal }; for $n in(/TED_EXPORT) let
>>>$ti := $n/TRANSLATION_SECTION/ML_TITLES/ML_TI_DOC[@LG=$lang] let $pd :=
>>>$n/CODED_DATA_SECTION/REF_OJS/DATE_PUB/text() let $nodocojs :=
>>>$n/CODED_DATA_SECTION/NOTICE_DATA/NO_DOC_OJS let $nd :=
>>>concat(local:slz(tokenize($nodocojs, '-')[2]), '-', tokenize($nodocojs,
>>>'/')[1]) let $oj := concat($n/CODED_DATA_SECTION/REF_OJS/NO_OJ, '/',
>>>substring($n/CODED_DATA_SECTION/REF_OJS/DATE_PUB, 1, 4)) let $ds :=
>>>$n/CODED_DATA_SECTION/CODIF_DATA/DS_DATE_DISPATCH/text() let $dt :=
>>>replace(replace($n/CODED_DATA_SECTION/CODIF_DATA/DT_DATE_FOR_SUBMISSION,
>>>' ', ' '), ':', ' ') let $hd :=
>>>$n/CODED_DATA_SECTION/CODIF_DATA/HEADING/text() return ( <line>1.0
>>></line>, <line>TI: {$ti/TI_CY/replace(replace(text(), 'die ', ''), 'das
>>>', '')}-{$ti/TI_TOWN/text()}: {$ti/TI_TEXT/text}</line>, <line>PD:
>>>{$pd}</line>, <line>ND: {$nd}</line>, <line>OJ: {$oj}</line>, <line>DS:
>>>{$ds}</line>, <line>DT: {$dt}</line>, <line>HD: {$hd}</line>, <line>LB:
>>>{local:getLabel('_and')}</line>, <line>LB_FR: {local:getLabel2('_and',
>>>'FR')}</line> )
>>> Optimized Query:
>>> for $n_6 in (db:open-pre("20150324_058",0), ...)/*:TED_EXPORT let $ti_7
>>>:= $n_6/*:TRANSLATION_SECTION/*:ML_TITLES/*:ML_TI_DOC[(@*:LG = "DE")]
>>>let $nodocojs_9 := $n_6/*:CODED_DATA_SECTION/*:NOTICE_DATA/*:NO_DOC_OJS
>>>return (element line { ("1.0 ") }, element line { ("TI: ",
>>>$ti_7/*:TI_CY/replace(replace(text(), "die ", ""), "das ", ""), "-",
>>>$ti_7/*:TI_TOWN/text(), ": ", ()) }, element line { ("PD: ",
>>>$n_6/*:CODED_DATA_SECTION/*:REF_OJS/*:DATE_PUB/text()) }, element line {
>>>("ND: ", concat(basex:item-at(tokenize($nodocojs_9, "-"), 2) cast as
>>>xs:double? cast as xs:string?, "-", basex:item-at(tokenize($nodocojs_9,
>>>"/"), 1))) }, element line { ("OJ: ",
>>>concat($n_6/*:CODED_DATA_SECTION/*:REF_OJS/*:NO_OJ, "/",
>>>substring($n_6/*:CODED_DATA_SECTION/*:REF_OJS/*:DATE_PUB, 1, 4))) },
>>>element line { ("DS: ",
>>>$n_6/*:CODED_DATA_SECTION/*:CODIF_DATA/*:DS_DATE_DISPATCH/text()) },
>>>element line { ("DT: ",
>>>replace(replace($n_6/*:CODED_DATA_SECTION/*:CODIF_DATA/*:DT_DATE_FOR_SUB
>>>M
>>>ISSION, " ", "  "), ":", " ")) }, element line { ("HD: ",
>>>$n_6/*:CODED_DATA_SECTION/*:CODIF_DATA/*:HEADING/text()) }, element line
>>>{ ("LB: ", document-node
>>>{"Labels.xml"}/*:LABELS/*:LABEL[compare(@*:label, "_and") =
>>>0.0]/*:TERM[compare(@*:LG, "DE") = 0.0]/text()) }, element line {
>>>("LB_FR: ", ()) })
>>> Result:
>>> - Hit(s): 17590 Items
>>> - Updated: 0 Items
>>> - Printed: 454 KB
>>> - Read Locking: global
>>> - Write Locking: none
>>> Timing:
>>> - Parsing: 14.83 ms
>>> - Compiling: 198.69 ms
>>> - Evaluating: 991.26 ms
>>> - Printing: 31.57 ms
>>> - Total Time: 1236.35 ms
>>> Query plan:
>>> <QueryPlan compiled="true">
>>>   <GFLWOR>
>>>     <For>
>>>       <Var name="$n" id="6"/>
>>>       <IterPath>
>>>         <DBNodeSeq size="1759">
>>>           <DBNode name="20150324_058" pre="0"/>
>>>           <DBNode name="20150324_058" pre="4945"/>
>>>           <DBNode name="20150324_058" pre="6786"/>
>>>           <DBNode name="20150324_058" pre="9742"/>
>>>           <DBNode name="20150324_058" pre="14138"/>
>>>         </DBNodeSeq>
>>>         <IterStep axis="child" test="*:TED_EXPORT"/>
>>>       </IterPath>
>>>     </For>
>>>     <Let>
>>>       <Var name="$ti" id="7"/>
>>>       <IterPath>
>>>         <VarRef>
>>>           <Var name="$n" id="6"/>
>>>         </VarRef>
>>>         <IterStep axis="child" test="*:TRANSLATION_SECTION"/>
>>>         <IterStep axis="child" test="*:ML_TITLES"/>
>>>         <IterStep axis="child" test="*:ML_TI_DOC">
>>>           <CmpG op="=">
>>>             <CachedPath>
>>>               <IterStep axis="attribute" test="*:LG"/>
>>>             </CachedPath>
>>>             <Str value="DE" type="xs:string"/>
>>>           </CmpG>
>>>         </IterStep>
>>>       </IterPath>
>>>     </Let>
>>>     <Let>
>>>       <Var name="$nodocojs" id="9"/>
>>>       <IterPath>
>>>         <VarRef>
>>>           <Var name="$n" id="6"/>
>>>         </VarRef>
>>>         <IterStep axis="child" test="*:CODED_DATA_SECTION"/>
>>>         <IterStep axis="child" test="*:NOTICE_DATA"/>
>>>         <IterStep axis="child" test="*:NO_DOC_OJS"/>
>>>       </IterPath>
>>>     </Let>
>>>     <List>
>>>       <CElem>
>>>         <QNm value="line" type="xs:QName"/>
>>>         <Str value="1.0 " type="xs:string"/>
>>>       </CElem>
>>>       <CElem>
>>>         <QNm value="line" type="xs:QName"/>
>>>         <Str value="TI: " type="xs:string"/>
>>>         <MixedPath>
>>>           <VarRef>
>>>             <Var name="$ti" id="7"/>
>>>           </VarRef>
>>>           <IterStep axis="child" test="*:TI_CY"/>
>>>           <FnReplace name="replace(string,pattern,replace[,mod])">
>>>             <FnReplace name="replace(string,pattern,replace[,mod])">
>>>               <CachedPath>
>>>                 <IterStep axis="child" test="text()"/>
>>>               </CachedPath>
>>>               <Str value="die " type="xs:string"/>
>>>               <Str value="" type="xs:string"/>
>>>             </FnReplace>
>>>             <Str value="das " type="xs:string"/>
>>>             <Str value="" type="xs:string"/>
>>>           </FnReplace>
>>>         </MixedPath>
>>>         <Str value="-" type="xs:string"/>
>>>         <CachedPath>
>>>           <VarRef>
>>>             <Var name="$ti" id="7"/>
>>>           </VarRef>
>>>           <IterStep axis="child" test="*:TI_TOWN"/>
>>>           <IterStep axis="child" test="text()"/>
>>>         </CachedPath>
>>>         <Str value=": " type="xs:string"/>
>>>         <Empty size="0"/>
>>>       </CElem>
>>>       <CElem>
>>>         <QNm value="line" type="xs:QName"/>
>>>         <Str value="PD: " type="xs:string"/>
>>>         <IterPath>
>>>           <VarRef>
>>>             <Var name="$n" id="6"/>
>>>           </VarRef>
>>>           <IterStep axis="child" test="*:CODED_DATA_SECTION"/>
>>>           <IterStep axis="child" test="*:REF_OJS"/>
>>>           <IterStep axis="child" test="*:DATE_PUB"/>
>>>           <IterStep axis="child" test="text()"/>
>>>         </IterPath>
>>>       </CElem>
>>>       <CElem>
>>>         <QNm value="line" type="xs:QName"/>
>>>         <Str value="ND: " type="xs:string"/>
>>>         <FnConcat name="concat(atom1,atom2[,...])">
>>>           <Cast type="xs:string?">
>>>             <Cast type="xs:double?">
>>>               <BaseXItemAt name="item-at(items,pos)">
>>>                 <FnTokenize name="tokenize(string[,pattern[,mod]])">
>>>                   <VarRef>
>>>                     <Var name="$nodocojs" id="9"/>
>>>                   </VarRef>
>>>                   <Str value="-" type="xs:string"/>
>>>                 </FnTokenize>
>>>                 <Int value="2" type="xs:integer"/>
>>>               </BaseXItemAt>
>>>             </Cast>
>>>           </Cast>
>>>           <Str value="-" type="xs:string"/>
>>>           <BaseXItemAt name="item-at(items,pos)">
>>>             <FnTokenize name="tokenize(string[,pattern[,mod]])">
>>>               <VarRef>
>>>                 <Var name="$nodocojs" id="9"/>
>>>               </VarRef>
>>>               <Str value="/" type="xs:string"/>
>>>             </FnTokenize>
>>>             <Int value="1" type="xs:integer"/>
>>>           </BaseXItemAt>
>>>         </FnConcat>
>>>       </CElem>
>>>       <CElem>
>>>         <QNm value="line" type="xs:QName"/>
>>>         <Str value="OJ: " type="xs:string"/>
>>>         <FnConcat name="concat(atom1,atom2[,...])">
>>>           <IterPath>
>>>             <VarRef>
>>>               <Var name="$n" id="6"/>
>>>             </VarRef>
>>>             <IterStep axis="child" test="*:CODED_DATA_SECTION"/>
>>>             <IterStep axis="child" test="*:REF_OJS"/>
>>>             <IterStep axis="child" test="*:NO_OJ"/>
>>>           </IterPath>
>>>           <Str value="/" type="xs:string"/>
>>>           <FnSubstring name="substring(string,start[,len])">
>>>             <IterPath>
>>>               <VarRef>
>>>                 <Var name="$n" id="6"/>
>>>               </VarRef>
>>>               <IterStep axis="child" test="*:CODED_DATA_SECTION"/>
>>>               <IterStep axis="child" test="*:REF_OJS"/>
>>>               <IterStep axis="child" test="*:DATE_PUB"/>
>>>             </IterPath>
>>>             <Int value="1" type="xs:integer"/>
>>>             <Int value="4" type="xs:integer"/>
>>>           </FnSubstring>
>>>         </FnConcat>
>>>       </CElem>
>>>       <CElem>
>>>         <QNm value="line" type="xs:QName"/>
>>>         <Str value="DS: " type="xs:string"/>
>>>         <IterPath>
>>>           <VarRef>
>>>             <Var name="$n" id="6"/>
>>>           </VarRef>
>>>           <IterStep axis="child" test="*:CODED_DATA_SECTION"/>
>>>           <IterStep axis="child" test="*:CODIF_DATA"/>
>>>           <IterStep axis="child" test="*:DS_DATE_DISPATCH"/>
>>>           <IterStep axis="child" test="text()"/>
>>>         </IterPath>
>>>       </CElem>
>>>       <CElem>
>>>         <QNm value="line" type="xs:QName"/>
>>>         <Str value="DT: " type="xs:string"/>
>>>         <FnReplace name="replace(string,pattern,replace[,mod])">
>>>           <FnReplace name="replace(string,pattern,replace[,mod])">
>>>             <IterPath>
>>>               <VarRef>
>>>                 <Var name="$n" id="6"/>
>>>               </VarRef>
>>>               <IterStep axis="child" test="*:CODED_DATA_SECTION"/>
>>>               <IterStep axis="child" test="*:CODIF_DATA"/>
>>>               <IterStep axis="child" test="*:DT_DATE_FOR_SUBMISSION"/>
>>>             </IterPath>
>>>             <Str value=" " type="xs:string"/>
>>>             <Str value="  " type="xs:string"/>
>>>           </FnReplace>
>>>           <Str value=":" type="xs:string"/>
>>>           <Str value=" " type="xs:string"/>
>>>         </FnReplace>
>>>       </CElem>
>>>       <CElem>
>>>         <QNm value="line" type="xs:QName"/>
>>>         <Str value="HD: " type="xs:string"/>
>>>         <IterPath>
>>>           <VarRef>
>>>             <Var name="$n" id="6"/>
>>>           </VarRef>
>>>           <IterStep axis="child" test="*:CODED_DATA_SECTION"/>
>>>           <IterStep axis="child" test="*:CODIF_DATA"/>
>>>           <IterStep axis="child" test="*:HEADING"/>
>>>           <IterStep axis="child" test="text()"/>
>>>         </IterPath>
>>>       </CElem>
>>>       <CElem>
>>>         <QNm value="line" type="xs:QName"/>
>>>         <Str value="LB: " type="xs:string"/>
>>>         <IterPath>
>>>           <DBNode name="Labels" pre="0"/>
>>>           <IterStep axis="child" test="*:LABELS"/>
>>>           <IterStep axis="child" test="*:LABEL">
>>>             <CmpR min="0.0" max="0.0">
>>>               <FnCompare name="compare(first,second[,collation])">
>>>                 <CachedPath>
>>>                   <IterStep axis="attribute" test="*:label"/>
>>>                 </CachedPath>
>>>                 <Str value="_and" type="xs:string"/>
>>>               </FnCompare>
>>>             </CmpR>
>>>           </IterStep>
>>>           <IterStep axis="child" test="*:TERM">
>>>             <CmpR min="0.0" max="0.0">
>>>               <FnCompare name="compare(first,second[,collation])">
>>>                 <CachedPath>
>>>                   <IterStep axis="attribute" test="*:LG"/>
>>>                 </CachedPath>
>>>                 <Str value="DE" type="xs:string"/>
>>>               </FnCompare>
>>>             </CmpR>
>>>           </IterStep>
>>>           <IterStep axis="child" test="text()"/>
>>>         </IterPath>
>>>       </CElem>
>>>       <CElem>
>>>         <QNm value="line" type="xs:QName"/>
>>>         <Str value="LB_FR: " type="xs:string"/>
>>>         <Empty size="0"/>
>>>       </CElem>
>>>     </List>
>>>   </GFLWOR>
>>> </QueryPlan><<<END_OUTPUT
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: Christian Grün [mailto:christian.gr...@gmail.com]
>>> Gesendet: Mittwoch, 25. März 2015 14:00
>>> An: Goetz Heller
>>> Cc: BaseX
>>> Betreff: Re: [basex-talk] Simple xQuery functions do not work as
>>>expected
>>>
>>>> the issue showed up again, this time outside of a function. The
>>>>computer was only moderately charged, but the change of behavior
>>>>occurred after I loaded a 25MB text file into Notepad++. Should I
>>>>change something in the JVM settings?
>>>
>>> To be honest, I really have no clue yet what's going on here (I can't
>>>remember to have encountered a similar behavior before).. If you want,
>>>you could once again try to simplify the example again as much as
>>>possible and send it to us. Of course it would be great if you manage to
>>>reproduce it on any other machine you can get your hands on.
>>>
>>> You are exclusively using the BaseX GUI, right? Does the problem also
>>>happen on command-line?
>>>
>>>
>>
>
>
>


Reply via email to