Bug #2739
closedComposite keys (xsl:key) give wrong result if bytecode is enabled
100%
Description
See this forum thread for a description of the problem:
https://saxonica.plan.io/boards/3/topics/6390?r=6393
Fails on XSLT3 test case key-086 with bytecode enabled.
Updated by Michael Kay over 8 years ago
The byte code generation for the key() function has apparently not been enhanced to handle the "composite" option in XSLT 3.0.
I've reviewed the byte code for key() and it looks to me as if it isn't doing anything that is likely to give a significant performance benefit compared with a call-back to the standard library implementation. We've eliminated specialised bytecode generation for a number of functions where there was no apparent benefit but it seems this one escaped the axe. Essentially, the cost of generating bytecode (and the memory occupied by the bytecode) can easily exceed the run-time speed-up in such cases. I'm therefore going to resolve this by killing off the specialised bytecode generation for the key() function.
Updated by Michael Kay over 8 years ago
- Status changed from New to Resolved
- Applies to branch 9.8 added
- Fix Committed on Branch 9.7, 9.8 added
Patched the 9.7 and 9.8 branches by removing byte code generation for the key() function.
Updated by O'Neil Delpratt over 8 years ago
- Status changed from Resolved to Closed
- % Done changed from 0 to 100
- Fixed in Maintenance Release 9.7.0.5 added
Bug fix applied in the Saxon 9.7.0.5 maintenance release.
Updated by O'Neil Delpratt over 7 years ago
- Fix Committed on Branch trunk added
- Fix Committed on Branch deleted (
9.8)
Please register to edit this issue