[ 
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

Reply via email to