You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by "Jinfeng Ni (JIRA)" <ji...@apache.org> on 2015/03/31 02:08:54 UTC

[jira] [Created] (DRILL-2630) Merge join over inputs with complex type hit run-time code compiler error

Jinfeng Ni created DRILL-2630:
---------------------------------

             Summary: Merge join over inputs with complex type hit run-time code compiler error
                 Key: DRILL-2630
                 URL: https://issues.apache.org/jira/browse/DRILL-2630
             Project: Apache Drill
          Issue Type: Bug
          Components: Execution - Relational Operators
            Reporter: Jinfeng Ni
            Assignee: Chris Westin


Hit run-time code complier error, if we have a merge join whose inputs contain complex type.

{code}
select * from sys.version;
+------------+----------------+-------------+-------------+------------+
| commit_id  | commit_message | commit_time | build_email | build_time |
+------------+----------------+-------------+-------------+------------+
| 0fbcddba14405ec94d51b0ba3512925168efb433 | DRILL-2375: implement reader reset mechanism and reset reader before accessing it during projection | 30.03.2015 @ 10:27:02 PDT | jni@maprtech.com | 30.03.2015 @ 16:50:01 PDT |
+------------+----------------+-------------+-------------+------------+
{code}

{code}
alter session set `planner.enable_hashjoin` = false;
{code}

{code}
select a.id, b.oooi.oa.oab.oabc oabc, b.ooof.oa.oab oab from dfs.`/tmp/complex_1.json` a left outer join cp.`/tmp/complex_1.json` b on a.id=b.id order by a.id;
{code}

{code}
+------------+------------+------------+
|     id     |    oabc    |    oab     |
+------------+------------+------------+
Query failed: Query stopped., Line 49, Column 32: No applicable constructor/method found for actual parameters "int, int, org.apache.drill.exec.vector.complex.MapVector"; candidates are: "public void org.apache.drill.exec.vector.NullableTinyIntVector.copyFromSafe(int, int, org.apache.drill.exec.vector.NullableTinyIntVector)", "public void org.apache.drill.exec.vector.NullableTinyIntVector.copyFromSafe(int, int, org.apache.drill.exec.vector.TinyIntVector)" [ e5905a74-98d0-46d4-8090-bcf0cc710e8a on 10.250.0.8:31010 ]
{code}

If I switch to hash join, then, the query works fine. Therefore, looks like Merge Join operator has some bug in handling complex type.

{code}
alter session set `planner.enable_hashjoin` = true;
+------------+------------+
|     ok     |  summary   |
+------------+------------+
| true       | planner.enable_hashjoin updated. |
+------------+------------+
1 row selected (0.058 seconds)
0: jdbc:drill:zk=local> select a.id, b.oooi.oa.oab.oabc oabc, b.ooof.oa.oab oab from dfs.`/tmp/complex_1.json` a left outer join dfs.`/tmp/complex_1.json` b on a.id=b.id order by a.id;
+------------+------------+------------+
|     id     |    oabc    |    oab     |
+------------+------------+------------+
| 1          | 1          | {"oabc":1.5678} |
| 2          | 2          | {"oabc":2.5678} |
+------------+------------+------------+
2 rows selected (0.73 seconds)
{code}






--
This message was sent by Atlassian JIRA
(v6.3.4#6332)