[
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)