Dmitriy V. Ryaboy updated PIG-990:

    Attachment: pinned_options.patch

This patch does a few things:

1) Introduce a HashSet of pinnedOptions to LogicalOperator.

2) Add a class constant to LOJoin to represent the "type of join" option

3) Modify the parser to pin the OPTION_JOIN when it is explicitly specified in 
the pig script

4) Introduce the syntax 'using "regular"' to pin the default (regular) join 
type. Currently that's redundant, but it's required if we start choosing join 
types for the user, and the user wants to tell us that this particular join 
must be done in the regular way.

5) minor cleanup in this area of the parser to use just one LogicalOperator 
variable instead of three.

No rush to commit this as it's not being used by anything yet, but posting it 
for review now so as to let people review the cbo-oriented changes one at a 
time instead of a giant code dump.  

Note that if/when we add a group type as per PIG-984, that should also be an 
option that can be pinned by the user.

> Provide a way to pin LogicalOperator Options
> --------------------------------------------
>                 Key: PIG-990
>                 URL: https://issues.apache.org/jira/browse/PIG-990
>             Project: Pig
>          Issue Type: Bug
>          Components: impl
>            Reporter: Dmitriy V. Ryaboy
>            Priority: Minor
>             Fix For: 0.6.0
>         Attachments: pinned_options.patch
> This is a proactive patch, setting up the groundwork for adding an optimizer.
> Some of the LogicalOperators have options. For example, LOJoin has a variety 
> of join types (regular, fr, skewed, merge), which can be set by the user or 
> chosen by a hypothetical optimizer.  If a user selects a join type, pig 
> philoophy guides us to always respect the user's choice and not explore 
> alternatives.  Therefore, we need a way to "pin" options.  

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