Search in sources :

Example 6 with BooleanValue

use of com.scalar.db.io.BooleanValue in project scalardb by scalar-labs.

the class StorageColumnValueIntegrationTestBase method put_WithRandomValues_ShouldPutCorrectly.

@Test
public void put_WithRandomValues_ShouldPutCorrectly() throws ExecutionException {
    RANDOM.setSeed(seed);
    for (int i = 0; i < ATTEMPT_COUNT; i++) {
        // Arrange
        IntValue partitionKeyValue = (IntValue) getRandomValue(RANDOM, PARTITION_KEY, DataType.INT);
        BooleanValue col1Value = (BooleanValue) getRandomValue(RANDOM, COL_NAME1, DataType.BOOLEAN);
        IntValue col2Value = (IntValue) getRandomValue(RANDOM, COL_NAME2, DataType.INT);
        BigIntValue col3Value = (BigIntValue) getRandomValue(RANDOM, COL_NAME3, DataType.BIGINT);
        FloatValue col4Value = (FloatValue) getRandomValue(RANDOM, COL_NAME4, DataType.FLOAT);
        DoubleValue col5Value = (DoubleValue) getRandomValue(RANDOM, COL_NAME5, DataType.DOUBLE);
        TextValue col6Value = (TextValue) getRandomValue(RANDOM, COL_NAME6, DataType.TEXT);
        BlobValue col7Value = (BlobValue) getRandomValue(RANDOM, COL_NAME7, DataType.BLOB);
        Put put = new Put(new Key(partitionKeyValue)).withValue(col1Value).withValue(col2Value).withValue(col3Value).withValue(col4Value).withValue(col5Value).withValue(col6Value).withValue(col7Value).forNamespace(namespace).forTable(TABLE);
        // Act
        storage.put(put);
        // Assert
        Optional<Result> actual = storage.get(new Get(new Key(partitionKeyValue)).forNamespace(namespace).forTable(TABLE));
        assertThat(actual).isPresent();
        assertThat(actual.get().getValue(PARTITION_KEY).isPresent()).isTrue();
        assertThat(actual.get().getValue(PARTITION_KEY).get()).isEqualTo(partitionKeyValue);
        assertThat(actual.get().getValue(COL_NAME1).isPresent()).isTrue();
        assertThat(actual.get().getValue(COL_NAME1).get()).isEqualTo(col1Value);
        assertThat(actual.get().getValue(COL_NAME2).isPresent()).isTrue();
        assertThat(actual.get().getValue(COL_NAME2).get()).isEqualTo(col2Value);
        assertThat(actual.get().getValue(COL_NAME3).isPresent()).isTrue();
        assertThat(actual.get().getValue(COL_NAME3).get()).isEqualTo(col3Value);
        assertThat(actual.get().getValue(COL_NAME4).isPresent()).isTrue();
        assertThat(actual.get().getValue(COL_NAME4).get()).isEqualTo(col4Value);
        assertThat(actual.get().getValue(COL_NAME5).isPresent()).isTrue();
        assertThat(actual.get().getValue(COL_NAME5).get()).isEqualTo(col5Value);
        assertThat(actual.get().getValue(COL_NAME6).isPresent()).isTrue();
        assertThat(actual.get().getValue(COL_NAME6).get()).isEqualTo(col6Value);
        assertThat(actual.get().getValue(COL_NAME7).isPresent()).isTrue();
        assertThat(actual.get().getValue(COL_NAME7).get()).isEqualTo(col7Value);
        assertThat(actual.get().getContainedColumnNames()).isEqualTo(new HashSet<>(Arrays.asList(PARTITION_KEY, COL_NAME1, COL_NAME2, COL_NAME3, COL_NAME4, COL_NAME5, COL_NAME6, COL_NAME7)));
        assertThat(actual.get().contains(PARTITION_KEY)).isTrue();
        assertThat(actual.get().isNull(PARTITION_KEY)).isFalse();
        assertThat(actual.get().getInt(PARTITION_KEY)).isEqualTo(partitionKeyValue.get());
        assertThat(actual.get().getAsObject(PARTITION_KEY)).isEqualTo(partitionKeyValue.get());
        assertThat(actual.get().contains(COL_NAME1)).isTrue();
        assertThat(actual.get().isNull(COL_NAME1)).isFalse();
        assertThat(actual.get().getBoolean(COL_NAME1)).isEqualTo(col1Value.get());
        assertThat(actual.get().getAsObject(COL_NAME1)).isEqualTo(col1Value.get());
        assertThat(actual.get().contains(COL_NAME2)).isTrue();
        assertThat(actual.get().isNull(COL_NAME2)).isFalse();
        assertThat(actual.get().getInt(COL_NAME2)).isEqualTo(col2Value.get());
        assertThat(actual.get().getAsObject(COL_NAME2)).isEqualTo(col2Value.get());
        assertThat(actual.get().contains(COL_NAME3)).isTrue();
        assertThat(actual.get().isNull(COL_NAME3)).isFalse();
        assertThat(actual.get().getBigInt(COL_NAME3)).isEqualTo(col3Value.get());
        assertThat(actual.get().getAsObject(COL_NAME3)).isEqualTo(col3Value.get());
        assertThat(actual.get().contains(COL_NAME4)).isTrue();
        assertThat(actual.get().isNull(COL_NAME4)).isFalse();
        assertThat(actual.get().getFloat(COL_NAME4)).isEqualTo(col4Value.get());
        assertThat(actual.get().getAsObject(COL_NAME4)).isEqualTo(col4Value.get());
        assertThat(actual.get().contains(COL_NAME5)).isTrue();
        assertThat(actual.get().isNull(COL_NAME5)).isFalse();
        assertThat(actual.get().getDouble(COL_NAME5)).isEqualTo(col5Value.get());
        assertThat(actual.get().getAsObject(COL_NAME5)).isEqualTo(col5Value.get());
        assertThat(actual.get().contains(COL_NAME6)).isTrue();
        assertThat(actual.get().isNull(COL_NAME6)).isFalse();
        assertThat(actual.get().getText(COL_NAME6)).isEqualTo(col6Value.get().get());
        assertThat(actual.get().getAsObject(COL_NAME6)).isEqualTo(col6Value.get().get());
        assertThat(actual.get().contains(COL_NAME7)).isTrue();
        assertThat(actual.get().isNull(COL_NAME7)).isFalse();
        assertThat(actual.get().getBlob(COL_NAME7)).isEqualTo(ByteBuffer.wrap(col7Value.get().get()));
        assertThat(actual.get().getBlobAsByteBuffer(COL_NAME7)).isEqualTo(ByteBuffer.wrap(col7Value.get().get()));
        assertThat(actual.get().getBlobAsBytes(COL_NAME7)).isEqualTo(col7Value.get().get());
        assertThat(actual.get().getAsObject(COL_NAME7)).isEqualTo(ByteBuffer.wrap(col7Value.get().get()));
    }
}
Also used : Put(com.scalar.db.api.Put) BlobValue(com.scalar.db.io.BlobValue) Result(com.scalar.db.api.Result) DoubleValue(com.scalar.db.io.DoubleValue) TextValue(com.scalar.db.io.TextValue) BooleanValue(com.scalar.db.io.BooleanValue) Get(com.scalar.db.api.Get) FloatValue(com.scalar.db.io.FloatValue) IntValue(com.scalar.db.io.IntValue) BigIntValue(com.scalar.db.io.BigIntValue) Key(com.scalar.db.io.Key) BigIntValue(com.scalar.db.io.BigIntValue) Test(org.junit.Test)

