Return-Path: X-Original-To: apmail-pig-commits-archive@www.apache.org Delivered-To: apmail-pig-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4AC4CDFEB for ; Sun, 2 Sep 2012 23:24:55 +0000 (UTC) Received: (qmail 35568 invoked by uid 500); 2 Sep 2012 23:24:55 -0000 Delivered-To: apmail-pig-commits-archive@pig.apache.org Received: (qmail 35548 invoked by uid 500); 2 Sep 2012 23:24:55 -0000 Mailing-List: contact commits-help@pig.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@pig.apache.org Delivered-To: mailing list commits@pig.apache.org Received: (qmail 35541 invoked by uid 99); 2 Sep 2012 23:24:55 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 02 Sep 2012 23:24:55 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 02 Sep 2012 23:24:50 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 3AA31238890D for ; Sun, 2 Sep 2012 23:24:06 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1380095 - in /pig/trunk: ./ src/org/apache/pig/ src/org/apache/pig/builtin/ src/org/apache/pig/impl/io/ src/org/apache/pig/impl/plan/ src/org/apache/pig/newplan/ src/org/apache/pig/newplan/logical/expression/ src/org/apache/pig/newplan/log... Date: Sun, 02 Sep 2012 23:24:05 -0000 To: commits@pig.apache.org From: dvryaboy@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120902232406.3AA31238890D@eris.apache.org> Author: dvryaboy Date: Sun Sep 2 23:24:04 2012 New Revision: 1380095 URL: http://svn.apache.org/viewvc?rev=1380095&view=rev Log: PIG-2882: Use Deque instead of Stack Modified: pig/trunk/CHANGES.txt pig/trunk/src/org/apache/pig/EvalFunc.java pig/trunk/src/org/apache/pig/PigServer.java pig/trunk/src/org/apache/pig/builtin/Utf8StorageConverter.java pig/trunk/src/org/apache/pig/impl/io/FileLocalizer.java pig/trunk/src/org/apache/pig/impl/plan/PlanVisitor.java pig/trunk/src/org/apache/pig/newplan/PlanVisitor.java pig/trunk/src/org/apache/pig/newplan/logical/expression/ExpToPhyTranslationVisitor.java pig/trunk/src/org/apache/pig/newplan/logical/relational/LOForEach.java pig/trunk/src/org/apache/pig/newplan/logical/relational/LogToPhyTranslationVisitor.java pig/trunk/src/org/apache/pig/newplan/logical/rules/ConstExpEvaluator.java pig/trunk/src/org/apache/pig/newplan/logical/rules/DNFPlanGenerator.java pig/trunk/src/org/apache/pig/newplan/optimizer/Rule.java Modified: pig/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1380095&r1=1380094&r2=1380095&view=diff ============================================================================== --- pig/trunk/CHANGES.txt (original) +++ pig/trunk/CHANGES.txt Sun Sep 2 23:24:04 2012 @@ -24,6 +24,8 @@ INCOMPATIBLE CHANGES IMPROVEMENTS +PIG-2882: Use Deque instead of Stack (mkhadikov via dvryaboy) + PIG-2781: LOSort isEqual method (xalan via dvryaboy) PIG-2835: Optimizing the convertion from bytes to Integer/Long (jay23jack via dvryaboy) Modified: pig/trunk/src/org/apache/pig/EvalFunc.java URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/EvalFunc.java?rev=1380095&r1=1380094&r2=1380095&view=diff ============================================================================== --- pig/trunk/src/org/apache/pig/EvalFunc.java (original) +++ pig/trunk/src/org/apache/pig/EvalFunc.java Sun Sep 2 23:24:04 2012 @@ -21,8 +21,9 @@ package org.apache.pig; import java.io.IOException; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; +import java.util.Deque; +import java.util.LinkedList; import java.util.List; -import java.util.Stack; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -96,7 +97,7 @@ public abstract class EvalFunc { Class superClass = getClass(); Type superType = getClass(); - Stack geneticsStack = new Stack(); + Deque geneticsStack = new LinkedList(); // Go up the hierachy of the class up to the EvalFunc while (!superClass.isAssignableFrom(EvalFunc.class)) Modified: pig/trunk/src/org/apache/pig/PigServer.java URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/PigServer.java?rev=1380095&r1=1380094&r2=1380095&view=diff ============================================================================== --- pig/trunk/src/org/apache/pig/PigServer.java (original) +++ pig/trunk/src/org/apache/pig/PigServer.java Sun Sep 2 23:24:04 2012 @@ -30,6 +30,7 @@ import java.io.StringWriter; import java.net.URL; import java.util.ArrayList; import java.util.Collection; +import java.util.Deque; import java.util.Enumeration; import java.util.HashMap; import java.util.HashSet; @@ -40,7 +41,6 @@ import java.util.Map; import java.util.Properties; import java.util.Queue; import java.util.Set; -import java.util.Stack; import java.util.concurrent.atomic.AtomicInteger; import org.apache.commons.logging.Log; @@ -132,7 +132,7 @@ public class PigServer { * on a new graph. After the nested script is done, the grunt * shell pops up the saved graph and continues working on it. */ - protected final Stack graphs = new Stack(); + protected final Deque graphs = new LinkedList(); /* * The current Graph the grunt shell is working on. Modified: pig/trunk/src/org/apache/pig/builtin/Utf8StorageConverter.java URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/Utf8StorageConverter.java?rev=1380095&r1=1380094&r2=1380095&view=diff ============================================================================== --- pig/trunk/src/org/apache/pig/builtin/Utf8StorageConverter.java (original) +++ pig/trunk/src/org/apache/pig/builtin/Utf8StorageConverter.java Sun Sep 2 23:24:04 2012 @@ -22,10 +22,10 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.PushbackInputStream; import java.util.Arrays; +import java.util.Deque; import java.util.HashMap; +import java.util.LinkedList; import java.util.Map; -import java.util.Stack; -import java.util.EmptyStackException; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; @@ -157,7 +157,7 @@ public class Utf8StorageConverter implem } else { // No inner schema, treat everything inside tuple as bytearray - Stack level = new Stack(); // keep track of nested tuple/bag/map. We do not interpret, save them as bytearray + Deque level = new LinkedList(); // keep track of nested tuple/bag/map. We do not interpret, save them as bytearray mOut = new ByteArrayOutputStream(BUFFER_SIZE); while (true) { buf=in.read(); @@ -219,7 +219,7 @@ public class Utf8StorageConverter implem // Read value mOut.reset(); - Stack level = new Stack(); // keep track of nested tuple/bag/map. We do not interpret, save them as bytearray + Deque level = new LinkedList(); // keep track of nested tuple/bag/map. We do not interpret, save them as bytearray while (true) { buf=in.read(); if (buf==-1) { @@ -232,12 +232,11 @@ public class Utf8StorageConverter implem break; else if (buf==']' ||buf=='}'||buf==')') { - try { - if (level.peek()==findStartChar((char)buf)) - level.pop(); - } catch (EmptyStackException e) { - throw new IOException("Malformed map"); - } + if (level.isEmpty()) + throw new IOException("Malformed map"); + + if (level.peek()==findStartChar((char)buf)) + level.pop(); } else if (buf==','&&level.isEmpty()) { // Current map item complete break; } Modified: pig/trunk/src/org/apache/pig/impl/io/FileLocalizer.java URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/impl/io/FileLocalizer.java?rev=1380095&r1=1380094&r2=1380095&view=diff ============================================================================== --- pig/trunk/src/org/apache/pig/impl/io/FileLocalizer.java (original) +++ pig/trunk/src/org/apache/pig/impl/io/FileLocalizer.java Sun Sep 2 23:24:04 2012 @@ -28,11 +28,12 @@ import java.io.InputStreamReader; import java.io.OutputStream; import java.net.URI; import java.util.ArrayList; +import java.util.Deque; +import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Random; -import java.util.Stack; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -427,11 +428,11 @@ public class FileLocalizer { * Thread local toDelete Stack to hold descriptors to be deleted upon calling * deleteTempFiles. Use the toDelete() method to access this stack. */ - private static ThreadLocal> toDelete = - new ThreadLocal>() { + private static ThreadLocal> toDelete = + new ThreadLocal>() { - protected Stack initialValue() { - return new Stack(); + protected Deque initialValue() { + return new LinkedList(); } }; @@ -448,7 +449,7 @@ public class FileLocalizer { * Convenience accessor method to the toDelete Stack bound to this thread. * @return A Stack of ElementDescriptors that should be deleted. */ - private static Stack toDelete() { + private static Deque toDelete() { return toDelete.get(); } @@ -484,7 +485,7 @@ public class FileLocalizer { } public static void deleteTempFiles() { - while (!toDelete().empty()) { + while (!toDelete().isEmpty()) { try { ElementDescriptor elem = toDelete().pop(); elem.delete(); Modified: pig/trunk/src/org/apache/pig/impl/plan/PlanVisitor.java URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/impl/plan/PlanVisitor.java?rev=1380095&r1=1380094&r2=1380095&view=diff ============================================================================== --- pig/trunk/src/org/apache/pig/impl/plan/PlanVisitor.java (original) +++ pig/trunk/src/org/apache/pig/impl/plan/PlanVisitor.java Sun Sep 2 23:24:04 2012 @@ -17,13 +17,8 @@ */ package org.apache.pig.impl.plan; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; -import java.util.Stack; +import java.util.Deque; +import java.util.LinkedList; /** * A visitor mechanism for navigating and operating on a plan of @@ -41,7 +36,7 @@ abstract public class PlanVisitor mCurrentWalker; - private Stack> mWalkers; + private Deque> mWalkers; /** * Entry point for visiting the plan. @@ -62,7 +57,7 @@ abstract public class PlanVisitor walker) { mPlan = plan; mCurrentWalker = walker; - mWalkers = new Stack>(); + mWalkers = new LinkedList>(); } /** @@ -82,7 +77,7 @@ abstract public class PlanVisitor walkers; + private Deque walkers; /** * Entry point for visiting the plan. @@ -61,7 +63,7 @@ public abstract class PlanVisitor { protected PlanVisitor(OperatorPlan plan, PlanWalker walker) { this.plan = plan; currentWalker = walker; - walkers = new Stack(); + walkers = new LinkedList(); } /** @@ -81,7 +83,7 @@ public abstract class PlanVisitor { * this case the current walker is not reset. */ protected void popWalker() throws FrontendException { - if (walkers.empty()) { + if (walkers.isEmpty()) { throw new FrontendException("No more walkers to pop.", 2221); } currentWalker = walkers.pop(); Modified: pig/trunk/src/org/apache/pig/newplan/logical/expression/ExpToPhyTranslationVisitor.java URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/newplan/logical/expression/ExpToPhyTranslationVisitor.java?rev=1380095&r1=1380094&r2=1380095&view=diff ============================================================================== --- pig/trunk/src/org/apache/pig/newplan/logical/expression/ExpToPhyTranslationVisitor.java (original) +++ pig/trunk/src/org/apache/pig/newplan/logical/expression/ExpToPhyTranslationVisitor.java Sun Sep 2 23:24:04 2012 @@ -19,9 +19,10 @@ package org.apache.pig.newplan.logical.e import java.io.IOException; import java.util.ArrayList; +import java.util.Deque; +import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Stack; import org.apache.pig.ComparisonFunc; import org.apache.pig.EvalFunc; @@ -89,12 +90,12 @@ public class ExpToPhyTranslationVisitor currentOp = op; logToPhyMap = map; currentPlan = phyPlan; - currentPlans = new Stack(); + currentPlans = new LinkedList(); } protected Map logToPhyMap; - protected Stack currentPlans; + protected Deque currentPlans; protected PhysicalPlan currentPlan; Modified: pig/trunk/src/org/apache/pig/newplan/logical/relational/LOForEach.java URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/newplan/logical/relational/LOForEach.java?rev=1380095&r1=1380094&r2=1380095&view=diff ============================================================================== --- pig/trunk/src/org/apache/pig/newplan/logical/relational/LOForEach.java (original) +++ pig/trunk/src/org/apache/pig/newplan/logical/relational/LOForEach.java Sun Sep 2 23:24:04 2012 @@ -18,8 +18,9 @@ package org.apache.pig.newplan.logical.relational; import java.util.ArrayList; +import java.util.Deque; +import java.util.LinkedList; import java.util.List; -import java.util.Stack; import org.apache.pig.impl.logicalLayer.FrontendException; import org.apache.pig.impl.util.Pair; @@ -92,7 +93,7 @@ public class LOForEach extends LogicalRe continue; } - Stack stack = new Stack(); + Deque stack = new LinkedList(); List succs = referred.getPlan().getSuccessors( src ); if( succs != null ) { for( Operator succ : succs ) { Modified: pig/trunk/src/org/apache/pig/newplan/logical/relational/LogToPhyTranslationVisitor.java URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/newplan/logical/relational/LogToPhyTranslationVisitor.java?rev=1380095&r1=1380094&r2=1380095&view=diff ============================================================================== --- pig/trunk/src/org/apache/pig/newplan/logical/relational/LogToPhyTranslationVisitor.java (original) +++ pig/trunk/src/org/apache/pig/newplan/logical/relational/LogToPhyTranslationVisitor.java Sun Sep 2 23:24:04 2012 @@ -20,10 +20,11 @@ package org.apache.pig.newplan.logical.r import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.Deque; import java.util.HashMap; +import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Stack; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -98,12 +99,12 @@ public class LogToPhyTranslationVisitor super(plan, new DependencyOrderWalker(plan)); currentPlan = new PhysicalPlan(); logToPhyMap = new HashMap(); - currentPlans = new Stack(); + currentPlans = new LinkedList(); } protected Map logToPhyMap; - protected Stack currentPlans; + protected Deque currentPlans; protected PhysicalPlan currentPlan; Modified: pig/trunk/src/org/apache/pig/newplan/logical/rules/ConstExpEvaluator.java URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/newplan/logical/rules/ConstExpEvaluator.java?rev=1380095&r1=1380094&r2=1380095&view=diff ============================================================================== --- pig/trunk/src/org/apache/pig/newplan/logical/rules/ConstExpEvaluator.java (original) +++ pig/trunk/src/org/apache/pig/newplan/logical/rules/ConstExpEvaluator.java Sun Sep 2 23:24:04 2012 @@ -17,6 +17,8 @@ */ package org.apache.pig.newplan.logical.rules; +import java.util.Deque; +import java.util.LinkedList; import java.util.List; import java.util.Stack; @@ -43,11 +45,11 @@ import org.apache.pig.impl.util.Pair; * */ class ConstExpEvaluator extends LogicalExpressionVisitor { - Stack result; + Deque result; ConstExpEvaluator(OperatorPlan plan) throws FrontendException { super(plan, new ReverseDependencyOrderWalker(plan)); - result = new Stack(); + result = new LinkedList(); } @SuppressWarnings("unchecked") Modified: pig/trunk/src/org/apache/pig/newplan/logical/rules/DNFPlanGenerator.java URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/newplan/logical/rules/DNFPlanGenerator.java?rev=1380095&r1=1380094&r2=1380095&view=diff ============================================================================== --- pig/trunk/src/org/apache/pig/newplan/logical/rules/DNFPlanGenerator.java (original) +++ pig/trunk/src/org/apache/pig/newplan/logical/rules/DNFPlanGenerator.java Sun Sep 2 23:24:04 2012 @@ -17,7 +17,8 @@ */ package org.apache.pig.newplan.logical.rules; -import java.util.Stack; +import java.util.Deque; +import java.util.LinkedList; import org.apache.pig.impl.logicalLayer.FrontendException; import org.apache.pig.newplan.logical.expression.*; import org.apache.pig.newplan.ReverseDependencyOrderWalker; @@ -35,15 +36,15 @@ import org.apache.pig.newplan.OperatorPl */ class DNFPlanGenerator extends LogicalExpressionVisitor { private OperatorPlan dnfPlan = null; - Stack result; + Deque result; DNFPlanGenerator(OperatorPlan plan) throws FrontendException { super(plan, new ReverseDependencyOrderWalker(plan)); - result = new Stack(); + result = new LinkedList(); } OperatorPlan getDNFPlan() { - if (dnfPlan == null) dnfPlan = (result.empty() ? plan : result.pop().getPlan()); + if (dnfPlan == null) dnfPlan = (result.isEmpty() ? plan : result.pop().getPlan()); return dnfPlan; } Modified: pig/trunk/src/org/apache/pig/newplan/optimizer/Rule.java URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/newplan/optimizer/Rule.java?rev=1380095&r1=1380094&r2=1380095&view=diff ============================================================================== --- pig/trunk/src/org/apache/pig/newplan/optimizer/Rule.java (original) +++ pig/trunk/src/org/apache/pig/newplan/optimizer/Rule.java Sun Sep 2 23:24:04 2012 @@ -19,11 +19,12 @@ package org.apache.pig.newplan.optimizer; import java.util.ArrayList; +import java.util.Deque; import java.util.HashSet; import java.util.Iterator; +import java.util.LinkedList; import java.util.List; import java.util.Set; -import java.util.Stack; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -238,7 +239,7 @@ public abstract class Rule { } for(int i=0; i s = new Stack(); + Deque s = new LinkedList(); if (!check(planOps.get(i), patternOps.get(i), s)) { return false; } @@ -266,7 +267,7 @@ public abstract class Rule { * if we are looking for join->load pattern, only one match will be returned instead * of two, so that the matched subsets don't share nodes. */ - private boolean check(Operator planOp, Operator patternOp, Stack opers) throws FrontendException { + private boolean check(Operator planOp, Operator patternOp, Deque opers) throws FrontendException { if (!match(planOp, patternOp)) { return false; }