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/09/18 17:06:38 UTC

svn commit: r696668 - in /incubator/pig/branches/types: ./ src/org/apache/pig/impl/logicalLayer/ src/org/apache/pig/impl/logicalLayer/parser/ test/org/apache/pig/test/

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);
     }