You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pig.apache.org by "Rohini Palaniswamy (JIRA)" <ji...@apache.org> on 2016/09/06 22:20:20 UTC

[jira] [Commented] (PIG-4897) Scope of param substitution for run/exec commands

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

Rohini Palaniswamy commented on PIG-4897:
-----------------------------------------

I think we should only scope for exec and not run. For run we should overwrite the passed parameter as declare inside run should be available outside it as per definition from Pig book. 

{code}
exec [-param param_name = param_value] [-param_file filename] [script] Execute the Pig Latin script script. Aliases defined in script are not imported into Grunt. This command is useful for testing your Pig Latin scripts while inside a Grunt session. You can also run exec without paramter to only run the Pig statements before exec. The difference is Pig will not combine them with the rest of the script in execution.
run [-param param_name = param_value] [-param_file filename] script Execute the Pig Latin script script in the current Grunt shell. Thus all aliases referenced in script are available to Grunt, and the commands in script are accessible via the shell history. This is another option for testing Pig Latin scripts while inside a Grunt session.
{code}

> Scope of param substitution for run/exec commands
> -------------------------------------------------
>
>                 Key: PIG-4897
>                 URL: https://issues.apache.org/jira/browse/PIG-4897
>             Project: Pig
>          Issue Type: Bug
>            Reporter: Koji Noguchi
>            Assignee: Koji Noguchi
>         Attachments: pig-4897-v01-notestyet.patch, pig-4897-v02.patch, pig-4897-v03.patch, pig-4897-v04.patch, pig-4897-v05.patch
>
>
> After PIG-3359, pig param substitution became global in that parameter declared in the pig script called from {{run}} or {{exec}} would live after that script finishes.  
> This created an interesting situation.
> {code:title=test1.pig}
> exec -param output=/tmp/deleteme111 test1_1.pig
> exec -param output=/tmp/deleteme222 test1_1.pig
> {code}
> {code:title=test1_1.pig}
> %default myout '$output.out';
> A = load 'input.txt' as (a0:int);
> store A into '$myout';
> {code}
> Running {{test1.pig}} would try to run two jobs that both tries to write to /tmp/deleteme111 and fail.  (Second param output=/tmp/deleteme222 is ignored.)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)