Denis, Is it possible to create a test with reproducer? I am a bit lost.
On Tue, Oct 24, 2017 at 3:12 AM, Dmitriy Setrakyan <dsetrak...@apache.org> wrote: > It looks like the case sensitivity for the affinity key is a bug. Vladimir, > what do you think? > > On Mon, Oct 23, 2017 at 11:19 AM, Denis Magda <dma...@apache.org> wrote: > > > Vladimir, thanks a lot for looking into this! > > > > > On Oct 23, 2017, at 12:35 AM, Vladimir Ozerov <voze...@gridgain.com> > > wrote: > > > > > > Denis, > > > > > > Now more detailed answer: > > > > > > 1) It is expected that "City" class is not be found. You should set > > > key/value type names to fully-qualified class name to make it work. > > > Improvements: docs > > > > To make the Class-based key-vakye access and deserialization workable did > > the following: > > - follow your piece of advice providing full-qualified names in CREATE > > TABLE; > > - comment out ‘simpleName’ binary names mapper [1]. > > > > However, it means that now the heterogeneous scenarios where .NET or C++ > > key-value access is needed are not supported. Do you have an > understanding > > on how this can be done in the feature releases? > > > > > 2) There is no need to implement hash code. Why did you do this? > > > > That’s a big surprise that we calculate it automatically if a key is > > serialized into the binary form. Will be documented: > > https://issues.apache.org/jira/browse/IGNITE-6717 > > > > > 3) We will not have case-insensitive policy, SQL databases doesn't work > > > this way. In order to preserve case you should define column name in > > quotes. > > > > Seems that the issue pin points to the affinity key case only: > > - a field is defined as ‘CountryCode’ in DDL [2]. > > - in DML it can be used with any letters case - ‘countryCode’, > > ‘countrycode’, etc, > > - BinaryObjectBuild allowed me to define the field as `countryCode` [3] > > w/o any issue. > > - However, once I defined the field in CityKey class as is in DDL > > (`CountryCode`) the following exception was thrown: > > > > 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] > > > > and I forced to rename the field to `COUNTRYCODE` in CityKey class. Seems > > like a bug? > > > > > > [1] https://github.com/dmagda/ignite_world_demo/blob/master/ > > config/ignite-config.xml#L43 > > [2] https://github.com/dmagda/ignite_world_demo/blob/master/ > > ignite_world.sql#L31 > > [3] https://github.com/dmagda/ignite_world_demo/blob/master/ > > src/main/java/demo/keyvalue/KeyValueDataProcessing.java#L75 > > [4] https://github.com/dmagda/ignite_world_demo/blob/master/ > > src/main/java/demo/model/CityKey.java#L15 > > > > — > > Denis > > > > > > > > > > On Sat, Oct 21, 2017 at 2:34 PM, Vladimir Ozerov <voze...@gridgain.com > > > > > wrote: > > > > > >> Denis, > > >> > > >> SQL <-> key-Val transparency is complex thing, especially if you work > > with > > >> real Java classes instead of binary objects. > > >> > > >> We will try to improve something in 2.4, but do not expect great > > usability > > >> here. There is always be some pain in such scenarios. > > >> > > >> сб, 21 окт. 2017 г. в 9:23, Denis Magda <dma...@apache.org>: > > >> > > >>> > > >>>> On Oct 20, 2017, at 3:56 PM, Denis Magda <dma...@apache.org> wrote: > > >>>> > > >>>> * failed to deserialize BinaryObject value to City type [7]. Just > > >>> classical "class org.apache.ignite.binary. > BinaryInvalidTypeException: > > >>> City" caused by "Caused by: java.lang.ClassNotFoundException: City”. > > >>> > > >>> > > >>> Recalled that this should be caused by the fact that all the data was > > >>> inserted with DML (cache.put(key, BinaryObjects)) and there was no > > single > > >>> cache.put(key, new City()) that would register City class. Guess we > > need to > > >>> add an API that forces classes registration from the app side or > > something > > >>> more efficient. > > >>> > > >>> — > > >>> Denis > > >> > > >> > > > > >