Currently the fileposition field for indexes is special cased - primarily because it is stored in a special place before the record. This causes problems in various places
- transform for index read etc. needs to special case file positions
- meta information for an index can't really represent the field sensibly
- it makes it hard to integrate into the new remote filtering code.
- code generator needs to implement some special case code to access the field.
This issue proposes changing the jhtree code so that the special fileposition field is always appended to the record. jhtree would treat it just like any other payload field. The code generator would still need some of the special casing, but it would still be simpler. It will also simplify the work on remote index reads etc.
The changes could be done in 3 stages:
- Change jhtree so it always appends the field. Could access the value from the row via the callback, and could verify that it is initialised correctly.
- Modify the code generator to get the value from the row instead of from the special callback
- Modify the helpers and engines to avoid the need for the callback.
The changes in jhtree are fairly localised.
Jake Smith FYI.