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);


Reply via email to