You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ol...@apache.org on 2008/11/10 21:28:10 UTC

svn commit: r712823 - in /hadoop/pig/branches/types: ./ src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/ src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/ src/org/apache/pig/impl/logicalLayer/ src/org/...

Author: olga
Date: Mon Nov 10 12:28:09 2008
New Revision: 712823

URL: http://svn.apache.org/viewvc?rev=712823&view=rev
Log:
PIG-517: supporting casts with loaders that take arguments in constructor

Added:
    hadoop/pig/branches/types/test/org/apache/pig/test/PigStorageNoDefCtor.java
Modified:
    hadoop/pig/branches/types/CHANGES.txt
    hadoop/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/LogToPhyTranslationVisitor.java
    hadoop/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POCast.java
    hadoop/pig/branches/types/src/org/apache/pig/impl/logicalLayer/LOCast.java
    hadoop/pig/branches/types/src/org/apache/pig/impl/logicalLayer/optimizer/TypeCastInserter.java
    hadoop/pig/branches/types/src/org/apache/pig/impl/logicalLayer/validators/TypeCheckingVisitor.java
    hadoop/pig/branches/types/test/org/apache/pig/test/TestEvalPipeline.java
    hadoop/pig/branches/types/test/org/apache/pig/test/TestPOCast.java
    hadoop/pig/branches/types/test/org/apache/pig/test/TestTypeCheckingValidator.java

Modified: hadoop/pig/branches/types/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/pig/branches/types/CHANGES.txt?rev=712823&r1=712822&r2=712823&view=diff
==============================================================================
--- hadoop/pig/branches/types/CHANGES.txt (original)
+++ hadoop/pig/branches/types/CHANGES.txt Mon Nov 10 12:28:09 2008
@@ -307,3 +307,6 @@
     PIG-497: problems with UTF8 handling in BinStorage (pradeepk via olgan)
 
     PIG-505: working with map elements (sms via olgan)
+
+    PIG-517: load functiin with parameters does not work with cast (pradeepk
+    via olgan)

Modified: hadoop/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/LogToPhyTranslationVisitor.java
URL: http://svn.apache.org/viewvc/hadoop/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/LogToPhyTranslationVisitor.java?rev=712823&r1=712822&r2=712823&view=diff
==============================================================================
--- hadoop/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/LogToPhyTranslationVisitor.java (original)
+++ hadoop/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/LogToPhyTranslationVisitor.java Mon Nov 10 12:28:09 2008
@@ -1150,11 +1150,9 @@
         ExpressionOperator from = (ExpressionOperator) LogToPhyMap.get(op
                 .getExpression());
         physOp.setResultType(op.getType());
