Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejava
titleSortedInternalStore
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);
}

Modules structure

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.

...