@Override public RexNode visitFieldAccess(RexFieldAccess fieldAccess, P arg) { RexNode before = fieldAccess.getReferenceExpr(); RexNode after = before.accept(this, arg); if (before == after) { return fieldAccess; } else { return new RexFieldAccess( after, fieldAccess.getField()); } }
public RexNode visitFieldAccess(RexFieldAccess fieldAccess) { RexNode before = fieldAccess.getReferenceExpr(); RexNode after = before.accept(this); if (before == after) { return fieldAccess; } else { return new RexFieldAccess( after, fieldAccess.getField()); } }
public RexNode visitFieldAccess(RexFieldAccess fieldAccess) { final RexNode referenceExpr = fieldAccess.getReferenceExpr().accept(this); return new RexFieldAccess( referenceExpr, fieldAccess.getField()); } }
public RexNode visitFieldAccess(RexFieldAccess fieldAccess) { final RexNode referenceExpr = fieldAccess.getReferenceExpr().accept(this); return new RexFieldAccess( referenceExpr, fieldAccess.getField()); } }
public RexNode visitFieldAccess(RexFieldAccess fieldAccess) { RexNode before = fieldAccess.getReferenceExpr(); RexNode after = before.accept(this); if (before == after) { return fieldAccess; } else { return new RexFieldAccess( after, fieldAccess.getField()); } }
public RexNode visitFieldAccess(RexFieldAccess fieldAccess) { final RexNode expr = fieldAccess.getReferenceExpr(); expr.accept(this); final RexNode normalizedExpr = lookup(expr); if (normalizedExpr != expr) { fieldAccess = new RexFieldAccess( normalizedExpr, fieldAccess.getField()); } return register(fieldAccess); }
public RexNode visitFieldAccess(RexFieldAccess fieldAccess) { final RexNode expr = fieldAccess.getReferenceExpr(); expr.accept(this); final RexNode normalizedExpr = lookup(expr); if (normalizedExpr != expr) { fieldAccess = new RexFieldAccess( normalizedExpr, fieldAccess.getField()); } return register(fieldAccess); }
/** * Creates an expression accessing a given field from a record. * * @param expr Expression yielding a record * @param field Field * @return Expression accessing given field */ private RexNode makeFieldAccessInternal( RexNode expr, final RelDataTypeField field) { if (expr instanceof RexRangeRef) { RexRangeRef range = (RexRangeRef) expr; if (field.getIndex() < 0) { return makeCall( field.getType(), GET_OPERATOR, ImmutableList.of( expr, makeLiteral(field.getName()))); } return new RexInputRef( range.getOffset() + field.getIndex(), field.getType()); } return new RexFieldAccess(expr, field); }
/** * Creates an expression accessing a given field from a record. * * @param expr Expression yielding a record * @param field Field * @return Expression accessing given field */ private RexNode makeFieldAccessInternal( RexNode expr, final RelDataTypeField field) { if (expr instanceof RexRangeRef) { RexRangeRef range = (RexRangeRef) expr; if (field.getIndex() < 0) { return makeCall( field.getType(), GET_OPERATOR, ImmutableList.of( expr, makeLiteral(field.getName()))); } return new RexInputRef( range.getOffset() + field.getIndex(), field.getType()); } return new RexFieldAccess(expr, field); }