Author: olga
Date: Thu Sep 18 08:06:38 2008
New Revision: 696668

URL: http://svn.apache.org/viewvc?rev=696668&view=rev
Log:
PIG-426: Adding result of two UDFs gives a syntax error

Modified:
    incubator/pig/branches/types/CHANGES.txt
    
incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/ExpressionOperator.java
    
incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/LOUserFunc.java
    
incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt
    
incubator/pig/branches/types/test/org/apache/pig/test/TestLogicalPlanBuilder.java

Modified: incubator/pig/branches/types/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/incubator/pig/branches/types/CHANGES.txt?rev=696668&r1=696667&r2=696668&view=diff
==============================================================================
--- incubator/pig/branches/types/CHANGES.txt (original)
+++ incubator/pig/branches/types/CHANGES.txt Thu Sep 18 08:06:38 2008
@@ -203,3 +203,5 @@
     PIG-434: short-circuit AND and OR (pradeepk viia olgan)
 
     PIG-333: allowing no parethesis with single column alias with flatten
+
+    PIG-426: Adding result of two UDFs gives a syntax error

Modified: 
incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/ExpressionOperator.java
URL: 
http://svn.apache.org/viewvc/incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/ExpressionOperator.java?rev=696668&r1=696667&r2=696668&view=diff
==============================================================================
--- 
incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/ExpressionOperator.java
 (original)
+++ 
incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/ExpressionOperator.java
 Thu Sep 18 08:06:38 2008
@@ -60,7 +60,7 @@
     
     @Override
     public boolean supportsMultipleOutputs() {
-        return false;
+        return true;
     }
 
     @Override

Modified: 
incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/LOUserFunc.java
URL: 
http://svn.apache.org/viewvc/incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/LOUserFunc.java?rev=696668&r1=696667&r2=696668&view=diff
==============================================================================
--- 
incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/LOUserFunc.java
 (original)
+++ 
incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/LOUserFunc.java
 Thu Sep 18 08:06:38 2008
@@ -83,7 +83,7 @@
         Schema inputSchema = new Schema();
         for(ExpressionOperator op: mArgs) {
             if (!DataType.isUsableType(op.getType())) {
-                String msg = "Problem with input of User-defined function" ;
+                String msg = "Problem with input: " + op + " of User-defined 
function: " + this ;
                 mFieldSchema = null;
                 mIsFieldSchemaComputed = false;
                 throw new FrontendException(msg) ;

Modified: 
incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt
URL: 
http://svn.apache.org/viewvc/incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt?rev=696668&r1=696667&r2=696668&view=diff
==============================================================================
--- 
incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt
 (original)
+++ 
incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt
 Thu Sep 18 08:06:38 2008
@@ -277,7 +277,7 @@
                Boolean isAtomic = null;
                if ( spec instanceof LOConst || 
                        (spec instanceof LOUserFunc &&
-                
DataType.isAtomic(DataType.findType(((LOUserFunc)spec).getType()))))
+                DataType.isAtomic(((LOUserFunc)spec).getType())))
                        isAtomic = true;
                else if (spec instanceof LOUserFunc)
                        isAtomic = false;
@@ -942,13 +942,13 @@
                 SchemaUtils.setSchemaDefaultType(schema, DataType.BYTEARRAY); 
                 op.setSchema(schema); 
                 op.setCanonicalNames(); 
-                log.info("Stream as schema()"+ schema);
+                log.debug("Stream as schema()"+ schema);
             } 
         | fs = AtomSchema() 
             {
                 schema = new Schema(fs);
                 op.setSchema(schema);
-                log.info("Stream as atomschema()" + schema);
+                log.debug("Stream as atomschema()" + schema);
             }
         ) 
         ]
@@ -2205,7 +2205,7 @@
                log.debug("Connecting generate inputs");
                for(LogicalOperator op: getGenerateInputs()) {
                        lp.connect(op, spec);
-                       log.debug("Connected operator: " + 
op.getClass().getName() + " to " + op + " " + spec + " in logical plan " + lp);
+                       log.debug("Connected operator: " + op + " to " + spec + 
" in logical plan " + lp);
                }
                log.trace("Exiting GenerateStatement");
                return spec;

Modified: 
incubator/pig/branches/types/test/org/apache/pig/test/TestLogicalPlanBuilder.java
URL: 
http://svn.apache.org/viewvc/incubator/pig/branches/types/test/org/apache/pig/test/TestLogicalPlanBuilder.java?rev=696668&r1=696667&r2=696668&view=diff
==============================================================================
--- 
incubator/pig/branches/types/test/org/apache/pig/test/TestLogicalPlanBuilder.java
 (original)
+++ 
incubator/pig/branches/types/test/org/apache/pig/test/TestLogicalPlanBuilder.java
 Thu Sep 18 08:06:38 2008
@@ -1274,6 +1274,25 @@
         }
     }
 
+    @Test
+    public void testQuery91() {
+        buildPlan("a = load 'myfile' as (name:Chararray, age:Int, 
gpa:Float);");
+        buildPlan("b = group a by name;");
+        buildPlan("c = foreach b generate SUM(a.age) + SUM(a.gpa);");
+    }
+
+    @Test
+    public void testQuery92() {
+        buildPlan("a = load 'myfile' as (name, age, gpa);");
+        buildPlan("b = group a by name;");
+        String query = "c = foreach b { "
+        + " alias = name#'alias'; "
+        + " af = alias#'first'; "
+        + " al = alias#'last'; "
+        + " generate SUM(a.age) + SUM(a.gpa); "
+        + "};";
+    }
+
     private Schema getSchemaFromString(String schemaString) throws 
ParseException {
         return getSchemaFromString(schemaString, DataType.BYTEARRAY);
     }


Reply via email to