Andrus Adamchik created CAY-2805:
------------------------------------

             Summary: Stop calling exp parser internally
                 Key: CAY-2805
                 URL: https://issues.apache.org/jira/browse/CAY-2805
             Project: Cayenne
          Issue Type: Improvement
    Affects Versions: 4.2.RC2
            Reporter: Andrus Adamchik
            Assignee: Nikita Timofeev


This is a performance optimization suggestion.  Just noticed during profiling a 
few minor "hotspots" due to calling "ExpressionFactory.exp()" inside the 
following methods in the Cayenne core:

* PrefetchProcessorJointNode.buildRowMapping(..)
* DefaultSelectTranslator.appendQueryColumns(..)
* SelectQueryMetadata.buildEntityResultForColumn(..)

This results in exp parser invocation, which is fairly slow. At the same time, 
in all these places the expression is known to be a path (either DB or OBJ). So 
we can take a shortcut and apply a faster parsing function to generate 
ASTObjPath or ASTDbPath.





--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to