Allow translation when merging index parts

Description

Occurs when smart stepping, and when merging results from superindexes.

 

Main changes are to only compare the keyed portion, and to tie-break by giving early parts priority.  Test cases need to be extended to ensure it is all working.

 

Conclusion

None

Activity

Show:

Gavin Halliday July 27, 2018 at 9:32 AM

This change potentially changes the order that records are returned from stepped index reads with multiple input keys. Previously the payload was used for ordering, now it is restricted to the keyed portion.

Detail:

Previously the order was determined by the trailing keyed components, the payload memcmp'd and finally any leading keyed components.  This would cause problems if payload fields are removed or added since the ordering would no longer be consistent.  (The previous code also potentially returned data in an undefined order since it was possible for exact matches to access uninitialised data.).

 After this change the order is determined by the trailing keyed components, and then leading keyed components.  If there are exact matches between multiple keys all results will be returned from the first matching keys, before exact matches from the next key.

 

 

Fixed
Pinned fields
Click on the next to a field label to start pinning.

Details

Components

Assignee

Reporter

Priority

Compatibility

Major

Fix versions

Labels

Created July 20, 2018 at 8:31 AM
Updated July 27, 2018 at 11:25 AM
Resolved July 27, 2018 at 11:25 AM