svn commit: r920710 - in /hadoop/pig/trunk: ./ contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/string/ contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/evalu
Author: dvryaboy Date: Tue Mar 9 06:28:35 2010 New Revision: 920710 URL: http://svn.apache.org/viewvc?rev=920710view=rev Log: PIG-1248: [piggybank] some useful String functions Modified: hadoop/pig/trunk/CHANGES.txt hadoop/pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/string/INDEXOF.java hadoop/pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/string/LASTINDEXOF.java hadoop/pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/string/LOWER.java hadoop/pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/string/REPLACE.java hadoop/pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/string/SUBSTRING.java hadoop/pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/string/UPPER.java hadoop/pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/evaluation/string/TestRegex.java Modified: hadoop/pig/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/CHANGES.txt?rev=920710r1=920709r2=920710view=diff == --- hadoop/pig/trunk/CHANGES.txt (original) +++ hadoop/pig/trunk/CHANGES.txt Tue Mar 9 06:28:35 2010 @@ -66,6 +66,8 @@ manner (rding via pradeepkth) IMPROVEMENTS +PIG-1248: [piggybank] some useful String functions (dvryaboy) + PIG-1251: Move SortInfo calculation earlier in compilation (ashutoshc) PIG-1233: NullPointerException in AVG (ankur via olgan) Modified: hadoop/pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/string/INDEXOF.java URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/string/INDEXOF.java?rev=920710r1=920709r2=920710view=diff == --- hadoop/pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/string/INDEXOF.java (original) +++ hadoop/pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/string/INDEXOF.java Tue Mar 9 06:28:35 2010 @@ -19,47 +19,50 @@ package org.apache.pig.piggybank.evaluation.string; import java.io.IOException; -import java.util.List; -import java.util.ArrayList; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.pig.EvalFunc; import org.apache.pig.data.Tuple; import org.apache.pig.data.DataType; import org.apache.pig.impl.logicalLayer.schema.Schema; -import org.apache.pig.impl.logicalLayer.FrontendException; -import org.apache.pig.FuncSpec; /** - * string.INSTR implements eval function to search for a string + * string.INDEXOF implements eval function to search for a string * Example: * register pigudfs.jar; * A = load 'mydata' as (name); * B = foreach A generate string.INDEXOF(name, ,); * dump B; */ -public class INDEXOF extends EvalFuncInteger -{ +public class INDEXOF extends EvalFuncInteger { + +private static final Log log = LogFactory.getLog(INDEXOF.class); + /** * Method invoked on every tuple during foreach evaluation * @param input tuple; first column is assumed to have the column to convert * the second column is the string we search for * the third is an optional column from where to start the search * @exception java.io.IOException + * @return index of first occurrence, or null in case of processing error */ public Integer exec(Tuple input) throws IOException { -if (input == null || input.size() == 0) +if (input == null || input.size() 2) { +log.warn(invalid input tuple: +input); return null; - -try{ +} +try { String str = (String)input.get(0); String search = (String)input.get(1); int fromIndex = 0; -if (input.size() ==3) -fromIndex = (Integer)input.get(1); +if (input.size() =3) +fromIndex = (Integer)input.get(2); return str.indexOf(search, fromIndex); -}catch(Exception e){ -System.err.println(Failed to process input; error - + e.getMessage()); +} catch(Exception e){ +log.warn(Failed to process input; error - + e.getMessage()); return null; } } Modified: hadoop/pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/string/LASTINDEXOF.java URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/string/LASTINDEXOF.java?rev=920710r1=920709r2=920710view=diff
svn commit: r925868 - in /hadoop/pig/trunk: CHANGES.txt src/org/apache/pig/data/SingleTupleBag.java test/org/apache/pig/test/TestDataBag.java
Author: dvryaboy Date: Sun Mar 21 19:22:23 2010 New Revision: 925868 URL: http://svn.apache.org/viewvc?rev=925868view=rev Log: PIG-1285: Allow SingleTupleBag to be serialized (dvryaboy) Modified: hadoop/pig/trunk/CHANGES.txt hadoop/pig/trunk/src/org/apache/pig/data/SingleTupleBag.java hadoop/pig/trunk/test/org/apache/pig/test/TestDataBag.java Modified: hadoop/pig/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/CHANGES.txt?rev=925868r1=925867r2=925868view=diff == --- hadoop/pig/trunk/CHANGES.txt (original) +++ hadoop/pig/trunk/CHANGES.txt Sun Mar 21 19:22:23 2010 @@ -68,6 +68,8 @@ manner (rding via pradeepkth) IMPROVEMENTS +PIG-1285: Allow SingleTupleBag to be serialized (dvryaboy) + PIG-1117: Pig reading hive columnar rc tables (gerritjvv via dvryaboy) PIG-1287: Use hadoop-0.20.2 with pig 0.7.0 release (pradeepkth) Modified: hadoop/pig/trunk/src/org/apache/pig/data/SingleTupleBag.java URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/data/SingleTupleBag.java?rev=925868r1=925867r2=925868view=diff == --- hadoop/pig/trunk/src/org/apache/pig/data/SingleTupleBag.java (original) +++ hadoop/pig/trunk/src/org/apache/pig/data/SingleTupleBag.java Sun Mar 21 19:22:23 2010 @@ -43,7 +43,7 @@ public class SingleTupleBag implements D public SingleTupleBag(Tuple t) { item = t; } - + /* (non-Javadoc) * @see org.apache.pig.data.DataBag#add(org.apache.pig.data.Tuple) * NOTE: It is the user's responsibility to ensure only a single @@ -131,10 +131,16 @@ public class SingleTupleBag implements D */ @Override public void readFields(DataInput in) throws IOException { -// TODO Auto-generated method stub -int errCode = 2113; -String msg = SingleTupleBag should never be serialized or serialized.; -throw new ExecException(msg, errCode, PigException.BUG); +long size = in.readLong(); + +for (long i = 0; i size; i++) { +try { +Object o = DataReaderWriter.readDatum(in); +add((Tuple)o); +} catch (ExecException ee) { +throw ee; +} +} } /* (non-Javadoc) @@ -142,10 +148,12 @@ public class SingleTupleBag implements D */ @Override public void write(DataOutput out) throws IOException { -// TODO Auto-generated method stub -int errCode = 2113; -String msg = SingleTupleBag should never be serialized or serialized.; -throw new ExecException(msg, errCode, PigException.BUG); +out.writeLong(size()); +IteratorTuple it = iterator(); +while (it.hasNext()) { +Tuple item = it.next(); +item.write(out); +} } /* (non-Javadoc) @@ -175,7 +183,7 @@ public class SingleTupleBag implements D public boolean hasNext() { return !nextDone; } - + /* (non-Javadoc) * @see java.util.Iterator#next() */ @@ -183,9 +191,9 @@ public class SingleTupleBag implements D public Tuple next() { nextDone = true; return item; - + } - + /* (non-Javadoc) * @see java.util.Iterator#remove() */ @@ -194,7 +202,7 @@ public class SingleTupleBag implements D throw new RuntimeException(SingleTupleBag.iterator().remove() is not allowed); } } - + /** * Write the bag into a string. */ @Override Modified: hadoop/pig/trunk/test/org/apache/pig/test/TestDataBag.java URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/test/org/apache/pig/test/TestDataBag.java?rev=925868r1=925867r2=925868view=diff == --- hadoop/pig/trunk/test/org/apache/pig/test/TestDataBag.java (original) +++ hadoop/pig/trunk/test/org/apache/pig/test/TestDataBag.java Sun Mar 21 19:22:23 2010 @@ -18,7 +18,12 @@ package org.apache.pig.test; import java.util.*; +import java.io.DataInputStream; +import java.io.DataOutput; +import java.io.DataOutputStream; import java.io.IOException; +import java.io.PipedInputStream; +import java.io.PipedOutputStream; import org.junit.Test; import org.apache.pig.data.*; @@ -1105,6 +1110,21 @@ public class TestDataBag extends junit.f processDataBag(bg5, false); } +// See PIG-1285 +@Test +public void testSerializeSingleTupleBag() throws Exception { +Tuple t = Util.createTuple(new String[] {foo, bar, baz}); +DataBag stBag = new SingleTupleBag(t); +PipedOutputStream pos = new PipedOutputStream(); +DataOutputStream dos = new DataOutputStream(pos); +PipedInputStream pis = new PipedInputStream(pos
svn commit: r927500 - /hadoop/pig/trunk/build.xml
Author: dvryaboy Date: Thu Mar 25 17:04:24 2010 New Revision: 927500 URL: http://svn.apache.org/viewvc?rev=927500view=rev Log: PIG-1329: Fix Pig version type in build.xml Modified: hadoop/pig/trunk/build.xml Modified: hadoop/pig/trunk/build.xml URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/build.xml?rev=927500r1=927499r2=927500view=diff == --- hadoop/pig/trunk/build.xml (original) +++ hadoop/pig/trunk/build.xml Thu Mar 25 17:04:24 2010 @@ -24,7 +24,7 @@ !-- name and version properties -- property name=name value=pig / property name=Name value=Pig / -property name=version value=0..0-dev / +property name=version value=0.8.0-dev / property name=final.name value=${name}-${version} / condition property=isWindows os family=windows/
svn commit: r931531 - in /hadoop/pig/trunk: ./ src/org/apache/pig/builtin/ test/org/apache/pig/test/
Author: dvryaboy Date: Wed Apr 7 13:15:51 2010 New Revision: 931531 URL: http://svn.apache.org/viewvc?rev=931531view=rev Log: PIG-1354: UDFs for dynamic invocation of simple Java methods Added: hadoop/pig/trunk/src/org/apache/pig/builtin/GenericInvoker.java hadoop/pig/trunk/src/org/apache/pig/builtin/InvokeForDouble.java hadoop/pig/trunk/src/org/apache/pig/builtin/InvokeForFloat.java hadoop/pig/trunk/src/org/apache/pig/builtin/InvokeForInt.java hadoop/pig/trunk/src/org/apache/pig/builtin/InvokeForLong.java hadoop/pig/trunk/src/org/apache/pig/builtin/InvokeForString.java hadoop/pig/trunk/src/org/apache/pig/builtin/Invoker.java hadoop/pig/trunk/test/org/apache/pig/test/TestInvoker.java Modified: hadoop/pig/trunk/CHANGES.txt Modified: hadoop/pig/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/CHANGES.txt?rev=931531r1=931530r2=931531view=diff == --- hadoop/pig/trunk/CHANGES.txt (original) +++ hadoop/pig/trunk/CHANGES.txt Wed Apr 7 13:15:51 2010 @@ -24,6 +24,8 @@ INCOMPATIBLE CHANGES IMPROVEMENTS +PIG-1354: UDFs for dynamic invocation of simple Java methods (dvryaboy) + PIG-1316: TextLoader should use Bzip2TextInputFormat for bzip files so that bzip files can be efficiently processed by splitting the files (pradeepkth) Added: hadoop/pig/trunk/src/org/apache/pig/builtin/GenericInvoker.java URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/builtin/GenericInvoker.java?rev=931531view=auto == --- hadoop/pig/trunk/src/org/apache/pig/builtin/GenericInvoker.java (added) +++ hadoop/pig/trunk/src/org/apache/pig/builtin/GenericInvoker.java Wed Apr 7 13:15:51 2010 @@ -0,0 +1,93 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * License); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.pig.builtin; + +import java.io.IOException; + +import org.apache.pig.EvalFunc; +import org.apache.pig.backend.executionengine.ExecException; +import org.apache.pig.data.DataType; +import org.apache.pig.data.Tuple; +import org.apache.pig.impl.logicalLayer.FrontendException; +import org.apache.pig.impl.logicalLayer.schema.Schema; +import org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema; +/** + * The generic Invoker class does all the common grunt work of setting up an invoker. + * Class-specific non-generic extensions of this class are needed for Pig to know what type + * of return to expect from exec, and to find the appropriate classes through reflection. + * All they have to do is implement the constructors that call into super(). Note that the + * no-parameter constructor is brequired/b, if nonsensical, for Pig to do its work. + * p + * + * This UDF allows one to dynamically invoke Java methods that return a codeT/code + * p + * Usage of the Invoker family of UDFs (adjust as appropriate): + * p + *pre + * {...@code + * -- invoking a static method + * DEFINE StringToLong InvokeForLong('java.lang.Long.valueOf', 'String') + * longs = FOREACH strings GENERATE StringToLong(some_chararray); + * + * -- invoking a method on an object + * DEFINE StringConcat InvokeForString('java.lang.String.concat', 'String String', 'false') + * concatenations = FOREACH strings GENERATE StringConcat(str1, str2); + * } + * /pre + * p + * The first argument to the constructor is the full path to desired method.br + * The second argument is a list of classes of the method parameters.br + * If the method is not static, the first element in this list is the object to invoke the method on.br + * The third argument is the keyword static (or true) to signify that the method is static. br + * The third argument is optional, and true by default.br + * p + * @param T + */ +public abstract class GenericInvokerT extends EvalFuncT { + +private InvokerT invoker_; + +public GenericInvoker() {} + +public GenericInvoker(String fullName, String paramSpecsStr) +throws ClassNotFoundException, FrontendException, SecurityException, NoSuchMethodException { +invoker_ = new InvokerT(fullName, paramSpecsStr); +} + +public GenericInvoker(String fullName, String
svn commit: r940567 - in /hadoop/pig/trunk: ./ src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/ src/org/apache/pig/impl/logicalLayer/validators/ test/org/apache/pig
Author: dvryaboy Date: Mon May 3 18:47:01 2010 New Revision: 940567 URL: http://svn.apache.org/viewvc?rev=940567view=rev Log: PIG-1303: Inconsistent instantiation of parametrized UDFs (jrussek and dvryaboy) Added: hadoop/pig/trunk/test/org/apache/pig/test/TestAlgebraicInstantiation.java Modified: hadoop/pig/trunk/CHANGES.txt hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POUserFunc.java hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/validators/TypeCheckingVisitor.java Modified: hadoop/pig/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/CHANGES.txt?rev=940567r1=940566r2=940567view=diff == --- hadoop/pig/trunk/CHANGES.txt (original) +++ hadoop/pig/trunk/CHANGES.txt Mon May 3 18:47:01 2010 @@ -53,6 +53,8 @@ PIG-1309: Map-side Cogroup (ashutoshc) BUG FIXES +PIG-1303: Inconsistent instantiation of parametrized UDFs (jrussek and dvryaboy) + 740 : Incorrect line number is generated when a string with double quotes is used instead of single quotes and is passed to UDF (pradeepkth) Modified: hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POUserFunc.java URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POUserFunc.java?rev=940567r1=940566r2=940567view=diff == --- hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POUserFunc.java (original) +++ hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POUserFunc.java Mon May 3 18:47:01 2010 @@ -32,22 +32,19 @@ import org.apache.pig.EvalFunc; import org.apache.pig.FuncSpec; import org.apache.pig.PigException; import org.apache.pig.backend.executionengine.ExecException; +import org.apache.pig.backend.hadoop.executionengine.physicalLayer.POStatus; +import org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator; +import org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result; +import org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor; import org.apache.pig.data.DataBag; import org.apache.pig.data.DataByteArray; import org.apache.pig.data.DataType; import org.apache.pig.data.Tuple; import org.apache.pig.data.TupleFactory; import org.apache.pig.impl.PigContext; -import org.apache.pig.impl.plan.OperatorKey; import org.apache.pig.impl.logicalLayer.schema.Schema; -import org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigHadoopLogger; -import org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.ProgressableReporter; -import org.apache.pig.backend.hadoop.executionengine.physicalLayer.POStatus; -import org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator; -import org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result; -import org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor; -import org.apache.pig.impl.plan.OperatorKey; import org.apache.pig.impl.plan.NodeIdGenerator; +import org.apache.pig.impl.plan.OperatorKey; import org.apache.pig.impl.plan.VisitorException; public class POUserFunc extends ExpressionOperator { @@ -324,8 +321,8 @@ public class POUserFunc extends Expressi case FINAL: funcSpec = new FuncSpec(getFinal()); break; - } +funcSpec.setCtorArgs(origFSpec.getCtorArgs()); instantiateFunc(funcSpec); setResultType(DataType.findType(((EvalFunc?) func).getReturnType())); } Modified: hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/validators/TypeCheckingVisitor.java URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/validators/TypeCheckingVisitor.java?rev=940567r1=940566r2=940567view=diff == --- hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/validators/TypeCheckingVisitor.java (original) +++ hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/validators/TypeCheckingVisitor.java Mon May 3 18:47:01 2010 @@ -1190,6 +1190,7 @@ public class TypeCheckingVisitor extends different input argument types, please use explicit casts.; msgCollector.collect(msg, MessageType.Warning, PigWarning.USING_OVERLOADED_FUNCTION); } +matchingSpec.setCtorArgs(func.getFuncSpec().getCtorArgs()); func.setFuncSpec(matchingSpec); insertCastsForUDF(func, s, matchingSpec.getInputArgsSchema()); Added: hadoop/pig/trunk/test/org/apache/pig/test/TestAlgebraicInstantiation.java URL: http://svn.apache.org/viewvc/hadoop/pig
svn commit: r940570 - in /hadoop/pig/branches/branch-0.7: ./ src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/ src/org/apache/pig/impl/logicalLayer/validators/ test/
Author: dvryaboy Date: Mon May 3 19:01:38 2010 New Revision: 940570 URL: http://svn.apache.org/viewvc?rev=940570view=rev Log: PIG-1303: Inconsistent instantiation of parametrized UDFs (jrussek and dvryaboy) Added: hadoop/pig/branches/branch-0.7/test/org/apache/pig/test/TestAlgebraicInstantiation.java Modified: hadoop/pig/branches/branch-0.7/CHANGES.txt hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POUserFunc.java hadoop/pig/branches/branch-0.7/src/org/apache/pig/impl/logicalLayer/validators/TypeCheckingVisitor.java Modified: hadoop/pig/branches/branch-0.7/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.7/CHANGES.txt?rev=940570r1=940569r2=940570view=diff == --- hadoop/pig/branches/branch-0.7/CHANGES.txt (original) +++ hadoop/pig/branches/branch-0.7/CHANGES.txt Mon May 3 19:01:38 2010 @@ -187,6 +187,8 @@ OPTIMIZATIONS BUG FIXES +PIG-1303: Inconsistent instantiation of parametrized UDFs (jrussek and dvryaboy) + PIG-1348: PigStorage making unnecessary byte array copy when storing data (rding) Modified: hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POUserFunc.java URL: http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POUserFunc.java?rev=940570r1=940569r2=940570view=diff == --- hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POUserFunc.java (original) +++ hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POUserFunc.java Mon May 3 19:01:38 2010 @@ -32,22 +32,19 @@ import org.apache.pig.EvalFunc; import org.apache.pig.FuncSpec; import org.apache.pig.PigException; import org.apache.pig.backend.executionengine.ExecException; +import org.apache.pig.backend.hadoop.executionengine.physicalLayer.POStatus; +import org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator; +import org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result; +import org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor; import org.apache.pig.data.DataBag; import org.apache.pig.data.DataByteArray; import org.apache.pig.data.DataType; import org.apache.pig.data.Tuple; import org.apache.pig.data.TupleFactory; import org.apache.pig.impl.PigContext; -import org.apache.pig.impl.plan.OperatorKey; import org.apache.pig.impl.logicalLayer.schema.Schema; -import org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigHadoopLogger; -import org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.ProgressableReporter; -import org.apache.pig.backend.hadoop.executionengine.physicalLayer.POStatus; -import org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator; -import org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result; -import org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor; -import org.apache.pig.impl.plan.OperatorKey; import org.apache.pig.impl.plan.NodeIdGenerator; +import org.apache.pig.impl.plan.OperatorKey; import org.apache.pig.impl.plan.VisitorException; public class POUserFunc extends ExpressionOperator { @@ -324,8 +321,8 @@ public class POUserFunc extends Expressi case FINAL: funcSpec = new FuncSpec(getFinal()); break; - } +funcSpec.setCtorArgs(origFSpec.getCtorArgs()); instantiateFunc(funcSpec); setResultType(DataType.findType(((EvalFunc?) func).getReturnType())); } Modified: hadoop/pig/branches/branch-0.7/src/org/apache/pig/impl/logicalLayer/validators/TypeCheckingVisitor.java URL: http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.7/src/org/apache/pig/impl/logicalLayer/validators/TypeCheckingVisitor.java?rev=940570r1=940569r2=940570view=diff == --- hadoop/pig/branches/branch-0.7/src/org/apache/pig/impl/logicalLayer/validators/TypeCheckingVisitor.java (original) +++ hadoop/pig/branches/branch-0.7/src/org/apache/pig/impl/logicalLayer/validators/TypeCheckingVisitor.java Mon May 3 19:01:38 2010 @@ -1190,6 +1190,7 @@ public class TypeCheckingVisitor extends different input argument types, please use explicit casts.; msgCollector.collect(msg, MessageType.Warning, PigWarning.USING_OVERLOADED_FUNCTION); } +matchingSpec.setCtorArgs(func.getFuncSpec().getCtorArgs()); func.setFuncSpec(matchingSpec); insertCastsForUDF(func, s, matchingSpec.getInputArgsSchema
svn commit: r956794 - in /hadoop/pig/trunk: ./ lib/ src/docs/src/documentation/content/xdocs/ src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/ src/org/apache/pig/ba
Author: dvryaboy Date: Tue Jun 22 07:04:41 2010 New Revision: 956794 URL: http://svn.apache.org/viewvc?rev=956794view=rev Log: PIG-1427: Monitor and kill runaway UDFs Added: hadoop/pig/trunk/lib/guava-r03.jar (with props) hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/util/MonitoredUDFExecutor.java hadoop/pig/trunk/src/org/apache/pig/builtin/MonitoredUDF.java hadoop/pig/trunk/test/org/apache/pig/test/TestMonitoredUDF.java Modified: hadoop/pig/trunk/CHANGES.txt hadoop/pig/trunk/build.xml hadoop/pig/trunk/src/docs/src/documentation/content/xdocs/udf.xml hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POUserFunc.java Modified: hadoop/pig/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/CHANGES.txt?rev=956794r1=956793r2=956794view=diff == --- hadoop/pig/trunk/CHANGES.txt (original) +++ hadoop/pig/trunk/CHANGES.txt Tue Jun 22 07:04:41 2010 @@ -24,6 +24,8 @@ INCOMPATIBLE CHANGES IMPROVEMENTS +PIG-1427: Monitor and kill runaway UDFs (dvryaboy) + PIG-1428: Make a StatusReporter singleton available for incrementing counters (dvryaboy) PIG-972: Make describe work with nested foreach (aniket486 via daijy) Modified: hadoop/pig/trunk/build.xml URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/build.xml?rev=956794r1=956793r2=956794view=diff == --- hadoop/pig/trunk/build.xml (original) +++ hadoop/pig/trunk/build.xml Tue Jun 22 07:04:41 2010 @@ -51,6 +51,7 @@ property name=hbase.jarfile value=hbase-0.20.0.jar / property name=hbase.test.jarfile value=hbase-0.20.0-test.jar / property name=zookeeper.jarfile value=zookeeper-hbase-1329.jar / + property name=guava.jarfile value=guava-r03.jar / !-- javac properties -- property name=javac.debug value=on / @@ -167,6 +168,7 @@ path refid=compile.classpath/ fileset file=${lib.dir}/${hadoop.jarfile} / fileset file=${lib.dir}/${hbase.jarfile} / + fileset file=${lib.dir}/${guava.jarfile} / fileset file=${lib.dir}/${hbase.test.jarfile} / fileset file=${lib.dir}/${zookeeper.jarfile}/ fileset file=${ivy.lib.dir}/jackson-mapper-asl-${jackson.version}.jar/ @@ -178,6 +180,7 @@ !-- javadoc-classpath -- path id=javadoc-classpath fileset file=${lib.dir}/${hbase.jarfile} / + fileset file=${lib.dir}/${guava.jarfile} / fileset file=${lib.dir}/${hbase.test.jarfile} / path refid=javadoc.classpath/ /path Added: hadoop/pig/trunk/lib/guava-r03.jar URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/lib/guava-r03.jar?rev=956794view=auto == Binary file - no diff available. Propchange: hadoop/pig/trunk/lib/guava-r03.jar -- svn:mime-type = application/octet-stream Modified: hadoop/pig/trunk/src/docs/src/documentation/content/xdocs/udf.xml URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/docs/src/documentation/content/xdocs/udf.xml?rev=956794r1=956793r2=956794view=diff == --- hadoop/pig/trunk/src/docs/src/documentation/content/xdocs/udf.xml (original) +++ hadoop/pig/trunk/src/docs/src/documentation/content/xdocs/udf.xml Tue Jun 22 07:04:41 2010 @@ -1229,7 +1229,6 @@ public class IntMax extends EvalFunclt; pOne problem that users run into is when they make assumption about how many times a constructor for their UDF is called. For instance, they might be creating side files in the store function and doing it in the constructor seems like a good idea. The problem with this approach is that in most cases Pig instantiates functions on the client side to, for instance, examine the schema of the data. /p pUsers should not make assumptions about how many times a function is instantiated; instead, they should make their code resilient to multiple instantiations. For instance, they could check if the files exist before creating them. /p - /section section @@ -1250,6 +1249,45 @@ public class IntMax extends EvalFunclt; pTo store information, the UDF calls getUDFProperties. This returns a Properties object which the UDF can record the information in or read the information from. To avoid name space conflicts UDFs are required to provide a signature when obtaining a Properties object. This can be done in two ways. The UDF can provide its Class object (via this.getClass()). In this case, every instantiation of the UDF will be given the same Properties object. The UDF can also provide its Class plus an array of Strings. The UDF can pass its constructor arguments, or some other
svn commit: r960062 - in /hadoop/pig/trunk: CHANGES.txt src/org/apache/pig/data/DefaultDataBag.java
Author: dvryaboy Date: Fri Jul 2 17:16:17 2010 New Revision: 960062 URL: http://svn.apache.org/viewvc?rev=960062view=rev Log: PIG-1469: DefaultDataBag assumes ArrayList as default List type (azaroth via dvryaboy) Modified: hadoop/pig/trunk/CHANGES.txt hadoop/pig/trunk/src/org/apache/pig/data/DefaultDataBag.java Modified: hadoop/pig/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/CHANGES.txt?rev=960062r1=960061r2=960062view=diff == --- hadoop/pig/trunk/CHANGES.txt (original) +++ hadoop/pig/trunk/CHANGES.txt Fri Jul 2 17:16:17 2010 @@ -95,6 +95,8 @@ PIG-1309: Map-side Cogroup (ashutoshc) BUG FIXES +PIG-1469: DefaultDataBag assumes ArrayList as default List type (azaroth via dvryaboy) + PIG-1467: order by fail when set fs.file.impl.disable.cache to true (daijy) PIG-1463: Replace bz with .bz in setStoreLocation in PigStorage (zjffdu) Modified: hadoop/pig/trunk/src/org/apache/pig/data/DefaultDataBag.java URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/data/DefaultDataBag.java?rev=960062r1=960061r2=960062view=diff == --- hadoop/pig/trunk/src/org/apache/pig/data/DefaultDataBag.java (original) +++ hadoop/pig/trunk/src/org/apache/pig/data/DefaultDataBag.java Fri Jul 2 17:16:17 2010 @@ -36,7 +36,7 @@ import org.apache.pig.PigWarning; /** * An unordered collection of Tuples (possibly) with multiples. The tuples - * are stored in an ArrayList, since there is no concern for order or + * are stored in a List, since there is no concern for order or * distinctness. */ public class DefaultDataBag extends DefaultAbstractBag { @@ -295,7 +295,7 @@ public class DefaultDataBag extends Defa if (mContents.size() == 0) return null; if (mMemoryPtr mContents.size()) { -return ((ArrayListTuple)mContents).get(mMemoryPtr++); +return ((ListTuple)mContents).get(mMemoryPtr++); } else { return null; }
svn commit: r963952 - in /hadoop/pig/branches/branch-0.7: ./ src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/ src/org/apache/pig/data/ src/org/apache/pig/tools/pigstats/
Author: dvryaboy Date: Wed Jul 14 06:14:33 2010 New Revision: 963952 URL: http://svn.apache.org/viewvc?rev=963952view=rev Log: PIG-1428: Make a StatusReporter singleton available for incrementing counters (dvryaboy) Added: hadoop/pig/branches/branch-0.7/src/org/apache/pig/tools/pigstats/PigStatusReporter.java Modified: hadoop/pig/branches/branch-0.7/CHANGES.txt hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/MapReducePOStoreImpl.java hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/PigCombiner.java hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/PigHadoopLogger.java hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/PigMapBase.java hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/PigMapReduce.java hadoop/pig/branches/branch-0.7/src/org/apache/pig/data/DefaultAbstractBag.java Modified: hadoop/pig/branches/branch-0.7/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.7/CHANGES.txt?rev=963952r1=963951r2=963952view=diff == --- hadoop/pig/branches/branch-0.7/CHANGES.txt (original) +++ hadoop/pig/branches/branch-0.7/CHANGES.txt Wed Jul 14 06:14:33 2010 @@ -22,9 +22,6 @@ Release 0.7.0 - 2010-05-03 INCOMPATIBLE CHANGES -PIG-1438: [Performance] MultiQueryOptimizer should also merge DISTINCT jobs -(rding) - PIG-1292: Interface Refinements (hashutosh) PIG-1259: ResourceFieldSchema.setSchema should not allow a bag field without a @@ -71,6 +68,11 @@ manner (rding via pradeepkth) IMPROVEMENTS +PIG-1428: Make a StatusReporter singleton available for incrementing counters (dvryaboy) + +PIG-1438: [Performance] MultiQueryOptimizer should also merge DISTINCT jobs +(rding) + PIG-1309: Map-side Cogroup (hashutosh) PIG-1441: new test targets (olgan) Modified: hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/MapReducePOStoreImpl.java URL: http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/MapReducePOStoreImpl.java?rev=963952r1=963951r2=963952view=diff == --- hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/MapReducePOStoreImpl.java (original) +++ hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/MapReducePOStoreImpl.java Wed Jul 14 06:14:33 2010 @@ -22,9 +22,12 @@ import org.apache.hadoop.conf.Configurat import org.apache.hadoop.mapreduce.RecordWriter; import org.apache.hadoop.mapreduce.OutputFormat; import org.apache.hadoop.mapreduce.TaskAttemptContext; +import org.apache.hadoop.mapreduce.TaskInputOutputContext; import org.apache.pig.StoreFuncInterface; import org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore; import org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStoreImpl; +import org.apache.pig.tools.pigstats.PigStatusReporter; + /** * This class is used to have a POStore write to DFS via a output * collector/record writer. It sets up a modified job configuration to @@ -36,21 +39,27 @@ public class MapReducePOStoreImpl extend private TaskAttemptContext context; +private PigStatusReporter reporter; + @SuppressWarnings(unchecked) private RecordWriter writer; -public MapReducePOStoreImpl(TaskAttemptContext context) { +public MapReducePOStoreImpl(TaskInputOutputContext context) { // get a copy of the Configuration so that changes to the // configuration below (like setting the output location) do // not affect the caller's copy Configuration outputConf = new Configuration(context.getConfiguration()); +PigStatusReporter.setContext(context); + reporter = PigStatusReporter.getInstance(); + // make a copy of the Context to use here - since in the same // task (map or reduce) we could have multiple stores, we should // make this copy so that the same context does not get over-written // by the different stores. this.context = new TaskAttemptContext(outputConf, context.getTaskAttemptID()); + } @SuppressWarnings(unchecked) Modified: hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/PigCombiner.java URL: http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/PigCombiner.java?rev=963952r1=963951r2=963952view=diff
svn commit: r988730 - in /hadoop/pig/trunk: ./ src/org/apache/pig/builtin/ test/org/apache/pig/test/
Author: dvryaboy Date: Tue Aug 24 21:11:16 2010 New Revision: 988730 URL: http://svn.apache.org/viewvc?rev=988730view=rev Log: PIG-1551 Improve dynamic invokers to deal with no-arg methods and array parameters Modified: hadoop/pig/trunk/CHANGES.txt hadoop/pig/trunk/src/org/apache/pig/builtin/GenericInvoker.java hadoop/pig/trunk/src/org/apache/pig/builtin/InvokeForDouble.java hadoop/pig/trunk/src/org/apache/pig/builtin/InvokeForFloat.java hadoop/pig/trunk/src/org/apache/pig/builtin/InvokeForInt.java hadoop/pig/trunk/src/org/apache/pig/builtin/InvokeForLong.java hadoop/pig/trunk/src/org/apache/pig/builtin/InvokeForString.java hadoop/pig/trunk/src/org/apache/pig/builtin/Invoker.java hadoop/pig/trunk/test/org/apache/pig/test/TestInvoker.java Modified: hadoop/pig/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/CHANGES.txt?rev=988730r1=988729r2=988730view=diff == --- hadoop/pig/trunk/CHANGES.txt (original) +++ hadoop/pig/trunk/CHANGES.txt Tue Aug 24 21:11:16 2010 @@ -26,6 +26,8 @@ PIG-1249: Safe-guards against misconfigu IMPROVEMENTS +PIG-1551: Improve dynamic invokers to deal with no-arg methods and array parameters (dvryaboy) + PIG-1311: Document audience and stability for remaining interfaces (gates) PIG-506: Does pig need a NATIVE keyword? (aniket486 via thejas) Modified: hadoop/pig/trunk/src/org/apache/pig/builtin/GenericInvoker.java URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/builtin/GenericInvoker.java?rev=988730r1=988729r2=988730view=diff == --- hadoop/pig/trunk/src/org/apache/pig/builtin/GenericInvoker.java (original) +++ hadoop/pig/trunk/src/org/apache/pig/builtin/GenericInvoker.java Tue Aug 24 21:11:16 2010 @@ -32,9 +32,18 @@ import org.apache.pig.impl.logicalLayer. * Class-specific non-generic extensions of this class are needed for Pig to know what type * of return to expect from exec, and to find the appropriate classes through reflection. * All they have to do is implement the constructors that call into super(). Note that the - * no-parameter constructor is brequired/b, if nonsensical, for Pig to do its work. + * no-parameter constructor is brequired/b, if seemingly nonsensical, for Pig to do its work. + * p + * The Invoker family of udfs understand the following class names (all case-independent): + * liString + * liLong + * liFloat + * liDouble + * liInt + * p + * Invokers can also work with array arguments, represented in Pig as DataBags of single-tuple + * elements. Simply refer to codestring[]/code, for example. * p - * * This UDF allows one to dynamically invoke Java methods that return a codeT/code * p * Usage of the Invoker family of UDFs (adjust as appropriate): @@ -54,6 +63,7 @@ import org.apache.pig.impl.logicalLayer. * The first argument to the constructor is the full path to desired method.br * The second argument is a list of classes of the method parameters.br * If the method is not static, the first element in this list is the object to invoke the method on.br + * The second argument is optional (a no-argument static method is assumed if it is not supplied).br * The third argument is the keyword static (or true) to signify that the method is static. br * The third argument is optional, and true by default.br * p @@ -65,6 +75,11 @@ public abstract class GenericInvokerT public GenericInvoker() {} +public GenericInvoker(String fullName) +throws ClassNotFoundException, FrontendException, SecurityException, NoSuchMethodException { + invoker_ = new InvokerT(fullName, ); +} + public GenericInvoker(String fullName, String paramSpecsStr) throws ClassNotFoundException, FrontendException, SecurityException, NoSuchMethodException { invoker_ = new InvokerT(fullName, paramSpecsStr); Modified: hadoop/pig/trunk/src/org/apache/pig/builtin/InvokeForDouble.java URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/builtin/InvokeForDouble.java?rev=988730r1=988729r2=988730view=diff == --- hadoop/pig/trunk/src/org/apache/pig/builtin/InvokeForDouble.java (original) +++ hadoop/pig/trunk/src/org/apache/pig/builtin/InvokeForDouble.java Tue Aug 24 21:11:16 2010 @@ -26,6 +26,10 @@ public class InvokeForDouble extends Gen public InvokeForDouble() {} + public InvokeForDouble(String fullName) throws FrontendException, SecurityException, ClassNotFoundException, NoSuchMethodException { + super(fullName); + } + public InvokeForDouble(String fullName, String paramSpecsStr) throws FrontendException, SecurityException, ClassNotFoundException, NoSuchMethodException { super(fullName, paramSpecsStr); } @@ -34,4 +38,6 @@ public class
svn commit: r992677 - in /hadoop/pig/trunk: CHANGES.txt bin/pig
Author: dvryaboy Date: Sat Sep 4 20:53:36 2010 New Revision: 992677 URL: http://svn.apache.org/viewvc?rev=992677view=rev Log: PIG-1597: NPEs thrown when attempting to load hbase columns containing null values Modified: hadoop/pig/trunk/CHANGES.txt hadoop/pig/trunk/bin/pig Modified: hadoop/pig/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/CHANGES.txt?rev=992677r1=992676r2=992677view=diff == --- hadoop/pig/trunk/CHANGES.txt (original) +++ hadoop/pig/trunk/CHANGES.txt Sat Sep 4 20:53:36 2010 @@ -197,6 +197,8 @@ PIG-1309: Map-side Cogroup (ashutoshc) BUG FIXES +PIG-1597: NPE's thrown when attempting to load hbase columns containing null values (dvryaboy) + PIG-1599: pig gives generic message for few cases (nrai via rding) PIG-1595: casting relation to scalar- problem with handling of data from non PigStorage loaders (thejas) Modified: hadoop/pig/trunk/bin/pig URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/bin/pig?rev=992677r1=992676r2=992677view=diff == --- hadoop/pig/trunk/bin/pig (original) +++ hadoop/pig/trunk/bin/pig Sat Sep 4 20:53:36 2010 @@ -131,7 +131,7 @@ for f in $PIG_HOME/pig-*-core.jar; do done # during development pig jar might be in build -for f in $PIG_HOME/build/pig-*-dev.jar; do +for f in $PIG_HOME/build/pig-*-SNAPSHOT.jar; do CLASSPATH=${CLASSPATH}:$f; done
svn commit: r992678 - in /hadoop/pig/branches/branch-0.8: CHANGES.txt bin/pig
Author: dvryaboy Date: Sat Sep 4 20:55:29 2010 New Revision: 992678 URL: http://svn.apache.org/viewvc?rev=992678view=rev Log: PIG-1597: Development snapshot jar no longer picked up by bin/pig Modified: hadoop/pig/branches/branch-0.8/CHANGES.txt hadoop/pig/branches/branch-0.8/bin/pig Modified: hadoop/pig/branches/branch-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/CHANGES.txt?rev=992678r1=992677r2=992678view=diff == --- hadoop/pig/branches/branch-0.8/CHANGES.txt (original) +++ hadoop/pig/branches/branch-0.8/CHANGES.txt Sat Sep 4 20:55:29 2010 @@ -187,6 +187,8 @@ PIG-1309: Map-side Cogroup (ashutoshc) BUG FIXES +PIG-1597: Development snapshot jar no longer picked up by bin/pig + PIG-1599: pig gives generic message for few cases (nrai via rding) PIG-1595: casting relation to scalar- problem with handling of data from non PigStorage loaders (thejas) Modified: hadoop/pig/branches/branch-0.8/bin/pig URL: http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.8/bin/pig?rev=992678r1=992677r2=992678view=diff == --- hadoop/pig/branches/branch-0.8/bin/pig (original) +++ hadoop/pig/branches/branch-0.8/bin/pig Sat Sep 4 20:55:29 2010 @@ -131,7 +131,7 @@ for f in $PIG_HOME/pig-*-core.jar; do done # during development pig jar might be in build -for f in $PIG_HOME/build/pig-*-dev.jar; do +for f in $PIG_HOME/build/pig-*-SNAPSHOT.jar; do CLASSPATH=${CLASSPATH}:$f; done
svn commit: r992679 - /hadoop/pig/trunk/CHANGES.txt
Author: dvryaboy Date: Sat Sep 4 20:56:43 2010 New Revision: 992679 URL: http://svn.apache.org/viewvc?rev=992679view=rev Log: fixed wrong CHANGES message in previous commit. Modified: hadoop/pig/trunk/CHANGES.txt Modified: hadoop/pig/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/CHANGES.txt?rev=992679r1=992678r2=992679view=diff == --- hadoop/pig/trunk/CHANGES.txt (original) +++ hadoop/pig/trunk/CHANGES.txt Sat Sep 4 20:56:43 2010 @@ -197,7 +197,7 @@ PIG-1309: Map-side Cogroup (ashutoshc) BUG FIXES -PIG-1597: NPE's thrown when attempting to load hbase columns containing null values (dvryaboy) +PIG-1597: Development snapshot jar no longer picked up by bin/pig (dvryaboy) PIG-1599: pig gives generic message for few cases (nrai via rding)