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

Reply via email to