Bug #2739
closed
Composite keys (xsl:key) give wrong result if bytecode is enabled
Category:
Byte code generation
Fix Committed on Branch:
9.7, trunk
Fixed in Maintenance Release:
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.
- 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.
- 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.
- Sprint/Milestone set to 9.7.0.5
- Fix Committed on Branch trunk added
- Fix Committed on Branch deleted (
9.8)
- Applies to branch deleted (
9.8)
Please register to edit this issue
Also available in: Atom
PDF