-        LoadFunc lf = op.getLoadFunc();
-        String lfString = null;
-        if(null != lf) {
-            lfString = lf.getClass().getName();
-            ((POCast) physOp).setLoadFSpec(lfString);
+        FuncSpec lfSpec = op.getLoadFuncSpec();
+        if(null != lfSpec) {
+            ((POCast) physOp).setLoadFSpec(lfSpec);
         }
         try {
             currentPlan.connect(from, physOp);

Modified: hadoop/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POCast.java
URL: http://svn.apache.org/viewvc/hadoop/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POCast.java?rev=712823&r1=712822&r2=712823&view=diff
==============================================================================
--- hadoop/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POCast.java (original)
+++ hadoop/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POCast.java Mon Nov 10 12:28:09 2008
@@ -23,6 +23,7 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.pig.FuncSpec;
 import org.apache.pig.LoadFunc;
 import org.apache.pig.backend.executionengine.ExecException;
 import org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator;
@@ -44,7 +45,7 @@
  * Need the full operator implementation.
  */
 public class POCast extends ExpressionOperator {
-    private String loadFSpec = null;
+    private FuncSpec loadFSpec = null;
 	transient private LoadFunc load;
 	private Log log = LogFactory.getLog(getClass());
     private boolean castNotNeeded = false;
@@ -68,8 +69,8 @@
         }
     }
     
-    public void setLoadFSpec(String fSpec) {
-    	this.loadFSpec = fSpec;
+    public void setLoadFSpec(FuncSpec lf) {
+    	this.loadFSpec = lf;
         instantiateFunc();
     }
 

Modified: hadoop/pig/branches/types/src/org/apache/pig/impl/logicalLayer/LOCast.java
URL: http://svn.apache.org/viewvc/hadoop/pig/branches/types/src/org/apache/pig/impl/logicalLayer/LOCast.java?rev=712823&r1=712822&r2=712823&view=diff
==============================================================================
--- hadoop/pig/branches/types/src/org/apache/pig/impl/logicalLayer/LOCast.java (original)
+++ hadoop/pig/branches/types/src/org/apache/pig/impl/logicalLayer/LOCast.java Mon Nov 10 12:28:09 2008
@@ -18,6 +18,7 @@
 
 package org.apache.pig.impl.logicalLayer;
 
+import org.apache.pig.FuncSpec;
 import org.apache.pig.LoadFunc;
 import org.apache.pig.impl.plan.OperatorKey;
 import org.apache.pig.impl.plan.PlanVisitor;
@@ -31,7 +32,7 @@
 
     private static final long serialVersionUID = 2L;
     private ExpressionOperator mExpr;
-    private LoadFunc mLoadFunc = null;
+    private FuncSpec mLoadFuncSpec = null;
 
     /**
      * 
@@ -84,12 +85,12 @@
         return false;
     }
 
-    public LoadFunc getLoadFunc() {
-        return mLoadFunc;
+    public FuncSpec getLoadFuncSpec() {
+        return mLoadFuncSpec;
     }
 
-    public void setLoadFunc(LoadFunc loadFunc) {
-        mLoadFunc = loadFunc;
+    public void setLoadFuncSpec(FuncSpec loadFuncSpec) {
+        mLoadFuncSpec = loadFuncSpec;
     }
 
 }

Modified: hadoop/pig/branches/types/src/org/apache/pig/impl/logicalLayer/optimizer/TypeCastInserter.java
URL: http://svn.apache.org/viewvc/hadoop/pig/branches/types/src/org/apache/pig/impl/logicalLayer/optimizer/TypeCastInserter.java?rev=712823&r1=712822&r2=712823&view=diff
==============================================================================
--- hadoop/pig/branches/types/src/org/apache/pig/impl/logicalLayer/optimizer/TypeCastInserter.java (original)
+++ hadoop/pig/branches/types/src/org/apache/pig/impl/logicalLayer/optimizer/TypeCastInserter.java Mon Nov 10 12:28:09 2008
@@ -37,6 +37,7 @@
 import org.apache.pig.impl.plan.DepthFirstWalker;
 import org.apache.pig.impl.plan.OperatorKey;
 import org.apache.pig.impl.plan.optimizer.OptimizerException;
+import org.apache.pig.FuncSpec;
 import org.apache.pig.LoadFunc;
 import org.apache.pig.impl.PigContext;
 import org.apache.pig.impl.streaming.StreamingCommand;
@@ -160,17 +161,17 @@
                             p.connect(proj, cast);
                             
                             cast.setFieldSchema(fs.clone());
-                            LoadFunc loadFunc = null;
+                            FuncSpec loadFuncSpec = null;
                             if(lo instanceof LOLoad) {
-                                loadFunc = ((LOLoad)lo).getLoadFunc();
+                                loadFuncSpec = ((LOLoad)lo).getInputFile().getFuncSpec();
                             } else if (lo instanceof LOStream) {
                                 StreamingCommand command = ((LOStream)lo).getStreamingCommand();
                                 HandleSpec streamOutputSpec = command.getOutputSpec(); 
-                                loadFunc = (LoadFunc)PigContext.instantiateFuncFromSpec(streamOutputSpec.getSpec());
+                                loadFuncSpec = new FuncSpec(streamOutputSpec.getSpec());
                             } else {
                                 throw new OptimizerException("TypeCastInserter invoked with an invalid operator class name:" + lo.getClass().getSimpleName());
                             }
-                            cast.setLoadFunc(loadFunc);
+                            cast.setLoadFuncSpec(loadFuncSpec);
                             typeChanges.put(fs.canonicalName, fs.type);
                             if(determinedSchema == null) {
                                 // Reset the loads field schema to byte array so that it

Modified: hadoop/pig/branches/types/src/org/apache/pig/impl/logicalLayer/validators/TypeCheckingVisitor.java
URL: http://svn.apache.org/viewvc/hadoop/pig/branches/types/src/org/apache/pig/impl/logicalLayer/validators/TypeCheckingVisitor.java?rev=712823&r1=712822&r2=712823&view=diff
==============================================================================
--- hadoop/pig/branches/types/src/org/apache/pig/impl/logicalLayer/validators/TypeCheckingVisitor.java (original)
+++ hadoop/pig/branches/types/src/org/apache/pig/impl/logicalLayer/validators/TypeCheckingVisitor.java Mon Nov 10 12:28:09 2008
@@ -1615,8 +1615,8 @@
         
         if(inputType == DataType.BYTEARRAY) {
             try {
-                LoadFunc loadFunc = getLoadFunc(cast.getExpression());
-                cast.setLoadFunc(loadFunc);
+                FuncSpec loadFuncSpec = getLoadFuncSpec(cast.getExpression());
+                cast.setLoadFuncSpec(loadFuncSpec);
             } catch (FrontendException fee) {
                 String msg = "Cannot resolve load function to use for casting from " + 
                             DataType.findTypeName(inputType) + " to " +
@@ -2547,7 +2547,7 @@
         return new OperatorKey(scope, newId) ;
     }
 
-    private LoadFunc getLoadFunc(ExpressionOperator exOp) throws FrontendException {
+    private FuncSpec getLoadFuncSpec(ExpressionOperator exOp) throws FrontendException {
         Schema.FieldSchema fs = ((ExpressionOperator)exOp).getFieldSchema();
         if(null == fs) {
             return null;
@@ -2555,34 +2555,34 @@
 
         Map<String, LogicalOperator> canonicalMap = fs.getCanonicalMap();
         MultiMap<LogicalOperator, String> reverseCanonicalMap = fs.getReverseCanonicalMap();
-        MultiMap<String, LoadFunc> loadFuncMap = new MultiMap<String, LoadFunc>();
+        MultiMap<String, FuncSpec> loadFuncSpecMap = new MultiMap<String, FuncSpec>();
         
         if(canonicalMap.keySet().size() > 0) {
             for(String parentCanonicalName: canonicalMap.keySet()) {
-                LoadFunc lf = getLoadFunc(exOp, parentCanonicalName);
-                if(null != lf) loadFuncMap.put(lf.getClass().getName(), lf);
+                FuncSpec lfSpec = getLoadFuncSpec(exOp, parentCanonicalName);
+                if(null != lfSpec) loadFuncSpecMap.put(lfSpec.getClassName(), lfSpec);
             }
         } else {
             for(LogicalOperator op: reverseCanonicalMap.keySet()) {
                 for(String parentCanonicalName: reverseCanonicalMap.get(op)) {
-                    LoadFunc lf = getLoadFunc(op, parentCanonicalName);
-                    if(null != lf) loadFuncMap.put(lf.getClass().getName(), lf);
+                    FuncSpec lfSpec = getLoadFuncSpec(op, parentCanonicalName);
+                    if(null != lfSpec) loadFuncSpecMap.put(lfSpec.getClassName(), lfSpec);
                 }
             }
         }
-        if(loadFuncMap.keySet().size() == 0) {
+        if(loadFuncSpecMap.keySet().size() == 0) {
             return null;
         }
-        if(loadFuncMap.keySet().size() == 1) {
-            String lfString = loadFuncMap.keySet().iterator().next();
-            return (LoadFunc)(loadFuncMap.get(lfString).iterator().next());
+        if(loadFuncSpecMap.keySet().size() == 1) {
+            String lfString = loadFuncSpecMap.keySet().iterator().next();
+            return loadFuncSpecMap.get(lfString).iterator().next();
         }
 
-        throw new FrontendException("Found more than one load function to use: " + loadFuncMap.keySet());
+        throw new FrontendException("Found more than one load function to use: " + loadFuncSpecMap.keySet());
     }
 
-    private LoadFunc getLoadFunc(LogicalOperator op, String parentCanonicalName) throws FrontendException {
-        MultiMap<String, LoadFunc> loadFuncMap = new MultiMap<String, LoadFunc>();
+    private FuncSpec getLoadFuncSpec(LogicalOperator op, String parentCanonicalName) throws FrontendException {
+        MultiMap<String, FuncSpec> loadFuncSpecMap = new MultiMap<String, FuncSpec>();
         if(op instanceof ExpressionOperator) {
             if(op instanceof LOUserFunc) {
                 return null;
@@ -2594,25 +2594,25 @@
             
             if(canonicalMap.keySet().size() > 0) {
                 for(String canonicalName: canonicalMap.keySet()) {
-                    LoadFunc lf = getLoadFunc(fs, canonicalName);
-                    if(null != lf) loadFuncMap.put(lf.getClass().getName(), lf);
+                    FuncSpec lfSpec = getLoadFuncSpec(fs, canonicalName);
+                    if(null != lfSpec) loadFuncSpecMap.put(lfSpec.getClassName(), lfSpec);
                 }
             } else {
                 for(LogicalOperator lop: reverseCanonicalMap.keySet()) {
                     for(String canonicalName: reverseCanonicalMap.get(lop)) {
-                        LoadFunc lf = getLoadFunc(fs, canonicalName);
-                        if(null != lf) loadFuncMap.put(lf.getClass().getName(), lf);
+                        FuncSpec lfSpec = getLoadFuncSpec(fs, canonicalName);
+                        if(null != lfSpec) loadFuncSpecMap.put(lfSpec.getClassName(), lfSpec);
                     }
                 }
             }
         } else {
             if(op instanceof LOLoad) {
-                return ((LOLoad)op).getLoadFunc();
+                return ((LOLoad)op).getInputFile().getFuncSpec();
             } else if (op instanceof LOStream) {
                 StreamingCommand command = ((LOStream)op).getStreamingCommand();
                 HandleSpec streamOutputSpec = command.getOutputSpec(); 
-                LoadFunc streamLoader = (LoadFunc)PigContext.instantiateFuncFromSpec(streamOutputSpec.getSpec());
-                return streamLoader;
+                FuncSpec streamLoaderSpec = new FuncSpec(streamOutputSpec.getSpec());
+                return streamLoaderSpec;
             } else if ((op instanceof LOFilter)
                     || (op instanceof LODistinct)
                     || (op instanceof LOSort)
@@ -2620,7 +2620,7 @@
                     || (op instanceof LOSplitOutput)
                     || (op instanceof LOLimit)) {
                 LogicalPlan lp = op.getPlan();
-                return getLoadFunc(lp.getPredecessors(op).get(0), parentCanonicalName);        
+                return getLoadFuncSpec(lp.getPredecessors(op).get(0), parentCanonicalName);        
             }
             
             Schema s = op.getSchema();
@@ -2629,71 +2629,71 @@
                     if(null != parentCanonicalName && (parentCanonicalName.equals(fs.canonicalName))) {
                         if(fs.getCanonicalMap().keySet().size() > 0) {
                             for(String canonicalName: fs.getCanonicalMap().keySet()) {
-                                LoadFunc lf = getLoadFunc(fs, canonicalName);
-                                if(null != lf) loadFuncMap.put(lf.getClass().getName(), lf);
+                                FuncSpec lfSpec = getLoadFuncSpec(fs, canonicalName);
+                                if(null != lfSpec) loadFuncSpecMap.put(lfSpec.getClassName(), lfSpec);
                             }
                         } else {
-                            LoadFunc lf = getLoadFunc(fs, null);
-                            if(null != lf) loadFuncMap.put(lf.getClass().getName(), lf);
+                            FuncSpec lfSpec = getLoadFuncSpec(fs, null);
+                            if(null != lfSpec) loadFuncSpecMap.put(lfSpec.getClassName(), lfSpec);
                         }
                     } else if (null == parentCanonicalName) {
-                        LoadFunc lf = getLoadFunc(fs, null);
-                        if(null != lf) loadFuncMap.put(lf.getClass().getName(), lf);
+                        FuncSpec lfSpec = getLoadFuncSpec(fs, null);
+                        if(null != lfSpec) loadFuncSpecMap.put(lfSpec.getClassName(), lfSpec);
                     }
                 }
             } else {
                 LogicalPlan lp = op.getPlan();
                 for(LogicalOperator pred: lp.getPredecessors(op)) {
-                    LoadFunc lf = getLoadFunc(pred, parentCanonicalName);
-                    if(null != lf) loadFuncMap.put(lf.getClass().getName(), lf);
+                    FuncSpec lfSpec = getLoadFuncSpec(pred, parentCanonicalName);
+                    if(null != lfSpec) loadFuncSpecMap.put(lfSpec.getClassName(), lfSpec);
                 }
             }
         }
-        if(loadFuncMap.keySet().size() == 0) {
+        if(loadFuncSpecMap.keySet().size() == 0) {
             return null;
         }
-        if(loadFuncMap.keySet().size() == 1) {
-            String lfString = loadFuncMap.keySet().iterator().next();
-            return (LoadFunc)(loadFuncMap.get(lfString).iterator().next());
+        if(loadFuncSpecMap.keySet().size() == 1) {
+            String lfString = loadFuncSpecMap.keySet().iterator().next();
+            return loadFuncSpecMap.get(lfString).iterator().next();
         }
     
-        throw new FrontendException("Found more than one load function to use: " + loadFuncMap.keySet());
+        throw new FrontendException("Found more than one load function to use: " + loadFuncSpecMap.keySet());
     }
 
-    private LoadFunc getLoadFunc(Schema.FieldSchema fs, String parentCanonicalName) throws FrontendException {
+    private FuncSpec getLoadFuncSpec(Schema.FieldSchema fs, String parentCanonicalName) throws FrontendException {
         if(null == fs) {
             return null;
         }
         Map<String, LogicalOperator> canonicalMap = fs.getCanonicalMap();
         MultiMap<LogicalOperator, String> reverseCanonicalMap = fs.getReverseCanonicalMap();
-        MultiMap<String, LoadFunc> loadFuncMap = new MultiMap<String, LoadFunc>();
+        MultiMap<String, FuncSpec> loadFuncSpecMap = new MultiMap<String, FuncSpec>();
 
         if(canonicalMap.keySet().size() > 0) {
             for(String canonicalName: canonicalMap.keySet()) {
                 if((null == parentCanonicalName) || (parentCanonicalName.equals(canonicalName))) {
-                    LoadFunc lf = getLoadFunc(canonicalMap.get(canonicalName), parentCanonicalName);
-                    if(null != lf) loadFuncMap.put(lf.getClass().getName(), lf);
+                    FuncSpec lfSpec = getLoadFuncSpec(canonicalMap.get(canonicalName), parentCanonicalName);
+                    if(null != lfSpec) loadFuncSpecMap.put(lfSpec.getClassName(), lfSpec);
                 }
             }
         } else {
             for(LogicalOperator op: reverseCanonicalMap.keySet()) {
                 for(String canonicalName: reverseCanonicalMap.get(op)) {
                     if((null == parentCanonicalName) || (parentCanonicalName.equals(canonicalName))) {
-                        LoadFunc lf = getLoadFunc(op, parentCanonicalName);
-                        if(null != lf) loadFuncMap.put(lf.getClass().getName(), lf);
+                        FuncSpec lfSpec = getLoadFuncSpec(op, parentCanonicalName);
+                        if(null != lfSpec) loadFuncSpecMap.put(lfSpec.getClassName(), lfSpec);
                     }
                 }
             }
         }
-        if(loadFuncMap.keySet().size() == 0) {
+        if(loadFuncSpecMap.keySet().size() == 0) {
             return null;
         }
-        if(loadFuncMap.keySet().size() == 1) {
-            String lfString = loadFuncMap.keySet().iterator().next();
-            return (LoadFunc)(loadFuncMap.get(lfString).iterator().next());
+        if(loadFuncSpecMap.keySet().size() == 1) {
+            String lfString = loadFuncSpecMap.keySet().iterator().next();
+            return loadFuncSpecMap.get(lfString).iterator().next();
         }
 
-        throw new FrontendException("Found more than one load function to use: " + loadFuncMap.keySet());
+        throw new FrontendException("Found more than one load function to use: " + loadFuncSpecMap.keySet());
     }
 
 

Added: hadoop/pig/branches/types/test/org/apache/pig/test/PigStorageNoDefCtor.java
URL: http://svn.apache.org/viewvc/hadoop/pig/branches/types/test/org/apache/pig/test/PigStorageNoDefCtor.java?rev=712823&view=auto
==============================================================================
--- hadoop/pig/branches/types/test/org/apache/pig/test/PigStorageNoDefCtor.java (added)
+++ hadoop/pig/branches/types/test/org/apache/pig/test/PigStorageNoDefCtor.java Mon Nov 10 12:28:09 2008
@@ -0,0 +1,23 @@
+/**
+ * 
+ */
+package org.apache.pig.test;
+
+import org.apache.pig.builtin.PigStorage;
+
+/**
+ * Same as PigStorage with no default constructor - used
+ * in testing POCast with a loader function which has no
+ * default constructor
+ */
+public class PigStorageNoDefCtor extends PigStorage {
+
+    /**
+     * @param delimiter
+     */
+    public PigStorageNoDefCtor(String delimiter) {
+        super(delimiter);
+        // TODO Auto-generated constructor stub
+    }
+
+}

Modified: hadoop/pig/branches/types/test/org/apache/pig/test/TestEvalPipeline.java
URL: http://svn.apache.org/viewvc/hadoop/pig/branches/types/test/org/apache/pig/test/TestEvalPipeline.java?rev=712823&r1=712822&r2=712823&view=diff
==============================================================================
--- hadoop/pig/branches/types/test/org/apache/pig/test/TestEvalPipeline.java (original)
+++ hadoop/pig/branches/types/test/org/apache/pig/test/TestEvalPipeline.java Mon Nov 10 12:28:09 2008
@@ -817,4 +817,20 @@
         }
     }
 
