|
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) |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
fn-filter* | 24/32 | 24/24 | 0/0 | 0/0 | 23/23 | 24/24 | 24/24 | 31/31 | 32/32 | 32/32 | 0/0 | 0/0 | 0/0 | 0/0 | 24/24 | 2/15 |
filter-001[+]
X filter-001: filter(("apple", "pear", "apricot", "advocado", "orange"),starts-with(?, "a")) |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
filter-002[+]
X filter-002: filter((12, 4, 46, 23, -8), function($x){$x gt 10}) |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
filter-003[+]
X filter-003: let $data := (/employees) return filter($data/emp, function($x as element(emp)){xs:int($x/@salary) lt 300}) |
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=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=spec, value=XQ30+, satisfied=true) was not met. |
pass | |
filter-004[+]
X filter-004: (1 to 20)[. = filter(1 to position(), function($x){$x idiv 2 * 2 = $x})] |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
filter-005[+]
X filter-005: let $index-of-node := function($seqParam as node()*, $srchParam as node()) as xs:integer* { filter( 1 to count($seqParam), function($this as xs:integer) as xs:boolean {$seqParam[$this] is $srchParam} ) }, $nodes := /*/*, $perm := ($nodes[1], $nodes[2], $nodes[3], $nodes[1], $nodes[2], $nodes[4], $nodes[2], $nodes[1]) return $index-of-node($perm, $nodes[2]) |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
filter-901[+]
X filter-901: filter(("apple", "pear", "apricot", "advocado", "orange"), normalize-space#1) |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
filter-902[+]
X filter-902: filter(("apple", "pear", "apricot", "advocado", "orange"), function($x){if(starts-with($x,'a')) then true() else ()}) |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
filter-903[+]
X filter-903: filter( ("apple", "pear", "apricot", "advocado", "orange"), function($x){if(starts-with($x,'a')) then (true(), true()) else false()}) |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
filter-904[+]
X filter-904: filter(("apple", "pear", "apricot", "advocado", "orange", current-date()), ends-with(?, 'e')) |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
fn-filter-001[+]
X fn-filter-001: fn:filter() |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
fn-filter-002[+]
X fn-filter-002: fn:filter#0 |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
fn-filter-003[+]
X fn-filter-003: fn:filter( fn:boolean#1 ) |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
fn-filter-004[+]
X fn-filter-004: fn:filter#1 |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
fn-filter-005[+]
X fn-filter-005: fn:exists( fn:filter#2 ) |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
fn-filter-006[+]
X fn-filter-006: ( fn:filter( (), if ( fn:current-dateTime() eq fn:dateTime( fn:current-date(), fn:current-time() )) then fn:exists#1 else 1 ), fn:filter( (), if ( fn:current-dateTime() eq fn:dateTime( fn:current-date(), fn:current-time() )) then 1 else fn:exists#1 ) ) |
no result | n/a | n/a
Dependency not satisfied |
n/a
notXP20 |
n/a
notXQ10 |
n/a
Dependency not satisfied |
n/a
Dependency not satisfied |
pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=feature, value=staticTyping, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
n/a
Dependency (type=feature, value=staticTyping, satisfied=true) was not met. |
|
fn-filter-007[+]
X fn-filter-007: fn:filter( (), if ( fn:current-dateTime() eq fn:dateTime( fn:current-date(), fn:current-time() )) then fn:exists#1 else 1 ) |
no result | n/a | n/a
Dependency not satisfied |
n/a
notXP20 |
n/a
notXQ10 |
n/a
Dependency not satisfied |
n/a
Dependency not satisfied |
pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=feature, value=staticTyping, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
n/a
Dependency (type=feature, value=staticTyping, satisfied=true) was not met. |
|
fn-filter-008[+]
X fn-filter-008: fn:filter( (), fn:true() ) |
no result | n/a | n/a
Dependency not satisfied |
n/a
notXP20 |
n/a
notXQ10 |
n/a
Dependency not satisfied |
n/a
Dependency not satisfied |
pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=feature, value=staticTyping, satisfied=true) was not met. |
n/a
Dependency (type=feature, value=staticTyping, satisfied=true) was not met. |
|
fn-filter-009[+]
X fn-filter-009: fn:filter( (), fn:true() ) |
no result | n/a | n/a
Dependency not satisfied |
n/a
notXP20 |
n/a
notXQ10 |
n/a
Dependency not satisfied |
n/a
Dependency not satisfied |
pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=feature, value=staticTyping, satisfied=true) was not met. |
n/a
Dependency (type=feature, value=staticTyping, satisfied=true) was not met. |
|
fn-filter-010[+]
X fn-filter-010: fn:filter( (), function($a as item()) as xs:boolean* { fn:boolean($a), fn:boolean($a) } ) |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
fn-filter-011[+]
X fn-filter-011: fn:filter( (), function($a as item()) as xs:boolean? { () } ) |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
fn-filter-012[+]
X fn-filter-012: fn:filter( (), fn:string#1 ) |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
fn-filter-013[+]
X fn-filter-013: fn:filter( (//node(), 1, "string", 3.14, 2.7e0, fn:exists#1), function($arg) { $arg instance of function(*) } ) |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
fn-filter-014[+]
X fn-filter-014: fn:filter( 1 to 10, function($arg) { if ($arg eq 100) then () else fn:true()}) |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
fn-filter-015[+]
X fn-filter-015: fn:filter( 1 to 10, function($arg) { if ($arg eq 10) then () else fn:true()}) |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
fn-filter-016[+]
X fn-filter-016: fn:filter( 1 to 10, function($arg) { if ($arg eq 100) then () else fn:true()}) |
no result | n/a | n/a
Dependency not satisfied |
n/a
notXP20 |
n/a
notXQ10 |
n/a
Dependency not satisfied |
n/a
Dependency not satisfied |
pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=feature, value=staticTyping, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
n/a
Dependency (type=feature, value=staticTyping, satisfied=true) was not met. |
|
fn-filter-017[+]
X fn-filter-017: fn:filter( 1 to 10, function($arg) { if ($arg eq 100) then 0 else fn:true()}) |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
fn-filter-018[+]
X fn-filter-018: fn:filter( 1 to 10, function($arg) { if ($arg eq 10) then 0 else fn:true()}) |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
fn-filter-019[+]
X fn-filter-019: fn:filter( 1 to 10, function($arg) { if ($arg eq 100) then 0 else fn:true()}) |
no result | n/a | n/a
Dependency not satisfied |
n/a
notXP20 |
n/a
notXQ10 |
n/a
Dependency not satisfied |
n/a
Dependency not satisfied |
pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=feature, value=staticTyping, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
n/a
Dependency (type=feature, value=staticTyping, satisfied=true) was not met. |
|
fn-filter-020[+]
X fn-filter-020: fn:filter( 1 to 10, function($arg) { if ($arg eq 100) then (fn:true(), fn:false()) else fn:true()}) |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
fn-filter-021[+]
X fn-filter-021: fn:filter( 1 to 10, function($arg) { if ($arg eq 10) then (fn:true(), fn:false()) else fn:true()}) |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
pass | pass | pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
pass | |
fn-filter-022[+]
X fn-filter-022: fn:filter( 1 to 10, function($arg) { if ($arg eq 100) then (fn:true(), fn:false()) else fn:true()}) |
no result | n/a | n/a
Dependency not satisfied |
n/a
notXP20 |
n/a
notXQ10 |
n/a
Dependency not satisfied |
n/a
Dependency not satisfied |
pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=feature, value=staticTyping, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
n/a
Dependency (type=feature, value=staticTyping, satisfied=true) was not met. |
|
fn-filter-023[+]
X fn-filter-023: fn:filter( ("1", "2", "3"), function($arg as xs:integer) as xs:boolean { $arg eq 100 } ) |
no result | n/a | n/a
Dependency not satisfied |
n/a
notXP20 |
n/a
notXQ10 |
n/a
Dependency not satisfied |
n/a
Dependency not satisfied |
pass | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. Dependency (type=feature, value=staticTyping, satisfied=true) was not met. Dependency (type=spec, value=XP30+ XQ30+, satisfied=true) was not met. |
n/a
Dependency (type=feature, value=staticTyping, satisfied=true) was not met. |