Skip to content

Commit 5e91445

Browse files
committed
Fix date conversions
1 parent 77474dd commit 5e91445

File tree

3 files changed

+140
-5
lines changed

3 files changed

+140
-5
lines changed

packages/cubejs-duckdb-server-driver/src/DuckDBServerDriver.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ export class DuckDBServerDriver extends BaseDriver implements DriverInterface {
141141
for (const row of result) {
142142
const jsonRow: Record<string, any> = {};
143143
result.schema.fields.forEach(field => {
144-
jsonRow[field.name] = transformValue(row[field.name]);
144+
jsonRow[field.name] = transformValue(field, row[field.name]);
145145
});
146146
jsonResult.push(jsonRow);
147147
}
Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
export function transformValue(value: any) {
2-
if (typeof value === 'number' || typeof value === 'bigint') {
1+
import { DataType, Field } from 'apache-arrow';
2+
3+
export function transformValue(field: Field, value: any) {
4+
if (DataType.isDate(field.type) || DataType.isTimestamp(field.type)) {
5+
return new Date(value).toISOString();
6+
} else if (typeof value === 'number' || typeof value === 'bigint') {
37
return value.toString();
4-
} else if (Object.prototype.toString.call(value) === '[object Date]') {
5-
return (value as any).toISOString();
68
}
79
return value;
810
}

yarn.lock

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4365,6 +4365,52 @@
43654365
resolved "https://registry.yarnpkg.com/@cubejs-backend/apla-clickhouse/-/apla-clickhouse-1.7.0.tgz#6359f46c56492d1704d18be0210c7546fdac5f5e"
43664366
integrity sha512-qwXapTC/qosA6RprElRjnl8gmlDQaxtJPtbgcdjyNvkmiyao1HI+w5QkjHWCiVm6aTzE0gjFr6/2y87TZ9fojg==
43674367

4368+
"@cubejs-backend/[email protected]":
4369+
version "1.0.3"
4370+
resolved "https://registry.yarnpkg.com/@cubejs-backend/base-driver/-/base-driver-1.0.3.tgz#af6a2340824c1e14aa0f9fc67a24ae4254e6fe34"
4371+
integrity sha512-UiCUDLl9W0H/3UCEp+cSOWAFRXLG28B011BtzcmTEX+T5FmodOexgwM/96fV/1v5gTGC0FikmqY0jY1vy+Bkfg==
4372+
dependencies:
4373+
"@aws-sdk/client-s3" "^3.49.0"
4374+
"@aws-sdk/s3-request-presigner" "^3.49.0"
4375+
"@azure/identity" "^4.4.1"
4376+
"@azure/storage-blob" "^12.9.0"
4377+
"@cubejs-backend/shared" "1.0.3"
4378+
"@google-cloud/storage" "^7.13.0"
4379+
ramda "^0.27.0"
4380+
4381+
"@cubejs-backend/[email protected]":
4382+
version "1.1.0"
4383+
resolved "https://registry.yarnpkg.com/@cubejs-backend/cubesql/-/cubesql-1.1.0.tgz#b9e48e5bf853d0ac0b859df15c72c87953cdc7c9"
4384+
integrity sha512-KT6qepWC4ruTOK/gyUYOTNgGK6A9Loh9xjL40a3UxsqAQExAhztLAdRvXMzgy3QVcXm3MzrlY8HxLcJMY2treA==
4385+
4386+
"@cubejs-backend/[email protected]":
4387+
version "1.0.3"
4388+
resolved "https://registry.yarnpkg.com/@cubejs-backend/cubestore-driver/-/cubestore-driver-1.0.3.tgz#3319ddabbadc729ad1ac61ea2f5d6be04e4061fe"
4389+
integrity sha512-RNh3bQHCOWSkGn7wuELf2HXmSecKas7c2PzQUIxIw0VU3qIAgn0CVCRYSAIDs/BqM9TEkYIFRP/wpiFsint+YA==
4390+
dependencies:
4391+
"@cubejs-backend/base-driver" "1.0.3"
4392+
"@cubejs-backend/cubestore" "1.0.3"
4393+
"@cubejs-backend/shared" "1.0.3"
4394+
csv-write-stream "^2.0.0"
4395+
flatbuffers "23.3.3"
4396+
fs-extra "^9.1.0"
4397+
generic-pool "^3.6.0"
4398+
moment-timezone "^0.5.31"
4399+
node-fetch "^2.6.1"
4400+
sqlstring "^2.3.3"
4401+
tempy "^1.0.1"
4402+
uuid "^8.3.2"
4403+
ws "^7.4.3"
4404+
4405+
"@cubejs-backend/[email protected]":
4406+
version "1.0.3"
4407+
resolved "https://registry.yarnpkg.com/@cubejs-backend/cubestore/-/cubestore-1.0.3.tgz#f2eba6d24a784d5a0e49844d8bd65ace575f758d"
4408+
integrity sha512-9pJAhFZMKV5+jtMzz3X50wgKp5Bp9jWmx/9PEftI+ipCeVXefKLaPuiaQHMZGXPzhH7bacw4UjhNBIcklu76Rg==
4409+
dependencies:
4410+
"@cubejs-backend/shared" "1.0.3"
4411+
"@octokit/core" "^3.2.5"
4412+
source-map-support "^0.5.19"
4413+
43684414
"@cubejs-backend/dotenv@^9.0.2":
43694415
version "9.0.2"
43704416
resolved "https://registry.yarnpkg.com/@cubejs-backend/dotenv/-/dotenv-9.0.2.tgz#c3679091b702f0fd38de120c5a63943fcdc0dcbf"
@@ -4381,6 +4427,59 @@
43814427
uuid "9.0.0"
43824428
winston "3.8.2"
43834429

4430+
"@cubejs-backend/[email protected]":
4431+
version "1.1.0"
4432+
resolved "https://registry.yarnpkg.com/@cubejs-backend/native/-/native-1.1.0.tgz#fbe34c96e4ef1d7b92e6d3f57ca8ea33b66cb529"
4433+
integrity sha512-9716zUl7syHQODv3wdRg9gpQg/0OO34v//oDq5W3sDe+vx4aQFkk4qROiYp0Cf2mjGiYgaIgPjRRhWepPqGZ6g==
4434+
dependencies:
4435+
"@cubejs-backend/cubesql" "1.1.0"
4436+
"@cubejs-backend/shared" "1.0.3"
4437+
"@cubejs-infra/post-installer" "^0.0.7"
4438+
4439+
"@cubejs-backend/[email protected]":
4440+
version "1.0.3"
4441+
resolved "https://registry.yarnpkg.com/@cubejs-backend/query-orchestrator/-/query-orchestrator-1.0.3.tgz#bb6bcf1be7a25d258adb2fe7d776405b26bfa83d"
4442+
integrity sha512-UK6EkOTOjPjE8KzpsxqdE0hXTjuigH2rqybUn3dqK/9dIjnKVyg5CXERYnETmLORqyR01tpn08vkHS+ZPXM7Ww==
4443+
dependencies:
4444+
"@cubejs-backend/base-driver" "1.0.3"
4445+
"@cubejs-backend/cubestore-driver" "1.0.3"
4446+
"@cubejs-backend/shared" "1.0.3"
4447+
csv-write-stream "^2.0.0"
4448+
es5-ext "0.10.53"
4449+
generic-pool "^3.7.1"
4450+
lru-cache "^6.0.0"
4451+
moment-timezone "^0.5.33"
4452+
ramda "^0.27.2"
4453+
4454+
"@cubejs-backend/[email protected]":
4455+
version "1.1.0"
4456+
resolved "https://registry.yarnpkg.com/@cubejs-backend/schema-compiler/-/schema-compiler-1.1.0.tgz#b124a802dc651b4441b7ea8d322461c79d9a113d"
4457+
integrity sha512-J/OqJxPESY47wTAc5YdA5eejVGLQ8xItNC1R0voZkzj3R4NscOQQ/25yvmbIkUguFzEjezrkXflYJmNBW2Lg0w==
4458+
dependencies:
4459+
"@babel/code-frame" "^7.24"
4460+
"@babel/core" "^7.24"
4461+
"@babel/generator" "^7.24"
4462+
"@babel/parser" "^7.24"
4463+
"@babel/preset-env" "^7.24"
4464+
"@babel/standalone" "^7.24"
4465+
"@babel/traverse" "^7.24"
4466+
"@babel/types" "^7.24"
4467+
"@cubejs-backend/native" "1.1.0"
4468+
"@cubejs-backend/shared" "1.0.3"
4469+
antlr4ts "0.5.0-alpha.4"
4470+
camelcase "^6.2.0"
4471+
cron-parser "^4.9.0"
4472+
humps "^2.0.1"
4473+
inflection "^1.12.0"
4474+
joi "^17.8.3"
4475+
js-yaml "^4.1.0"
4476+
lru-cache "^5.1.1"
4477+
moment-timezone "^0.5.33"
4478+
node-dijkstra "^2.5.0"
4479+
ramda "^0.27.2"
4480+
syntax-error "^1.3.0"
4481+
uuid "^8.3.2"
4482+
43844483
"@cubejs-backend/[email protected]":
43854484
version "0.33.20"
43864485
resolved "https://registry.yarnpkg.com/@cubejs-backend/shared/-/shared-0.33.20.tgz#3d9fa60041599cca9fe4c04df05daa4b8ab8675f"
@@ -4401,6 +4500,40 @@
44014500
throttle-debounce "^3.0.1"
44024501
uuid "^8.3.2"
44034502

4503+
"@cubejs-backend/[email protected]":
4504+
version "1.0.3"
4505+
resolved "https://registry.yarnpkg.com/@cubejs-backend/shared/-/shared-1.0.3.tgz#50e2a26dfe8fdfcf1b373964df9f714d8cbbf5b1"
4506+
integrity sha512-JzrTLXxUP6svA8RdE3BEzc6D6OUq3uFAibjq/gb11WlxKGFPXqRlLzgL0k7qHr/kyG3NzX+XXfwILcr/kZvqqA==
4507+
dependencies:
4508+
"@oclif/color" "^0.1.2"
4509+
bytes "^3.1.0"
4510+
cli-progress "^3.9.0"
4511+
cross-spawn "^7.0.3"
4512+
decompress "^4.2.1"
4513+
env-var "^6.3.0"
4514+
fs-extra "^9.1.0"
4515+
http-proxy-agent "^4.0.1"
4516+
moment-range "^4.0.1"
4517+
moment-timezone "^0.5.33"
4518+
node-fetch "^2.6.1"
4519+
shelljs "^0.8.5"
4520+
throttle-debounce "^3.0.1"
4521+
uuid "^8.3.2"
4522+
4523+
"@cubejs-backend/[email protected]":
4524+
version "1.1.0"
4525+
resolved "https://registry.yarnpkg.com/@cubejs-backend/testing-shared/-/testing-shared-1.1.0.tgz#bf51a76add2c27103252a65533b29c2cd4fe9a7c"
4526+
integrity sha512-v3pWF5RHyqhyqbxG7Irz0p9t9DGHQLVreAg6tZZmiVh6KABnhl93H9kAHzcbot+lRIMWHWuQ/Vf5e0dMwV1nyw==
4527+
dependencies:
4528+
"@cubejs-backend/dotenv" "^9.0.2"
4529+
"@cubejs-backend/query-orchestrator" "1.0.3"
4530+
"@cubejs-backend/schema-compiler" "1.1.0"
4531+
"@cubejs-backend/shared" "1.0.3"
4532+
"@testcontainers/kafka" "~10.13.0"
4533+
dedent "^0.7.0"
4534+
node-fetch "^2.6.7"
4535+
testcontainers "^10.13.0"
4536+
44044537
"@cubejs-infra/post-installer@^0.0.7":
44054538
version "0.0.7"
44064539
resolved "https://registry.yarnpkg.com/@cubejs-infra/post-installer/-/post-installer-0.0.7.tgz#a28d2d03e5b7b69a64020d75194a7078cf911d2d"

0 commit comments

Comments
 (0)