Author: olga Date: Wed Jul 16 15:33:18 2008 New Revision: 677451 URL: http://svn.apache.org/viewvc?rev=677451&view=rev Log: merge for PIG-114 and PIG-118 into types branch
Added: incubator/pig/branches/types/src/org/apache/pig/ReversibleLoadStoreFunc.java Modified: incubator/pig/branches/types/src/org/apache/pig/builtin/BinStorage.java incubator/pig/branches/types/src/org/apache/pig/builtin/PigStorage.java incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt Added: incubator/pig/branches/types/src/org/apache/pig/ReversibleLoadStoreFunc.java URL: http://svn.apache.org/viewvc/incubator/pig/branches/types/src/org/apache/pig/ReversibleLoadStoreFunc.java?rev=677451&view=auto ============================================================================== --- incubator/pig/branches/types/src/org/apache/pig/ReversibleLoadStoreFunc.java (added) +++ incubator/pig/branches/types/src/org/apache/pig/ReversibleLoadStoreFunc.java Wed Jul 16 15:33:18 2008 @@ -0,0 +1,14 @@ +package org.apache.pig; + +/** + * This interface is used to implement classes that can perform both + * Load and Store functionalities in a symmetric fashion (thus reversible). + * + * The symmetry property of implementations is used in the optimization + * engine therefore violation of this property while implementing this + * interface is likely to result in unexpected output from executions. + * + */ +public interface ReversibleLoadStoreFunc extends LoadFunc, StoreFunc { + +} Modified: incubator/pig/branches/types/src/org/apache/pig/builtin/BinStorage.java URL: http://svn.apache.org/viewvc/incubator/pig/branches/types/src/org/apache/pig/builtin/BinStorage.java?rev=677451&r1=677450&r2=677451&view=diff ============================================================================== --- incubator/pig/branches/types/src/org/apache/pig/builtin/BinStorage.java (original) +++ incubator/pig/branches/types/src/org/apache/pig/builtin/BinStorage.java Wed Jul 16 15:33:18 2008 @@ -27,8 +27,7 @@ import java.util.Iterator; import java.util.Map; -import org.apache.pig.LoadFunc; -import org.apache.pig.StoreFunc; +import org.apache.pig.ReversibleLoadStoreFunc; import org.apache.pig.backend.executionengine.ExecException; import org.apache.pig.data.DataBag; import org.apache.pig.data.DataReaderWriter; @@ -37,7 +36,7 @@ import org.apache.pig.impl.logicalLayer.schema.Schema; -public class BinStorage implements LoadFunc, StoreFunc { +public class BinStorage implements ReversibleLoadStoreFunc { public static final byte RECORD_1 = 0x21; public static final byte RECORD_2 = 0x31; public static final byte RECORD_3 = 0x41; Modified: incubator/pig/branches/types/src/org/apache/pig/builtin/PigStorage.java URL: http://svn.apache.org/viewvc/incubator/pig/branches/types/src/org/apache/pig/builtin/PigStorage.java?rev=677451&r1=677450&r2=677451&view=diff ============================================================================== --- incubator/pig/branches/types/src/org/apache/pig/builtin/PigStorage.java (original) +++ incubator/pig/branches/types/src/org/apache/pig/builtin/PigStorage.java Wed Jul 16 15:33:18 2008 @@ -26,6 +26,7 @@ import org.apache.pig.LoadFunc; import org.apache.pig.StoreFunc; +import org.apache.pig.ReversibleLoadStoreFunc; import org.apache.pig.backend.executionengine.ExecException; import org.apache.pig.data.DataByteArray; import org.apache.pig.data.DataType; @@ -34,14 +35,13 @@ import org.apache.pig.impl.io.BufferedPositionedInputStream; import org.apache.pig.impl.logicalLayer.schema.Schema; - /** * A load function that parses a line of input into fields using a delimiter to set the fields. The * delimiter is given as a regular expression. See String.split(delimiter) and * http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/Pattern.html for more information. */ public class PigStorage extends Utf8StorageConverter - implements LoadFunc, StoreFunc { + implements ReversibleLoadStoreFunc { protected BufferedPositionedInputStream in = null; long end = Long.MAX_VALUE; Modified: incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt URL: http://svn.apache.org/viewvc/incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt?rev=677451&r1=677450&r2=677451&view=diff ============================================================================== --- incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt (original) +++ incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt Wed Jul 16 15:33:18 2008 @@ -1216,7 +1216,7 @@ { ( op = NestedExpr(lp) { inputs.add(op); } - ("," op = NestedExpr(lp) { inputs.add(op); })* + ("," op = NestedExpr(lp) { inputs.add(op); })+ ) { LogicalOperator cross = new LOCross(lp, new OperatorKey(scope, getNextId())); @@ -1243,7 +1243,7 @@ } { (gi = GroupItem(lp) { gis.add(gi); } - ("," gi = GroupItem(lp) { gis.add(gi); })*) + ("," gi = GroupItem(lp) { gis.add(gi); })+) {log.trace("Exiting JoinClause"); return rewriteJoin(gis, lp);} } @@ -1256,7 +1256,7 @@ } { (op = NestedExpr(lp){inputs.add(op);} - ("," op = NestedExpr(lp) {inputs.add(op);})*) + ("," op = NestedExpr(lp) {inputs.add(op);})+) { LogicalOperator union = new LOUnion(lp, new OperatorKey(scope, getNextId())); lp.add(union);