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:
>            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

View raw message