|
Implementations | ||||||||||||||||
Tests | BaseX 7.7 XQ30 |
EMC/xDB xDB_main_r2411365 XQ30 |
Saxon-EE 9.5.1.1 XP20 |
Saxon-EE 9.5.1.1 XQ10 |
Saxon-EE 9.5.1.1 XP30 |
Saxon-EE 9.5.1.1 XQ30 |
Saxon-EE 9.5.1.4 XQX30 (QT3 v1.1) |
XmlPrime 3.0.0.0 XP30 (QT3 vCVS) |
XmlPrime 3.0.0.0 XQ30 (QT3 vCVS) |
XmlPrime 3.0.0.0 XQX30 (QT3 vCVS) |
XmlPrime 3.0.0.0 XP20 (QT3 vCVS) |
XmlPrime 3.0.0.0 XQX10 (QT3 vCVS) |
XmlPrime 3.0.0.0 XQ10 (QT3 vCVS) |
Zorba 2.9 XQ10 (QT3 vCVS) |
Zorba 2.9 XQ30 (QT3 vCVS) |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
prod-WhereClause | 82/79 | 73/79 | 0/0 | 71/71 | 0/0 | 79/79 | 76/79 | 0/0 | 79/79 | 79/79 | 0/0 | 71/71 | 71/71 | 71/71 | 79/79 | 0/15 |
WhereExpr001[+]
X WhereExpr001: if ( count( for $f in //* where $f/File return $f/File[1] ) = count( //File[1]) ) then <Same/> else <notSame/> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
WhereExpr002[+]
X WhereExpr002: for $folder in //Folder where $folde/@name = "ABC" return <folder/> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
WhereExpr003[+]
X WhereExpr003: for $d in /MyComputer/Drive4 where $d/Folder[@id="128"] return <FolderName>{$d/Folder/@name}</FolderName> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
WhereExpr004[+]
X WhereExpr004: for $f in /MyComputer/Drive1/Folder[@creator="Mani"]/File where $f/@creation_date="08/06/00" return $f |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
WhereExpr005[+]
X WhereExpr005: <empty> { for $folder in /MyComputer/Drive2//Folder where 1 = 2 return <Folder> { $folder/FolderName/text() } </Folder> } </empty> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
WhereExpr006[+]
X WhereExpr006: for $folder in /MyComputer/Drive4//Folder return <Folder>{ $folder/@name }{ for $file in /MyComputer/Drive4//File where $file/@idref = $folder/@id return <File>{ $file/@name }</File> }</Folder> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
WhereExpr007[+]
X WhereExpr007: <fragment-result>{ for $folder in /MyComputer/Drive3/Folder ,$file in /MyComputer/Drive3/Folder/File where $folder/@id = $file/@idref return <Folder> { $folder/@name, $folder/@id } <file>{ $file/@idref, $file/FileName/text() }</file> </Folder> }</fragment-result> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
WhereExpr008[+]
X WhereExpr008: <empty> { for $file in (//Folder)[1]/File where () return $file/FileName } </empty> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
WhereExpr009[+]
X WhereExpr009: for $file in (//Folder)[1]/File where $file/SecurityObject/Denies/Deny/security/right return $file/FileName |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
WhereExpr010[+]
X WhereExpr010: for $file in (//Folder)[1]/File where data( $file/SecurityObject//right ) return $file/FileName |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
WhereExpr013[+]
X WhereExpr013: for $file in (//Folder)[1]/File where $file/SecurityObject/Denies/Deny/security/right="Change" return $file/FileName |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
WhereExpr014[+]
X WhereExpr014: for $file in (//Folder)[1]/File where true() return $file/FileName |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
WhereExpr015[+]
X WhereExpr015: <empty> { for $file in (//Folder)[1]/File where false() return $file/FileName } </empty> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
WhereExpr016[+]
X WhereExpr016: for $file at $offset in (//Folder)[1]/File where $offset mod 2 = 1 return $file/FileName |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
WhereExpr017[+]
X WhereExpr017: for $file in (//Folder)[1]/File where true(), true() return $file/FileName |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
WhereExpr018[+]
X WhereExpr018: for $file in (//Folder)[1]/File where $undefined return $file/FileName |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
WhereExpr019[+]
X WhereExpr019: for $file in (//Folder)[1]/File where_ true() return $file/FileName |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
WhereExpr020[+]
X WhereExpr020: for $file in (//Folder)[1]/File where true() where false() return $file/FileName |
pass | n/a | no result | n/a
notXP20 |
pass | n/a
notXP30 |
n/a
notXQ30 |
n/a | n/a | n/a | n/a | pass | pass | pass | n/a
Dependency (type=spec, value=XQ10, satisfied=true) was not met. |
|
WhereExpr020a[+]
X WhereExpr020a: for $file in (//Folder)[1]/File where true() where false() return $file/FileName |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
n/a
notXP30 |
pass | n/a | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XQ30+, satisfied=true) was not met. |
pass | |
WhereExpr021[+]
X WhereExpr021: for $file in (//Folder)[1]/File where (. instance of element(File)) return $file/FileName |
pass | n/a | no result | n/a
notXP20 |
pass | n/a
notXP30 |
n/a
notXQ30 |
n/a | n/a | n/a | n/a | pass | pass | pass | n/a
Dependency (type=spec, value=XQ10, satisfied=true) was not met. |
|
WhereExpr022[+]
X WhereExpr022: for $file in //File let $namelen := string-length($file/FileName) where ($namelen = 15 and $file//Allow/user = 'system\Hyungjeong') return $file/FileName |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
WhereExpr023[+]
X WhereExpr023: for $file in //File count $c where ($file//Allow/user = 'system\Aladin') return $c |
pass | fail | pass | n/a
notXP20 |
n/a
notXQ10 |
n/a
notXP30 |
pass | n/a | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XQ30+, satisfied=true) was not met. |
pass | |
WhereExpr024[+]
X WhereExpr024: for $file in //File let $prefix := substring($file/FileName, 1, 4) where ($prefix = 'File') where ($file//Allow/user = 'system\Hyungjeong') return $file/FileName |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
n/a
notXP30 |
pass | n/a | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XQ30+, satisfied=true) was not met. |
pass | |
WhereExpr025[+]
X WhereExpr025: for $file in //File where current-date() gt xs:date('1900-01-01') let $prefix := substring($file/FileName, 1, 4) where ($prefix = 'File') where ($file//Allow/user = 'system\Hyungjeong') return $file/FileName |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
n/a
notXP30 |
pass | n/a | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XQ30+, satisfied=true) was not met. |
pass | |
WhereExpr026[+]
X WhereExpr026: let $doc := (/) return (11 to 15)! (for $file in $doc//File count $c where $c = position() return $file/FileName) |
pass | fail | pass | n/a
notXP20 |
n/a
notXQ10 |
n/a
notXP30 |
pass | n/a | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XQ30+, satisfied=true) was not met. |
pass | |
WhereExpr027[+]
X WhereExpr027: let $doc := (/) return (11 to 15)! (for $file at $c in $doc//File where $c = last() return string($file/FileName)) |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
n/a
notXP30 |
pass | n/a | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XQ30+, satisfied=true) was not met. |
pass | |
WhereExpr028[+]
X WhereExpr028: let $x := 1 to 10 where $x = 1 return $x |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
WhereExpr029[+]
X WhereExpr029: let $x := 1 to 10 where count($x) = 1 return $x |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
WhereExpr030[+]
X WhereExpr030: declare variable $n external := 10; for $x allowing empty in 1 to $n where $x lt 5 return $x |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
n/a
notXP30 |
pass | n/a | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XQ30+, satisfied=true) was not met. |
pass | |
WhereExpr031[+]
X WhereExpr031: declare variable $n external := 0; for $x allowing empty in 1 to $n where not($x = 5) return concat("[", $x, "]") |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
n/a
notXP30 |
pass | n/a | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XQ30+, satisfied=true) was not met. |
pass | |
WhereExpr032[+]
X WhereExpr032: for $x allowing empty in 1 to 5 where $x lt 0 return empty($x) |
pass | fail | pass | n/a
notXP20 |
n/a
notXQ10 |
n/a
notXP30 |
pass | n/a | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XQ30+, satisfied=true) was not met. |
pass | |
WhereExpr033[+]
X WhereExpr033: declare variable $n external := 0; for $x in -2 to +2 where ($n - $x) return $x |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
n/a
notXP30 |
pass | n/a | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XQ30+, satisfied=true) was not met. |
pass | |
whereClause-1[+]
X whereClause-1: let $var := (fn:true()) where $var or fn:true() return $var or fn:true() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
whereClause-2[+]
X whereClause-2: let $var := (fn:false()) where fn:not($var or fn:false()) return $var or fn:false() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
whereClause-3[+]
X whereClause-3: let $var := (fn:true()) where $var and fn:true() return $var and fn:true() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
whereClause-4[+]
X whereClause-4: let $var := (fn:false()) where fn:not($var and fn:false()) return $var and fn:false() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
whereClause-5[+]
X whereClause-5: let $var := 100 where typeswitch($var) case $i as xs:string return fn:false() case $i as xs:integer return fn:true() default return fn:false() return $var |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
whereClause-6[+]
X whereClause-6: let $var := "String" where fn:string($var) = "String" return $var |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
whereClause-7[+]
X whereClause-7: let $var := "String" where fn:string-length($var) = 6 return fn:string-length($var) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
whereClause-8[+]
X whereClause-8: let $var := 100 where fn:count(($var)) = 1 return fn:count(($var)) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
whereClause-9[+]
X whereClause-9: let $var := <anElement>Some content</anElement> where $var is $var return $var is $var |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
whereClause-10[+]
X whereClause-10: let $var := 1 where some $x in (1, 2) satisfies fn:string($var) = "1" return fn:string($var ) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
whereClause-11[+]
X whereClause-11: let $var := 1 where every $x in (1, 1) satisfies fn:string($var) = "1" return fn:string($var ) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K-WhereExpr-1[+]
X K-WhereExpr-1: (for $fo in (1, 2, 3) where $fo eq 3 return $fo) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K-WhereExpr-2[+]
X K-WhereExpr-2: string(exactly-one((for $fo in (1, 2, 3) where $fo eq 3 return $fo))) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K-WhereExpr-3[+]
X K-WhereExpr-3: count((for $fo in (1, 2, 3) where xs:time("08:08:23Z") return $fo)) eq 3 |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K-WhereExpr-4[+]
X K-WhereExpr-4: for $i in 1 where count(($i, 2, timezone-from-time(current-time()))) return true() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K-WhereExpr-5[+]
X K-WhereExpr-5: empty(for $i in 1 where false() return $i) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K-WhereExpr-6[+]
X K-WhereExpr-6: (for $i in 1 where true() return $i) eq 1 |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K-WhereExpr-7[+]
X K-WhereExpr-7: empty(for $i in 1 where (1, current-time())[1] treat as xs:integer eq 0 return $i) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K-WhereExpr-8[+]
X K-WhereExpr-8: (for $i in 1 where (1, current-time())[1] treat as xs:integer eq 1 return $i) eq 1 |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K-WhereExpr-9[+]
X K-WhereExpr-9: for $i in (1, 2, current-time())[1] where fn:boolean($i treat as xs:integer) return true() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K-WhereExpr-10[+]
X K-WhereExpr-10: for $i in (1, 2, current-time())[1] where xs:anyURI("example.com/") return true() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K-WhereExpr-11[+]
X K-WhereExpr-11: empty(for $i in (1, 2, current-time())[1] where xs:anyURI("") return true()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-WhereExpr-1[+]
X K2-WhereExpr-1: for $a in 1 where true() where true() return $a |
pass | n/a | no result | n/a
notXP20 |
pass | n/a
notXP30 |
n/a
notXQ30 |
n/a | n/a | n/a | n/a | pass | pass | pass | n/a
Dependency (type=spec, value=XQ10, satisfied=true) was not met. |
|
K2-WhereExpr-1b[+]
X K2-WhereExpr-1b: for $a in 1 where true() where true() return $a |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
n/a
notXP30 |
pass | n/a | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XQ30+, satisfied=true) was not met. |
pass | |
K2-WhereExpr-2[+]
X K2-WhereExpr-2: for $a in 1 where true(), true() return $a |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-hash-join-1[+]
X cbcl-hash-join-1: for $x in (xs:untypedAtomic("123"), xs:untypedAtomic("234")) for $y in (xs:string("123"), xs:float(123), xs:double(123)) where $x = $y return $x |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-hash-join-2[+]
X cbcl-hash-join-2: for $x in (xs:integer("123"), xs:integer("234")) for $y in (xs:integer("123"), xs:integer("456")) where $x = $y return $x |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-hash-join-3[+]
X cbcl-hash-join-3: for $x in (xs:date("2010-10-10"), xs:date("1997-01-01+12:00"), xs:date("1997-01-02+12:00")) for $y in (xs:date("2010-10-10Z"), xs:date("2010-10-10+01:00"), xs:date("1997-01-01-12:00")) where $x = $y return $x |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-hash-join-4[+]
X cbcl-hash-join-4: for $x in (xs:untypedAtomic("2.0"), xs:untypedAtomic("3"), xs:double("3.0")) for $y in (xs:untypedAtomic("2"), xs:untypedAtomic("3"), xs:double("3")) where $x = $y return $x |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-hash-join-005[+]
X cbcl-hash-join-005: declare function local:durationOrFloat($i as xs:integer) { (xs:float(123), xs:float(234), xs:duration("P1D"))[$i] }; for $x in (xs:untypedAtomic("123"), xs:untypedAtomic("234")) for $y in (for $z in (1,2) return local:durationOrFloat($z)) where $x = $y return $x |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-product-001[+]
X cbcl-product-001: declare function local:odds($arg as xs:integer*) as xs:integer* { $arg[. mod 2 eq 1] }; boolean(zero-or-one(for $x in local:odds((2,4,8)),$y in local:odds((2,4,8)) return ($x,$y))) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-set-from-optional-item-001[+]
X cbcl-set-from-optional-item-001: declare function local:odds($arg as xs:integer?) as xs:integer? { $arg[. mod 2 eq 1] }; boolean(for $x in local:odds(2) where $x < 3 return $x + 1) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-hash-join-006[+]
X cbcl-hash-join-006: declare function local:sequence($arg as xs:integer) as item()* { if ($arg mod 2 eq 0) then (1, 3, 5, 7, 9) else ("a", "b", "c") }; for $x in local:sequence(2) for $y in local:sequence(3) where $x = $y return ($x, $y) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-hash-join-007[+]
X cbcl-hash-join-007: declare function local:sequence($arg as xs:integer) as item()* { if ($arg mod 2 eq 0) then (1, 3, 5, 7, 9) else ("a", "b", "c") }; for $x in local:sequence(2) for $y in local:sequence(2) where $x = $y return ($x, $y) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-hash-join-008[+]
X cbcl-hash-join-008: declare function local:sequence($arg as xs:integer) as item()* { if ($arg mod 2 eq 0) then (1, 3, 5, 7, 9, "cheese") else (xs:untypedAtomic("1"), xs:untypedAtomic("2")) }; for $x in local:sequence(2) for $y in local:sequence(3) where $x = $y return ($x, $y) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-hash-join-009[+]
X cbcl-hash-join-009: for $x in (1,2,3,"cheese") for $y in (1,2,3,"cheese") where $x = $y return ($x, $y) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-hash-join-010[+]
X cbcl-hash-join-010: for $x in (1,2,3, xs:untypedAtomic("1")) for $y in (1,2,3,"cheese") where $x = $y return ($x, $y) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-group-by-key-001[+]
X cbcl-group-by-key-001: declare function local:get-words() { tokenize("she sells sea shells by the sea shore", "\s+") }; let $words := local:get-words() let $distinct-words := distinct-values($words) for $word in $distinct-words return <word word="{$word}" count="{count($words[. = $word])}" /> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-group-by-key-002[+]
X cbcl-group-by-key-002: let $items := for $x in 1 to 100 return $x mod 10, $distinct-items := distinct-values($items) for $dist in $distinct-items, $item in $items where $item = $dist return $item |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-group-by-key-003[+]
X cbcl-group-by-key-003: let $items := for $x in 1 to 100 return $x mod 10, $distinct-items := distinct-values($items) for $dist in $distinct-items return min( if ($dist = 0) then 0 else for $item in $items where $item = $dist return 1 div $item ) |
pass | fail | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-group-by-key-004[+]
X cbcl-group-by-key-004: let $items := for $x in 1 to 100 return $x mod 10, $distinct-items := distinct-values($items) for $dist in $distinct-items return min( for $item in $items where $item = $dist return if ($dist = 0) then 0 else 1 div $item ) |
pass | fail | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-left-outer-join-001[+]
X cbcl-left-outer-join-001: let $items := for $x in 1 to 100 return $x mod 10, $distinct-items := for $y in 1 to (count($items) idiv 10) return $y mod 10 for $dist in $distinct-items return if ($dist = 0) then 0 else min( for $item in $items where $item = $dist return 1 div $item ) |
pass | fail | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-hash-join-011[+]
X cbcl-hash-join-011: for $x in <t><r><d>1</d><d>1</d><d>1</d></r><r><d>1</d><d>2</d><d>3</d></r><r><d>2</d><d>3</d><d>4</d></r></t>/r, $y in <t><r><d>1</d><d>1</d><d>1</d></r><r><d>2</d><d>4</d><d>6</d></r><r><d>3</d><d>2</d><d>1</d></r></t>/r where $x/d/string(.) = $y/d/string(.) return concat($x, '=', $y) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-map-concat-001[+]
X cbcl-map-concat-001: declare function local:f($x) { if ($x) then true() else () }; declare function local:g($x) { if ($x) then "true" else "false" }; let $x := local:g(true()) for $y in local:f($x) return ($y, $x) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-map-concat-002[+]
X cbcl-map-concat-002: declare function local:f($x) { if ($x) then true() else () }; empty(for $x in local:f(false()), $y in 1 to 10 return ($x, $y)) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-map-concat-003[+]
X cbcl-map-concat-003: declare function local:f($x) { if ($x) then true() else () }; for $x in local:f(true()), $y in 1 to 10 return ($x, $y) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-left-outer-join-002[+]
X cbcl-left-outer-join-002: <e> { for $x in 1 to 10 return <a>{for $y in 1 to 10 where $x > 7 and $y = $x return $y}</a> } </e> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-left-outer-join-003[+]
X cbcl-left-outer-join-003: <e> { for $x in 1 to 10 where $x > 7 return <a>{for $y in 1 to 10 where $y = $x return $y}</a> } </e> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-left-outer-join-004[+]
X cbcl-left-outer-join-004: <tbody> { let $rows := <tables> <table> <row> <entry>Acetazolamide</entry> <entry>Acetazolamide</entry> </row> <row> <entry>Acetazolamide sodium</entry> <entry>Acetazolamide sodium</entry> </row> </table> <table> <row> <entry>Acetylcholine chloride</entry> <entry>Acetylcholine chloride</entry> </row> </table> <table> <row> <entry>Acetylcysteine</entry> <entry>Acetylcysteine</entry> </row> <row> <entry>Acetylcysteine sodium</entry> <entry>Acetylcysteine sodium</entry> </row> </table> </tables>/table/row return for $g in distinct-values($rows/entry[2][string(.)]) order by $g return let $matches := for $row in $rows where $g = string($row/entry[2][string(.)]) return $row/entry[1] return <entry> { $matches/( <link> { node() } </link>, text { if (position() lt last()) then '; ' else () } ) } </entry> } </tbody> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-hash-join-012[+]
X cbcl-hash-join-012: declare variable $strings := ('1','2'); declare variable $untypeds := (<untyped>1</untyped>,<untyped>2</untyped>); for $string in $strings for $untyped in $untypeds where $untyped = $string return $string |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass |