[
https://issues.apache.org/jira/browse/IGNITE-4035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15548806#comment-15548806
]
Andrew Mashenkov edited comment on IGNITE-4035 at 10/5/16 3:58 PM:
-------------------------------------------------------------------
I've noticed we have some cache (h2ObjToGridObj) in GridSqlQueryParser, but it
was useless for me. I have no cache hit running query above.
GridSqlQueryParser use IdentityHashMap for Expression objects. And Expression
objects do not realize equality contract. So we fully rely on H2 query
optimizer.
It wiil be nice to have a workaround here.
was (Author: amashenkov):
I've noticed we have some cache in GridSqlQueryParser, but it was useless for
me. I have no cache hit running query above.
It looks like GridSqlQueryParser use IdentityHashMap because of Expression
objects do not realize equality contract. So we fully rely on H2 query
optimizer.
It wiil be nice to have a workaround here.
> SQL: Avoid excessive calls of deterministic functions on same arguments
> -----------------------------------------------------------------------
>
> Key: IGNITE-4035
> URL: https://issues.apache.org/jira/browse/IGNITE-4035
> Project: Ignite
> Issue Type: Sub-task
> Components: SQL
> Affects Versions: 1.6, 1.7
> Reporter: Andrew Mashenkov
> Labels: performance
>
> In sql query example below, heavy "datediff" deterministic function will be
> called 4 times per row. I'd expect function call once per row.
> Example:
> {noformat}
> Select
> avg(datediff('s',ts1,ts2)) as avg_diff,
> min(datediff('s',ts1,ts2)) as min_diff,
> max(datediff('s',ts1,ts2)) as max_diff
> From table
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)