[
https://issues.apache.org/jira/browse/DERBY-6259?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rick Hillegas updated DERBY-6259:
---------------------------------
Attachment: derby-6259-02-aa-increasePrivacy.diff
Attaching derby-6259-02-aa-increasePrivacy.diff. This patch reduces the
visibility of optimizer fields. I am running tests now.
Now that the optimizer doesn't have a subclass, it is possible to make its
protected fields private. I did that and discovered that TableOperatorNode was
reaching inside the optimizer in order to get specific optimizables. So I added
a method to the Optimizer interface to make this possible cleanly.
I also noticed that there were two methods in the optimizer which had package
protection because they were called by other code in the impl compilation
package. When I added them to the Optimizer interface, I discovered why one of
them wasn't there already: it mentions a complicated impl type (PredicateList).
Fixing this mis-factoring is a bigger job which falls outside the scope of a
cleanup patch. So I have logged DERBY-6260 for moving the
addScopedPredicatesToList() method to the Optimizer interface.
Touches the following files:
M java/engine/org/apache/derby/iapi/sql/compile/Optimizer.java
M java/engine/org/apache/derby/impl/sql/compile/OptimizerImpl.java
M java/engine/org/apache/derby/impl/sql/compile/TableOperatorNode.java
> Collapse the level 2 optimizer into its parent module.
> ------------------------------------------------------
>
> Key: DERBY-6259
> URL: https://issues.apache.org/jira/browse/DERBY-6259
> Project: Derby
> Issue Type: Improvement
> Components: SQL
> Affects Versions: 10.11.0.0
> Reporter: Rick Hillegas
> Assignee: Rick Hillegas
> Attachments: derby-6259-01-aa-collapseOptimizers.diff,
> derby-6259-02-aa-increasePrivacy.diff
>
>
> Right now there are 2 optimizer implementations, only one of which is ever
> loaded. The other implementation was disabled by the following comment in
> modules.properties:
> # use level1 optimizer for small configurations
> #
> # can't do this in the codeline because with 2 implementations, it is entirely
> # by chance which get picked. So we may be running with different modules
> # depending on which jdk
> #
> # to be resolve by Siuling and Dan
> #
> #derby.module.optimizerSmall=org.apache.derby.impl.sql.compile.OptimizerFactoryImpl
> #cloudscape.config.optimizerSmall=cloud,cloudtarget
> Since we have deprecated support for the small CDC configuration, I don't
> think that we need further resolution by Siuling and Dan. Collapsing the two
> optimizers together should slightly reduce our static footprint.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira