From c7b17b637eca5962d873dcf8fd232b8bf265e18a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Rivi=C3=A8re?= Date: Thu, 10 Oct 2024 14:10:26 +0200 Subject: [PATCH 1/2] closes #2194 --- src/options.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/options.js b/src/options.js index ac9caca472..9284fe237f 100644 --- a/src/options.js +++ b/src/options.js @@ -68,8 +68,17 @@ function maybeTypedArrowify(vector, type) { return vector == null ? vector : (type === undefined || type === Array) && isArrowDateType(vector.type) - ? coerceDates(vector.toArray()) - : maybeTypedArrayify(vector.toArray(), type); + ? coerceDates(vectorToArray(vector)) + : maybeTypedArrayify(vectorToArray(vector), type); +} + +function vectorToArray(vector) { + const values = vector.toArray(); + if (values.nullCount) { + const NULL = vector.type?.typeId === 5 /* Utf8 */ ? null : undefined; + for (let i = 0; i < values.length; ++i) if (!values.isValid(i)) values[i] = NULL; + } + return values; } export const singleton = [null]; // for data-less decoration marks, e.g. frame From 623500b2640692aacfdc7270135d5b9e6fba1c4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Rivi=C3=A8re?= Date: Fri, 11 Oct 2024 06:59:18 +0200 Subject: [PATCH 2/2] toJSON --- src/options.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/options.js b/src/options.js index 9284fe237f..144fd3b37b 100644 --- a/src/options.js +++ b/src/options.js @@ -73,12 +73,7 @@ function maybeTypedArrowify(vector, type) { } function vectorToArray(vector) { - const values = vector.toArray(); - if (values.nullCount) { - const NULL = vector.type?.typeId === 5 /* Utf8 */ ? null : undefined; - for (let i = 0; i < values.length; ++i) if (!values.isValid(i)) values[i] = NULL; - } - return values; + return vector.nullCount ? vector.toJSON() : vector.toArray(); } export const singleton = [null]; // for data-less decoration marks, e.g. frame