-
Notifications
You must be signed in to change notification settings - Fork 181
Closed
Description
What happens?
Dates with millisecond resolution in Arrow tables are misdetected asdate instead of date64[ms].
When an Arrow table is created via
arrow.tableFromJSON([{date: new Date()}])the infered type is Date (typeId 8) with a unit of 1 (source). However, arrowToSQLType() checks against DateMillisecond(typeId -14) (source).
(It is unclear whether this is a bug in the Arrow implementation or DuckDB integration.)
To Reproduce
observablehq.com example, via DuckDBClient:
{
const arrow = await import("https://cdn.observableusercontent.com/npm/[email protected]/+esm");
const table = arrow.tableFromJSON([{date: new Date("2023-02-01T12:34:56Z")}]);
const type = table.schema.fields[0].type;
const db = await DuckDBClient.of({t: table});
const result = (await db.queryRow("select date d from t")).d.toISOString();
return {result, type, typeId: type.typeId};
}Browser/Environment:
Chrome 111
Device:
macOS 13.12.1
DuckDB-Wasm Version:
1.24
DuckDB-Wasm Deployment:
observablehq.com
Full Name:
Fabian Iwand
Affiliation:
Observable
mbostock, nachocab and Fil
Metadata
Metadata
Assignees
Labels
No labels