ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Mashenkov (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (IGNITE-4035) SQL: Avoid excessive calls of deterministic functions on same arguments
Date Wed, 05 Oct 2016 15:18:20 GMT

    [ 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:17 PM:
-------------------------------------------------------------------

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.


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

Mime
View raw message