Example 7 with BooleanValue

use of com.scalar.db.io.BooleanValue in project scalardb by scalar-labs.

the class ResultImplTest method getValues_ProperValuesGivenInConstructor_ShouldReturnWhatsSet.

@Test
public void getValues_ProperValuesGivenInConstructor_ShouldReturnWhatsSet() {
    // Arrange
    ResultImpl result = new ResultImpl(values, TABLE_METADATA);
    // Act
    Map<String, Value<?>> actual = result.getValues();
    // Assert
    assertThat(actual.get(ANY_NAME_1)).isEqualTo(new TextValue(ANY_NAME_1, ANY_TEXT_1));
    assertThat(actual.get(ANY_NAME_2)).isEqualTo(new TextValue(ANY_NAME_2, ANY_TEXT_2));
    assertThat(actual.get(ANY_COLUMN_NAME_1)).isEqualTo(new BooleanValue(ANY_COLUMN_NAME_1, true));
    assertThat(actual.get(ANY_COLUMN_NAME_7)).isEqualTo(new BlobValue(ANY_COLUMN_NAME_7, "bytes".getBytes(StandardCharsets.UTF_8)));
}
Also used : TextValue(com.scalar.db.io.TextValue) BooleanValue(com.scalar.db.io.BooleanValue) IntValue(com.scalar.db.io.IntValue) DoubleValue(com.scalar.db.io.DoubleValue) TextValue(com.scalar.db.io.TextValue) Value(com.scalar.db.io.Value) BigIntValue(com.scalar.db.io.BigIntValue) FloatValue(com.scalar.db.io.FloatValue) BlobValue(com.scalar.db.io.BlobValue) BooleanValue(com.scalar.db.io.BooleanValue) BlobValue(com.scalar.db.io.BlobValue) Test(org.junit.Test)

