[ 
https://issues.apache.org/jira/browse/IGNITE-3933?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ozerov updated IGNITE-3933:
------------------------------------
    Component/s:     (was: odbc)

> JDBC issue with Replicated & Partitioned caches
> -----------------------------------------------
>
>                 Key: IGNITE-3933
>                 URL: https://issues.apache.org/jira/browse/IGNITE-3933
>             Project: Ignite
>          Issue Type: Bug
>          Components: jdbc
>    Affects Versions: 1.8
>            Reporter: Igor Rudyak
>            Priority: Critical
>
> There is an issue with JDBC when trying to play with different types of 
> caches using the same JDBC connection.
> *Example 1 - using simple JDBC connection URL* 
> jdbc:ignite:cfg://file:///my-ignite-client-config.xm
> 1) For *REPLICATED* caches SQL query like *select \* from 
> my_replicated_cache* returns as many duplicates for each record as many nodes 
> in an Ignite cluster. Same problem with *select count(\*) from 
> my_replicated_cache* - it returns actual number of records multiplied by the 
> number of Ignite nodes.
> 2) At the same time if traversing the cache using "for" loop and iterator, it 
> returns exactly what's needed without any duplicates.
> *Example 2 - specifying replicated or partitioned cache in JDBC connection 
> URL* jdbc:ignite:cfg://cache=my_cache@file:///my-ignite-client-config.xm
>  
> 1) If specifying *PARTITIONED* cache in JDBC URL - queries like *select * 
> from my_replicated_cache* return duplicates
>  
> 2) If specifying *REPLICATED* cache in JDBC URL - it doesn't return 
> duplicates for the *select * from my_replicated_cache* query. At the same 
> time it failed to execute simple queries like *select * from 
> my_partitioned_cache* against *PARTITIONED* caches throwing this error:
> *java.lang.RuntimeException: javax.cache.CacheException: Queries running on 
> replicated cache should not contain JOINs with partitioned tables 
> [rCache=product, pCache=order]*
> The fact that it's not possible to combine *REPLICATED* and *PARTITIONED* 
> caches in one SQL query (using one JDBC connection) looks not very good. 
> Also the idea of specifying cache name (for *REPLICATED* cache) in the JDBC 
> URL for optimization purposes doesn't look good. It's better to utilize 
> rather wide used "hints" approach, to provide optimization hints inside SQL 
> query. Otherwise it's not possible to use JDBC with analytical and UI tools 
> to run ad-hock SQL queries.



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

Reply via email to