[ 
https://issues.apache.org/jira/browse/IGNITE-23008?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17890835#comment-17890835
 ] 

Aleksey Plekhanov commented on IGNITE-23008:
--------------------------------------------

Actually, dynamic parameters are converted to binary objects when public API is 
used (see IgniteCacheProxyImpl#convertToBinary), but there is one more problem, 
type inferrence for binary object dynamic parameters is incorrect. 

> Calcite engine. Object dynamic parameters are not converted to binary objects
> -----------------------------------------------------------------------------
>
>                 Key: IGNITE-23008
>                 URL: https://issues.apache.org/jira/browse/IGNITE-23008
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Aleksey Plekhanov
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Objects inside Ignite are stored in binary object format. When we pass 
> dynamic parameters to the query, we left compound objects as is. These 
> objects can't be compared with objects inside cache. For example:
> {code:java}
>         IgniteCache<Integer, Employer> emp = client.getOrCreateCache(
>             new CacheConfiguration<Integer, Employer>("emp")
>                 .setSqlSchema("PUBLIC")
>                 .setQueryEntities(F.asList(new QueryEntity(Integer.class, 
> Employer.class).setTableName("emp")))
>         );
>         emp.put(0, new Employer("emp", 0d));
>         assertQuery("SELECT _key FROM emp WHERE _val = ?").withParams(new 
> Employer("emp", 0d)).resultSize(1).check();
> {code}
> This query returns 0 rows.



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

Reply via email to