private static List<String> tryParseParts(Expression base, String fieldName) { if (base instanceof Identifier) { return ImmutableList.of(((Identifier) base).getValue(), fieldName); } else if (base instanceof DereferenceExpression) { QualifiedName baseQualifiedName = getQualifiedName((DereferenceExpression) base); if (baseQualifiedName != null) { List<String> newList = new ArrayList<>(baseQualifiedName.getParts()); newList.add(fieldName); return newList; } } return null; }
private static QualifiedName asQualifiedName(Expression expression) { QualifiedName name = null; if (expression instanceof Identifier) { name = QualifiedName.of(((Identifier) expression).getValue()); } else if (expression instanceof DereferenceExpression) { name = DereferenceExpression.getQualifiedName((DereferenceExpression) expression); } return name; }
@Override protected Void visitDereferenceExpression(DereferenceExpression node, ImmutableSet.Builder<QualifiedName> builder) { if (columnReferences.contains(NodeRef.<Expression>of(node))) { builder.add(DereferenceExpression.getQualifiedName(node)); } else { process(node.getBase(), builder); } return null; }
name = DereferenceExpression.getQualifiedName((DereferenceExpression) expression);
@Override protected Type visitDereferenceExpression(DereferenceExpression node, StackableAstVisitorContext<Context> context) QualifiedName qualifiedName = DereferenceExpression.getQualifiedName(node);
@Override protected Void visitDereferenceExpression(DereferenceExpression node, ImmutableSet.Builder<QualifiedName> builder) { if (columnReferences.contains(node)) { builder.add(DereferenceExpression.getQualifiedName(node)); } else { process(node.getBase(), builder); } return null; }
private static List<String> tryParseParts(Expression base, String fieldName) { if (base instanceof Identifier) { return ImmutableList.of(((Identifier) base).getValue(), fieldName); } else if (base instanceof DereferenceExpression) { QualifiedName baseQualifiedName = getQualifiedName((DereferenceExpression) base); if (baseQualifiedName != null) { List<String> newList = new ArrayList<>(baseQualifiedName.getParts()); newList.add(fieldName); return newList; } } return null; }
private static List<String> tryParseParts(Expression base, String fieldName) { if (base instanceof QualifiedNameReference) { List<String> newList = Lists.newArrayList(((QualifiedNameReference) base).getName().getParts()); newList.add(fieldName); return newList; } else if (base instanceof DereferenceExpression) { QualifiedName baseQualifiedName = getQualifiedName((DereferenceExpression) base); if (baseQualifiedName != null) { List<String> newList = Lists.newArrayList(baseQualifiedName.getParts()); newList.add(fieldName); return newList; } } return null; }
@Override protected Boolean visitDereferenceExpression(DereferenceExpression node, Void context) { if (columnReferences.contains(node)) { return isField(DereferenceExpression.getQualifiedName(node)); } // Allow SELECT col1.f1 FROM table1 GROUP BY col1 return process(node.getBase(), context); }
name = DereferenceExpression.getQualifiedName(checkType(expression, DereferenceExpression.class, "expression"));
name = DereferenceExpression.getQualifiedName((DereferenceExpression) expression);
@Override protected Type visitDereferenceExpression(DereferenceExpression node, StackableAstVisitorContext<AnalysisContext> context) QualifiedName qualifiedName = DereferenceExpression.getQualifiedName(node);