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