(String joinType, boolean preSort)
| 592 | } |
| 593 | |
| 594 | public void testJoinType(String joinType, boolean preSort) throws Exception { |
| 595 | Properties props = PropertiesUtil.loadDefaultProperties(); |
| 596 | props.setProperty("pig.schematuple", "true"); |
| 597 | PigServer pigServer = new PigServer(ExecType.LOCAL, props); |
| 598 | |
| 599 | Data data = resetData(pigServer); |
| 600 | |
| 601 | data.set("foo1", |
| 602 | tuple(0, 0), |
| 603 | tuple(1, 1), |
| 604 | tuple(2, 2), |
| 605 | tuple(3, 3), |
| 606 | tuple(4, 4), |
| 607 | tuple(5, 5), |
| 608 | tuple(6, 6), |
| 609 | tuple(7, 7), |
| 610 | tuple(8, 8), |
| 611 | tuple(9, 9) |
| 612 | ); |
| 613 | |
| 614 | data.set("foo2", |
| 615 | tuple(0, 0), |
| 616 | tuple(1, 1), |
| 617 | tuple(2, 2), |
| 618 | tuple(3, 3), |
| 619 | tuple(4, 4), |
| 620 | tuple(5, 5), |
| 621 | tuple(6, 6), |
| 622 | tuple(7, 7), |
| 623 | tuple(8, 8), |
| 624 | tuple(9, 9) |
| 625 | ); |
| 626 | |
| 627 | pigServer.registerQuery("A = LOAD 'foo1' USING mock.Storage() as (x:int, y:int);"); |
| 628 | pigServer.registerQuery("B = LOAD 'foo2' USING mock.Storage() as (x:int, y:int);"); |
| 629 | if (preSort) { |
| 630 | pigServer.registerQuery("A = ORDER A BY x ASC;"); |
| 631 | pigServer.registerQuery("B = ORDER B BY x ASC;"); |
| 632 | } |
| 633 | pigServer.registerQuery("C = JOIN A by x, B by x using '"+joinType+"';"); |
| 634 | pigServer.registerQuery("D = ORDER C BY $0 ASC;"); |
| 635 | |
| 636 | Iterator<Tuple> out = pigServer.openIterator("D"); |
| 637 | for (int i = 0; i < 10; i++) { |
| 638 | if (!out.hasNext()) { |
| 639 | throw new Exception("Output should have had more elements! Failed on element: " + i); |
| 640 | } |
| 641 | assertEquals(tuple(i, i, i, i), out.next()); |
| 642 | } |
| 643 | assertFalse(out.hasNext()); |
| 644 | |
| 645 | pigServer.registerQuery("STORE D INTO 'bar1' USING mock.Storage();"); |
| 646 | pigServer.registerQuery("E = JOIN A by (x, y), B by (x, y) using '"+joinType+"';"); |
| 647 | pigServer.registerQuery("F = ORDER E BY $0 ASC;"); |
| 648 | pigServer.registerQuery("STORE F INTO 'bar2' USING mock.Storage();"); |
| 649 | |
| 650 | List<Tuple> bar1 = data.get("bar1"); |
| 651 | List<Tuple> bar2 = data.get("bar2"); |
no test coverage detected