Author: daijy
Date: Wed Sep  8 02:04:04 2010
New Revision: 993577

URL: http://svn.apache.org/viewvc?rev=993577&view=rev
Log:
PIG-1178: LogicalPlan and Optimizer are too complex and hard to work with 
(PIG-1178-11.patch)

Removed:
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/DepthFirstMemoryWalker.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/optimizer/ExprPrinter.java
    hadoop/pig/branches/branch-0.8/test/newlogicalplan-tests
Modified:
    hadoop/pig/branches/branch-0.8/build.xml
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/AddExpression.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/AndExpression.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/BinCondExpression.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/ConstantExpression.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/DereferenceExpression.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/DivideExpression.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/EqualExpression.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/GreaterThanEqualExpression.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/GreaterThanExpression.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/LessThanEqualExpression.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/LessThanExpression.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/LogicalExpressionPlan.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/MapLookupExpression.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/ModExpression.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/MultiplyExpression.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/NotEqualExpression.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/OrExpression.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/ProjectExpression.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/RegexExpression.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/SubtractExpression.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/UserFuncExpression.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/optimizer/LogicalPlanPrinter.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/optimizer/ProjectionPatcher.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/optimizer/SchemaPatcher.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/relational/LOLoad.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/relational/LogToPhyTranslationVisitor.java
    
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/relational/LogicalSchema.java

Modified: hadoop/pig/branches/branch-0.8/build.xml
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/build.xml?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- hadoop/pig/branches/branch-0.8/build.xml (original)
+++ hadoop/pig/branches/branch-0.8/build.xml Wed Sep  8 02:04:04 2010
@@ -84,7 +84,6 @@
     <property name="test.timeout" value="2700000" />
     <property name="test.junit.output.format" value="plain" />
     <property name="test.commit.file" value="${test.src.dir}/commit-tests"/>
-    <property name="test.newlogicalplan.file" 
value="${test.src.dir}/newlogicalplan-tests"/>
     <property name="test.unit.file" value="${test.src.dir}/unit-tests"/>
     <property name="test.smoke.file" value="${test.src.dir}/smoke-tests"/>
     <property name="test.all.file" value="${test.src.dir}/all-tests"/>
@@ -563,10 +562,6 @@
         <macro-test-runner test.file="${test.commit.file}" />
     </target>
 
-    <target name="test-newlogicalplan" 
depends="compile-test,jar-withouthadoop" description="Run approximate 10-minute 
set of unit tests prior to commiting">
-        <macro-test-runner test.file="${test.newlogicalplan.file}" />
-    </target>
-
     <target name="test-unit" depends="compile-test,jar-withouthadoop" 
description="Run all true unit tests">
         <macro-test-runner test.file="${test.unit.file}" />
     </target>

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/AddExpression.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/AddExpression.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/AddExpression.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/AddExpression.java
 Wed Sep  8 02:04:04 2010
