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