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