diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/CastTypeEvaluatorFactory.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/CastTypeEvaluatorFactory.java
index 073107c..2954268 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/CastTypeEvaluatorFactory.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/CastTypeEvaluatorFactory.java
@@ -47,4 +47,20 @@
         IScalarEvaluator argEval = recordEvalFactory.createScalarEvaluator(ctx);
         return new CastTypeEvaluator(reqType, inputType, argEval, sourceLoc);
     }
+
+    public IAType getReqType() {
+        return reqType;
+    }
+
+    public IAType getInputType() {
+        return inputType;
+    }
+
+    public SourceLocation getSourceLoc() {
+        return sourceLoc;
+    }
+
+    public IScalarEvaluatorFactory getRecordEvalFactory() {
+        return recordEvalFactory;
+    }
 }
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessByNameEvalFactory.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessByNameEvalFactory.java
index 7e093f1..ce2f2d6 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessByNameEvalFactory.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessByNameEvalFactory.java
@@ -126,4 +126,20 @@
             }
         };
     }
+
+    public IScalarEvaluatorFactory getRecordEvalFactory() {
+        return recordEvalFactory;
+    }
+
+    public IScalarEvaluatorFactory getFldNameEvalFactory() {
+        return fldNameEvalFactory;
+    }
+
+    public SourceLocation getSourceLoc() {
+        return sourceLoc;
+    }
+
+    public FunctionIdentifier getFunID() {
+        return funID;
+    }
 }
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessNestedEvalFactory.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessNestedEvalFactory.java
index c9bc054..49e5eeb 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessNestedEvalFactory.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessNestedEvalFactory.java
@@ -272,4 +272,24 @@
             }
         };
     }
+
+    public IScalarEvaluatorFactory getRecordEvalFactory() {
+        return recordEvalFactory;
+    }
+
+    public ARecordType getRecordType() {
+        return recordType;
+    }
+
+    public List<String> getFieldPath() {
+        return fieldPath;
+    }
+
+    public SourceLocation getSourceLoc() {
+        return sourceLoc;
+    }
+
+    public FunctionIdentifier getFunID() {
+        return funID;
+    }
 }
