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

Wenzhuang Zhu edited comment on CALCITE-5968 at 9/5/23 8:39 AM:
----------------------------------------------------------------

To [~libenchao] 

I read the code of RexImplicationChecker. In that situation, DataContext is a 
better way to change a RexInputRef's input data. Otherwise, 
RexImplicationChecker.isSatisfiable needs make a new RexCall to call 
RexExecutor.reduce .

To [~julianhyde] 
 * fixed
 * done
 * public class is better for user to choose reuse it's code or not. 
RexExecutorImpl is also a public class(and other Rex*Impl classes). So, I keep 
the 'public class'.
 * I'm not sure decouple linq4j function class is an improvement or not. 
Interfaces RexExecutor/RexExecutable hide the implementation details. So, it 
works for JNI executor users.
 * I added a UserExecutor/UserExecutable test in 
[https://github.com/apache/calcite/pull/3404/files#diff-788b8a6d9613c5263347de845baf5ee6d920f784462419efb2b2e84a342b9d51.]
  It tests on interface level without moving the path of RexExecutorTest.

Please review the PR([https://github.com/apache/calcite/pull/3404)] or give 
more comments. Thanks. 


was (Author: JIRAUSER295386):
To [~libenchao] 

I read the code of RexImplicationChecker. In that situation, DataContext is a 
better way to change a RexInputRef's input data. Otherwise, 
RexImplicationChecker.isSatisfiable needs make a new RexCall to call 
RexExecutor.reduce .

To [~julianhyde] 
 * fixed
 * done
 * public class is better for user to choose reuse it's code or not. 
RexExecutorImpl is also a public class(and other Rex*Impl classes). So, I keep 
the 'public class'.
 * I'm not sure decouple linq4j function class is an improvement or not. 
Interfaces RexExecutor/RexExecutable hide the implementation details. So, it 
works for JNI executor users.
 * I added a UserExecutor/UserExecutable test in 
[https://github.com/apache/calcite/pull/3404/files#diff-788b8a6d9613c5263347de845baf5ee6d920f784462419efb2b2e84a342b9d51.]
  It tests on interface level without moving the path of RexExecutorTest.

Please review the PR([https://github.com/apache/calcite/pull/3404)] or give 
more comments. Thanks. 

> Provide an interface for RexExecutable to decouple janino runtime binding
> -------------------------------------------------------------------------
>
>                 Key: CALCITE-5968
>                 URL: https://issues.apache.org/jira/browse/CALCITE-5968
>             Project: Calcite
>          Issue Type: Improvement
>            Reporter: Wenzhuang Zhu
>            Assignee: Wenzhuang Zhu
>            Priority: Minor
>              Labels: pull-request-available
>
> Provide an interface for RexExecutable to decouple janino runtime binding.
> Users may want to use a different runtime implementation({_}e.g.{_} JNI) .



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to