My bad, You right вс, 25 нояб. 2018 г. в 05:37, Dmitry Melnichuk < dmitry.melnic...@nobitlost.com>:
> Stepan, > > AFAIK Map type did always behave correctly on client side, as it does > now. This is a corresponding piece of my test suite: > > ``` > def test_put_get_map(client): > > cache = client.get_or_create_cache('test_map_cache') > > cache.put( > 'test_map', > ( > MapObject.HASH_MAP, > { > (123, IntObject): 'test_data', > 456: ((1, [456, 'inner_test_string', 789]), > CollectionObject), > 'test_key': 32.4, > } > ), > value_hint=MapObject > ) > value = cache.get('test_map') > assert value == (MapObject.HASH_MAP, { > 123: 'test_data', > 456: (1, [456, 'inner_test_string', 789]), > 'test_key': 32.4, > }) > > ``` > > Or is there another, more specific problem with maps? > > Dmitry > > On 11/25/18 3:56 AM, Stepan Pilschikov wrote: > > Dmitry, > > > > Great, checked, now all things woks well > > Hope that Igor made review for this PR > > > > But what about Maps? Looks like different ticket? or it can be done in > same > > ticket scope? > > > > пт, 23 нояб. 2018 г. в 23:58, Dmitry Melnichuk < > > dmitry.melnic...@nobitlost.com>: > > > >> Stepan, > >> > >> Sorry, I forgot to update from upstream prior to start working on this > >> issue, and thus brought a regression. My bad. Just merged with the > >> latest master. Please, check it out again. > >> > >> Dmitry > >> > >> On 11/24/18 1:37 AM, Stepan Pilschikov wrote: > >>> Dmitry, > >>> > >>> Iv checked and its actually work > >>> But a specially in this branch i found another bug > >>> Please look at my last comment: > >>> > >> > https://issues.apache.org/jira/browse/IGNITE-10358?focusedCommentId=16697285&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16697285 > >>> > >>> пт, 23 нояб. 2018 г. в 01:21, Dmitry Melnichuk < > >>> dmitry.melnic...@nobitlost.com>: > >>> > >>>> Stepan, > >>>> > >>>> Thank you for your great job in evaluating Python thin client, as well > >>>> as other thin clients. > >>>> > >>>> There was indeed a bug in Python client regarding the handling of type > >>>> hints in Collection type. I created a fix and did a PR under > >>>> IGNITE-10358 task, but the same PR is also fixes the problem in > >>>> IGNITE-10230 task. > >>>> > >>>> As of handling the type mapping in gists you provided, I left comments > >>>> on both tasks. > >>>> > >>>> Dmitry > >>>> > >>>> On 11/21/18 6:37 PM, Stepan Pilschikov wrote: > >>>>> Dmitry, Alexey > >>>>> > >>>>> Thank you for help, this answers help me a lot with understanding how > >>>>> clients are work > >>>>> > >>>>> Not so long time ago i met problem which is have expected behavior, > but > >>>> its > >>>>> may broke some workflows in future for some users > >>>>> > >>>>> Its all about not specified data types in collections and map's > >>>>> All description and examples in > >>>>> https://issues.apache.org/jira/browse/IGNITE-10358 > >>>>> > >>>>> Dmitry, can you have a quick look at it and maybe in future somehow > fix > >>>> it? > >>>>> > >>>>> пт, 26 окт. 2018 г. в 19:05, Dmitry Melnichuk < > >>>>> dmitry.melnic...@nobitlost.com>: > >>>>> > >>>>>> Stepan! > >>>>>> > >>>>>> TL/DR: what you got with Python client in your gist is an intended > >>>>>> behavior. > >>>>>> > >>>>>> Explanation: As per docs, Object array contains of type ID (which is > >>>>>> defaults to -1) and an array of objects. > >>>>>> > >>>>>> > >>>>>> > >>>> > >> > https://apacheignite.readme.io/docs/binary-client-protocol-data-format#section-object-array > >>>>>> > >>>>>> Your gist might be fixed accordingly: > >>>>>> > >>>>>> ``` > >>>>>> from pyignite import Client > >>>>>> from pyignite.datatypes import * > >>>>>> > >>>>>> OBJECT_ARRAY_TYPE_ID = -1 > >>>>>> OBJECT_ARRAY_CONTENTS = [1, 2] > >>>>>> > >>>>>> client = Client() > >>>>>> client.connect('127.0.0.1', 10800) > >>>>>> cache = client.get_or_create_cache("PY_OBJECT_ARRAY") > >>>>>> cache.put( > >>>>>> 1, > >>>>>> (OBJECT_ARRAY_TYPE_ID, OBJECT_ARRAY_CONTENTS), > >>>>>> key_hint=IntObject, > >>>>>> value_hint=ObjectArrayObject, > >>>>>> ) > >>>>>> > >>>>>> # Python output: print(cache.get(1)) > >>>>>> # (-1, [1, 2]) > >>>>>> ``` > >>>>>> > >>>>>> The situation is similar with Map and Collection, they have types. > >> Types > >>>>>> and type IDs are mostly useless in Python, but I left them for > >>>>>> interoperability reasons. If you think I should kick them out, just > >> let > >>>>>> me know. > >>>>>> > >>>>>> The usage of these 3 data types is documented and tested. You can > >> refer > >>>>>> to the table in “Data types” section: > >>>>>> > >>>>>> > >>>>>> > >>>> > >> > https://apache-ignite-binary-protocol-client.readthedocs.io/en/latest/datatypes/parsers.html > >>>>>> > >>>>>> The tests are here: > >>>>>> > >>>>>> > >>>>>> > >>>> > >> > https://github.com/apache/ignite/blob/master/modules/platforms/python/tests/test_datatypes.py#L116-L124 > >>>>>> > >>>>>> On 10/26/18 11:57 PM, Stepan Pilschikov wrote: > >>>>>>> Hi, everyone > >>>>>>> > >>>>>>> Create new thread to centralize cross compatibility and others > common > >>>>>>> problems between thin clients > >>>>>>> > >>>>>>> Tying to use Object array to exchange different data between JS, > PHP > >>>> and > >>>>>>> Python thin clients > >>>>>>> > >>>>>>> JS and PHP simply can't put any type of arrays > >>>>>>> Python can put data, but if you take it, data would be completely > >>>>>>> different, maybe during this put process data is changed > >>>>>>> > >>>>>>> Code and output: > >>>>>>> PHP - > >>>>>> > https://gist.github.com/pilshchikov/e887d31d4f2f36923470fead14c7801a > >>>>>>> JS - > >>>>>> > https://gist.github.com/pilshchikov/ba49067fd8924ebdf4414ec63838b86d > >>>>>>> Python - > >>>>>>> > https://gist.github.com/pilshchikov/f4bbf76e31547e2dca7d4cc5d55bd24f > >>>>>>> > >>>>>>> I'm tried different data types (string, double, float, complex > >> objects, > >>>>>>> just random objects, char, byte, Date), still > >>>>>>> > >>>>>>> How, from my perspective, it should works: > >>>>>>> put array of any type and then get this array. > >>>>>>> Example: put [1,2,3] -> get [1,2,3] or put [new Date(), new Date()] > >> -> > >>>>>>> get [[Date object], [Date object]] (like in java thin client) > >>>>>>> > >>>>>>> Looks like bug in all clients, what you think? > >>>>>>> > >>>>>>> I wanted to try Collections, but i think this type have same > problem > >>>>>> > >>>>> > >>>> > >>>> > >>> > >> > >> > > > >