[ 
https://issues.apache.org/jira/browse/IGNITE-6785?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16303947#comment-16303947
 ] 

Denis Magda commented on IGNITE-6785:
-------------------------------------

[~vozerov], 
* Start AI 2.3 node using {{ignite.sh}}
* Connect from SQLLine with {{./sqlline.sh --color=true --verbose=true -u 
jdbc:ignite:thin://127.0.0.1/}}
* Preload data with {{!run /Users/dmagda/Downloads/sql_bug/ignite_world.sql}}. 
The script in the project attached.
* Run {{KeyValueDataProcessing}} from the project. The exception forces us to 
have the affinity key of {{CityKey}} capitalized while it's not capitalized in 
{{ignite_world.sql}}
* If you run {{KeyValueBinaryDataProcessing}} you will note that the entry 
processors logic executes too long. Here is we might have some issue with 
binary marshaller. To make this example workable you need to enable the 
peer-class-loading.

> Affinity field name forced to be upper-case
> -------------------------------------------
>
>                 Key: IGNITE-6785
>                 URL: https://issues.apache.org/jira/browse/IGNITE-6785
>             Project: Ignite
>          Issue Type: Bug
>          Components: sql
>    Affects Versions: 2.1
>            Reporter: Denis Magda
>            Assignee: Denis Magda
>              Labels: important, usability
>             Fix For: 2.4
>
>         Attachments: sql_bug.zip
>
>
> If an SQL schema and cache is created with CREATE TABLE command and a user 
> wants to use key-value APIs creating its own custom key class, then (at 
> least) the key  class's affinity field forced to be written in upper-case.
> Steps to reproduce using the project attached:
> * start a node with {{./ignite.sh ../examples/config/example-ignite.xml}}.
> * create {{City}} table using {{ignite_world.sql}}. SQLline is one of the 
> quickest ways: https://apacheignite-sql.readme.io/docs/sqlline
> * Run {{KeyValueDataProcessing}} to catch the exception below
> {noformat}
> Exception in thread "main" class 
> org.apache.ignite.binary.BinaryObjectException: Binary type has different 
> affinity key fields [typeName=demo.model.CityKey, 
> affKeyFieldName1=COUNTRYCODE, affKeyFieldName2=countryCode]
>       at 
> org.apache.ignite.internal.binary.BinaryUtils.mergeMetadata(BinaryUtils.java:987)
> {noformat} 
> If fact {{CityKey}} names the affinity field in the same way as in CREATE 
> TABLE - {{countryCode}}.
> Next, run {{KeyValueBinaryDataProcessing}} to spot another weird thing:
> * BinaryObject key accepts `countryCode` as the affinity field name.
> * If to print our a binary object value then all the fields are in the 
> upper-case (they were not defined this way in CREATE TABLE):
> {noformat}
> demo.model.City [idHash=1613627715, hash=-1386587499, DISTRICT=Noord-Holland, 
> POPULATION=711200, NAME=Amsterdam]
> {noformat}



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

Reply via email to