in modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/index/AbstractSortedIndexStorageTest.java [545:706]
void testScanSimple(boolean readOnly) {
SortedIndexStorage indexStorage = createIndexStorage(INDEX_NAME, ColumnType.INT32);
BinaryTupleRowSerializer serializer = new BinaryTupleRowSerializer(indexStorage.indexDescriptor());
for (int i = 0; i < 5; i++) {
put(indexStorage, serializer.serializeRow(new Object[]{i}, new RowId(TEST_PARTITION)));
}
// Checking without borders.
assertThat(
scan(indexStorage, null, null, 0, AbstractSortedIndexStorageTest::firstArrayElement, readOnly),
contains(0, 1, 2, 3, 4)
);
// Let's check with borders.
assertThat(
scan(
indexStorage,
serializer.serializeRowPrefix(0),
serializer.serializeRowPrefix(4),
(GREATER_OR_EQUAL | LESS_OR_EQUAL),
AbstractSortedIndexStorageTest::firstArrayElement,
readOnly
),
contains(0, 1, 2, 3, 4)
);
assertThat(
scan(
indexStorage,
serializer.serializeRowPrefix(0),
serializer.serializeRowPrefix(4),
(GREATER_OR_EQUAL | LESS),
AbstractSortedIndexStorageTest::firstArrayElement,
readOnly
),
contains(0, 1, 2, 3)
);
assertThat(
scan(
indexStorage,
serializer.serializeRowPrefix(0),
serializer.serializeRowPrefix(4),
(GREATER | LESS_OR_EQUAL),
AbstractSortedIndexStorageTest::firstArrayElement,
readOnly
),
contains(1, 2, 3, 4)
);
assertThat(
scan(
indexStorage,
serializer.serializeRowPrefix(0),
serializer.serializeRowPrefix(4),
(GREATER | LESS),
AbstractSortedIndexStorageTest::firstArrayElement,
readOnly
),
contains(1, 2, 3)
);
// Let's check only with the lower bound.
assertThat(
scan(
indexStorage,
serializer.serializeRowPrefix(1),
null,
(GREATER_OR_EQUAL | LESS_OR_EQUAL),
AbstractSortedIndexStorageTest::firstArrayElement,
readOnly
),
contains(1, 2, 3, 4)
);
assertThat(
scan(
indexStorage,
serializer.serializeRowPrefix(1),
null,
(GREATER_OR_EQUAL | LESS),
AbstractSortedIndexStorageTest::firstArrayElement,
readOnly
),
contains(1, 2, 3, 4)
);
assertThat(
scan(
indexStorage,
serializer.serializeRowPrefix(1),
null,
(GREATER | LESS_OR_EQUAL),
AbstractSortedIndexStorageTest::firstArrayElement,
readOnly
),
contains(2, 3, 4)
);
assertThat(
scan(
indexStorage,
serializer.serializeRowPrefix(1),
null,
(GREATER | LESS),
AbstractSortedIndexStorageTest::firstArrayElement,
readOnly
),
contains(2, 3, 4)
);
// Let's check only with the upper bound.
assertThat(
scan(
indexStorage,
null,
serializer.serializeRowPrefix(3),
(GREATER_OR_EQUAL | LESS_OR_EQUAL),
AbstractSortedIndexStorageTest::firstArrayElement,
readOnly
),
contains(0, 1, 2, 3)
);
assertThat(
scan(
indexStorage,
null,
serializer.serializeRowPrefix(3),
(GREATER_OR_EQUAL | LESS),
AbstractSortedIndexStorageTest::firstArrayElement,
readOnly
),
contains(0, 1, 2)
);
assertThat(
scan(
indexStorage,
null,
serializer.serializeRowPrefix(3),
(GREATER | LESS_OR_EQUAL),
AbstractSortedIndexStorageTest::firstArrayElement,
readOnly
),
contains(0, 1, 2, 3)
);
assertThat(
scan(
indexStorage,
null,
serializer.serializeRowPrefix(3),
(GREATER | LESS),
AbstractSortedIndexStorageTest::firstArrayElement,
readOnly
),
contains(0, 1, 2)
);
}