+    @Test
+    public void testLoadCtorArgs() throws IOException, ExecException {
+        
+        // Create input file
+        File input = Util.createInputFile("tmp", "", 
+                new String[] {"hello:world"});
+        pigServer.registerQuery("a = load 'file:" + Util.encodeEscape(input.toString()) + 
+                "' using org.apache.pig.test.PigStorageNoDefCtor(':');");
+        pigServer.registerQuery("b = foreach a generate (chararray)$0, (chararray)$1;");
+        Iterator<Tuple> it = pigServer.openIterator("b");
+        Tuple t = it.next();
+        assertEquals("hello", t.get(0));
+        assertEquals("world", t.get(1));
+        
+    }
+
 }

Modified: hadoop/pig/branches/types/test/org/apache/pig/test/TestPOCast.java
URL: http://svn.apache.org/viewvc/hadoop/pig/branches/types/test/org/apache/pig/test/TestPOCast.java?rev=712823&r1=712822&r2=712823&view=diff
==============================================================================
--- hadoop/pig/branches/types/test/org/apache/pig/test/TestPOCast.java (original)
+++ hadoop/pig/branches/types/test/org/apache/pig/test/TestPOCast.java Mon Nov 10 12:28:09 2008
@@ -25,6 +25,7 @@
 import java.util.Random;
 
 import org.apache.pig.ExecType;
