[
https://issues.apache.org/jira/browse/IGNITE-6288?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Taras Ledkov updated IGNITE-6288:
---------------------------------
Description:
*Root cause*: cache name is used instead of schema name at the
{{CacheQueryPartitionInfo}}
Reproducer:
Please add the short test to the tests class {{SqlSchemaSelfTest}}
{code}
public void testCustomSchemaName() throws Exception {
QueryEntity qe = new QueryEntity()
.setValueType(Person.class.getName())
.setKeyType(Long.class.getName())
.setValueFieldName("_value")
.setKeyFieldName("id")
.addQueryField("id", Long.class.getName(), null)
.addQueryField("_value", Person.class.getName(), null)
.addQueryField("name", String.class.getName(), null)
.addQueryField("orgId", Long.class.getName(), null);
qe.setTableName("Person");
IgniteCache<Long, Person> cache = node.createCache(new
CacheConfiguration<Long, Person>()
.setName(CACHE_PERSON)
.setQueryEntities(Collections.singletonList(qe))
.setSqlSchema("TEST"));
cache.put(1L, new Person("Vasya", 2));
assertEquals(1, node.context().query().querySqlFieldsNoCache(
new SqlFieldsQuery("SELECT id, name, orgId FROM TEST.Person where
(id = ?)").setArgs(1L), false
).getAll().size());
}
{code}
> NPE on SQL query with parameters on custom schema name
> ------------------------------------------------------
>
> Key: IGNITE-6288
> URL: https://issues.apache.org/jira/browse/IGNITE-6288
> Project: Ignite
> Issue Type: Bug
> Components: sql
> Affects Versions: 2.2
> Reporter: Taras Ledkov
>
> *Root cause*: cache name is used instead of schema name at the
> {{CacheQueryPartitionInfo}}
> Reproducer:
> Please add the short test to the tests class {{SqlSchemaSelfTest}}
> {code}
> public void testCustomSchemaName() throws Exception {
> QueryEntity qe = new QueryEntity()
> .setValueType(Person.class.getName())
> .setKeyType(Long.class.getName())
> .setValueFieldName("_value")
> .setKeyFieldName("id")
> .addQueryField("id", Long.class.getName(), null)
> .addQueryField("_value", Person.class.getName(), null)
> .addQueryField("name", String.class.getName(), null)
> .addQueryField("orgId", Long.class.getName(), null);
> qe.setTableName("Person");
> IgniteCache<Long, Person> cache = node.createCache(new
> CacheConfiguration<Long, Person>()
> .setName(CACHE_PERSON)
> .setQueryEntities(Collections.singletonList(qe))
> .setSqlSchema("TEST"));
> cache.put(1L, new Person("Vasya", 2));
> assertEquals(1, node.context().query().querySqlFieldsNoCache(
> new SqlFieldsQuery("SELECT id, name, orgId FROM TEST.Person where
> (id = ?)").setArgs(1L), false
> ).getAll().size());
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)