[ 
https://issues.apache.org/jira/browse/ARROW-18208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated ARROW-18208:
-----------------------------------
    Labels: pull-request-available  (was: )

> JS: tableFromJSON cannot handle nested objects containing strings
> -----------------------------------------------------------------
>
>                 Key: ARROW-18208
>                 URL: https://issues.apache.org/jira/browse/ARROW-18208
>             Project: Apache Arrow
>          Issue Type: Bug
>            Reporter: Samuel Schneck
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> ```
> $ node
> const g = require('apache-arrow')
> g.tableFromJSON([\{a: [ { b: "hi" } ]}])
> ```
>  
> The dictionary types:
>  
> TYPE Dictionary \{indices: Int32, dictionary: Utf8, isOrdered: false, id: 
> 12}dictionary: Utf8 {}id: 12indices: Int32 \{isSigned: true, bitWidth: 
> 32}isOrdered: falseArrayType: (...)children: (...)typeId: (...)valueType: 
> (...)[[Prototype]]: Dictionary
> typecomparator.ts:191 OTHER 
>  
> OTHER Dictionary \{indices: Int32, dictionary: Utf8, isOrdered: false, id: 
> 14}dictionary: Utf8typeId: (...)[[Prototype]]: Utf8id: 14indices: Int32 
> \{isSigned: true, bitWidth: 32}isOrdered: falseArrayType: (...)children: 
> (...)typeId: (...)valueType: (...)[[Prototype]]: Dictionary
>  
> This happens here:
>     else if (arraysCount + nullsCount === value.length) {
>         const array = value;
>         const childType = inferType(array[array.findIndex((ary) => ary != 
> null)]);
>         if (array.every((ary) => ary == null || (0, 
> typecomparator_js_1.compareTypes)(childType, inferType(ary)))) {
>             return new dtypes.List(new schema_js_1.Field('', childType, 
> true));
>         }
>     }
>  
> So we're always instantiating a new dictionary type, with a new id, when we 
> do inferType(ary), so this is never going to succeed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to