Merge lp:~mmcm/akiban-server/hkey-row-cache into lp:~akiban-technologies/akiban-server/trunk
Status: | Merged |
---|---|
Approved by: | Thomas Jones-Low |
Approved revision: | 2711 |
Merged at revision: | 2711 |
Proposed branch: | lp:~mmcm/akiban-server/hkey-row-cache |
Merge into: | lp:~akiban-technologies/akiban-server/trunk |
Diff against target: |
106 lines (+10/-10) 3 files modified
src/main/java/com/akiban/qp/operator/HKeyUnion_Ordered.java (+3/-2) src/main/java/com/akiban/server/service/text/FullTextCursor.java (+4/-4) src/main/java/com/akiban/server/service/text/FullTextIndexServiceImpl.java (+3/-4) |
To merge this branch: | bzr merge lp:~mmcm/akiban-server/hkey-row-cache |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Thomas Jones-Low | Approve | ||
Review via email: mp+176824@code.launchpad.net |
Description of the change
Fix scope of HKeyRow's HKeyCache.
Each HKeyRow needs its own HKeyCache, whose purpose is to give out the same HKey for a given table. However, it takes the HKeyCache in the constructor, since it cannot make one without a StoreAdapter, which it does not have. (I suppose it could take the StoreAdapter in the constructor for this purpose.)
This led to HKeyUnion_Ordered having one cache for all the rows that it gives out, which means that two rows could share component HKeys. It could implement the unsharedRow pattern and reuse the combination, but right now it makes a new row each time. So it must make a new cache.
This mistake was then copied for the full text cursor, which also makes HKey rows, and then to full text maintanence. Make them create new caches for new rows, too.
As described.