+import org.apache.pig.FuncSpec;
 import org.apache.pig.LoadFunc;
 import org.apache.pig.backend.datastorage.DataStorage;
 import org.apache.pig.backend.executionengine.ExecException;
@@ -68,7 +69,7 @@
 		
 		POCast op = new POCast(new OperatorKey("", r.nextLong()), -1);
 		LoadFunc load = new TestLoader();
-		op.setLoadFSpec(load.getClass().getName());
+		op.setLoadFSpec(new FuncSpec(load.getClass().getName()));
 		POProject prj = new POProject(new OperatorKey("", r.nextLong()), -1, 0);
 		PhysicalPlan plan = new PhysicalPlan();
 		plan.add(prj);
@@ -173,7 +174,7 @@
 		
 		POCast op = new POCast(new OperatorKey("", r.nextLong()), -1);
 		LoadFunc load = new TestLoader();
-		op.setLoadFSpec(load.getClass().getName());
+		op.setLoadFSpec(new FuncSpec(load.getClass().getName()));
 		POProject prj = new POProject(new OperatorKey("", r.nextLong()), -1, 0);
 		PhysicalPlan plan = new PhysicalPlan();
 		plan.add(prj);
@@ -284,7 +285,7 @@
 		
 		POCast op = new POCast(new OperatorKey("", r.nextLong()), -1);
 		LoadFunc load = new TestLoader();