@@ -43,7 +43,7 @@ public class AddExpression extends Binar
     }
 
     /**
-     * @link 
org.apache.pig.experimental.plan.Operator#accept(org.apache.pig.experimental.plan.PlanVisitor)
+     * @link 
org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)
      */
     @Override
     public void accept(PlanVisitor v) throws FrontendException {

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/AndExpression.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/AndExpression.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/AndExpression.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/AndExpression.java
 Wed Sep  8 02:04:04 2010
@@ -44,7 +44,7 @@ public class AndExpression extends Binar
     }
 
     /**
-     * @link 
org.apache.pig.experimental.plan.Operator#accept(org.apache.pig.experimental.plan.PlanVisitor)
+     * @link 
org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)
      */
     @Override
     public void accept(PlanVisitor v) throws FrontendException {

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/BinCondExpression.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/BinCondExpression.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/BinCondExpression.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/BinCondExpression.java
 Wed Sep  8 02:04:04 2010
@@ -72,7 +72,7 @@ public class BinCondExpression extends L
     }
 
     /**
-     * @link 
org.apache.pig.experimental.plan.Operator#accept(org.apache.pig.experimental.plan.PlanVisitor)
+     * @link 
org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)
      */
     @Override
     public void accept(PlanVisitor v) throws FrontendException {

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/ConstantExpression.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/ConstantExpression.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/ConstantExpression.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/ConstantExpression.java
 Wed Sep  8 02:04:04 2010
@@ -48,7 +48,7 @@ public class ConstantExpression extends 
     }
 
     /**
-     * @link 
org.apache.pig.experimental.plan.Operator#accept(org.apache.pig.experimental.plan.PlanVisitor)
+     * @link 
org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)
      */
     @Override
     public void accept(PlanVisitor v) throws FrontendException {

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/DereferenceExpression.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/DereferenceExpression.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/DereferenceExpression.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/DereferenceExpression.java
 Wed Sep  8 02:04:04 2010
@@ -64,7 +64,7 @@ public class DereferenceExpression exten
     }
 
     /**
-     * @link 
org.apache.pig.experimental.plan.Operator#accept(org.apache.pig.experimental.plan.PlanVisitor)
+     * @link 
org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)
      */
     @Override
     public void accept(PlanVisitor v) throws FrontendException {

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/DivideExpression.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/DivideExpression.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/DivideExpression.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/DivideExpression.java
 Wed Sep  8 02:04:04 2010
@@ -43,7 +43,7 @@ public class DivideExpression extends Bi
     }
 
     /**
-     * @link 
org.apache.pig.experimental.plan.Operator#accept(org.apache.pig.experimental.plan.PlanVisitor)
+     * @link 
org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)
      */
     @Override
     public void accept(PlanVisitor v) throws FrontendException {

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/EqualExpression.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/EqualExpression.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/EqualExpression.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/EqualExpression.java
 Wed Sep  8 02:04:04 2010
@@ -44,7 +44,7 @@ public class EqualExpression extends Bin
     }
 
     /**
-     * @link 
org.apache.pig.experimental.plan.Operator#accept(org.apache.pig.experimental.plan.PlanVisitor)
+     * @link 
org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)
      */
     @Override
     public void accept(PlanVisitor v) throws FrontendException {

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/GreaterThanEqualExpression.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/GreaterThanEqualExpression.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/GreaterThanEqualExpression.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/GreaterThanEqualExpression.java
 Wed Sep  8 02:04:04 2010
@@ -40,7 +40,7 @@ public class GreaterThanEqualExpression 
     }
 
     /**
-     * @link 
org.apache.pig.experimental.plan.Operator#accept(org.apache.pig.experimental.plan.PlanVisitor)
+     * @link 
org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)
      */
     @Override
     public void accept(PlanVisitor v) throws FrontendException {

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/GreaterThanExpression.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/GreaterThanExpression.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/GreaterThanExpression.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/GreaterThanExpression.java
 Wed Sep  8 02:04:04 2010
@@ -40,7 +40,7 @@ public class GreaterThanExpression exten
     }
 
     /**
-     * @link 
org.apache.pig.experimental.plan.Operator#accept(org.apache.pig.experimental.plan.PlanVisitor)
+     * @link 
org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)
      */
     @Override
     public void accept(PlanVisitor v) throws FrontendException {

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/LessThanEqualExpression.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/LessThanEqualExpression.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/LessThanEqualExpression.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/LessThanEqualExpression.java
 Wed Sep  8 02:04:04 2010
@@ -40,7 +40,7 @@ public class LessThanEqualExpression ext
     }
 
     /**
-     * @link 
org.apache.pig.experimental.plan.Operator#accept(org.apache.pig.experimental.plan.PlanVisitor)
+     * @link 
org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)
      */
     @Override
     public void accept(PlanVisitor v) throws FrontendException {

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/LessThanExpression.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/LessThanExpression.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/LessThanExpression.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/LessThanExpression.java
 Wed Sep  8 02:04:04 2010
@@ -40,7 +40,7 @@ public class LessThanExpression extends 
     }
 
     /**
-     * @link 
org.apache.pig.experimental.plan.Operator#accept(org.apache.pig.experimental.plan.PlanVisitor)
+     * @link 
org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)
      */
     @Override
     public void accept(PlanVisitor v) throws FrontendException {

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/LogicalExpressionPlan.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/LogicalExpressionPlan.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/LogicalExpressionPlan.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/LogicalExpressionPlan.java
 Wed Sep  8 02:04:04 2010
@@ -20,17 +20,14 @@ package org.apache.pig.newplan.logical.e
 
 import java.io.PrintStream;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.Iterator;
-import java.util.LinkedList;
 import java.util.List;
-import java.util.Map;
 
 import org.apache.pig.impl.logicalLayer.FrontendException;
 import org.apache.pig.newplan.BaseOperatorPlan;
 import org.apache.pig.newplan.Operator;
 import org.apache.pig.newplan.OperatorPlan;
-import org.apache.pig.newplan.logical.optimizer.ExprPrinter;
+import org.apache.pig.newplan.logical.optimizer.LogicalPlanPrinter;
 
 /**
  * A plan containing LogicalExpressionOperators.
@@ -60,7 +57,7 @@ public class LogicalExpressionPlan exten
         ps.println("# New Logical Expression Plan:");
         ps.println("#-----------------------------------------------");
 
-        ExprPrinter npp = new ExprPrinter(this, ps);
+        LogicalPlanPrinter npp = new LogicalPlanPrinter(this, ps);
         npp.visit();
     }
     

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/MapLookupExpression.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/MapLookupExpression.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/MapLookupExpression.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/MapLookupExpression.java
 Wed Sep  8 02:04:04 2010
@@ -44,7 +44,7 @@ public class MapLookupExpression extends
         plan.add(this);
     }
     /**
-     * @link 
org.apache.pig.experimental.plan.Operator#accept(org.apache.pig.experimental.plan.PlanVisitor)
+     * @link 
org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)
      */
     @Override
     public void accept(PlanVisitor v) throws FrontendException {

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/ModExpression.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/ModExpression.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/ModExpression.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/ModExpression.java
 Wed Sep  8 02:04:04 2010
@@ -43,7 +43,7 @@ public class ModExpression extends Binar
     }
 
     /**
-     * @link 
org.apache.pig.experimental.plan.Operator#accept(org.apache.pig.experimental.plan.PlanVisitor)
+     * @link 
org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)
      */
     @Override
     public void accept(PlanVisitor v) throws FrontendException {

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/MultiplyExpression.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/MultiplyExpression.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/MultiplyExpression.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/MultiplyExpression.java
 Wed Sep  8 02:04:04 2010
@@ -43,7 +43,7 @@ public class MultiplyExpression extends 
     }
 
     /**
-     * @link 
org.apache.pig.experimental.plan.Operator#accept(org.apache.pig.experimental.plan.PlanVisitor)
+     * @link 
org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)
      */
     @Override
     public void accept(PlanVisitor v) throws FrontendException {

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/NotEqualExpression.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/NotEqualExpression.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/NotEqualExpression.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/NotEqualExpression.java
 Wed Sep  8 02:04:04 2010
@@ -44,7 +44,7 @@ public class NotEqualExpression extends 
     }
 
     /**
-     * @link 
org.apache.pig.experimental.plan.Operator#accept(org.apache.pig.experimental.plan.PlanVisitor)
+     * @link 
org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)
      */
     @Override
     public void accept(PlanVisitor v) throws FrontendException {

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/OrExpression.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/OrExpression.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/OrExpression.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/OrExpression.java
 Wed Sep  8 02:04:04 2010
@@ -44,7 +44,7 @@ public class OrExpression extends Binary
     }
 
     /**
-     * @link 
org.apache.pig.experimental.plan.Operator#accept(org.apache.pig.experimental.plan.PlanVisitor)
+     * @link 
org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)
      */
     @Override
     public void accept(PlanVisitor v) throws FrontendException {

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/ProjectExpression.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/ProjectExpression.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/ProjectExpression.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/ProjectExpression.java
 Wed Sep  8 02:04:04 2010
@@ -65,7 +65,7 @@ public class ProjectExpression extends C
     }
 
     /**
-     * @link 
org.apache.pig.experimental.plan.Operator#accept(org.apache.pig.experimental.plan.PlanVisitor)
+     * @link 
org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)
      */
     @Override
     public void accept(PlanVisitor v) throws FrontendException {

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/RegexExpression.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/RegexExpression.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/RegexExpression.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/RegexExpression.java
 Wed Sep  8 02:04:04 2010
@@ -44,7 +44,7 @@ public class RegexExpression extends Bin
     }
 
     /**
-     * @link 
org.apache.pig.experimental.plan.Operator#accept(org.apache.pig.experimental.plan.PlanVisitor)
+     * @link 
org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)
      */
     @Override
     public void accept(PlanVisitor v) throws FrontendException {

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/SubtractExpression.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/SubtractExpression.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/SubtractExpression.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/SubtractExpression.java
 Wed Sep  8 02:04:04 2010
@@ -43,7 +43,7 @@ public class SubtractExpression extends 
     }
 
     /**
-     * @link 
org.apache.pig.experimental.plan.Operator#accept(org.apache.pig.experimental.plan.PlanVisitor)
+     * @link 
org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)
      */
     @Override
     public void accept(PlanVisitor v) throws FrontendException {

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/UserFuncExpression.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/UserFuncExpression.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/UserFuncExpression.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/UserFuncExpression.java
 Wed Sep  8 02:04:04 2010
@@ -187,4 +187,21 @@ public class UserFuncExpression extends 
         }
         return copy;
     }
