// override RexShuttle
public RexNode visitFieldAccess(RexFieldAccess fieldAccess) {
if (cm.mapFieldAccessToCorVar.containsKey(fieldAccess)) {
// if it is a corVar, change it to be input ref.
Correlation corVar = cm.mapFieldAccessToCorVar.get(fieldAccess);
// corVar offset should point to the leftInput of currentRel,
// which is the CorrelatorRel.
RexNode newRexNode =
new RexInputRef(corVar.getOffset(), fieldAccess.getType());
if (projectPulledAboveLeftCorrelator
&& (nullIndicator != null)) {
// need to enforce nullability by applying an additional
// cast operator over the transformed expression.