Skip to content

Commit

Permalink
add sortByFieldOrder member
Browse files Browse the repository at this point in the history
  • Loading branch information
jakesmith committed Sep 20, 2024
1 parent 6eb2912 commit 561cab2
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
11 changes: 8 additions & 3 deletions rtl/eclrtl/rtlnewkey.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2261,9 +2261,7 @@ void RowFilter::splitIntoKeyFilter(const RtlRecord & record, RowFilter &keyFilte
filters.remove(i);
}
}
keyFilters.sort(compareFieldFilters); // NB: need to be ordered ahead of keyFilter.createSegmentMonitors being used
ForEachItemIn(kf, keyFilters)
keyFilter.addFilter(OLINK(keyFilters.item(kf)));
keyFilter.sortByFieldOrder(); // NB: need to be ordered ahead of keyFilter.createSegmentMonitors being used
//There is either a payload filter, in which case numFieldsRequired will not change, or now no filter
if (filters.ordinality() == 0)
numFieldsRequired = 0;
Expand Down Expand Up @@ -2322,6 +2320,13 @@ void RowFilter::remapField(unsigned filterIdx, unsigned newFieldNum)
filters.replace(*filters.item(filterIdx).remap(newFieldNum), filterIdx);
}

void RowFilter::sortByFieldOrder()
{
if (0 == filters.ordinality())
return;
filters.sort(compareFieldFilters);
}

//---------------------------------------------------------------------------------------------------------------------

bool RowCursor::setRowForward(const byte * row)
Expand Down
1 change: 1 addition & 0 deletions rtl/eclrtl/rtlnewkey.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ class ECLRTL_API RowFilter
void remove(unsigned idx);
RowFilter & clear();
void appendFilters(const IConstArrayOf<IFieldFilter> &_filters);
void sortByFieldOrder();
protected:
IConstArrayOf<IFieldFilter> filters;
unsigned numFieldsRequired = 0;
Expand Down

0 comments on commit 561cab2

Please sign in to comment.