diff --git a/packages/cubejs-duckdb-driver/src/DuckDBQuery.ts b/packages/cubejs-duckdb-driver/src/DuckDBQuery.ts index 96cd50a725..93dd17b5de 100644 --- a/packages/cubejs-duckdb-driver/src/DuckDBQuery.ts +++ b/packages/cubejs-duckdb-driver/src/DuckDBQuery.ts @@ -53,6 +53,7 @@ export class DuckDBQuery extends BaseQuery { templates.functions.DATETRUNC = 'DATE_TRUNC({{ args_concat }})'; templates.functions.LEAST = 'LEAST({{ args_concat }})'; templates.functions.GREATEST = 'GREATEST({{ args_concat }})'; + templates.filters.time_range_filter = '{{ column }}::timestamptz >= {{ from_timestamp }} AND {{ column }}::timestamptz <= {{ to_timestamp }}'; return templates; } } diff --git a/packages/cubejs-duckdb-server-driver/package.json b/packages/cubejs-duckdb-server-driver/package.json index b5dba7fda6..1add5676f9 100644 --- a/packages/cubejs-duckdb-server-driver/package.json +++ b/packages/cubejs-duckdb-server-driver/package.json @@ -41,7 +41,6 @@ "@types/jest": "^27", "@types/node": "^18", "jest": "^27", - "ts-node": "^10.9.2", "typescript": "~5.2.2" }, "publishConfig": { diff --git a/packages/cubejs-duckdb-server-driver/src/DuckDBServerQuery.ts b/packages/cubejs-duckdb-server-driver/src/DuckDBServerQuery.ts index 93aba9ae74..949070d2e8 100644 --- a/packages/cubejs-duckdb-server-driver/src/DuckDBServerQuery.ts +++ b/packages/cubejs-duckdb-server-driver/src/DuckDBServerQuery.ts @@ -1,4 +1,4 @@ -import { BaseFilter, BaseQuery } from '@cubejs-backend/schema-compiler'; +import { BaseFilter, BaseQuery, BaseTimeDimension } from '@cubejs-backend/schema-compiler'; const GRANULARITY_TO_INTERVAL: Record string> = { day: date => `DATE_TRUNC('day', ${date})`, @@ -29,19 +29,20 @@ export class DuckDBServerQuery extends BaseQuery { public runningTotalDateJoinCondition() { return this.timeDimensions.map( - d => [ + (d: BaseTimeDimension) => [ d, // eslint-disable-next-line @typescript-eslint/no-unused-vars - (dateFrom, dateTo, dateField, dimensionDateFrom, dimensionDateTo) => `${this.timeStampCast(dateField)} >= ${this.timeStampCast(dimensionDateFrom)} AND ${this.timeStampCast(dateField)} <= ${dateTo}` + (dateFrom: string, dateTo: string, dateField: string, dimensionDateFrom: string, dimensionDateTo: string) => `${this.timeStampCast(dateField)} >= ${this.timeStampCast(dimensionDateFrom)} AND ${this.timeStampCast(dateField)} <= ${dateTo}` ] ); } public rollingWindowToDateJoinCondition(granularity: string) { return this.timeDimensions.map( - d => [ + (d: BaseTimeDimension) => [ d, - (dateFrom, dateTo, dateField, dimensionDateFrom, dimensionDateTo, isFromStartToEnd) => `${this.timeStampCast(dateField)} >= ${this.timeGroupedColumn(granularity, dateFrom)} AND ${this.timeStampCast(dateField)} <= ${dateTo}` + // eslint-disable-next-line @typescript-eslint/no-unused-vars + (dateFrom: string, dateTo: string, dateField: string, dimensionDateFrom: string, dimensionDateTo: string, isFromStartToEnd: string) => `${this.timeStampCast(dateField)} >= ${this.timeGroupedColumn(granularity, dateFrom)} AND ${this.timeStampCast(dateField)} <= ${dateTo}` ] ); }