Project

Profile

Help

Bug #2739

closed

Composite keys (xsl:key) give wrong result if bytecode is enabled

Added by Michael Kay over 8 years ago. Updated over 7 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Byte code generation
Sprint/Milestone:
Start date:
2016-05-11
Due date:
% Done:

100%

Estimated time:
Legacy ID:
Applies to branch:
9.7
Fix Committed on Branch:
9.7, trunk
Fixed in Maintenance Release:
Platforms:

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.

Actions #1

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.

Actions #2

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.

Actions #3

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.

Actions #4

Updated by O'Neil Delpratt over 8 years ago

  • Sprint/Milestone set to 9.7.0.5
Actions #5

Updated by O'Neil Delpratt over 7 years ago

  • Fix Committed on Branch trunk added
  • Fix Committed on Branch deleted (9.8)
Actions #6

Updated by O'Neil Delpratt over 7 years ago

  • Applies to branch deleted (9.8)

Please register to edit this issue

Also available in: Atom PDF