Java 类com.facebook.presto.spi.function.SqlType 实例源码
项目:presto-bloomfilter
文件:BloomFilterPersistScalarFunction.java
@SqlType(StandardTypes.BOOLEAN)
@Nullable
@SqlNullable
public static Boolean bloomFilterPersist(@SqlNullable @SqlType(BloomFilterType.TYPE) Slice bloomFilterSlice, @SqlType(StandardTypes.VARCHAR) Slice urlSlice) throws Exception
{
// Nothing todo
if (urlSlice == null) {
return true;
}
BloomFilter bf = getOrLoadBloomFilter(bloomFilterSlice);
// Persist
// we do not try catch here to make sure that errors are communicated clearly to the client
// and typical retry logic continues to work
String url = new String(urlSlice.getBytes());
if (!HTTP_CLIENT.isStarted()) {
log.warn("Http client was not started, trying to start");
HTTP_CLIENT.start();
}
Request post = HTTP_CLIENT.POST(url);
post.content(new StringContentProvider(new String(bf.toBase64())));
post.method("PUT");
post.send();
log.info("Persisted " + bf.toString() + " " + url);
return true;
}
项目:presto-ethereum
文件:EthereumUDFs.java
@ScalarFunction("fromWei")
@Description("fromWei")
@SqlType(StandardTypes.DOUBLE)
public static double fromWei(@SqlType(StandardTypes.DOUBLE) double num, @SqlType(StandardTypes.VARCHAR) Slice unit) {
String unitStr = unit.toStringUtf8().toUpperCase();
EthereumUnit u = EthereumUnit.valueOf(unitStr);
return u.fromWei(num);
}
项目:presto-ethereum
文件:EthereumUDFs.java
@ScalarFunction("toWei")
@Description("toWei")
@SqlType(StandardTypes.DOUBLE)
public static double toWei(@SqlType(StandardTypes.DOUBLE) double num, @SqlType(StandardTypes.VARCHAR) Slice unit) {
String unitStr = unit.toStringUtf8().toUpperCase();
EthereumUnit u = EthereumUnit.valueOf(unitStr);
return u.toWei(num);
}
项目:presto-hyperloglog
文件:HyperLogLogScalarFunctions.java
@Description("Returns the approximate cardinality of a HLL")
@ScalarFunction("cardinality")
@SqlType(StandardTypes.BIGINT)
public static long hllCardinality(@SqlType(HyperLogLogType.TYPE) Slice hll)
{
return (Long) HyperLogLog.fromBytes(hll.getBytes()).approximateSize().estimate();
}
项目:presto-hyperloglog
文件:HyperLogLogScalarFunctions.java
@Description("Create a HLL from a string")
@ScalarFunction("hll_create")
@SqlType(HyperLogLogType.TYPE)
public static Slice hllCreate(@SqlType(StandardTypes.VARCHAR) Slice string, @SqlType(StandardTypes.BIGINT) long bits)
{
HyperLogLogMonoid monoid = new HyperLogLogMonoid((int) bits);
DenseHLL hll = monoid.create(string.getBytes()).toDenseHLL();
return Slices.wrappedBuffer(HyperLogLog.toBytes(hll));
}
项目:presto-bloomfilter
文件:BloomFilterGetExpectedInsertionsScalarFunction.java
@SqlType(StandardTypes.BIGINT)
@Nullable
@SqlNullable
public static Long bloomFilterExpectedInsertions(@SqlNullable @SqlType(BloomFilterType.TYPE) Slice bloomFilterSlice)
{
BloomFilter bf = getOrLoadBloomFilter(bloomFilterSlice);
return (long) bf.getExpectedInsertions();
}
项目:presto-bloomfilter
文件:BloomFilterGetFalsePositivePercentageScalarFunction.java
@Description(value = "Display expected insertions from the bloom filter")
@Nullable
@SqlNullable
@SqlType(StandardTypes.DOUBLE)
public static Double bloomFilterFalsePositivePercentage(@SqlNullable @SqlType(BloomFilterType.TYPE) Slice bloomFilterSlice)
{
BloomFilter bf = getOrLoadBloomFilter(bloomFilterSlice);
return bf.getFalsePositivePercentage();
}
项目:presto-bloomfilter
文件:BloomFilterToStringScalarFunction.java
@Nullable
@SqlNullable
@SqlType(StandardTypes.VARCHAR)
public static Slice bloomFilterToString(@SqlNullable @SqlType(BloomFilterType.TYPE) Slice bloomFilterSlice)
{
BloomFilter bf = getOrLoadBloomFilter(bloomFilterSlice);
return Slices.wrappedBuffer(bf.toBase64());
}
项目:presto-bloomfilter
文件:BloomFilterAggregation.java
@InputFunction
public static void input(
BloomFilterState state,
@SqlType(VARCHAR) Slice slice)
{
BloomFilter bf = getOrCreateBloomFilter(state, BloomFilter.DEFAULT_BLOOM_FILTER_EXPECTED_INSERTIONS, BloomFilter.DEFAULT_BLOOM_FILTER_FALSE_POSITIVE_PERCENTAGE);
// Note: do not update the memory size as this is constant to our bloom filter implementation
bf.put(slice);
}
项目:presto-bloomfilter
文件:BloomFilterAggregation.java
@InputFunction
public static void input(
BloomFilterState state,
@SqlType(VARCHAR) Slice slice,
@SqlType(StandardTypes.BIGINT) long expectedInsertions)
{
BloomFilter bf = getOrCreateBloomFilter(state, (int) expectedInsertions, BloomFilter.DEFAULT_BLOOM_FILTER_FALSE_POSITIVE_PERCENTAGE);
// Note: do not update the memory size as this is constant to our bloom filter implementation
bf.put(slice);
}
项目:presto-bloomfilter
文件:BloomFilterAggregation.java
@InputFunction
public static void input(
BloomFilterState state,
@SqlType(VARCHAR) Slice slice,
@SqlType(StandardTypes.BIGINT) long expectedInsertions,
@SqlType(StandardTypes.DOUBLE) double falsePositivePercentage)
{
BloomFilter bf = getOrCreateBloomFilter(state, (int) expectedInsertions, falsePositivePercentage);
// Note: do not update the memory size as this is constant to our bloom filter implementation
bf.put(slice);
}
项目:presto-bloomfilter
文件:BloomFilterLoad.java
@InputFunction
public static void input(
BloomFilterState state,
@SqlType(VARCHAR) Slice slice) throws Exception
{
BloomFilter bf = getOrCreateBloomFilter(state, BloomFilter.DEFAULT_BLOOM_FILTER_EXPECTED_INSERTIONS, BloomFilter.DEFAULT_BLOOM_FILTER_FALSE_POSITIVE_PERCENTAGE);
// Do not try catch because we want to have visibility for client errors
bf.putAll(BloomFilter.fromUrl(new String(slice.getBytes())));
state.setBloomFilter(bf);
}
项目:presto-bloomfilter
文件:BloomFilterFromString.java
@InputFunction
public static void input(
BloomFilterState state,
@SqlType(VARCHAR) Slice slice)
{
BloomFilter bf = getOrCreateBloomFilter(state, BloomFilter.DEFAULT_BLOOM_FILTER_EXPECTED_INSERTIONS, BloomFilter.DEFAULT_BLOOM_FILTER_FALSE_POSITIVE_PERCENTAGE);
bf.putAll(BloomFilter.newInstance(slice.getBytes()));
state.setBloomFilter(bf);
}
项目:presto-bloomfilter
文件:BloomFilterContainsScalarFunction.java
@SqlType(StandardTypes.BOOLEAN)
@SqlNullable
public static Boolean varcharBloomFilterContains(@SqlNullable @SqlType(BloomFilterType.TYPE) Slice bloomFilterSlice, @SqlNullable @SqlType(StandardTypes.VARCHAR) Slice slice)
{
BloomFilter bf = getOrLoadBloomFilter(bloomFilterSlice);
if (slice == null) {
return false;
}
return bf.mightContain(slice);
}
项目:presto-ethereum
文件:EthereumUDFs.java
@ScalarFunction("eth_gasPrice")
@Description("Returns current gas price")
@SqlType(StandardTypes.DOUBLE)
public static double ethGasPrice() throws IOException {
return web3j.ethGasPrice().send().getGasPrice().doubleValue();
}
项目:presto-ethereum
文件:EthereumUDFs.java
@ScalarFunction("eth_blockNumber")
@Description("Returns current block number")
@SqlType(StandardTypes.BIGINT)
public static long ethBlockNumber() throws IOException {
return web3j.ethBlockNumber().send().getBlockNumber().longValue();
}
项目:presto-ethereum
文件:EthereumUDFs.java
@ScalarFunction("eth_getBalance")
@Description("Returns the balance of an address")
@SqlType(StandardTypes.DOUBLE)
public static double ethGetBalance(@SqlType(StandardTypes.VARCHAR) Slice address) throws IOException {
return web3j.ethGetBalance(address.toStringUtf8(), DefaultBlockParameter.valueOf(LATEST)).send().getBalance().doubleValue();
}
项目:presto-ethereum
文件:EthereumUDFs.java
@ScalarFunction("eth_getBalance")
@Description("Returns the balance of an address")
@SqlType(StandardTypes.DOUBLE)
public static double ethGetBalance(@SqlType(StandardTypes.VARCHAR) Slice address, @SqlType(StandardTypes.BIGINT) long blockNumber) throws IOException {
return web3j.ethGetBalance(address.toStringUtf8(), DefaultBlockParameter.valueOf(BigInteger.valueOf(blockNumber))).send().getBalance().doubleValue();
}
项目:presto-ethereum
文件:EthereumUDFs.java
@ScalarFunction("eth_getBalance")
@Description("Returns the balance of an address")
@SqlType(StandardTypes.DOUBLE)
public static double ethGetBalance(@SqlType(StandardTypes.VARCHAR) Slice address, @SqlType(StandardTypes.VARCHAR) Slice blockName) throws IOException {
return web3j.ethGetBalance(address.toStringUtf8(), DefaultBlockParameter.valueOf(blockName.toStringUtf8())).send().getBalance().doubleValue();
}
项目:presto-ethereum
文件:EthereumUDFs.java
@ScalarFunction("eth_getTransactionCount")
@Description("Returns the number of transactions from this address")
@SqlType(StandardTypes.BIGINT)
public static long ethGetTransactionCount(@SqlType(StandardTypes.VARCHAR) Slice address) throws IOException {
return web3j.ethGetTransactionCount(address.toStringUtf8(), DefaultBlockParameter.valueOf(LATEST)).send().getTransactionCount().longValue();
}
项目:presto-ethereum
文件:EthereumUDFs.java
@ScalarFunction("eth_getTransactionCount")
@Description("Returns the number of transactions from this address")
@SqlType(StandardTypes.BIGINT)
public static long ethGetTransactionCount(@SqlType(StandardTypes.VARCHAR) Slice address, @SqlType(StandardTypes.BIGINT) long blockNumber) throws IOException {
return web3j.ethGetTransactionCount(address.toStringUtf8(), DefaultBlockParameter.valueOf(BigInteger.valueOf(blockNumber))).send().getTransactionCount().longValue();
}
项目:presto-ethereum
文件:EthereumUDFs.java
@ScalarFunction("eth_getTransactionCount")
@Description("Returns the number of transactions from this address")
@SqlType(StandardTypes.BIGINT)
public static long ethGetTransactionCount(@SqlType(StandardTypes.VARCHAR) Slice address, @SqlType(StandardTypes.VARCHAR) Slice blockName) throws IOException {
return web3j.ethGetTransactionCount(address.toStringUtf8(), DefaultBlockParameter.valueOf(blockName.toStringUtf8())).send().getTransactionCount().longValue();
}
项目:presto-hyperloglog
文件:HyperLogLogScalarFunctions.java
@ScalarOperator(CAST)
@SqlType(HyperLogLogType.TYPE)
public static Slice castFromVarbinary(@SqlType(StandardTypes.VARBINARY) Slice slice)
{
return slice;
}
项目:presto-hyperloglog
文件:HyperLogLogScalarFunctions.java
@ScalarOperator(CAST)
@SqlType(StandardTypes.VARBINARY)
public static Slice castToVarbinary(@SqlType(HyperLogLogType.TYPE) Slice slice)
{
return slice;
}