You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pig.apache.org by "Pi Song (JIRA)" <ji...@apache.org> on 2008/02/28 13:59:51 UTC

[jira] Updated: (PIG-118) UNION/CROSS/JOIN operations should not allow 1 operand

     [ https://issues.apache.org/jira/browse/PIG-118?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Pi Song updated PIG-118:
------------------------

    Attachment: pig_1operand.patch

This patch solves the above issue.

All unit test passed.

I assume Sigma-styled Union/Cross/Join are not in the plan.

> UNION/CROSS/JOIN operations should not allow 1 operand
> ------------------------------------------------------
>
>                 Key: PIG-118
>                 URL: https://issues.apache.org/jira/browse/PIG-118
>             Project: Pig
>          Issue Type: Bug
>          Components: impl
>    Affects Versions: 0.0.0
>            Reporter: Pi Song
>         Attachments: pig_1operand.patch
>
>
> At the moment UNION/CROSS/JOIN allow 1 operand.
> You can write:-
> {noformat}
> b = UNION a ;
> c = CROSS b ;
> d = JOIN c BY $0 ;
> {noformat}
> Possibly UNION with 1 operand might be needed for implementing Sigma-styled union (Ui=1..n An)  but for CROSS/JOIN I think nobody would do such operation.
> By simply replacing "*" with "+" in the parser tree should fix this problem. Should this be fixed?
> {noformat}
> LogicalOperator CrossClause() : {LogicalOperator op; ArrayList<OperatorKey> inputs = new ArrayList<OperatorKey>();}
> {
> 	(
> 	op = NestedExpr() { inputs.add(op.getOperatorKey()); }
> 	("," op = NestedExpr() { inputs.add(op.getOperatorKey()); })*
> 	)
> 	{return rewriteCross(inputs);}
> }
> LogicalOperator JoinClause() : {CogroupInput gi; ArrayList<CogroupInput> gis = new ArrayList<CogroupInput>();}
> {
> 	(gi = GroupItem() { gis.add(gi); }
> 	("," gi = GroupItem() { gis.add(gi); })*)
> 	{return rewriteJoin(gis);}
> }
> LogicalOperator UnionClause() : {LogicalOperator op; ArrayList<OperatorKey> inputs = new ArrayList<OperatorKey>();}
> {
> 	(op = NestedExpr() { inputs.add(op.getOperatorKey()); }
> 	("," op = NestedExpr() { inputs.add(op.getOperatorKey()); })*)
> 	{return new LOUnion(opTable, scope, getNextId(), inputs);}
> }
> {noformat}

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