[ 
https://issues.apache.org/jira/browse/TAJO-906?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14106747#comment-14106747
 ] 

ASF GitHub Bot commented on TAJO-906:
-------------------------------------

Github user hyunsik commented on the pull request:

    https://github.com/apache/tajo/pull/113#issuecomment-53052194
  
    I've updated the patch. I've improved TajoTestingCluster to take system 
properties as follows:
    ```
    mvn clean install -DCODEGEN=true
    ```
    
    If ```CODEGEN``` is a session variable, it will be applied to QueryContext 
instance used in all unit tests. So, in order to test the code generation 
feature, you should give ```-DCODEGEN=true``` when you execute ```mvn 
install```. It can be used for other session variables too.
    
    For test for real queries, you need to set a session variable CODEGEN  as 
follows:
    ```
    tajo> \set CODEGEN true
    tajo> 
    tajo> SELECT .....
    ```



> Runtime code generation for evaluating expression trees
> -------------------------------------------------------
>
>                 Key: TAJO-906
>                 URL: https://issues.apache.org/jira/browse/TAJO-906
>             Project: Tajo
>          Issue Type: Improvement
>          Components: physical operator
>            Reporter: Hyunsik Choi
>            Assignee: Hyunsik Choi
>             Fix For: 0.9.0
>
>
> We have used EvalNode for two purposes:
>  * logical planning of expressions
>  * evaluation of expressions
> EvalNode still is very nice for the purpose of logical planning. But, each 
> EvalNode tree takes Datum included in a tuple and results in a Datum as a 
> evaluation result. 
> So, the current approach requires many object creations, and causes interpret 
> overheads, meaning that each one evaluation involves tree traverses and many 
> function calls. interpretation involves also many branches, and it is harmful 
> to CPU pipelining.
> I propose Java byte code generation for each expression, and I'll use ASM 
> (http://asm.ow2.org/) for it. This approach will write native java byte code, 
> eliminating many condition branches and function calls. In addition, it is 
> easier to deal with java primitive data types for expressions.



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

Reply via email to