Search in sources :

Example 6 with Column

use of com.facebook.presto.verifier.framework.Column in project presto by prestodb.

the class TestChecksumValidator method testMap.

@Test
public void testMap() {
    List<Column> columns = ImmutableList.of(MAP_COLUMN);
    ChecksumResult controlChecksum = new ChecksumResult(5, ImmutableMap.<String, Object>builder().put("map$checksum", new SqlVarbinary(new byte[] { 0xa })).put("map$keys_checksum", new SqlVarbinary(new byte[] { 0xb })).put("map$values_checksum", new SqlVarbinary(new byte[] { 0xc })).put("map$cardinality_sum", 3L).put("map$cardinality_checksum", new SqlVarbinary(new byte[] { 0xd })).build());
    // Matched
    assertTrue(checksumValidator.getMismatchedColumns(columns, controlChecksum, controlChecksum).isEmpty());
    // Mismatched map checksum
    ChecksumResult testChecksum = new ChecksumResult(5, ImmutableMap.<String, Object>builder().put("map$checksum", new SqlVarbinary(new byte[] { 0x1a })).put("map$keys_checksum", new SqlVarbinary(new byte[] { 0xb })).put("map$values_checksum", new SqlVarbinary(new byte[] { 0xc })).put("map$cardinality_sum", 3L).put("map$cardinality_checksum", new SqlVarbinary(new byte[] { 0xd })).build());
    assertMismatchedColumns(columns, controlChecksum, testChecksum, MAP_COLUMN);
    // Mismatched keys checksum
    testChecksum = new ChecksumResult(5, ImmutableMap.<String, Object>builder().put("map$checksum", new SqlVarbinary(new byte[] { 0xa })).put("map$keys_checksum", new SqlVarbinary(new byte[] { 0x1b })).put("map$values_checksum", new SqlVarbinary(new byte[] { 0xc })).put("map$cardinality_checksum", new SqlVarbinary(new byte[] { 0xd })).put("map$cardinality_sum", 3L).build());
    assertMismatchedColumns(columns, controlChecksum, testChecksum, MAP_COLUMN);
    // Mismatched values checksum
    testChecksum = new ChecksumResult(5, ImmutableMap.<String, Object>builder().put("map$checksum", new SqlVarbinary(new byte[] { 0xa })).put("map$keys_checksum", new SqlVarbinary(new byte[] { 0xb })).put("map$values_checksum", new SqlVarbinary(new byte[] { 0x1c })).put("map$cardinality_checksum", new SqlVarbinary(new byte[] { 0xd })).put("map$cardinality_sum", 3L).build());
    assertMismatchedColumns(columns, controlChecksum, testChecksum, MAP_COLUMN);
    // Mismatched cardinality checksum
    testChecksum = new ChecksumResult(5, ImmutableMap.<String, Object>builder().put("map$checksum", new SqlVarbinary(new byte[] { 0xa })).put("map$keys_checksum", new SqlVarbinary(new byte[] { 0xb })).put("map$values_checksum", new SqlVarbinary(new byte[] { 0xc })).put("map$cardinality_checksum", new SqlVarbinary(new byte[] { 0x1d })).put("map$cardinality_sum", 3L).build());
    assertMismatchedColumns(columns, controlChecksum, testChecksum, MAP_COLUMN);
    // Mismatched cardinality sum
    testChecksum = new ChecksumResult(5, ImmutableMap.<String, Object>builder().put("map$checksum", new SqlVarbinary(new byte[] { 0xa })).put("map$keys_checksum", new SqlVarbinary(new byte[] { 0xb })).put("map$values_checksum", new SqlVarbinary(new byte[] { 0xc })).put("map$cardinality_checksum", new SqlVarbinary(new byte[] { 0xd })).put("map$cardinality_sum", 4L).build());
    assertMismatchedColumns(columns, controlChecksum, testChecksum, MAP_COLUMN);
}
Also used : Column(com.facebook.presto.verifier.framework.Column) SqlVarbinary(com.facebook.presto.common.type.SqlVarbinary) Test(org.testng.annotations.Test)

Example 7 with Column

use of com.facebook.presto.verifier.framework.Column in project presto by prestodb.

the class TestChecksumValidator method testSimple.

@Test
public void testSimple() {
    List<Column> columns = ImmutableList.of(BIGINT_COLUMN, VARCHAR_COLUMN);
    ChecksumResult controlChecksum = new ChecksumResult(5, ImmutableMap.<String, Object>builder().put("bigint$checksum", new SqlVarbinary(new byte[] { 0xa })).put("varchar$checksum", new SqlVarbinary(new byte[] { 0xb })).build());
    // Matched
    assertTrue(checksumValidator.getMismatchedColumns(columns, controlChecksum, controlChecksum).isEmpty());
    // Mismatched
    ChecksumResult testChecksum = new ChecksumResult(5, ImmutableMap.<String, Object>builder().put("bigint$checksum", new SqlVarbinary(new byte[] { 0x1a })).put("varchar$checksum", new SqlVarbinary(new byte[] { 0x1b })).build());
    assertMismatchedColumns(columns, controlChecksum, testChecksum, BIGINT_COLUMN, VARCHAR_COLUMN);
}
Also used : Column(com.facebook.presto.verifier.framework.Column) SqlVarbinary(com.facebook.presto.common.type.SqlVarbinary) Test(org.testng.annotations.Test)

Aggregations

Column (com.facebook.presto.verifier.framework.Column)7 SqlVarbinary (com.facebook.presto.common.type.SqlVarbinary)4 Test (org.testng.annotations.Test)4 SingleColumn (com.facebook.presto.sql.tree.SingleColumn)3 ImmutableList (com.google.common.collect.ImmutableList)3 Field (com.facebook.presto.common.type.RowType.Field)2 DereferenceExpression (com.facebook.presto.sql.tree.DereferenceExpression)1 FunctionCall (com.facebook.presto.sql.tree.FunctionCall)1 Identifier (com.facebook.presto.sql.tree.Identifier)1 Select (com.facebook.presto.sql.tree.Select)1 SelectItem (com.facebook.presto.sql.tree.SelectItem)1 Table (com.facebook.presto.sql.tree.Table)1 VerifierUtil.delimitedIdentifier (com.facebook.presto.verifier.framework.VerifierUtil.delimitedIdentifier)1 ImmutableList.toImmutableList (com.google.common.collect.ImmutableList.toImmutableList)1