-		op.setLoadFSpec(load.getClass().getName());
+		op.setLoadFSpec(new FuncSpec(load.getClass().getName()));
 		POProject prj = new POProject(new OperatorKey("", r.nextLong()), -1, 0);
 		PhysicalPlan plan = new PhysicalPlan();
 		plan.add(prj);
@@ -406,7 +407,7 @@
 		
 		POCast op = new POCast(new OperatorKey("", r.nextLong()), -1);
 		LoadFunc load = new TestLoader();
-		op.setLoadFSpec(load.getClass().getName());
+		op.setLoadFSpec(new FuncSpec(load.getClass().getName()));
 		POProject prj = new POProject(new OperatorKey("", r.nextLong()), -1, 0);
 		PhysicalPlan plan = new PhysicalPlan();
 		plan.add(prj);
@@ -509,7 +510,7 @@
 	public void testStringToOther() throws PlanException, ExecException {
 		POCast op = new POCast(new OperatorKey("", r.nextLong()), -1);
 		LoadFunc load = new TestLoader();
-		op.setLoadFSpec(load.getClass().getName());
+		op.setLoadFSpec(new FuncSpec(load.getClass().getName()));
 		POProject prj = new POProject(new OperatorKey("", r.nextLong()), -1, 0);
 		PhysicalPlan plan = new PhysicalPlan();
 		plan.add(prj);
@@ -720,7 +721,7 @@
 	public void testByteArrayToOther() throws PlanException, ExecException {
 		POCast op = new POCast(new OperatorKey("", r.nextLong()), -1);
 		LoadFunc load = new TestLoader();
-		op.setLoadFSpec(load.getClass().getName());
+		op.setLoadFSpec(new FuncSpec(load.getClass().getName()));
 		POProject prj = new POProject(new OperatorKey("", r.nextLong()), -1, 0);
 		PhysicalPlan plan = new PhysicalPlan();
 		plan.add(prj);
@@ -837,7 +838,7 @@
 	
 	private PhysicalPlan constructPlan(POCast op) throws PlanException {
 	    LoadFunc load = new TestLoader();
-        op.setLoadFSpec(load.getClass().getName());
+        op.setLoadFSpec(new FuncSpec(load.getClass().getName()));
         POProject prj = new POProject(new OperatorKey("", r.nextLong()), -1, 0);
         PhysicalPlan plan = new PhysicalPlan();
         plan.add(prj);
@@ -987,7 +988,7 @@
 	@Test
 	public void testTupleToOther() throws PlanException, ExecException {
 		POCast op = new POCast(new OperatorKey("", r.nextLong()), -1);
-		op.setLoadFSpec(PigStorage.class.getName());
+		op.setLoadFSpec(new FuncSpec(PigStorage.class.getName()));
 		POProject prj = new POProject(new OperatorKey("", r.nextLong()), -1, 0);
 		PhysicalPlan plan = new PhysicalPlan();
 		plan.add(prj);
@@ -1096,7 +1097,7 @@
 			Result res = op.getNext(i);
 			assertEquals(POStatus.STATUS_ERR, res.returnStatus);
 
-		    op.setLoadFSpec(BinStorage.class.getName());
+		    op.setLoadFSpec(new FuncSpec(BinStorage.class.getName()));
 			plan.attachInput(tNew);
 			res = op.getNext(i);
 			assertEquals(POStatus.STATUS_ERR, res.returnStatus);
@@ -1106,7 +1107,7 @@
 	@Test
 	public void testBagToOther() throws PlanException, ExecException {
 		POCast op = new POCast(new OperatorKey("", r.nextLong()), -1);
-		op.setLoadFSpec(PigStorage.class.getName());
+		op.setLoadFSpec(new FuncSpec(PigStorage.class.getName()));
 		POProject prj = new POProject(new OperatorKey("", r.nextLong()), -1, 0);
 		PhysicalPlan plan = new PhysicalPlan();
 		plan.add(prj);
@@ -1197,7 +1198,7 @@
 			Result res = op.getNext(i);
 			assertEquals(POStatus.STATUS_ERR, res.returnStatus);
 
-		    op.setLoadFSpec(BinStorage.class.getName());
+		    op.setLoadFSpec(new FuncSpec(BinStorage.class.getName()));
 			plan.attachInput(t);
 			res = op.getNext(i);
 			assertEquals(POStatus.STATUS_ERR, res.returnStatus);
@@ -1207,7 +1208,7 @@
 	@Test
 	public void testMapToOther() throws PlanException, ExecException {
 		POCast op = new POCast(new OperatorKey("", r.nextLong()), -1);
-		op.setLoadFSpec(PigStorage.class.getName());
+		op.setLoadFSpec(new FuncSpec(PigStorage.class.getName()));
 		POProject prj = new POProject(new OperatorKey("", r.nextLong()), -1, 0);
 		PhysicalPlan plan = new PhysicalPlan();
 		plan.add(prj);
@@ -1293,7 +1294,7 @@
 			Result res = op.getNext(i);
 			assertEquals(POStatus.STATUS_ERR, res.returnStatus);
 
-		    op.setLoadFSpec(BinStorage.class.getName());
+		    op.setLoadFSpec(new FuncSpec(BinStorage.class.getName()));
 			plan.attachInput(t);
 			res = op.getNext(i);
 			assertEquals(POStatus.STATUS_ERR, res.returnStatus);

Modified: hadoop/pig/branches/types/test/org/apache/pig/test/TestTypeCheckingValidator.java
URL: http://svn.apache.org/viewvc/hadoop/pig/branches/types/test/org/apache/pig/test/TestTypeCheckingValidator.java?rev=712823&r1=712822&r2=712823&view=diff
==============================================================================
--- hadoop/pig/branches/types/test/org/apache/pig/test/TestTypeCheckingValidator.java (original)
+++ hadoop/pig/branches/types/test/org/apache/pig/test/TestTypeCheckingValidator.java Mon Nov 10 12:28:09 2008
@@ -53,8 +53,9 @@
                 simpleEchoStreamingCommand = "perl -ne 'print \"$_\"'";
             File fileA = new File("a");
             File fileB = new File("b");
-            // Create file if it does not exist
             try {
+                fileA.delete();
+                fileB.delete();
                 if(!fileA.createNewFile() || !fileB.createNewFile())
                     fail("Unable to create input files");
             } catch (IOException e) {
@@ -2832,7 +2833,7 @@
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
         
-        assertTrue(cast.getLoadFunc() == null);
+        assertTrue(cast.getLoadFuncSpec() == null);
 
     }
 
@@ -2863,7 +2864,7 @@
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
         
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
 
     }
 
@@ -2894,7 +2895,7 @@
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
         
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
 
     }
 
@@ -2927,7 +2928,7 @@
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
         
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
     }
 
@@ -2960,7 +2961,7 @@
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
         
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
     }
 
@@ -2992,7 +2993,7 @@
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
         
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
     }
 
@@ -3024,7 +3025,7 @@
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
         
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
     }
 
