use of com.scalar.db.api.Scan.Ordering.Order in project scalardb by scalar-labs.
the class DistributedStorageMultipleClusteringKeyScanIntegrationTestBase method executeInParallel.
private void executeInParallel(TestForFirstClusteringKeyScan test) throws java.util.concurrent.ExecutionException, InterruptedException {
List<Callable<Void>> testCallables = new ArrayList<>();
for (DataType firstClusteringKeyType : clusteringKeyTypes.keySet()) {
for (Order firstClusteringOrder : Order.values()) {
testCallables.add(() -> {
truncateTable(firstClusteringKeyType, firstClusteringOrder, DataType.INT, Order.ASC);
List<ClusteringKey> clusteringKeys = prepareRecords(firstClusteringKeyType, firstClusteringOrder, DataType.INT, Order.ASC);
test.execute(clusteringKeys, firstClusteringKeyType, firstClusteringOrder);
return null;
});
}
}
executeInParallel(testCallables);
}
use of com.scalar.db.api.Scan.Ordering.Order in project scalardb by scalar-labs.
the class DistributedStorageMultipleClusteringKeyScanIntegrationTestBase method executeInParallel.
private void executeInParallel(TestForSecondClusteringKeyScan test) throws java.util.concurrent.ExecutionException, InterruptedException {
List<Callable<Void>> testCallables = new ArrayList<>();
for (DataType firstClusteringKeyType : clusteringKeyTypes.keySet()) {
for (DataType secondClusteringKeyType : clusteringKeyTypes.get(firstClusteringKeyType)) {
for (Order firstClusteringOrder : Order.values()) {
for (Order secondClusteringOrder : Order.values()) {
testCallables.add(() -> {
truncateTable(firstClusteringKeyType, firstClusteringOrder, secondClusteringKeyType, secondClusteringOrder);
List<ClusteringKey> clusteringKeys = prepareRecords(firstClusteringKeyType, firstClusteringOrder, secondClusteringKeyType, secondClusteringOrder);
test.execute(clusteringKeys, firstClusteringKeyType, firstClusteringOrder, secondClusteringKeyType, secondClusteringOrder);
return null;
});
}
}
}
}
executeInParallel(testCallables);
}
use of com.scalar.db.api.Scan.Ordering.Order in project scalardb by scalar-labs.
the class DistributedStorageMultipleClusteringKeyScanIntegrationTestBase method createTables.
private void createTables() throws java.util.concurrent.ExecutionException, InterruptedException {
List<Callable<Void>> testCallables = new ArrayList<>();
Map<String, String> options = getCreateOptions();
for (DataType firstClusteringKeyType : clusteringKeyTypes.keySet()) {
Callable<Void> testCallable = () -> {
admin.createNamespace(getNamespaceName(firstClusteringKeyType), true, options);
for (DataType secondClusteringKeyType : clusteringKeyTypes.get(firstClusteringKeyType)) {
for (Order firstClusteringOrder : Order.values()) {
for (Order secondClusteringOrder : Order.values()) {
createTable(firstClusteringKeyType, firstClusteringOrder, secondClusteringKeyType, secondClusteringOrder, options);
}
}
}
return null;
};
testCallables.add(testCallable);
}
// We firstly execute the first one and then the rest. This is because the first table creation
// creates the metadata table, and this process can't be handled in multiple threads/processes
// at the same time.
executeInParallel(testCallables.subList(0, 1));
executeInParallel(testCallables.subList(1, testCallables.size()));
}
use of com.scalar.db.api.Scan.Ordering.Order in project scalardb by scalar-labs.
the class DistributedStorageSingleClusteringKeyScanIntegrationTestBase method scan_WithClusteringKeyStartRange_ShouldReturnProperResult.
@Test
public void scan_WithClusteringKeyStartRange_ShouldReturnProperResult() throws ExecutionException, IOException {
for (DataType clusteringKeyType : clusteringKeyTypes) {
for (Order clusteringOrder : Order.values()) {
truncateTable(clusteringKeyType, clusteringOrder);
List<Value<?>> clusteringKeyValues = prepareRecords(clusteringKeyType, clusteringOrder);
for (boolean startInclusive : Arrays.asList(true, false)) {
for (OrderingType orderingType : OrderingType.values()) {
for (boolean withLimit : Arrays.asList(false, true)) {
scan_WithClusteringKeyStartRange_ShouldReturnProperResult(clusteringKeyValues, clusteringKeyType, clusteringOrder, startInclusive, orderingType, withLimit);
}
}
}
}
}
}
use of com.scalar.db.api.Scan.Ordering.Order in project scalardb by scalar-labs.
the class DistributedStorageSingleClusteringKeyScanIntegrationTestBase method scan_WithClusteringKeyEndRangeWithMaxValue_ShouldReturnProperResult.
@Test
public void scan_WithClusteringKeyEndRangeWithMaxValue_ShouldReturnProperResult() throws ExecutionException, IOException {
for (DataType clusteringKeyType : clusteringKeyTypes) {
for (Order clusteringOrder : Order.values()) {
truncateTable(clusteringKeyType, clusteringOrder);
List<Value<?>> clusteringKeyValues = prepareRecords(clusteringKeyType, clusteringOrder);
for (boolean endInclusive : Arrays.asList(true, false)) {
for (OrderingType orderingType : OrderingType.values()) {
for (boolean withLimit : Arrays.asList(false, true)) {
scan_WithClusteringKeyEndRangeWithMaxValue_ShouldReturnProperResult(clusteringKeyValues, clusteringKeyType, clusteringOrder, endInclusive, orderingType, withLimit);
}
}
}
}
}
}
Aggregations