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

Cheolsoo Park commented on PIG-3359:
------------------------------------

[~jpacker], thank you for updating the patch.
{quote}
I think it's a bit weird that PigServer instantiates QPD which then 
instantiates a new PigServer, but I agree its better to be consistent with 
what's already there.
{quote}
I have thought about this more. What if you don't call {{registerJars}} and 
{{registerCode}} in QPD at all? Instead can't you just pass filenames to 
PigServer via PigContext? Then, after QPD finishes parsing, PigServer can call 
these methods to register them by itself. Currently, jars are only registered 
in the PigServer constructor (i.e. addJarsFromProperties()), but we can 
register additional jars after parsing is done. Similarly, we can register 
scripts after parsing is done.

The reasons why I am obsessed with de-coupling these methods from QPD is 
because I think it's good to keep a clear distinction between parser and 
server. Sorry if I am asking too much. :-) Thanks!
                
> Register Statements and Param Substitution in Macros
> ----------------------------------------------------
>
>                 Key: PIG-3359
>                 URL: https://issues.apache.org/jira/browse/PIG-3359
>             Project: Pig
>          Issue Type: Bug
>          Components: parser
>            Reporter: Jonathan Packer
>            Assignee: Jonathan Packer
>         Attachments: PIG-3359_test.tar.gz, PIG-3359-v1.diff, PIG-3359-v2.diff
>
>
> There are some gaps in the functionality of macros that I've made a patch to 
> address. The goal is to provide everything you'd need to make reusable 
> algorithms libraries.
> 1. You can't register udfs inside a macro
> 2. Paramater substitutions aren't done inside macros
> 3. Resources (including macros) should not be redundantly acquired if they 
> are already present.
> Rohini's patch https://issues.apache.org/jira/browse/PIG-3204 should address 
> problem 3 where Pig reparses everything every time it reads a line, but there 
> still would be a problem if two separate files import the same macro / udf 
> file.
> To get this working, I moved methods for registering jars/udfs and param 
> substitution from PigServer to PigContext so they can be accessed in 
> QueryParserDriver which processes macros (QPD was already passed a PigContext 
> reference). Is that ok?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to