You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "Taras Ledkov (JIRA)" <ji...@apache.org> on 2017/09/07 08:48:00 UTC

[jira] [Created] (IGNITE-6288) NPE on SQL query with parameters on custom schema name

Taras Ledkov created IGNITE-6288:
------------------------------------

             Summary: 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
         Environment: *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}
            Reporter: Taras Ledkov






--
This message was sent by Atlassian JIRA
(v6.4.14#64029)