ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Taras Ledkov (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (IGNITE-6288) NPE on SQL query with parameters on custom schema name
Date Thu, 07 Sep 2017 08:48:00 GMT

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

Mime
View raw message