[
https://issues.apache.org/jira/browse/IGNITE-7176?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16732756#comment-16732756
]
Markus Kinzler commented on IGNITE-7176:
----------------------------------------
In the versions below 2.7, you cannot trust the result of an SqlQuery under
certain circumstances. Sometimes the SqlQuery finds all the matching entries,
sometimes it does not.
The example is:
{code:java}
class LegaldocAcceptPk {
@QuerySqlField(index = true)
protected MyIdClass personId;
}{code}
For a query with 'WHERE personId=?' the resultset is randomly wrong when
A. The @QuerySqlField Annotation is on a custom class
B. The name of the cached class 'LegaldocAcceptPk' is relevant. For some class
names there where no missing results from the sql queries.
> SqlQuery does not always find matching entries
> ----------------------------------------------
>
> Key: IGNITE-7176
> URL: https://issues.apache.org/jira/browse/IGNITE-7176
> Project: Ignite
> Issue Type: Bug
> Components: sql
> Affects Versions: 2.3, 2.4
> Reporter: Markus Kinzler
> Priority: Critical
> Fix For: 2.7
>
> Attachments: sqlbug.zip
>
>
> When the @QuerySqlField annotation is put on a custom class, the sql query
> sometimes does not find the entry.
> With an cache of 100'000 entries, the problem occurs in about 50% of the test
> runs for 1 - 2 entries.
> When the entry is not found, no log statement is written and no exception is
> thrown, but the result is missing, despite beeing accessible via
> cache.get(key).
> Note that i could not reproduce the Issue when i rename the class
> LegaldocAcceptPk to TestEntityPk.
> A reproducible unit test is attached.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)