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 8F6467A80 for ; Sat, 5 Nov 2011 19:33:01 +0000 (UTC) Received: (qmail 41547 invoked by uid 500); 5 Nov 2011 19:33:01 -0000 Delivered-To: apmail-pig-commits-archive@pig.apache.org Received: (qmail 41518 invoked by uid 500); 5 Nov 2011 19:33:01 -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 41511 invoked by uid 99); 5 Nov 2011 19:33:01 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 05 Nov 2011 19:33:01 +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; Sat, 05 Nov 2011 19:32:59 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id CACA423888FE for ; Sat, 5 Nov 2011 19:32:39 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1198029 - in /pig/branches/branch-0.9: ./ src/org/apache/pig/newplan/logical/relational/ src/org/apache/pig/newplan/logical/rules/ test/org/apache/pig/test/ Date: Sat, 05 Nov 2011 19:32:39 -0000 To: commits@pig.apache.org From: daijy@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20111105193239.CACA423888FE@eris.apache.org> Author: daijy Date: Sat Nov 5 19:32:38 2011 New Revision: 1198029 URL: http://svn.apache.org/viewvc?rev=1198029&view=rev Log: PIG-2346: TypeCastInsert should not insert Foreach if there is no as statement Modified: pig/branches/branch-0.9/CHANGES.txt pig/branches/branch-0.9/src/org/apache/pig/newplan/logical/relational/LOLoad.java pig/branches/branch-0.9/src/org/apache/pig/newplan/logical/relational/LOStream.java pig/branches/branch-0.9/src/org/apache/pig/newplan/logical/rules/TypeCastInserter.java pig/branches/branch-0.9/test/org/apache/pig/test/TestPartitionFilterPushDown.java pig/branches/branch-0.9/test/org/apache/pig/test/TestPlanGeneration.java Modified: pig/branches/branch-0.9/CHANGES.txt URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/CHANGES.txt?rev=1198029&r1=1198028&r2=1198029&view=diff ============================================================================== --- pig/branches/branch-0.9/CHANGES.txt (original) +++ pig/branches/branch-0.9/CHANGES.txt Sat Nov 5 19:32:38 2011 @@ -20,8 +20,12 @@ Pig Change Log Release 0.9.2 - Unreleased +BUG FIXES + PIG-2320: Error: "projection with nothing to reference" (daijy) +PIG-2346: TypeCastInsert should not insert Foreach if there is no as statement (daijy) + Release 0.9.1 - Unreleased IMPROVEMENTS Modified: pig/branches/branch-0.9/src/org/apache/pig/newplan/logical/relational/LOLoad.java URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/src/org/apache/pig/newplan/logical/relational/LOLoad.java?rev=1198029&r1=1198028&r2=1198029&view=diff ============================================================================== --- pig/branches/branch-0.9/src/org/apache/pig/newplan/logical/relational/LOLoad.java (original) +++ pig/branches/branch-0.9/src/org/apache/pig/newplan/logical/relational/LOLoad.java Sat Nov 5 19:32:38 2011 @@ -278,4 +278,8 @@ public class LOLoad extends LogicalRelat this.signature = signature; loadFunc.setUDFContextSignature(signature); } + + public LogicalSchema getScriptSchema() { + return scriptSchema; + } } Modified: pig/branches/branch-0.9/src/org/apache/pig/newplan/logical/relational/LOStream.java URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/src/org/apache/pig/newplan/logical/relational/LOStream.java?rev=1198029&r1=1198028&r2=1198029&view=diff ============================================================================== --- pig/branches/branch-0.9/src/org/apache/pig/newplan/logical/relational/LOStream.java (original) +++ pig/branches/branch-0.9/src/org/apache/pig/newplan/logical/relational/LOStream.java Sat Nov 5 19:32:38 2011 @@ -113,4 +113,8 @@ public class LOStream extends LogicalRel public void resetUid() { uidOnlySchema = null; } + + public LogicalSchema getScriptSchema() { + return scriptSchema; + } } Modified: pig/branches/branch-0.9/src/org/apache/pig/newplan/logical/rules/TypeCastInserter.java URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/src/org/apache/pig/newplan/logical/rules/TypeCastInserter.java?rev=1198029&r1=1198028&r2=1198029&view=diff ============================================================================== --- pig/branches/branch-0.9/src/org/apache/pig/newplan/logical/rules/TypeCastInserter.java (original) +++ pig/branches/branch-0.9/src/org/apache/pig/newplan/logical/rules/TypeCastInserter.java Sat Nov 5 19:32:38 2011 @@ -77,9 +77,11 @@ public abstract class TypeCastInserter e if (s == null) return false; if (op instanceof LOLoad) { + if (((LOLoad)op).getScriptSchema()==null) return false; if (((LOLoad)op).isCastInserted()) return false; } else { + if (((LOStream)op).getScriptSchema()==null) return false; if (((LOStream)op).isCastInserted()) return false; } Modified: pig/branches/branch-0.9/test/org/apache/pig/test/TestPartitionFilterPushDown.java URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/test/org/apache/pig/test/TestPartitionFilterPushDown.java?rev=1198029&r1=1198028&r2=1198029&view=diff ============================================================================== --- pig/branches/branch-0.9/test/org/apache/pig/test/TestPartitionFilterPushDown.java (original) +++ pig/branches/branch-0.9/test/org/apache/pig/test/TestPartitionFilterPushDown.java Sat Nov 5 19:32:38 2011 @@ -568,7 +568,7 @@ public class TestPartitionFilterPushDown Assert.assertTrue(!(iter.next() instanceof LOFilter)); counter++; } - Assert.assertEquals(counter, 7); + Assert.assertEquals(counter, 5); } //// helper methods /////// Modified: pig/branches/branch-0.9/test/org/apache/pig/test/TestPlanGeneration.java URL: http://svn.apache.org/viewvc/pig/branches/branch-0.9/test/org/apache/pig/test/TestPlanGeneration.java?rev=1198029&r1=1198028&r2=1198029&view=diff ============================================================================== --- pig/branches/branch-0.9/test/org/apache/pig/test/TestPlanGeneration.java (original) +++ pig/branches/branch-0.9/test/org/apache/pig/test/TestPlanGeneration.java Sat Nov 5 19:32:38 2011 @@ -17,11 +17,18 @@ */ package org.apache.pig.test; +import java.io.IOException; import java.util.Properties; import junit.framework.Assert; +import org.apache.hadoop.mapreduce.Job; import org.apache.pig.ExecType; +import org.apache.pig.Expression; +import org.apache.pig.LoadFunc; +import org.apache.pig.LoadMetadata; +import org.apache.pig.ResourceSchema; +import org.apache.pig.ResourceStatistics; import org.apache.pig.backend.executionengine.ExecException; import org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper; import org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan; @@ -29,17 +36,25 @@ import org.apache.pig.backend.hadoop.exe import org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan; import org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSort; import org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore; +import org.apache.pig.builtin.PigStorage; import org.apache.pig.data.DataType; import org.apache.pig.impl.PigContext; +import org.apache.pig.impl.logicalLayer.FrontendException; +import org.apache.pig.impl.logicalLayer.schema.Schema; +import org.apache.pig.impl.util.Utils; import org.apache.pig.newplan.Operator; import org.apache.pig.newplan.logical.expression.LogicalExpression; import org.apache.pig.newplan.logical.relational.LOCogroup; +import org.apache.pig.newplan.logical.relational.LOFilter; import org.apache.pig.newplan.logical.relational.LOForEach; +import org.apache.pig.newplan.logical.relational.LOLoad; import org.apache.pig.newplan.logical.relational.LOSort; import org.apache.pig.newplan.logical.relational.LOStore; import org.apache.pig.newplan.logical.relational.LogicalPlan; import org.apache.pig.newplan.logical.relational.LogicalSchema; import org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema; +import org.apache.pig.parser.ParserException; +import org.apache.pig.test.TestPartitionFilterPushDown.TestLoader; import org.junit.BeforeClass; import org.junit.Test; @@ -175,4 +190,49 @@ public class TestPlanGeneration extends poStore = (POStore)mrOper.mapPlan.getLeaves().get(0); assert(poStore.getAlias().equals("B")); } + + public static class SchemaLoader extends PigStorage implements LoadMetadata { + + Schema schema; + public SchemaLoader(String schemaString) throws ParserException { + schema = Utils.getSchemaFromString(schemaString); + } + @Override + public ResourceSchema getSchema(String location, Job job) + throws IOException { + return new ResourceSchema(schema); + } + + @Override + public ResourceStatistics getStatistics(String location, Job job) + throws IOException { + return null; + } + + @Override + public String[] getPartitionKeys(String location, Job job) + throws IOException { + return null; + } + + @Override + public void setPartitionFilter(Expression partitionFilter) + throws IOException { + } + } + + @Test + public void testLoaderWithSchema() throws Exception { + String query = "a = load 'foo' using " + SchemaLoader.class.getName() + "('name,age,gpa');\n" + + "b = filter a by age==20;" + + "store b into 'output';"; + LogicalPlan lp = Util.parse(query, pc); + Util.optimizeNewLP(lp); + + LOLoad loLoad = (LOLoad)lp.getSources().get(0); + LOFilter loFilter = (LOFilter)lp.getSuccessors(loLoad).get(0); + LOStore loStore = (LOStore)lp.getSuccessors(loFilter).get(0); + + Assert.assertTrue(lp.getSuccessors(loStore)==null); + } }