@@ -3057,7 +3058,7 @@
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
         
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
     }
 
@@ -3090,7 +3091,7 @@
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
         
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
     }
 
@@ -3124,13 +3125,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -3165,13 +3166,13 @@
 
         LOMapLookup map = (LOMapLookup)foreachPlan.getSuccessors(exOp).get(0);
         LOCast cast = (LOCast)foreachPlan.getSuccessors(map).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -3210,13 +3211,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -3283,20 +3284,20 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(1);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -3335,13 +3336,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -3410,13 +3411,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -3456,13 +3457,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -3501,13 +3502,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
     }
 
     @Test
@@ -3545,13 +3546,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
     }
 
     @Test
@@ -3646,13 +3647,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -3687,7 +3688,7 @@
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
         
-        assertTrue(cast.getLoadFunc() == null);
+        assertTrue(cast.getLoadFuncSpec() == null);
 
     }
 
@@ -3754,7 +3755,7 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
     }
 
     @Test
@@ -3817,7 +3818,7 @@
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
         
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -3881,7 +3882,7 @@
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
         
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -3941,7 +3942,7 @@
 
         LOCast cast = (LOCast)filterPlan.getSuccessors(exOp).get(0);
         
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
 
     }
 
@@ -3972,7 +3973,7 @@
 
         LOCast cast = (LOCast)filterPlan.getSuccessors(exOp).get(0);
         
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
 
     }
 
