drill-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jinfeng Ni (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DRILL-3912) Common subexpression elimination in code generation
Date Wed, 07 Oct 2015 23:25:26 GMT

    [ https://issues.apache.org/jira/browse/DRILL-3912?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14947799#comment-14947799

Jinfeng Ni commented on DRILL-3912:

I actually had one patch to remove the redundancy in run-time generated code.  https://issues.apache.org/jira/browse/DRILL-3754

The only failure with the patch is for it hit failure in scalar replacement logic for case
where same column appear twice in a HashJoin. The run-time code seems valid, but the scalar
replacement fails. 

select t1.full_name from cp.`employee.json` t1, cp.`department.json` t2 
where t1.department_id = t2.department_id and t1.position_id = t2.department_id");

I just rebase on master branch. Can you check if the two patches address same problem?

See: https://github.com/jinfengni/incubator-drill/tree/DRILL-3754

> Common subexpression elimination in code generation
> ---------------------------------------------------
>                 Key: DRILL-3912
>                 URL: https://issues.apache.org/jira/browse/DRILL-3912
>             Project: Apache Drill
>          Issue Type: Bug
>            Reporter: Steven Phillips
>            Assignee: Jinfeng Ni
> Drill currently will evaluate the full expression tree, even if there are redundant subtrees.
Many of these redundant evaluations can be eliminated by reusing the results from previously
evaluated expression trees.
> For example,
> {code}
> select a + 1, (a + 1)* (a - 1) from t
> {code}
> Will compute the entire (a + 1) expression twice. With CSE, it will only be evaluated
> The benefit will be reducing the work done when evaluating expressions, as well as reducing
the amount of code that is generated, which could also lead to better JIT optimization.

This message was sent by Atlassian JIRA

View raw message