pig-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Koji Noguchi (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PIG-4897) Scope of param substitution for run/exec commands
Date Wed, 07 Sep 2016 14:12:20 GMT

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

Koji Noguchi commented on PIG-4897:
-----------------------------------

bq. 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.

Definition only talks about "aliases referenced in script" but not on params or macros.

Also, it's not black and white in that, what would you do when we have both.
{noformat}
script1.pig 
      -> exec script2.pig 
               -> run script3.pig 
                         -> exec script4.pig
{noformat}
Params defined inside script3.pig would be visible to script2.pig but not to script1.pig ?
Or should it be global and script1.pig should be able to see it?

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

Mime
View raw message