@@ -4003,7 +4004,7 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
 
     }
 
@@ -4034,7 +4035,7 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
 
     }
 
@@ -4069,13 +4070,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -4110,13 +4111,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -4147,7 +4148,7 @@
 
         LOCast cast = (LOCast)bPlan.getSuccessors(exOp).get(0);
         
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
 
         LOSplitOutput splitOutputC = (LOSplitOutput)plan.getLeaves().get(0);
         LogicalPlan cPlan = splitOutputC.getConditionPlan();
@@ -4158,7 +4159,7 @@
 
         cast = (LOCast)cPlan.getSuccessors(exOp).get(0);
         
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
     }
 
     @Test
@@ -4188,7 +4189,7 @@
 
         LOCast cast = (LOCast)bPlan.getSuccessors(exOp).get(0);
         
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
 
         LOSplitOutput splitOutputC = (LOSplitOutput)plan.getLeaves().get(0);
         LogicalPlan cPlan = splitOutputC.getConditionPlan();
@@ -4199,7 +4200,7 @@
 
         cast = (LOCast)cPlan.getSuccessors(exOp).get(0);
         
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
 
     }
 
@@ -4230,7 +4231,7 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
 
     }
 
@@ -4261,7 +4262,7 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
 
     }
 
@@ -4296,13 +4297,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -4337,13 +4338,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -4374,7 +4375,7 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
 
     }
 
