@Test public void testNewMergeMismatchType2() throws Throwable { LogicalSchema a = org.apache.pig.newplan.logical.Util.translateSchema( Utils.getSchemaFromString("a1:chararray, b1:(b11:double, b12:(b121:int)), c1:long")); LogicalSchema b = org.apache.pig.newplan.logical.Util.translateSchema( Utils.getSchemaFromString("a2:bytearray, b2:(b21:double, b22:long), c2:int")); LogicalSchema mergedSchema = LogicalSchema.merge(a, b, LogicalSchema.MergeMode.Union); LogicalSchema expected = org.apache.pig.newplan.logical.Util.translateSchema( Utils.getSchemaFromString("a1:chararray, b1:(), c1:long")); expected.getField(1).schema = new LogicalSchema(); Assert.assertTrue(LogicalSchema.equals(mergedSchema, expected, false, false)); try { LogicalSchema.merge(a, b, LogicalSchema.MergeMode.LoadForEach); Assert.fail(); } catch (FrontendException e) { Assert.assertTrue(e.getErrorCode() == 1031); } try { LogicalSchema.merge(b, a, LogicalSchema.MergeMode.LoadForEach); Assert.fail(); } catch (FrontendException e) { Assert.assertTrue(e.getErrorCode() == 1031); } }
@Test public void testNewMergeDifferentSize1() throws Throwable { LogicalSchema a = Utils.parseSchema("a1:bytearray, b1:long, c1:long"); LogicalSchema b = Utils.parseSchema("a2:bytearray, b2:long"); LogicalSchema mergedSchema = LogicalSchema.merge(a, b, LogicalSchema.MergeMode.Union); Assert.assertTrue(mergedSchema == null); try { LogicalSchema.merge(a, b, LogicalSchema.MergeMode.LoadForEach); Assert.fail(); } catch (FrontendException e) { Assert.assertTrue(e.getErrorCode() == 1031); } }