[
https://issues.apache.org/jira/browse/CALCITE-2338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16506761#comment-16506761
]
Julian Hyde commented on CALCITE-2338:
--------------------------------------
I don't know why reducing the API is so important.
If we have a list of OR conditions, creating an OR call before we simplify is
quite expensive, because we have to flatten; then in simplify, we do the same
thing again. Simplify is called very frequently from RelBuilder and we cannot
afford to increase fat. Trace through a few rule calls and see how many
intermediate lists and list-builders are created.
Would it be sufficient to mark the public methods as deprecated, so people
would be discouraged from calling them from outside Calcite, but allow calls to
the methods from within Calcite?
My biggest concern with the public API is that we revert the mistake I made
when I converted unknownAsFalse from a method parameter to a field.
> Reduce the externally visible api of RexSimplify
> ------------------------------------------------
>
> Key: CALCITE-2338
> URL: https://issues.apache.org/jira/browse/CALCITE-2338
> Project: Calcite
> Issue Type: Bug
> Reporter: Zoltan Haindrich
> Assignee: Zoltan Haindrich
> Priority: Major
>
> Currently many lower level simplification methods are visible.
> While I was porting CALCITE-2247 to a branch near 1.16 I've bumped into an
> issue because of the fact that by calling a specific simplify method may
> leave out some otherwise applicable simplifications.
> For master there is already an extra safety feature by the presence of
> CALCITE-2205; it seems like using less entry points may even lead to better
> simplifications - by changing this; a filter have been removed.
> https://github.com/kgyrtkirk/calcite/commit/2e29a659792f6bd9419dc0f97bf5a3bdd9f6f2cc
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)