THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block | ||||
---|---|---|---|---|
| ||||
public interface SortedInternalStore { /** PutExclude rowlower to indexbound. */ byte voidGREATER put(Row r)= 0; /** RemoveInclude rowlower from indexbound. */ byte void remove(Row r)GREATER_OR_EQUAL = 1; /** Exclude upper bound. */ byte LESS = *0; Return rows between lower/** andInclude upper boundsbound. */ byte LESS_OR_EQUAL = 1 << 1; /** Fill results rows by* fieldsUpdate specifiedrow at the index projectionif set.need: * <ul> * @param low Lower<li>put boundoperation ofif the scan. * @param up Lower bound of the scan. * @param opts Scan bound option.{@code oldR} is {@code null},</li> * <li>remove operation if the {@code newR} is {@code null},</li> * @param proj Set<li>update of the columns IDs to fill results rows.operation otherwise.</li> * </ul> */ Cursor<Row>void scanupdate(Row lowoldR, Row up, ScanBoundOption opts, BitSet projnewR); enum ScanBoundOption {/** * Return rows /**between Includelower toand resultsupper rowsbounds. that equal all bounds. */ Fill results rows by fields specified INCLUDE_INCLUDE, at the projection set. /** Include to results rows that* are@param equallow lowerLower bound andof excludethe fromscan. results rows that are equal upper bounds. */ @param up Lower bound of INCLUDE_EXCLUDE, the scan. * @param scanBoundMask /**Scan Excludebound frommask results(specify rowshow thatto arework equalwith lower bound and includerows equals to resultsthe rowsbounds: thatinclude are equal upper bounds. */or exclude). * @param EXCLUDE_INCLUDE, /** Include from results rows that equal all bounds.proj Set of the columns IDs to fill results rows. */ Cursor<Row> scan(Row low, EXCLUDE_EXCLUDE }Row up, byte scanBoundMask, BitSet proj); } |
As we aim to have more than one option of storage we need to keep storage api separated from implementation, so we'll have one module containing api and a separate module for each specific implementation.
...