Example 8 with BooleanValue

use of com.scalar.db.io.BooleanValue in project scalardb by scalar-labs.

the class StorageWithReservedKeywordIntegrationTestBase method put_WithReservedKeywordAndSinglePutGiven_ShouldStoreProperly.

@Test
public void put_WithReservedKeywordAndSinglePutGiven_ShouldStoreProperly() throws ExecutionException {
    // Arrange
    int pKey = 0;
    int cKey = 0;
    List<Put> puts = preparePuts();
    Key partitionKey = new Key(columnName1, pKey);
    Key clusteringKey = new Key(columnName4, cKey);
    Get get = new Get(partitionKey, clusteringKey);
    // Act
    storage.put(puts.get(pKey * 2 + cKey));
    // Assert
    Optional<Result> actual = storage.get(get);
    assertThat(actual.isPresent()).isTrue();
    assertThat(actual.get().getValue(columnName1)).isEqualTo(Optional.of(new IntValue(columnName1, pKey)));
    assertThat(actual.get().getValue(columnName2)).isEqualTo(Optional.of(new TextValue(columnName2, Integer.toString(pKey + cKey))));
    assertThat(actual.get().getValue(columnName3)).isEqualTo(Optional.of(new IntValue(columnName3, pKey + cKey)));
    assertThat(actual.get().getValue(columnName4)).isEqualTo(Optional.of(new IntValue(columnName4, cKey)));
    assertThat(actual.get().getValue(columnName5)).isEqualTo(Optional.of(new BooleanValue(columnName5, cKey % 2 == 0)));
}
Also used : TextValue(com.scalar.db.io.TextValue) Get(com.scalar.db.api.Get) BooleanValue(com.scalar.db.io.BooleanValue) IntValue(com.scalar.db.io.IntValue) Put(com.scalar.db.api.Put) Key(com.scalar.db.io.Key) Result(com.scalar.db.api.Result) Test(org.junit.Test)

Example 9 with BooleanValue

use of com.scalar.db.io.BooleanValue in project scalardb by scalar-labs.

the class ResultInterpreter method getValue.

@Nullable
private Value<?> getValue(String name, ResultSet resultSet) throws SQLException {
    Value<?> ret;
    DataType dataType = metadata.getColumnDataType(name);
    switch(dataType) {
        case BOOLEAN:
            ret = new BooleanValue(name, resultSet.getBoolean(name));
            break;
        case INT:
            ret = new IntValue(name, resultSet.getInt(name));
            break;
        case BIGINT:
            ret = new BigIntValue(name, resultSet.getLong(name));
            break;
        case FLOAT:
            // To handle Float.MAX_VALUE in MySQL, we need to get the value as double, then cast it to
            // float
            ret = new FloatValue(name, (float) resultSet.getDouble(name));
            break;
        case DOUBLE:
            ret = new DoubleValue(name, resultSet.getDouble(name));
            break;
        case TEXT:
            ret = new TextValue(name, resultSet.getString(name));
            break;
        case BLOB:
            ret = new BlobValue(name, resultSet.getBytes(name));
            break;
        default:
            throw new AssertionError();
    }
    if (resultSet.wasNull()) {
        return null;
    }
    return ret;
}
Also used : DoubleValue(com.scalar.db.io.DoubleValue) TextValue(com.scalar.db.io.TextValue) BooleanValue(com.scalar.db.io.BooleanValue) DataType(com.scalar.db.io.DataType) FloatValue(com.scalar.db.io.FloatValue) IntValue(com.scalar.db.io.IntValue) BigIntValue(com.scalar.db.io.BigIntValue) BigIntValue(com.scalar.db.io.BigIntValue) BlobValue(com.scalar.db.io.BlobValue) Nullable(javax.annotation.Nullable)

