Jinfeng Ni created DRILL-1061:
---------------------------------

             Summary: Add or modify Optiq rule such that two projects involving 
complex JSON objects should not be collapsed into one.  
                 Key: DRILL-1061
                 URL: https://issues.apache.org/jira/browse/DRILL-1061
             Project: Apache Drill
          Issue Type: Bug
            Reporter: Jinfeng Ni


Currently, Drill could not nest a function whose output is a complex JSON 
object into another function directly.  For instance,

select foo.mycol.x from (
        select convert_from('{ x : [1,2], y : 100 }', 'JSON') as mycol 
        from cp.`tpch/nation.parquet`) as foo(mycol);

select convert_to(foo.mycol.x, 'JSON') from (
        select convert_from('{ x : [1,2], y : 100 }', 'JSON') as mycol 
        from cp.`tpch/nation.parquet`) as foo(mycol);

Optiq will merge the project in the out subquery with the project in the inner 
subquery into one project expression. This cause issues in Drill side.

In stead, we should add or modify Optiq rule so that the two projects will stay 
where they are, and evaluate the convert_from () first and produce a record 
batch. The second project will read from the record batch, and produce its 
output.  

Doing that will enable Drill to use out / inner subquery to refer the complex 
JSON object . 





--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to