@cubejs-backend/postgres-driver
Advanced tools
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"type-parsers.d.ts","sourceRoot":"","sources":["../../src/type-parsers.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,eAAO,MAAM,cAAc,QAAS,MAAM,KAAG,MAA+B,CAAC;AAE7E,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,QAAS,MAAM,KAAG,MAQjD,CAAC;AAwBF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAS,MAAM,KAAG,MAmEnD,CAAC"} | ||
| {"version":3,"file":"type-parsers.d.ts","sourceRoot":"","sources":["../../src/type-parsers.ts"],"names":[],"mappings":"AAEA,8CAA8C;AAC9C,eAAO,MAAM,cAAc,QAAS,MAAM,KAAG,MAA+B,CAAC;AAE7E,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,QAAS,MAAM,KAAG,MAQjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAS,MAAM,KAAG,MAmEnD,CAAC"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.timestampTzTypeParser = exports.timestampTypeParser = exports.dateTypeParser = void 0; | ||
| const shared_1 = require("@cubejs-backend/shared"); | ||
| /** OID 1082 — Postgres emits `YYYY-MM-DD`. */ | ||
@@ -17,24 +18,2 @@ const dateTypeParser = (val) => `${val}T00:00:00.000`; | ||
| exports.timestampTypeParser = timestampTypeParser; | ||
| // Hand-rolled zero-padders for the TIMESTAMPTZ hot path. `String(n).padStart` | ||
| // allocates an extra intermediate string per call; with six pad calls per value | ||
| // that measured ~15–20% slower in our microbenchmark than these range-checked | ||
| // template literals, so we keep the explicit versions. | ||
| const pad2 = (n) => (n < 10 ? `0${n}` : `${n}`); | ||
| const pad3 = (n) => { | ||
| if (n < 10) | ||
| return `00${n}`; | ||
| if (n < 100) | ||
| return `0${n}`; | ||
| return `${n}`; | ||
| }; | ||
| const pad4 = (n) => { | ||
| if (n < 1000) { | ||
| if (n < 10) | ||
| return `000${n}`; | ||
| if (n < 100) | ||
| return `00${n}`; | ||
| return `0${n}`; | ||
| } | ||
| return `${n}`; | ||
| }; | ||
| /** | ||
@@ -94,9 +73,9 @@ * OID 1184 — same as TIMESTAMP, suffixed with `(+|-)HH`, `(+|-)HH:MM`, or | ||
| } | ||
| const yyyy = pad4(utc.getUTCFullYear()); | ||
| const MM = pad2(utc.getUTCMonth() + 1); | ||
| const dd = pad2(utc.getUTCDate()); | ||
| const HH = pad2(utc.getUTCHours()); | ||
| const mm = pad2(utc.getUTCMinutes()); | ||
| const ss = pad2(utc.getUTCSeconds()); | ||
| const sss = pad3(utc.getUTCMilliseconds()); | ||
| const yyyy = (0, shared_1.pad4)(utc.getUTCFullYear()); | ||
| const MM = (0, shared_1.pad2)(utc.getUTCMonth() + 1); | ||
| const dd = (0, shared_1.pad2)(utc.getUTCDate()); | ||
| const HH = (0, shared_1.pad2)(utc.getUTCHours()); | ||
| const mm = (0, shared_1.pad2)(utc.getUTCMinutes()); | ||
| const ss = (0, shared_1.pad2)(utc.getUTCSeconds()); | ||
| const sss = (0, shared_1.pad3)(utc.getUTCMilliseconds()); | ||
| return `${yyyy}-${MM}-${dd}T${HH}:${mm}:${ss}.${sss}`; | ||
@@ -103,0 +82,0 @@ }; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"type-parsers.js","sourceRoot":"","sources":["../../src/type-parsers.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"type-parsers.js","sourceRoot":"","sources":["../../src/type-parsers.ts"],"names":[],"mappings":"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"} |
+6
-6
@@ -5,3 +5,3 @@ { | ||
| "author": "Cube Dev, Inc.", | ||
| "version": "1.6.39", | ||
| "version": "1.6.40", | ||
| "repository": { | ||
@@ -31,4 +31,4 @@ "type": "git", | ||
| "dependencies": { | ||
| "@cubejs-backend/base-driver": "1.6.39", | ||
| "@cubejs-backend/shared": "1.6.39", | ||
| "@cubejs-backend/base-driver": "1.6.40", | ||
| "@cubejs-backend/shared": "1.6.40", | ||
| "@types/pg": "^8.16.0", | ||
@@ -41,4 +41,4 @@ "@types/pg-query-stream": "^1.0.3", | ||
| "devDependencies": { | ||
| "@cubejs-backend/linter": "1.6.39", | ||
| "@cubejs-backend/testing-shared": "1.6.39", | ||
| "@cubejs-backend/linter": "1.6.40", | ||
| "@cubejs-backend/testing-shared": "1.6.40", | ||
| "testcontainers": "^10.28.0", | ||
@@ -56,3 +56,3 @@ "typescript": "~5.2.2" | ||
| }, | ||
| "gitHead": "8835d4b945fc3bebc91b264b08232d710fdc2bde" | ||
| "gitHead": "ca686109d640b6b9e8ba0f4dc484f6de266d5860" | ||
| } |
64709
-1.7%696
-2.93%+ Added
+ Added
- Removed
- Removed