+    
+    public String toString() {
+        StringBuilder msg = new StringBuilder();
+        msg.append("(Name: " + name + "(" + getFuncSpec() + ")" + " Type: ");
+        if (fieldSchema!=null)
+            msg.append(DataType.findTypeName(fieldSchema.type));
+        else
+            msg.append("null");
+        msg.append(" Uid: ");
+        if (fieldSchema!=null)
+            msg.append(fieldSchema.uid);
+        else
+            msg.append("null");
+        msg.append(")");
+
+        return msg.toString();
+    }
 }

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/optimizer/LogicalPlanPrinter.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/optimizer/LogicalPlanPrinter.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/optimizer/LogicalPlanPrinter.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/optimizer/LogicalPlanPrinter.java
 Wed Sep  8 02:04:04 2010
@@ -17,216 +17,208 @@
  */
 package org.apache.pig.newplan.logical.optimizer;
 
-import java.io.PrintStream;
-import java.util.Collection;
+import java.util.ArrayList;
 import java.util.List;
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.io.OutputStream;
+import java.io.IOException;
 
-import org.apache.pig.impl.logicalLayer.FrontendException;
-import org.apache.pig.impl.util.MultiMap;
+import org.apache.pig.newplan.DepthFirstWalker;
+import org.apache.pig.newplan.Operator;
 import org.apache.pig.newplan.OperatorPlan;
