[ 
https://issues.apache.org/jira/browse/PIG-851?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12720292#action_12720292
 ] 

Santhosh Srinivasan commented on PIG-851:
-----------------------------------------

Review comments:

1. The new sources test/org/apache/pig/test/utils/MyUDFReturnMap.java and 
test/org/apache/pig/test/TestUDFReturnMap.java need to include the Apache 
license headers
2. The use of package 
sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl is resulting in 3 
compiler warnings and 1 javadoc warning. Can we use a different package?
3. The test case in TestUDFReturnMap runs the test in local mode (i.e., 
ExecType.LOCAL). Another test for map reduce mode, ExecType.MAPREDUCE, should 
be added.

> Map type used as return type in UDFs not recognized at all times
> ----------------------------------------------------------------
>
>                 Key: PIG-851
>                 URL: https://issues.apache.org/jira/browse/PIG-851
>             Project: Pig
>          Issue Type: Bug
>          Components: impl
>    Affects Versions: 0.3.0
>            Reporter: Santhosh Srinivasan
>             Fix For: 0.3.0
>
>         Attachments: Pig_815_patch.txt
>
>
> When an UDF returns a map and the outputSchema method is not overridden, Pig 
> does not figure out the data type. As a result, the type is set to unknown 
> resulting in run time failure. An example script and UDF follow
> {code}
> public class mapUDF extends EvalFunc<Map<Object, Object>> {
>     @Override
>     public Map<Object, Object> exec(Tuple input) throws IOException {
>             return new HashMap<Object, Object>();
>     }
> //Note that the outputSchema method is commented out
> /*
>     @Override
>     public Schema outputSchema(Schema input) {
>         try {
>             return new Schema(new Schema.FieldSchema(null, null, 
> DataType.MAP));
>         } catch (FrontendException e) {
>             return null;
>         }
>     }
> */
> {code}
> {code}
> grunt> a = load 'student_tab.data';           
> grunt> b = foreach a generate EXPLODE(1);
> grunt> describe b;
> b: {Unknown}
> grunt> dump b;
> 2009-06-15 17:59:01,776 [main] INFO  
> org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher
>  - Failed!
> 2009-06-15 17:59:01,781 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 
> 2080: Foreach currently does not handle type Unknown
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to