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.