Example 10 with BooleanValue

use of com.scalar.db.io.BooleanValue in project scalardb by scalar-labs.

the class DistributedStorageColumnValueIntegrationTestBase method put_WithRandomValues_ShouldPutCorrectly.

@Test
public void put_WithRandomValues_ShouldPutCorrectly() throws ExecutionException {
    RANDOM.setSeed(seed);
    for (int i = 0; i < ATTEMPT_COUNT; i++) {
        // Arrange
        IntValue partitionKeyValue = (IntValue) getRandomValue(RANDOM, PARTITION_KEY, DataType.INT);
        BooleanValue col1Value = (BooleanValue) getRandomValue(RANDOM, COL_NAME1, DataType.BOOLEAN);
        IntValue col2Value = (IntValue) getRandomValue(RANDOM, COL_NAME2, DataType.INT);
        BigIntValue col3Value = (BigIntValue) getRandomValue(RANDOM, COL_NAME3, DataType.BIGINT);
        FloatValue col4Value = (FloatValue) getRandomValue(RANDOM, COL_NAME4, DataType.FLOAT);
        DoubleValue col5Value = (DoubleValue) getRandomValue(RANDOM, COL_NAME5, DataType.DOUBLE);
        TextValue col6Value = (TextValue) getRandomValue(RANDOM, COL_NAME6, DataType.TEXT);
        BlobValue col7Value = (BlobValue) getRandomValue(RANDOM, COL_NAME7, DataType.BLOB);
        Put put = new Put(new Key(partitionKeyValue)).withValue(col1Value).withValue(col2Value).withValue(col3Value).withValue(col4Value).withValue(col5Value).withValue(col6Value).withValue(col7Value).forNamespace(namespace).forTable(TABLE);
        // Act
        storage.put(put);
        // Assert
        Optional<Result> actual = storage.get(new Get(new Key(partitionKeyValue)).forNamespace(namespace).forTable(TABLE));
        assertThat(actual).isPresent();
        assertThat(actual.get().getValue(PARTITION_KEY).isPresent()).isTrue();
        assertThat(actual.get().getValue(PARTITION_KEY).get()).isEqualTo(partitionKeyValue);
        assertThat(actual.get().getValue(COL_NAME1).isPresent()).isTrue();
        assertThat(actual.get().getValue(COL_NAME1).get()).isEqualTo(col1Value);
        assertThat(actual.get().getValue(COL_NAME2).isPresent()).isTrue();
        assertThat(actual.get().getValue(COL_NAME2).get()).isEqualTo(col2Value);
        assertThat(actual.get().getValue(COL_NAME3).isPresent()).isTrue();
        assertThat(actual.get().getValue(COL_NAME3).get()).isEqualTo(col3Value);
        assertThat(actual.get().getValue(COL_NAME4).isPresent()).isTrue();
        assertThat(actual.get().getValue(COL_NAME4).get()).isEqualTo(col4Value);
        assertThat(actual.get().getValue(COL_NAME5).isPresent()).isTrue();
        assertThat(actual.get().getValue(COL_NAME5).get()).isEqualTo(col5Value);
        assertThat(actual.get().getValue(COL_NAME6).isPresent()).isTrue();
        assertThat(actual.get().getValue(COL_NAME6).get()).isEqualTo(col6Value);
        assertThat(actual.get().getValue(COL_NAME7).isPresent()).isTrue();
        assertThat(actual.get().getValue(COL_NAME7).get()).isEqualTo(col7Value);
        assertThat(actual.get().getContainedColumnNames()).isEqualTo(new HashSet<>(Arrays.asList(PARTITION_KEY, COL_NAME1, COL_NAME2, COL_NAME3, COL_NAME4, COL_NAME5, COL_NAME6, COL_NAME7)));
        assertThat(actual.get().contains(PARTITION_KEY)).isTrue();
        assertThat(actual.get().isNull(PARTITION_KEY)).isFalse();
        assertThat(actual.get().getInt(PARTITION_KEY)).isEqualTo(partitionKeyValue.get());
        assertThat(actual.get().getAsObject(PARTITION_KEY)).isEqualTo(partitionKeyValue.get());
        assertThat(actual.get().contains(COL_NAME1)).isTrue();
        assertThat(actual.get().isNull(COL_NAME1)).isFalse();
        assertThat(actual.get().getBoolean(COL_NAME1)).isEqualTo(col1Value.get());
        assertThat(actual.get().getAsObject(COL_NAME1)).isEqualTo(col1Value.get());
        assertThat(actual.get().contains(COL_NAME2)).isTrue();
        assertThat(actual.get().isNull(COL_NAME2)).isFalse();
        assertThat(actual.get().getInt(COL_NAME2)).isEqualTo(col2Value.get());
        assertThat(actual.get().getAsObject(COL_NAME2)).isEqualTo(col2Value.get());
        assertThat(actual.get().contains(COL_NAME3)).isTrue();
        assertThat(actual.get().isNull(COL_NAME3)).isFalse();
        assertThat(actual.get().getBigInt(COL_NAME3)).isEqualTo(col3Value.get());
        assertThat(actual.get().getAsObject(COL_NAME3)).isEqualTo(col3Value.get());
        assertThat(actual.get().contains(COL_NAME4)).isTrue();
        assertThat(actual.get().isNull(COL_NAME4)).isFalse();
        assertThat(actual.get().getFloat(COL_NAME4)).isEqualTo(col4Value.get());
        assertThat(actual.get().getAsObject(COL_NAME4)).isEqualTo(col4Value.get());
        assertThat(actual.get().contains(COL_NAME5)).isTrue();
        assertThat(actual.get().isNull(COL_NAME5)).isFalse();
        assertThat(actual.get().getDouble(COL_NAME5)).isEqualTo(col5Value.get());
        assertThat(actual.get().getAsObject(COL_NAME5)).isEqualTo(col5Value.get());
        assertThat(actual.get().contains(COL_NAME6)).isTrue();
        assertThat(actual.get().isNull(COL_NAME6)).isFalse();
        assertThat(actual.get().getText(COL_NAME6)).isEqualTo(col6Value.get().get());
        assertThat(actual.get().getAsObject(COL_NAME6)).isEqualTo(col6Value.get().get());
        assertThat(actual.get().contains(COL_NAME7)).isTrue();
        assertThat(actual.get().isNull(COL_NAME7)).isFalse();
        assertThat(actual.get().getBlob(COL_NAME7)).isEqualTo(ByteBuffer.wrap(col7Value.get().get()));
        assertThat(actual.get().getBlobAsByteBuffer(COL_NAME7)).isEqualTo(ByteBuffer.wrap(col7Value.get().get()));
        assertThat(actual.get().getBlobAsBytes(COL_NAME7)).isEqualTo(col7Value.get().get());
        assertThat(actual.get().getAsObject(COL_NAME7)).isEqualTo(ByteBuffer.wrap(col7Value.get().get()));
    }
}
Also used : BlobValue(com.scalar.db.io.BlobValue) DoubleValue(com.scalar.db.io.DoubleValue) TextValue(com.scalar.db.io.TextValue) BooleanValue(com.scalar.db.io.BooleanValue) FloatValue(com.scalar.db.io.FloatValue) IntValue(com.scalar.db.io.IntValue) BigIntValue(com.scalar.db.io.BigIntValue) Key(com.scalar.db.io.Key) BigIntValue(com.scalar.db.io.BigIntValue) Test(org.junit.jupiter.api.Test)

Aggregations

BooleanValue (com.scalar.db.io.BooleanValue)48 IntValue (com.scalar.db.io.IntValue)47 TextValue (com.scalar.db.io.TextValue)47 DoubleValue (com.scalar.db.io.DoubleValue)37 Key (com.scalar.db.io.Key)36 Test (org.junit.jupiter.api.Test)31 Put (com.scalar.db.api.Put)27 Value (com.scalar.db.io.Value)22 BigIntValue (com.scalar.db.io.BigIntValue)21 BlobValue (com.scalar.db.io.BlobValue)21 FloatValue (com.scalar.db.io.FloatValue)21 Test (org.junit.Test)16 MutationCondition (com.scalar.db.api.MutationCondition)12 Result (com.scalar.db.api.Result)11 Get (com.scalar.db.api.Get)10 PutIfNotExists (com.scalar.db.api.PutIfNotExists)4 ExpectedResult (com.scalar.db.util.TestUtils.ExpectedResult)4 PutIfExists (com.scalar.db.api.PutIfExists)3 BigIntColumn (com.scalar.db.io.BigIntColumn)2 BlobColumn (com.scalar.db.io.BlobColumn)2