[ https://issues.apache.org/jira/browse/CAY-2805?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nikita Timofeev closed CAY-2805. -------------------------------- Resolution: Fixed *5.0*: https://github.com/apache/cayenne/commit/e77da423b4894cb65d5d5cb2114ae92e9644dbdf *4.2*: https://github.com/apache/cayenne/commit/5c43442140ffbe2d6d2c7dad54f52a868609968e > 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 > Priority: Minor > > 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)