Author: olga Date: Tue Oct 14 18:13:11 2008 New Revision: 704756 URL: http://svn.apache.org/viewvc?rev=704756&view=rev Log: PIG-495: bag projection
Modified: incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POProject.java incubator/pig/branches/types/test/org/apache/pig/test/TestEvalPipeline.java incubator/pig/branches/types/test/org/apache/pig/test/Util.java Modified: incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POProject.java URL: http://svn.apache.org/viewvc/incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POProject.java?rev=704756&r1=704755&r2=704756&view=diff ============================================================================== --- incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POProject.java (original) +++ incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POProject.java Tue Oct 14 18:13:11 2008 @@ -181,9 +181,9 @@ } DataBag outBag = BagFactory.getInstance().newDefaultBag(); for (Tuple tuple : inpBag) { - Tuple tmpTuple = tupleFactory.newTuple(); + Tuple tmpTuple = tupleFactory.newTuple(columns.size()); for (int i = 0; i < columns.size(); i++) - tmpTuple.append(tuple.get(columns.get(i))); + tmpTuple.set(i, tuple.get(columns.get(i))); outBag.add(tmpTuple); } res.result = outBag; Modified: incubator/pig/branches/types/test/org/apache/pig/test/TestEvalPipeline.java URL: http://svn.apache.org/viewvc/incubator/pig/branches/types/test/org/apache/pig/test/TestEvalPipeline.java?rev=704756&r1=704755&r2=704756&view=diff ============================================================================== --- incubator/pig/branches/types/test/org/apache/pig/test/TestEvalPipeline.java (original) +++ incubator/pig/branches/types/test/org/apache/pig/test/TestEvalPipeline.java Tue Oct 14 18:13:11 2008 @@ -583,6 +583,22 @@ } @Test + public void testProjectBag() throws IOException, ExecException { + // This tests make sure that when a bag with multiple columns is + // projected all columns apear in the output + File input = Util.createInputFile("tmp", "", + new String[] {"f1\tf2\tf3"}); + pigServer.registerQuery("a = load 'file:" + Util.encodeEscape(input.toString()) + "' as (x, y, z);"); + pigServer.registerQuery("b = group a by x;"); + pigServer.registerQuery("c = foreach b generate flatten(a.(y, z));"); + Iterator<Tuple> it = pigServer.openIterator("c"); + Tuple t = it.next(); + assertEquals(2, t.size()); + assertEquals("f2", t.get(0).toString()); + assertEquals("f3", t.get(1).toString()); + } + + @Test public void testBinStorageDetermineSchema2() throws IOException, ExecException { // Create input file with ascii data File input = Util.createInputFile("tmp", "", @@ -643,6 +659,4 @@ assertEquals(1, t.get(2)); assertEquals(Integer.class, t.get(2).getClass()); } - - } Modified: incubator/pig/branches/types/test/org/apache/pig/test/Util.java URL: http://svn.apache.org/viewvc/incubator/pig/branches/types/test/org/apache/pig/test/Util.java?rev=704756&r1=704755&r2=704756&view=diff ============================================================================== --- incubator/pig/branches/types/test/org/apache/pig/test/Util.java (original) +++ incubator/pig/branches/types/test/org/apache/pig/test/Util.java Tue Oct 14 18:13:11 2008 @@ -165,6 +165,7 @@ String[] inputData) throws IOException { File f = File.createTempFile(tmpFilenamePrefix, tmpFilenameSuffix); + f.deleteOnExit(); PrintWriter pw = new PrintWriter(f); for (int i=0; i<inputData.length; i++){ pw.println(inputData[i]);