diff --git a/packages/cubejs-duckdb-server-driver/src/DuckDBServerDriver.ts b/packages/cubejs-duckdb-server-driver/src/DuckDBServerDriver.ts index 40f6dfa2e..43d092137 100644 --- a/packages/cubejs-duckdb-server-driver/src/DuckDBServerDriver.ts +++ b/packages/cubejs-duckdb-server-driver/src/DuckDBServerDriver.ts @@ -1,4 +1,4 @@ -import axios, { AxiosError, AxiosInstance } from 'axios'; +import axios, { AxiosError, AxiosInstance, InternalAxiosRequestConfig } from 'axios'; import { BaseDriver, DriverInterface, @@ -94,6 +94,19 @@ export class DuckDBServerDriver extends BaseDriver implements DriverInterface { }; this.client = axios.create({ baseURL: url }); + + this.client.interceptors.request.use( + (request: InternalAxiosRequestConfig): InternalAxiosRequestConfig => { + console.log('DuckDB Server query', { + method: request.method?.toUpperCase(), + url: `${request.baseURL}${request.url}`, + headers: JSON.stringify(request.headers, null, 2), + data: JSON.stringify(request.data, null, 2) + }); + return request; + }, + (error) => Promise.reject(error) + ); } public readOnly() { diff --git a/packages/cubejs-duckdb-server-driver/src/DuckDBServerQuery.ts b/packages/cubejs-duckdb-server-driver/src/DuckDBServerQuery.ts index 458427187..34d92691e 100644 --- a/packages/cubejs-duckdb-server-driver/src/DuckDBServerQuery.ts +++ b/packages/cubejs-duckdb-server-driver/src/DuckDBServerQuery.ts @@ -27,6 +27,18 @@ export class DuckDBServerQuery extends BaseQuery { return GRANULARITY_TO_INTERVAL[granularity](dimension); } + public timeStampCast(value: string) { + const noTimestampCast = process.env.CUBEJS_DEFINITE_NO_DUCKDB_SERVER_TIMESTAMP_CAST; + const timestampCastFunction = process.env.CUBEJS_DEFINITE_DUCKDB_SERVER_TIMESTAMP_CAST_FUNCTION; + if (noTimestampCast === 'true' || noTimestampCast === '1') { + return value; + } else if (timestampCastFunction) { + return `${value}::${timestampCastFunction}`; + } else { + return `${value}::timestamptz`; + } + } + /** * Returns sql for source expression floored to timestamps aligned with * intervals relative to origin timestamp point. @@ -53,7 +65,6 @@ export class DuckDBServerQuery 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-schema-compiler/tsconfig.json b/packages/cubejs-schema-compiler/tsconfig.json index 36bebbc9a..2679ab30f 100644 --- a/packages/cubejs-schema-compiler/tsconfig.json +++ b/packages/cubejs-schema-compiler/tsconfig.json @@ -1,6 +1,6 @@ { "extends": "../../tsconfig.base.json", - "include": ["src", "test"], + "include": ["src"], "compilerOptions": { "outDir": "dist", "rootDir": ".",