[
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