@Override public Column resolve(LogicalPlan plan, LogicalPlan.QueryBlock block, ColumnReferenceExpr columnRef, boolean includeSeflDescTable) throws TajoException { if (columnRef.hasQualifier()) { return resolveColumnWithQualifier(plan, block, columnRef, includeSeflDescTable); } else { return resolveColumnWithoutQualifier(plan, block, columnRef, includeSeflDescTable); } }
@Override public Column resolve(LogicalPlan plan, LogicalPlan.QueryBlock block, ColumnReferenceExpr columnRef, boolean includeSeflDescTable) throws TajoException { if (columnRef.hasQualifier()) { return resolveColumnWithQualifier(plan, block, columnRef, includeSeflDescTable); } else { return resolveColumnWithoutQualifier(plan, block, columnRef, includeSeflDescTable); } }
throws AmbiguousColumnException, AmbiguousTableException, UndefinedColumnException { Preconditions.checkArgument(columnRef.hasQualifier(), "ColumnReferenceExpr must be qualified.");
throws AmbiguousColumnException, AmbiguousTableException, UndefinedColumnException { Preconditions.checkArgument(columnRef.hasQualifier(), "ColumnReferenceExpr must be qualified.");
@Override public Expr visitColumnReference(ExprNormalizedResult ctx, Stack<Expr> stack, ColumnReferenceExpr expr) throws TajoException { if (ctx.block.isAliasedName(expr.getCanonicalName())) { String originalName = ctx.block.getOriginalName(expr.getCanonicalName()); expr.setName(originalName); return expr; } // if a column reference is not qualified, it finds and sets the qualified column name. if (!(expr.hasQualifier() && CatalogUtil.isFQTableName(expr.getQualifier()))) { if (!ctx.block.namedExprsMgr.contains(expr.getCanonicalName()) && expr.getType() == OpType.Column) { try { String normalized = NameResolver.resolve(ctx.plan, ctx.block, expr, NameResolvingMode.LEGACY).getQualifiedName(); expr.setName(normalized); } catch (UndefinedColumnException nsc) { } } } return expr; }
@Override public Expr visitColumnReference(ExprNormalizedResult ctx, Stack<Expr> stack, ColumnReferenceExpr expr) throws TajoException { if (ctx.block.isAliasedName(expr.getCanonicalName())) { String originalName = ctx.block.getOriginalName(expr.getCanonicalName()); expr.setName(originalName); return expr; } // if a column reference is not qualified, it finds and sets the qualified column name. if (!(expr.hasQualifier() && IdentifierUtil.isFQTableName(expr.getQualifier()))) { if (!ctx.block.namedExprsMgr.contains(expr.getCanonicalName()) && expr.getType() == OpType.Column) { try { String normalized = NameResolver.resolve(ctx.plan, ctx.block, expr, NameResolvingMode.LEGACY).getQualifiedName(); expr.setName(normalized); } catch (UndefinedColumnException nsc) { } } } return expr; }
String canonicalName; if (columnRef.hasQualifier()) { Pair<String, String> normalized; try {
String canonicalName; if (columnRef.hasQualifier()) { Pair<String, String> normalized; try {