Sorry to bother you again, but I think there is still something wrong with my code and I can't figure it out. This time I checked it consistently on BaseX 9.0.1 (Windows and Linux, console and web server), results are always the same:
xquery version "3.1"; declare namespace array = "http://www.w3.org/2005/xpath-functions/array";
let $array1 := [] let $array2 := array:for-each([], function($i) { lower-case($i) }) let $array3 := array:for-each([], function($i) { $i + 1 })
return ( empty($array1!?*), empty($array2!?*), empty($array3!?*), empty( for $i in 1 to array:size($array1) return $array1($i) ), empty( for $i in 1 to array:size($array2) return $array2($i) ), empty( for $i in 1 to array:size($array3) return $array3($i) ) )
The results I get are: true false true true true true
Why isn't the second result "true" too?
Best regards, Sebastian
Am 11.05.2018 um 11:12 schrieb Sebastian Zimmer:
Hi again,
the problem is gone now after a reboot. It seems that the web server was running on another version while the console was running with 9.0.1
Sorry for the inconvenience.
Best, Sebastian
Am 11.05.2018 um 11:04 schrieb Sebastian Zimmer:
Hi Giuseppe,
thanks for checking. I double-checked again. The problem is even weirder now:
When using the console, I too get 2x true:
$ ./bin/basex "./webapp/array_test.xql" true true
When using the web server, I still get this:
$ curl localhost:8994/rest?run=array_test.xql false true
At first I thought there was some cache at work, preventing the update, but it doesn't seem to be the case. I can edit the XQL und both outputs change accordingly, but the first boolean is still different.
Best regards, Sebastian
Am 11.05.2018 um 08:28 schrieb Giuseppe Celano:
Hi Sebastian,
In my Basex 9.0.1 and 8.6.7 you get two "true".
Best, Giuseppe
Universität Leipzig Institute of Computer Science, NLP Augustusplatz 10 04109 Leipzig Deutschland E-mail: celano@informatik.uni-leipzig.de mailto:celano@informatik.uni-leipzig.de E-mail: giuseppegacelano@gmail.com Web site 1: http://www.dh.uni-leipzig.de/wo/team/ Web site 2: https://sites.google.com/site/giuseppegacelano/
On May 11, 2018, at 1:50 AM, Sebastian Zimmer <sebastian.zimmer@uni-koeln.de mailto:sebastian.zimmer@uni-koeln.de> wrote:
Hi,
I have this script where I use the lookup operator to perform a unary lookup:
xquery version "3.1"; declare namespace array ="http://www.w3.org/2005/xpath-functions/array";
let $array := []
return ( empty($array!?*), (: returns false :) empty( for $i in 1 to array:size($array) return $array($i) ) (: returns true :) )
I'm curious that the first expression returns false even though it should be equivalent to the second expression, if I read the XQuery spec [1] right:
If the context item is an array: If theKeySpecifier https://www.w3.org/TR/2017/REC-xquery-31-20170321/#doc-xquery31-KeySpecifieris a wildcard ("|*|"), theUnaryLookup https://www.w3.org/TR/2017/REC-xquery-31-20170321/#doc-xquery31-UnaryLookupoperator is equivalent to the following expression: for $k in 1 to array:size(.) return .($k)
But maybe I'm missing something. I'd be glad if you could help.
Best regards, Sebastian Zimmer
[1] https://www.w3.org/TR/2017/REC-xquery-31-20170321/#id-unary-lookup
-- Sebastian Zimmer sebastian.zimmer@uni-koeln.de mailto:sebastian.zimmer@uni-koeln.de <cceh-logo-cyan.png> http://cceh.uni-koeln.de/
Cologne Center for eHumanities http://cceh.uni-koeln.de/ DH Center at the University of Cologne <twitter_logo.png> https://twitter.com/CCeHum@CCeHum https://twitter.com/CCeHum
-- Sebastian Zimmer sebastian.zimmer@uni-koeln.de mailto:sebastian.zimmer@uni-koeln.de CCeH Logo http://cceh.uni-koeln.de
Cologne Center for eHumanities http://cceh.uni-koeln.de DH Center at the University of Cologne Twitter Logo https://twitter.com/CCeHum@CCeHum https://twitter.com/CCeHum
-- Sebastian Zimmer sebastian.zimmer@uni-koeln.de mailto:sebastian.zimmer@uni-koeln.de CCeH Logo http://cceh.uni-koeln.de
Cologne Center for eHumanities http://cceh.uni-koeln.de DH Center at the University of Cologne Twitter Logo https://twitter.com/CCeHum@CCeHum https://twitter.com/CCeHum