db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rick Hillegas (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (DERBY-6259) Collapse the level 2 optimizer into its parent module.
Date Thu, 13 Jun 2013 14:52:20 GMT

     [ 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

Mime
View raw message