本文整理了Java中com.facebook.presto.sql.QueryUtil.mangleFieldReference
方法的一些代码示例,展示了QueryUtil.mangleFieldReference
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QueryUtil.mangleFieldReference
方法的具体详情如下:
包路径:com.facebook.presto.sql.QueryUtil
类名称:QueryUtil
方法名:mangleFieldReference
暂无
代码示例来源:origin: uk.co.nichesolutions.presto/presto-main
public RowFieldReference(RowType type, Type returnType, int index, String fieldName)
{
super(mangleFieldReference(fieldName), ImmutableList.of(), returnType.getTypeSignature().toString(), ImmutableList.of(type.getTypeSignature().toString()));
String stackType = returnType.getJavaType().getSimpleName().toLowerCase();
MethodHandle methodHandle;
if (METHOD_HANDLE_MAP.containsKey(stackType)) {
methodHandle = METHOD_HANDLE_MAP.get(stackType);
}
else {
methodHandle = METHOD_HANDLE_OBJECT;
}
this.methodHandle = methodHandle.bindTo(returnType).bindTo(index);
}
代码示例来源:origin: uk.co.nichesolutions.presto/presto-main
@Override
public Expression rewriteDereferenceExpression(DereferenceExpression node, Void context, ExpressionTreeRewriter<Void> treeRewriter)
{
if (analysis.getFieldIndex(node).isPresent()) {
return rewriteExpressionWithResolvedName(node);
}
// Rewrite all row field reference to function call.
QualifiedName mangledName = QualifiedName.of(mangleFieldReference(node.getFieldName()));
FunctionCall functionCall = new FunctionCall(mangledName, ImmutableList.of(node.getBase()));
// hackish - add type for created node to analysis object so further rewriting does not fail
IdentityHashMap<Expression, Type> functionType = new IdentityHashMap<>();
functionType.put(functionCall, analysis.getType(node));
analysis.addTypes(functionType);
Expression rewrittenExpression = rewriteFunctionCall(functionCall, context, treeRewriter);
// cast expression if coercion is registered
Type type = analysis.getType(node);
Type coercion = analysis.getCoercion(node);
if (coercion != null) {
rewrittenExpression = new Cast(
rewrittenExpression,
coercion.getTypeSignature().toString(),
false,
isTypeOnlyCoercion(type.getTypeSignature(), coercion.getTypeSignature()));
}
return rewrittenExpression;
}
}, expression);
代码示例来源:origin: uk.co.nichesolutions.presto/presto-main
@Override
public Expression rewriteDereferenceExpression(DereferenceExpression node, Void context, ExpressionTreeRewriter<Void> treeRewriter)
{
if (analysis.getColumnReferences().contains(node)) {
return rewriteExpression(node, context, treeRewriter);
}
// Rewrite all row field reference to function call.
QualifiedName mangledName = QualifiedName.of(mangleFieldReference(node.getFieldName()));
FunctionCall functionCall = new FunctionCall(mangledName, ImmutableList.of(node.getBase()));
Expression rewrittenExpression = rewriteFunctionCall(functionCall, context, treeRewriter);
// cast expression if coercion is registered
Type coercion = analysis.getCoercion(node);
if (coercion != null) {
rewrittenExpression = new Cast(rewrittenExpression, coercion.getTypeSignature().toString());
}
return rewrittenExpression;
}
}, parsedExpression);
内容来源于网络,如有侵权,请联系作者删除!