+import org.apache.pig.newplan.PlanVisitor;
 import org.apache.pig.newplan.PlanWalker;
 import org.apache.pig.newplan.ReverseDependencyOrderWalker;
 import org.apache.pig.newplan.logical.expression.LogicalExpressionPlan;
-import org.apache.pig.newplan.logical.expression.LogicalExpressionVisitor;
 import org.apache.pig.newplan.logical.relational.LOCogroup;
-import org.apache.pig.newplan.logical.relational.LOCross;
-import org.apache.pig.newplan.logical.relational.LODistinct;
 import org.apache.pig.newplan.logical.relational.LOFilter;
 import org.apache.pig.newplan.logical.relational.LOForEach;
 import org.apache.pig.newplan.logical.relational.LOGenerate;
-import org.apache.pig.newplan.logical.relational.LOInnerLoad;
 import org.apache.pig.newplan.logical.relational.LOJoin;
-import org.apache.pig.newplan.logical.relational.LOLimit;
-import org.apache.pig.newplan.logical.relational.LOLoad;
 import org.apache.pig.newplan.logical.relational.LOSort;
-import org.apache.pig.newplan.logical.relational.LOSplit;
 import org.apache.pig.newplan.logical.relational.LOSplitOutput;
-import org.apache.pig.newplan.logical.relational.LOStore;
-import org.apache.pig.newplan.logical.relational.LOStream;
-import org.apache.pig.newplan.logical.relational.LOUnion;
-import org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor;
+import org.apache.pig.newplan.logical.relational.LogicalPlan;
+import org.apache.pig.impl.logicalLayer.FrontendException;
+import org.apache.pig.impl.plan.VisitorException;
+import org.apache.pig.impl.util.MultiMap;
 
