[ 
https://issues.apache.org/jira/browse/DERBY-5989?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Knut Anders Hatlen resolved DERBY-5989.
---------------------------------------

       Resolution: Fixed
    Fix Version/s: 10.10.0.0

Committed revision 1409120.
                
> Stop producing byte code for non-existent qualifiers
> ----------------------------------------------------
>
>                 Key: DERBY-5989
>                 URL: https://issues.apache.org/jira/browse/DERBY-5989
>             Project: Derby
>          Issue Type: Improvement
>          Components: SQL
>    Affects Versions: 10.10.0.0
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>            Priority: Minor
>             Fix For: 10.10.0.0
>
>         Attachments: after.txt, before.txt, d5989-1a.diff, 
> d5989-1a-no-whitespace.diff
>
>
> For all result set nodes that have predicate lists, Derby's compiler lays out 
> byte code for fields to hold qualifiers, and also code to reinitialize the 
> values in those fields on every execution. It does this even if there are no 
> qualifiers. See PredicateList.generateQualifiers(). That method does actually 
> check whether there are qualifiers, and it skips some of the code generation 
> if there are none. It should be changed so that it skips all the code 
> generation if there are no qualifiers.
> For an example, see the decompiled generated class for a natural join 
> attached to DERBY-5947: 
> https://issues.apache.org/jira/secure/attachment/12549514/natural-join-after-3a.txt
> That class contains three Qualifier[][] fields:
>     private Qualifier[][] e1;
>     private Qualifier[][] e3;
>     private Qualifier[][] e4;
> Only one of them (e4) is ever set to a non-null value. Still, the reinit() 
> method, which is called on every execution, has code for each of the fields:
>     protected void reinit() throws StandardException {
>       BaseActivation.reinitializeQualifiers(e1);
>       BaseActivation.reinitializeQualifiers(e3);
>       BaseActivation.reinitializeQualifiers(e4);
>     }

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