com.facebook.presto.sql.QueryUtil.mangleFieldReference()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(2.9k)|赞(0)|评价(0)|浏览(117)

本文整理了Java中com.facebook.presto.sql.QueryUtil.mangleFieldReference方法的一些代码示例,展示了QueryUtil.mangleFieldReference的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QueryUtil.mangleFieldReference方法的具体详情如下:
包路径:com.facebook.presto.sql.QueryUtil
类名称:QueryUtil
方法名:mangleFieldReference

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);

相关文章