Bug #5091
closedTests that optimize a filter expression to use a key fail after export/import
100%
Description
XSLT3extra test cases opt-001 and opt-002 are failing when run with -export:on
.
The filter expressions in the tests are being correctly optimised to calls on the key()
function, but after export and re-import, the call on the key() function is failing to find matching elements in the source document.
Updated by Michael Kay over 2 years ago
Considering test case opt-001, when we attempt to locate the xs:double value within the index (on entry to KeyIndex.getNodes()
):
(a) with -export:off, the index contains 8 entries whose keys are of type LatinString, and the list UntypedKeys
contains the same 8 values
(b) with -export:on, the index is identical, but the list UntypedKeys
is null.
The problem is that KeyDefinition.convertUntypedToOther
is false.
I have introduced two new flags on the SEF key
element to represent the internal properties convertUntypedToOther
(flag "v") and strictComparison
(flag "s"). The two tests now pass.
It would be a good idea to move these tests into XSLT3 (without the optimisation assertions) to provide a test that Saxon-JS can process these index definitions correctly.
Updated by Michael Kay over 2 years ago
- Status changed from New to Resolved
- Applies to branch 10, trunk added
- Fix Committed on Branch 10, trunk added
Fixed as described.
Test cases opt-001 and opt-002 from xslt3extra moved to become expression-4401 and expression-4402 in the qt4cg xslt4 test suite.
Updated by O'Neil Delpratt over 2 years ago
- Status changed from Resolved to Closed
- % Done changed from 0 to 100
- Fixed in Maintenance Release 10.6 added
Bug fix applied in the Saxon 10.6 maintenance release
Please register to edit this issue