@@ -4405,7 +4406,7 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
 
     }
 
@@ -4440,13 +4441,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -4481,13 +4482,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -4518,7 +4519,7 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
 
     }
 
@@ -4549,7 +4550,7 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
 
     }
 
@@ -4584,13 +4585,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -4625,13 +4626,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -4666,13 +4667,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -4707,13 +4708,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -4746,13 +4747,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(1);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
     }
 
     @Test
@@ -4789,7 +4790,7 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
     }
 
     @Test
@@ -4852,7 +4853,7 @@
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
         
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -4914,13 +4915,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(1);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
     }
 
     @Test
@@ -4957,7 +4958,7 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
     }
 
     @Test
@@ -4996,7 +4997,7 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
     }
 
     @Test
@@ -5029,7 +5030,7 @@
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
         
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -5069,7 +5070,7 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
     }
 
     @Test
@@ -5099,7 +5100,7 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
 
     }
 
@@ -5130,7 +5131,7 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
 
     }
 
@@ -5165,13 +5166,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -5206,13 +5207,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -5248,13 +5249,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -5290,13 +5291,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("PigStorage"));
 
     }
 
@@ -5328,7 +5329,7 @@
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
         
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
 
     }
 
@@ -5360,7 +5361,7 @@
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
         
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(1);
 
@@ -5401,13 +5402,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
 
     }
 
@@ -5441,13 +5442,13 @@
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
 
         LOCast cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
         foreachPlan = foreach.getForEachPlans().get(2);
         exOp = foreachPlan.getRoots().get(0);
         if(! (exOp instanceof LOProject)) exOp = foreachPlan.getRoots().get(1);
         cast = (LOCast)foreachPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
 
     }
 
@@ -5480,7 +5481,7 @@
 
         LOMapLookup map = (LOMapLookup)foreachPlan.getSuccessors(exOp).get(0);
         LOCast cast = (LOCast)foreachPlan.getSuccessors(map).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
     }
 
@@ -5513,7 +5514,7 @@
 
         LOMapLookup map = (LOMapLookup)foreachPlan.getSuccessors(exOp).get(0);
         LOCast cast = (LOCast)foreachPlan.getSuccessors(map).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.BinStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("BinStorage"));
 
     }
 
@@ -5552,7 +5553,7 @@
 
         
         LOCast cast = (LOCast)filterPlan.getSuccessors(exOp).get(0);
-        assertTrue(cast.getLoadFunc().toString().startsWith("org.apache.pig.builtin.PigStorage"));
+        assertTrue(cast.getLoadFuncSpec().getClassName().startsWith("org.apache.pig.builtin.PigStorage"));
 
     }