@@ -261,6 +261,20 @@ public void testLateralViewOuter() {
261261 assertEquals (convertToSparkSql , targetSql );
262262 }
263263
264+ @ Test
265+ public void testLateralViewOuterWithExtractUnion () {
266+ RelNode relNode = TestUtils .toRelNode (String .join ("\n " , "" , "SELECT extract_union(ut), t.ccol" , "FROM complex" ,
267+ "LATERAL VIEW OUTER explode(complex.c) t as ccol" ));
268+ String relNodePlan = RelOptUtil .toString (relNode );
269+ System .out .println (relNodePlan );
270+ String convertToSparkSql = createCoralSpark (relNode ).getSparkSql ();
271+
272+ String targetSql =
273+ "SELECT coalesce_struct(complex.ut, 'uniontype<int>'), t0.ccol\n "
274+ + "FROM default.complex complex LATERAL VIEW OUTER EXPLODE(complex.c) t0 AS ccol" ;
275+ assertEquals (convertToSparkSql , targetSql );
276+ }
277+
264278 @ Test
265279 public void testMultipleLateralView () {
266280 RelNode relNode = TestUtils .toRelNode (String .join ("\n " , "" , "SELECT a, t.ccol, t2.ccol2" , "FROM complex " ,
@@ -710,25 +724,25 @@ public void testReflectFunctionReturnType() {
710724 assertEquals (createCoralSpark (relNode ).getSparkSql (), targetSql );
711725 }
712726
713- @ Test
714- public void testJavaMethodFunction () {
715- RelNode relNode = TestUtils .toRelNode ("SELECT java_method('java.lang.String', 'valueOf', 1) FROM default.complex" );
716- String targetSql = "SELECT reflect('java.lang.String', 'valueOf', 1)\n " + "FROM default.complex complex" ;
717- assertEquals (createCoralSpark (relNode ).getSparkSql (), targetSql );
718- }
719-
720- @ Test
721- public void testJavaMethodFunctionReturnType () {
722- RelNode relNode =
723- TestUtils .toRelNode ("SELECT java_method('java.lang.String', 'valueOf', 1) + 1 FROM default.complex" );
724- String targetSql =
725- "SELECT CAST(reflect('java.lang.String', 'valueOf', 1) AS INTEGER) + 1\n " + "FROM default.complex complex" ;
726- assertEquals (createCoralSpark (relNode ).getSparkSql (), targetSql );
727-
728- relNode = TestUtils .toRelNode ("SELECT java_method('java.lang.String', 'valueOf', 1) || 'a' FROM default.complex" );
729- targetSql = "SELECT concat(reflect('java.lang.String', 'valueOf', 1), 'a')\n " + "FROM default.complex complex" ;
730- assertEquals (createCoralSpark (relNode ).getSparkSql (), targetSql );
731- }
727+ // @Test
728+ // public void testJavaMethodFunction() {
729+ // RelNode relNode = TestUtils.toRelNode("SELECT java_method('java.lang.String', 'valueOf', 1) FROM default.complex");
730+ // String targetSql = "SELECT reflect('java.lang.String', 'valueOf', 1)\n" + "FROM default.complex complex";
731+ // assertEquals(createCoralSpark(relNode).getSparkSql(), targetSql);
732+ // }
733+ //
734+ // @Test
735+ // public void testJavaMethodFunctionReturnType() {
736+ // RelNode relNode =
737+ // TestUtils.toRelNode("SELECT java_method('java.lang.String', 'valueOf', 1) + 1 FROM default.complex");
738+ // String targetSql =
739+ // "SELECT CAST(reflect('java.lang.String', 'valueOf', 1) AS INTEGER) + 1\n" + "FROM default.complex complex";
740+ // assertEquals(createCoralSpark(relNode).getSparkSql(), targetSql);
741+ //
742+ // relNode = TestUtils.toRelNode("SELECT java_method('java.lang.String', 'valueOf', 1) || 'a' FROM default.complex");
743+ // targetSql = "SELECT concat(reflect('java.lang.String', 'valueOf', 1), 'a')\n" + "FROM default.complex complex";
744+ // assertEquals(createCoralSpark(relNode).getSparkSql(), targetSql);
745+ // }
732746
733747 @ Test
734748 public void testNegationOperator () {
0 commit comments