-public class LogicalPlanPrinter extends LogicalRelationalNodesVisitor {
+/**
+ * A visitor mechanism printing out the logical plan.
+ */
+public class LogicalPlanPrinter extends PlanVisitor {
 
-    protected PrintStream stream = null;
-    protected int level = 0;
-    
-//    private String TAB1 = "    ";
-//    private String TABMore = "|   ";
-//    private String LSep = "|\n|---";
-//    private String USep = "|   |\n|   ";
-//    private int levelCntr = -1;
-    
+    private PrintStream mStream = null;
+    private String TAB1 = "    ";
+    private String TABMore = "|   ";
+    private String LSep = "|\n|---";
+    private String USep = "|   |\n|   ";
+    static public String SEPERATE = "\t";
+
+    /**
+     * @param ps PrintStream to output plan information to
+     * @param plan Logical plan to print
+     */
     public LogicalPlanPrinter(OperatorPlan plan, PrintStream ps) throws 
FrontendException {
-        super(plan, new ReverseDependencyOrderWalker(plan));
-        stream = ps;
-    }
-
-    protected LogicalExpressionVisitor getVisitor(LogicalExpressionPlan expr) 
throws FrontendException {
-        return new ExprPrinter(expr, level+1, stream);
-    }
-
-    @Override
-    public void visit(LOLoad op) throws FrontendException {
-        printLevel();
-        stream.println( op.toString() );
-    }
-
-    @Override
-    public void visit(LOStore op) throws FrontendException {
-        printLevel();
-        stream.println( op.toString() );
+        super(plan, null);
+        mStream = ps;
     }
 
     @Override
-    public void visit(LOForEach op) throws FrontendException {
-        printLevel();
-        stream.println( op.toString() );
-        level++;
-        OperatorPlan innerPlan = op.getInnerPlan();
-        PlanWalker newWalker = currentWalker.spawnChildWalker(innerPlan);
-        pushWalker(newWalker);
-        currentWalker.walk(this);
-        popWalker();
-        level--;
-    }
-
-    @Override
-    public void visit(LOFilter op) throws FrontendException {
-        printLevel();
-        stream.println( op.toString() );
-        LogicalExpressionVisitor v = getVisitor(op.getFilterPlan());
-        level++;
-        v.visit();
-        level--;
-    }
-    
-    @Override
-    public void visit(LOJoin op) throws FrontendException {
-        printLevel();
-        stream.println( op.toString() );
-        
-        LogicalExpressionVisitor v = null;
-        level++;
-        for (LogicalExpressionPlan plan : op.getExpressionPlanValues()) {
-            v = getVisitor(plan);
-            v.visit();
+    public void visit() throws FrontendException {
+        try {
+            if (plan instanceof LogicalPlan) {
+                mStream.write(depthFirstLP().getBytes());
+            }
+            else {
+                mStream.write(reverseDepthFirstLP().getBytes());
+            }
+        } catch (IOException e) {
+            throw new FrontendException(e);
         }
-        level--;
     }
 
-    @Override
-    public void visit(LOGenerate op) throws FrontendException {
-        printLevel();        
-        stream.println( op.toString() );
-        List<LogicalExpressionPlan> plans = op.getOutputPlans();
-        LogicalExpressionVisitor v = null;
-        level++;
-        for( LogicalExpressionPlan plan : plans ) {
-            v = getVisitor(plan);
-            v.visit();
+    protected String depthFirstLP() throws FrontendException, IOException {
+        StringBuilder sb = new StringBuilder();
+        List<Operator> leaves = plan.getSinks();
+        for (Operator leaf : leaves) {
+            sb.append(depthFirst(leaf));
+            sb.append("\n");
         }
-        level--;
-    }
-
-    @Override
-    public void visit(LOInnerLoad op) throws FrontendException {
-        printLevel();
-        stream.println( op.toString() );
+        return sb.toString();
     }
     
-    @Override
-    public void visit(LOCogroup op) throws FrontendException {
-        printLevel();
-        stream.println( op.toString() );
-        MultiMap<Integer,LogicalExpressionPlan> exprPlans = 
op.getExpressionPlans();
-        for( Integer key : exprPlans.keySet() ) {
-            Collection<LogicalExpressionPlan> plans = exprPlans.get(key);
-            LogicalExpressionVisitor v = null;
-            level++;
-            for( LogicalExpressionPlan plan : plans ) {
-                v = getVisitor(plan);
-                v.visit();
+    private String depthFirst(Operator node) throws FrontendException, 
IOException {
+        String nodeString = printNode(node);
+        
+        List<Operator> originalPredecessors =  plan.getPredecessors(node);
+        if (originalPredecessors == null)
+            return nodeString;
+        
+        StringBuffer sb = new StringBuffer(nodeString);
+        List<Operator> predecessors =  new 
ArrayList<Operator>(originalPredecessors);
+        
+        int i = 0;
+        for (Operator pred : predecessors) {
+            i++;
+            String DFStr = depthFirst(pred);
+            if (DFStr != null) {
+                sb.append(LSep);
+                if (i < predecessors.size())
+                    sb.append(shiftStringByTabs(DFStr, 2));
+                else
+                    sb.append(shiftStringByTabs(DFStr, 1));
             }
-            level--;
         }
+        return sb.toString();
     }
     
-    @Override
-    public void visit(LOSplitOutput op) throws FrontendException {
-        printLevel();
-        stream.println( op.toString() );
-        LogicalExpressionVisitor v = getVisitor(op.getFilterPlan());
-        level++;
-        v.visit();
-        level--;
-    }
-    
-    @Override
-    public void visit(LOSplit op) throws FrontendException {
-        printLevel();
-        stream.println( op.toString() );
-        level++;
-    }
-    
-    @Override
-    public void visit(LOUnion op) throws FrontendException {
-        printLevel();
-        stream.println( op.toString() );
-        level++;
-    }
-    
-    @Override
-    public void visit(LOCross op) throws FrontendException {
-        printLevel();
-        stream.println( op.toString() );
-        level++;
+    protected String reverseDepthFirstLP() throws FrontendException, 
IOException {
+        StringBuilder sb = new StringBuilder();
+        List<Operator> roots = plan.getSources();
+        for (Operator root : roots) {
+            sb.append(reverseDepthFirst(root));
+            sb.append("\n");
+        }
+        return sb.toString();
     }
     
-    @Override
-    public void visit(LOSort op) throws FrontendException {
-        printLevel();        
-        stream.println( op.toString() );
-        List<LogicalExpressionPlan> plans = op.getSortColPlans();
-        LogicalExpressionVisitor v = null;
-        level++;
-        for( LogicalExpressionPlan plan : plans ) {
-            v = getVisitor(plan);
-            v.visit();
+    private String reverseDepthFirst(Operator node) throws FrontendException, 
IOException {
+        String nodeString = printNode(node);
+        
+        List<Operator> originalSuccessors =  plan.getSuccessors(node);
+        if (originalSuccessors == null)
+            return nodeString;
+        
+        StringBuffer sb = new StringBuffer(nodeString);
+        List<Operator> successors =  new 
ArrayList<Operator>(originalSuccessors);
+        
+        int i = 0;
+        for (Operator succ : successors) {
+            i++;
+            String DFStr = reverseDepthFirst(succ);
+            if (DFStr != null) {
+                sb.append(LSep);
+                if (i < successors.size())
+                    sb.append(shiftStringByTabs(DFStr, 2));
+                else
+                    sb.append(shiftStringByTabs(DFStr, 1));
+            }
         }
-        level--;
+        return sb.toString();
     }
     
-    @Override
-    public void visit(LODistinct op) throws FrontendException {
-        printLevel();
-        stream.println( op.toString() );
+    private String planString(OperatorPlan lp) throws VisitorException, 
IOException {
+        StringBuilder sb = new StringBuilder();
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        PrintStream ps = new PrintStream(baos);
+        if(lp!=null) {
+            LogicalPlanPrinter printer = new LogicalPlanPrinter(lp, ps);
+            printer.visit();
+        }
+        else
+            return "";
+        sb.append(USep);
+        sb.append(shiftStringByTabs(baos.toString(), 2));
+        return sb.toString();
     }
     
-    @Override
-    public void visit(LOLimit op) throws FrontendException {
-        printLevel();
-        stream.println( op.toString() );
+    private String printNode(Operator node) throws FrontendException, 
IOException {
+        StringBuilder sb = new StringBuilder(node.toString()+"\n");
+        
+        if(node instanceof LOFilter){
+            sb.append(planString(((LOFilter)node).getFilterPlan()));
+        }
+        else if(node instanceof LOForEach){
+            sb.append(planString(((LOForEach)node).getInnerPlan()));        
+        }
+        else if(node instanceof LOCogroup){
+            MultiMap<Integer, LogicalExpressionPlan> plans = 
((LOCogroup)node).getExpressionPlans();
+            for (int i : plans.keySet()) {
+                // Visit the associated plans
+                for (OperatorPlan plan : plans.get(i)) {
+                    sb.append(planString(plan));
+                }
+            }
+        }
+        else if(node instanceof LOJoin){
+            MultiMap<Integer, LogicalExpressionPlan> plans = 
((LOJoin)node).getExpressionPlans();
+            for (int i: plans.keySet()) {
+                // Visit the associated plans
+                for (OperatorPlan plan : plans.get(i)) {
+                    sb.append(planString(plan));
+                }
+            }
+        }
+        else if(node instanceof LOSort){
+            for (OperatorPlan plan : ((LOSort)node).getSortColPlans())
+                sb.append(planString(plan));
+        }
+        else if(node instanceof LOSplitOutput){
+            sb.append(planString(((LOSplitOutput)node).getFilterPlan()));
+        }
+        else if(node instanceof LOGenerate){
+            for (OperatorPlan plan : ((LOGenerate)node).getOutputPlans()) {
+                sb.append(planString(plan));
+            }
+        }
+        return sb.toString();
     }
 
-    @Override
-    public void visit(LOStream op) throws FrontendException {
-        printLevel();
-        stream.println( op.toString() );
-    }
-    
-    public String toString() {
-        return stream.toString();
-    }   
-    
-    private void printLevel() {
-        for(int i =0; i < level; i++ ) {
-            stream.print("|\t");
-        }
-        stream.println("|");
-        for(int i =0; i < level; i++ ) {
-            stream.print("|\t");
+    private String shiftStringByTabs(String DFStr, int TabType) {
+        StringBuilder sb = new StringBuilder();
+        String[] spl = DFStr.split("\n");
+
+        String tab = (TabType == 1) ? TAB1 : TABMore;
+
+        sb.append(spl[0] + "\n");
+        for (int i = 1; i < spl.length; i++) {
+            sb.append(tab);
+            sb.append(spl[i]);
+            sb.append("\n");
         }
-        stream.print("|---");
+        return sb.toString();
     }
 }
+
+        

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/optimizer/ProjectionPatcher.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/optimizer/ProjectionPatcher.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/optimizer/ProjectionPatcher.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/optimizer/ProjectionPatcher.java
 Wed Sep  8 02:04:04 2010
@@ -39,7 +39,7 @@ import org.apache.pig.newplan.optimizer.
 public class ProjectionPatcher implements PlanTransformListener {
 
     /**
-     * @link 
org.apache.pig.experimental.plan.optimizer.PlanTransformListener#transformed(org.apache.pig.experimental.plan.OperatorPlan,
 org.apache.pig.experimental.plan.OperatorPlan)
+     * @link 
org.apache.pig.newplan.optimizer.PlanTransformListener#transformed(org.apache.pig.newplan.OperatorPlan,
 org.apache.pig.newplan.OperatorPlan)
      */
     @Override
     public void transformed(OperatorPlan fp, OperatorPlan tp)

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/optimizer/SchemaPatcher.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/optimizer/SchemaPatcher.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/optimizer/SchemaPatcher.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/optimizer/SchemaPatcher.java
 Wed Sep  8 02:04:04 2010
@@ -32,7 +32,7 @@ public class SchemaPatcher implements Pl
 
     /**
      * @throws FrontendException 
-     * @link 
org.apache.pig.experimental.plan.optimizer.PlanTransformListener#transformed(org.apache.pig.experimental.plan.OperatorPlan,
 org.apache.pig.experimental.plan.OperatorPlan)
+     * @link 
org.apache.pig.newplan.optimizer.PlanTransformListener#transformed(org.apache.pig.newplan.OperatorPlan,
 org.apache.pig.newplan.OperatorPlan)
      */
     @Override
     public void transformed(OperatorPlan fp, OperatorPlan tp) throws 
FrontendException {

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/relational/LOLoad.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/relational/LOLoad.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/relational/LOLoad.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/relational/LOLoad.java
 Wed Sep  8 02:04:04 2010
@@ -141,7 +141,7 @@ public class LOLoad extends LogicalRelat
                 Schema oldSchema = Schema.getPigSchema(resourceSchema);
                 return Util.translateSchema(oldSchema);
             } catch (IOException e) {
-                throw new FrontendException("Cannot get schema from loadFunc " 
+ loadFunc.getClass().getName(), 9999, e);
+                throw new FrontendException("Cannot get schema from loadFunc " 
+ loadFunc.getClass().getName(), 2245, e);
             }
         }
         return null;

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/relational/LogToPhyTranslationVisitor.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/relational/LogToPhyTranslationVisitor.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/relational/LogToPhyTranslationVisitor.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/relational/LogToPhyTranslationVisitor.java
 Wed Sep  8 02:04:04 2010
@@ -908,7 +908,7 @@ public class LogToPhyTranslationVisitor 
                         LogicalSchema s = 
((LogicalRelationalOperator)op).getSchema();
                         // if the schema cannot be determined
                         if (s == null) {
-                            throw new FrontendException();
+                            throw new FrontendException("Cannot determine 
skewed join schema", 2247);
                         }
                         skj.addSchema(Util.translateSchema(s));
                     } catch (FrontendException e) {

Modified: 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/relational/LogicalSchema.java
URL: 
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/relational/LogicalSchema.java?rev=993577&r1=993576&r2=993577&view=diff
==============================================================================
--- 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/relational/LogicalSchema.java
 (original)
+++ 
hadoop/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/relational/LogicalSchema.java
 Wed Sep  8 02:04:04 2010
@@ -326,7 +326,7 @@ public class LogicalSchema {
             if (DataType.isSchemaType(mergedType)) {
                 mergedSubSchema = merge(fs1.schema, fs2.schema);
                 if (mergedSubSchema==null) {
-                    throw new FrontendException("Error merging schema " + fs1 
+ " and " + fs2, 9999);
+                    throw new FrontendException("Error merging schema " + fs1 
+ " and " + fs2, 2246);
                 }
             }
             LogicalFieldSchema mergedFS = new LogicalFieldSchema(mergedAlias, 
mergedSubSchema, mergedType);


Reply via email to