Java 类com.facebook.presto.spi.type.SqlVarbinary 实例源码

项目:presto    文件:TestStringFunctions.java   
@Test
public void testReverse()
{
    assertFunction("REVERSE('')", VARCHAR, "");
    assertFunction("REVERSE('hello')", VARCHAR, "olleh");
    assertFunction("REVERSE('Quadratically')", VARCHAR, "yllacitardauQ");
    assertFunction("REVERSE('racecar')", VARCHAR, "racecar");
    // Test REVERSE for non-ASCII
    assertFunction("REVERSE('\u4FE1\u5FF5,\u7231,\u5E0C\u671B')", VARCHAR, "\u671B\u5E0C,\u7231,\u5FF5\u4FE1");
    assertFunction("REVERSE('\u00D6sterreich')", VARCHAR, "hcierrets\u00D6");
    assertFunction("REVERSE('na\u00EFve')", VARCHAR, "ev\u00EFan");
    assertFunction("REVERSE('\uD801\uDC2Dend')", VARCHAR, "dne\uD801\uDC2D");

    assertFunction("CAST(REVERSE(utf8(from_hex('CE'))) AS VARBINARY)", VARBINARY, new SqlVarbinary(new byte[] {(byte) 0xCE}));
    assertFunction("CAST(REVERSE('hello' || utf8(from_hex('CE'))) AS VARBINARY)", VARBINARY, new SqlVarbinary(new byte[] {(byte) 0xCE, 'o', 'l', 'l', 'e', 'h'}));
}
项目:presto-hyperloglog    文件:HyperLogLogType.java   
@Override
public Object getObjectValue(ConnectorSession session, Block block, int position)
{
    if (block.isNull(position)) {
        return null;
    }

    return new SqlVarbinary(block.getSlice(position, 0, block.getLength(position)).getBytes());
}
项目:presto    文件:AbstractTestOrcReader.java   
private static SqlVarbinary byteArrayToVarbinary(byte[] input)
{
    if (input == null) {
        return null;
    }
    return new SqlVarbinary(input);
}
项目:presto    文件:TestChecksumAggregation.java   
private static SqlVarbinary expectedChecksum(Type type, Block block)
{
    long result = 0;
    for (int i = 0; i < block.getPositionCount(); i++) {
        if (block.isNull(i)) {
            result += PRIME64;
        }
        else {
            result += type.hash(block, i) * PRIME64;
        }
    }
    return new SqlVarbinary(wrappedLongArray(result).getBytes());
}
项目:presto    文件:TestStringFunctions.java   
@Test
public void testReplace()
{
    assertFunction("REPLACE('aaa', 'a', 'aa')", VARCHAR, "aaaaaa");
    assertFunction("REPLACE('abcdefabcdef', 'cd', 'XX')", VARCHAR, "abXXefabXXef");
    assertFunction("REPLACE('abcdefabcdef', 'cd')", VARCHAR, "abefabef");
    assertFunction("REPLACE('123123tech', '123')", VARCHAR, "tech");
    assertFunction("REPLACE('123tech123', '123')", VARCHAR, "tech");
    assertFunction("REPLACE('222tech', '2', '3')", VARCHAR, "333tech");
    assertFunction("REPLACE('0000123', '0')", VARCHAR, "123");
    assertFunction("REPLACE('0000123', '0', ' ')", VARCHAR, "    123");
    assertFunction("REPLACE('foo', '')", VARCHAR, "foo");
    assertFunction("REPLACE('foo', '', '')", VARCHAR, "foo");
    assertFunction("REPLACE('foo', 'foo', '')", VARCHAR, "");
    assertFunction("REPLACE('abc', '', 'xx')", VARCHAR, "xxaxxbxxcxx");
    assertFunction("REPLACE('', '', 'xx')", VARCHAR, "xx");
    assertFunction("REPLACE('', '')", VARCHAR, "");
    assertFunction("REPLACE('', '', '')", VARCHAR, "");
    assertFunction("REPLACE('\u4FE1\u5FF5,\u7231,\u5E0C\u671B', ',', '\u2014')", VARCHAR, "\u4FE1\u5FF5\u2014\u7231\u2014\u5E0C\u671B");
    assertFunction("REPLACE('::\uD801\uDC2D::', ':', '')", VARCHAR, "\uD801\uDC2D");
    assertFunction("REPLACE('\u00D6sterreich', '\u00D6', 'Oe')", VARCHAR, "Oesterreich");

    assertFunction("CAST(REPLACE(utf8(from_hex('CE')), '', 'X') AS VARBINARY)", VARBINARY, new SqlVarbinary(new byte[] {'X', (byte) 0xCE, 'X'}));

    assertFunction("CAST(REPLACE('abc' || utf8(from_hex('CE')), '', 'X') AS VARBINARY)",
            VARBINARY,
            new SqlVarbinary(new byte[] {'X', 'a', 'X', 'b', 'X', 'c', 'X', (byte) 0xCE, 'X'}));

    assertFunction("CAST(REPLACE(utf8(from_hex('CE')) || 'xyz', '', 'X') AS VARBINARY)",
            VARBINARY,
            new SqlVarbinary(new byte[] {'X', (byte) 0xCE, 'X', 'x', 'X', 'y', 'X', 'z', 'X'}));

    assertFunction("CAST(REPLACE('abc' || utf8(from_hex('CE')) || 'xyz', '', 'X') AS VARBINARY)",
            VARBINARY,
            new SqlVarbinary(new byte[] {'X', 'a', 'X', 'b', 'X', 'c', 'X', (byte) 0xCE, 'X', 'x', 'X', 'y', 'X', 'z', 'X'}));
}
项目:presto    文件:TestStringFunctions.java   
@Test
public void testLower()
{
    assertFunction("LOWER('')", VARCHAR, "");
    assertFunction("LOWER('Hello World')", VARCHAR, "hello world");
    assertFunction("LOWER('WHAT!!')", VARCHAR, "what!!");
    assertFunction("LOWER('\u00D6STERREICH')", VARCHAR, lowerByCodePoint("\u00D6sterreich"));
    assertFunction("LOWER('From\uD801\uDC2DTo')", VARCHAR, lowerByCodePoint("from\uD801\uDC2Dto"));

    assertFunction("CAST(LOWER(utf8(from_hex('CE'))) AS VARBINARY)", VARBINARY, new SqlVarbinary(new byte[] {(byte) 0xCE}));
    assertFunction("CAST(LOWER('HELLO' || utf8(from_hex('CE'))) AS VARBINARY)", VARBINARY, new SqlVarbinary(new byte[] {'h', 'e', 'l', 'l', 'o', (byte) 0xCE}));
    assertFunction("CAST(LOWER(utf8(from_hex('CE')) || 'HELLO') AS VARBINARY)", VARBINARY, new SqlVarbinary(new byte[] {(byte) 0xCE, 'h', 'e', 'l', 'l', 'o'}));
    assertFunction("CAST(LOWER(utf8(from_hex('C8BAFF'))) AS VARBINARY)", VARBINARY, new SqlVarbinary(new byte[] {(byte) 0xE2, (byte) 0xB1, (byte) 0xA5, (byte) 0xFF}));
}
项目:presto    文件:TestStringFunctions.java   
@Test
public void testUpper()
{
    assertFunction("UPPER('')", VARCHAR, "");
    assertFunction("UPPER('Hello World')", VARCHAR, "HELLO WORLD");
    assertFunction("UPPER('what!!')", VARCHAR, "WHAT!!");
    assertFunction("UPPER('\u00D6sterreich')", VARCHAR, upperByCodePoint("\u00D6STERREICH"));
    assertFunction("UPPER('From\uD801\uDC2DTo')", VARCHAR, upperByCodePoint("FROM\uD801\uDC2DTO"));

    assertFunction("CAST(UPPER(utf8(from_hex('CE'))) AS VARBINARY)", VARBINARY, new SqlVarbinary(new byte[] {(byte) 0xCE}));
    assertFunction("CAST(UPPER('hello' || utf8(from_hex('CE'))) AS VARBINARY)", VARBINARY, new SqlVarbinary(new byte[] {'H', 'E', 'L', 'L', 'O', (byte) 0xCE}));
    assertFunction("CAST(UPPER(utf8(from_hex('CE')) || 'hello') AS VARBINARY)", VARBINARY, new SqlVarbinary(new byte[] {(byte) 0xCE, 'H', 'E', 'L', 'L', 'O'}));
}
项目:presto    文件:TestExpressionCompiler.java   
@Test
public void smokedTest()
        throws Exception
{
    assertExecute("cast(true as boolean)", BOOLEAN, true);
    assertExecute("true", BOOLEAN, true);
    assertExecute("false", BOOLEAN, false);
    assertExecute("42", BIGINT, 42L);
    assertExecute("'foo'", VARCHAR, "foo");
    assertExecute("4.2", DOUBLE, 4.2);
    assertExecute("1 + 1", BIGINT, 2L);
    assertExecute("X' 1 f'", VARBINARY, new SqlVarbinary(Slices.wrappedBuffer((byte) 0x1f).getBytes()));
    assertExecute("X' '", VARBINARY, new SqlVarbinary(new byte[0]));
    assertExecute("bound_long", BIGINT, 1234L);
    assertExecute("bound_string", VARCHAR, "hello");
    assertExecute("bound_double", DOUBLE, 12.34);
    assertExecute("bound_boolean", BOOLEAN, true);
    assertExecute("bound_timestamp", BIGINT, new DateTime(2001, 8, 22, 3, 4, 5, 321, UTC).getMillis());
    assertExecute("bound_pattern", VARCHAR, "%el%");
    assertExecute("bound_null_string", VARCHAR, null);
    assertExecute("bound_timestamp_with_timezone", TIMESTAMP_WITH_TIME_ZONE, new SqlTimestampWithTimeZone(new DateTime(1970, 1, 1, 0, 1, 0, 999, DateTimeZone.UTC).getMillis(), TimeZoneKey.getTimeZoneKey("Z")));
    assertExecute("bound_binary_literal", VARBINARY, new SqlVarbinary(new byte[]{(byte) 0xab}));

    // todo enable when null output type is supported
    // assertExecute("null", null);

    Futures.allAsList(futures).get();
}
项目:presto    文件:TestMapOperators.java   
@Test
public void testMapKeys()
        throws Exception
{
    assertFunction("MAP_KEYS(MAP(ARRAY['1', '3'], ARRAY['2', '4']))", new ArrayType(VARCHAR), ImmutableList.of("1", "3"));
    assertFunction("MAP_KEYS(MAP(ARRAY[1.0, 2.0], ARRAY[ARRAY[1, 2], ARRAY[3]]))", new ArrayType(DOUBLE), ImmutableList.of(1.0, 2.0));
    assertFunction("MAP_KEYS(MAP(ARRAY['puppies'], ARRAY['kittens']))", new ArrayType(VARCHAR), ImmutableList.of("puppies"));
    assertFunction("MAP_KEYS(MAP(ARRAY[TRUE], ARRAY[2]))", new ArrayType(BOOLEAN), ImmutableList.of(true));
    assertFunction("MAP_KEYS(MAP(ARRAY[from_unixtime(1)], ARRAY[1.0]))", new ArrayType(TIMESTAMP), ImmutableList.of(new SqlTimestamp(1000, TEST_SESSION.getTimeZoneKey())));
    assertFunction("MAP_KEYS(MAP(ARRAY[CAST('puppies' as varbinary)], ARRAY['kittens']))", new ArrayType(VARBINARY), ImmutableList.of(new SqlVarbinary("puppies".getBytes(UTF_8))));
    assertFunction("MAP_KEYS(MAP(ARRAY[1,2],  ARRAY[ARRAY[1, 2], ARRAY[3]]))", new ArrayType(BIGINT), ImmutableList.of(1L, 2L));
    assertFunction("MAP_KEYS(MAP(ARRAY[1,4], ARRAY[MAP(ARRAY[2], ARRAY[3]), MAP(ARRAY[5], ARRAY[6])]))",  new ArrayType(BIGINT), ImmutableList.of(1L, 4L));
    assertFunction("MAP_KEYS(MAP(ARRAY [ARRAY [1], ARRAY [2, 3]],  ARRAY [ARRAY [3, 4], ARRAY [5]]))", new ArrayType(new ArrayType(BIGINT)), ImmutableList.of(ImmutableList.of(1L), ImmutableList.of(2L, 3L)));
}
项目:presto    文件:AbstractTestHiveClient.java   
private static void assertValueTypes(MaterializedRow row, List<ColumnMetadata> schema)
{
    for (int columnIndex = 0; columnIndex < schema.size(); columnIndex++) {
        ColumnMetadata column = schema.get(columnIndex);
        Object value = row.getField(columnIndex);
        if (value != null) {
            if (BOOLEAN.equals(column.getType())) {
                assertInstanceOf(value, Boolean.class);
            }
            else if (BIGINT.equals(column.getType())) {
                assertInstanceOf(value, Long.class);
            }
            else if (DOUBLE.equals(column.getType())) {
                assertInstanceOf(value, Double.class);
            }
            else if (VARCHAR.equals(column.getType())) {
                assertInstanceOf(value, String.class);
            }
            else if (VARBINARY.equals(column.getType())) {
                assertInstanceOf(value, SqlVarbinary.class);
            }
            else if (TIMESTAMP.equals(column.getType())) {
                assertInstanceOf(value, SqlTimestamp.class);
            }
            else if (DATE.equals(column.getType())) {
                assertInstanceOf(value, SqlDate.class);
            }
            else if (column.getType() instanceof ArrayType) {
                assertInstanceOf(value, List.class);
            }
            else if (column.getType() instanceof MapType) {
                assertInstanceOf(value, Map.class);
            }
            else {
                fail("Unknown primitive type " + columnIndex);
            }
        }
    }
}
项目:presto-bloomfilter    文件:BloomFilterType.java   
@Override
public Object getObjectValue(ConnectorSession session, Block block, int position)
{
    if (block.isNull(position)) {
        return null;
    }

    return new SqlVarbinary(block.getSlice(position, 0, block.getSliceLength(position)).getBytes());
}
项目:presto    文件:TestOrcStorageManager.java   
private static SqlVarbinary sqlBinary(byte[] bytes)
{
    return new SqlVarbinary(bytes);
}
项目:presto    文件:TestVarbinaryFunctions.java   
@Test
public void testBinaryLiteral()
        throws Exception
{
    assertFunction("X'58F7'", VARBINARY, new SqlVarbinary(new byte[]{(byte) 0x58, (byte) 0xF7}));
}
项目:presto    文件:TestVarbinaryFunctions.java   
private static SqlVarbinary sqlVarbinary(String value)
{
    return new SqlVarbinary(value.getBytes(UTF_8));
}
项目:presto    文件:TestVarbinaryFunctions.java   
private static SqlVarbinary sqlVarbinaryHex(String value)
{
    return new SqlVarbinary(base16().decode(value));
}
项目:presto    文件:TestVarbinaryType.java   
public TestVarbinaryType()
{
    super(VARBINARY, SqlVarbinary.class, createTestBlock());
}
项目:presto    文件:AbstractTestHiveFileFormats.java   
protected void checkPageSource(ConnectorPageSource pageSource, List<TestColumn> testColumns, List<Type> types)
        throws IOException
{
    try {
        MaterializedResult result = materializeSourceDataStream(SESSION, pageSource, types);

        for (MaterializedRow row : result) {
            for (int i = 0, testColumnsSize = testColumns.size(); i < testColumnsSize; i++) {
                TestColumn testColumn = testColumns.get(i);
                Type type = types.get(i);

                Object actualValue = row.getField(i);
                Object expectedValue = testColumn.getExpectedValue();
                if (actualValue == null) {
                    assertEquals(null, expectedValue, String.format("Expected non-null for column %d", i));
                }
                else if (testColumn.getObjectInspector().getTypeName().equals("float") ||
                        testColumn.getObjectInspector().getTypeName().equals("double")) {
                    assertEquals((double) actualValue, (double) expectedValue, EPSILON);
                }
                else if (testColumn.getObjectInspector().getTypeName().equals("date")) {
                    SqlDate expectedDate = new SqlDate(((Long) expectedValue).intValue());
                    assertEquals(actualValue, expectedDate);
                }
                else if (testColumn.getObjectInspector().getTypeName().equals("timestamp")) {
                    SqlTimestamp expectedTimestamp = new SqlTimestamp((Long) expectedValue, SESSION.getTimeZoneKey());
                    assertEquals(actualValue, expectedTimestamp);
                }
                else if (testColumn.getObjectInspector().getCategory() == Category.PRIMITIVE) {
                    if (expectedValue instanceof Slice) {
                        expectedValue = ((Slice) expectedValue).toStringUtf8();
                    }

                    if (actualValue instanceof Slice) {
                        actualValue = ((Slice) actualValue).toStringUtf8();
                    }
                    if (actualValue instanceof SqlVarbinary) {
                        actualValue = new String(((SqlVarbinary) actualValue).getBytes(), UTF_8);
                    }
                    assertEquals(actualValue, expectedValue, String.format("Wrong value for column %d", i));
                }
                else {
                    BlockBuilder builder = type.createBlockBuilder(new BlockBuilderStatus(), 1);
                    type.writeObject(builder, expectedValue);
                    expectedValue = type.getObjectValue(SESSION, builder.build(), 0);
                    assertEquals(actualValue, expectedValue, String.format("Wrong value for column %s", testColumn.getName()));
                }
            }
        }
    }
    finally {
        pageSource.close();
    }
}