hadoop-pig-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Santhosh Srinivasan (JIRA)" <j...@apache.org>
Subject [jira] Commented: (PIG-159) Make changes to the parser to support new types functionality
Date Tue, 03 Jun 2008 00:37:44 GMT

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

Santhosh Srinivasan commented on PIG-159:
-----------------------------------------

The define statement as specified in the types functional specification is like a function
type declaration in C. The existing define syntax in Pig is for specifying the UDF along with
the constructor argument. Examples will illustrate the difference.

{code}

--Existing Pig

define myFunc org.apache.pig.test.MyFunc('foo');

--Proposed syntax in the types functional specification

define myFunc = int org.apache.pig.test.MyFunc(a:int, b: tuple(b1: int, b2: float));

{code}

As seen in the aforementioned example, we are changing the semantics of define. The parser
in the types branch has the implementation proposed in the types functional specification.
In order to ensure backward compatibility and consistency, I will be rolling back the changes
in the parser to conform to the existing pig semantics for define.

I will introduce a 'declare' statement (no syntax yet) that will allow the user to specify
the number and type of the function parameters. In short, the define in the parser in the
types branch will be converted to a declare with a slightly modified syntax. This will allow
the parser to check for the number and types of the actual parameters to the UDF.

In the current implementation of UDFs, the exec method accepts a tuple as input. There are
no options to pass any type other than that of a tuple. This flexibility is necessary for
the users to be able to write UDFs that can accept types other than tuple. Irrespective of
this change, the parser can support checking for number and types of the UDF arguments.

Thoughts?

> Make changes to the parser to support new types functionality
> -------------------------------------------------------------
>
>                 Key: PIG-159
>                 URL: https://issues.apache.org/jira/browse/PIG-159
>             Project: Pig
>          Issue Type: Sub-task
>          Components: impl
>            Reporter: Alan Gates
>            Assignee: Alan Gates
>         Attachments: parser_chages_v10.patch, parser_chages_v11.patch, parser_chages_v12.patch,
parser_chages_v13.patch, parser_chages_v5.patch, parser_chages_v6.patch, parser_chages_v7.patch,
parser_chages_v8.patch, parser_chages_v9.patch
>
>
> In order to support the new types functionality described in http://wiki.apache.org/pig/PigTypesFunctionalSpec,
the parse needs to change in the following ways:
> 1) AS needs to support types in addition to aliases.  So where previously it was legal
to say:
> a = load 'myfile' as a, b, c;
> it will now also be legal to say
> a = load 'myfile' as a integer, b float, c chararray;
> 2) Non string constants need to be supported.  This includes non-string atomic types
(integer, long, float, double) and the non-atomic types bags, tuples, and maps.
> 3) A cast operator needs to be added so that fields can be explicitly casted.
> 4) Changes to DEFINE, to allow users to declare arguments and return types for UDFs

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


Mime
View raw message