diff --git a/.github/workflows/drivers-tests.yml b/.github/workflows/drivers-tests.yml
index 7a2d94205f40a..a99f0b4ef4153 100644
--- a/.github/workflows/drivers-tests.yml
+++ b/.github/workflows/drivers-tests.yml
@@ -19,6 +19,7 @@ on:
- 'packages/cubejs-athena-driver/**'
- 'packages/cubejs-bigquery-driver/**'
- 'packages/cubejs-clickhouse-driver/**'
+ - 'packages/cubejs-crate-driver/**'
- 'packages/cubejs-databricks-jdbc-driver/**'
- 'packages/cubejs-mssql-driver/**'
- 'packages/cubejs-mysql-driver/**'
@@ -48,6 +49,7 @@ on:
- 'packages/cubejs-athena-driver/**'
- 'packages/cubejs-bigquery-driver/**'
- 'packages/cubejs-clickhouse-driver/**'
+ - 'packages/cubejs-crate-driver/**'
- 'packages/cubejs-databricks-jdbc-driver/**'
- 'packages/cubejs-mssql-driver/**'
- 'packages/cubejs-mysql-driver/**'
@@ -260,6 +262,7 @@ jobs:
- clickhouse
- clickhouse-export-bucket-s3
- clickhouse-export-bucket-s3-prefix
+ - crate
- databricks-jdbc
- databricks-jdbc-export-bucket-s3
- databricks-jdbc-export-bucket-s3-prefix
@@ -290,6 +293,8 @@ jobs:
include:
- database: postgres
use_tesseract_sql_planner: false
+ - database: crate
+ use_tesseract_sql_planner: false
- database: snowflake
use_tesseract_sql_planner: false
- database: redshift
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 82422c8e669c3..60e8b69242d5a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,21 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+### Bug Fixes
+
+- **base-driver:** Handle NULL values in readOnly type detection (fix [#11094](https://github.com/cube-js/cube/issues/11094)) ([#11245](https://github.com/cube-js/cube/issues/11245)) ([f06bfb9](https://github.com/cube-js/cube/commit/f06bfb9875c285c63ac99b73a988c7ce1c61ca13))
+- **cubesql:** Normalize date-only string literals in timestamp comparisons ([#11251](https://github.com/cube-js/cube/issues/11251)) ([ec12ff0](https://github.com/cube-js/cube/commit/ec12ff00ffca0084eb8658fad97f42680aa0c0d7))
+- **cubesql:** Reference window expressions by generated alias in `ORDER BY` ([#11250](https://github.com/cube-js/cube/issues/11250)) ([8068893](https://github.com/cube-js/cube/commit/8068893a2d83d62038436884d67ba700a7d515b7))
+- **cubesql:** Reject `ORDER BY` over ungrouped columns with a clear error ([#11249](https://github.com/cube-js/cube/issues/11249)) ([ff5eac9](https://github.com/cube-js/cube/commit/ff5eac95c5dcf7a7fb14d978ae2fd597ffd6bf5e))
+- **cubesql:** Support `HAVING` on a measure combined with `ORDER BY` on the same measure ([#11254](https://github.com/cube-js/cube/issues/11254)) ([23b199e](https://github.com/cube-js/cube/commit/23b199e03be75596e150eec551fef68aaedc8251))
+- **duckdb-driver:** Invalid SQL for custom granularities ([#11272](https://github.com/cube-js/cube/issues/11272)) ([7850aab](https://github.com/cube-js/cube/commit/7850aab6b291e486c5d1a9597da40d2ae021a755))
+
+### Features
+
+- **questdb-driver:** Initial support for Tesseract, add integration tests ([#11259](https://github.com/cube-js/cube/issues/11259)) ([e6cd6e1](https://github.com/cube-js/cube/commit/e6cd6e12a05b256509fc94639e6bc3b2c7a1bb65))
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
### Bug Fixes
diff --git a/docs-mintlify/admin/users-and-permissions/custom-roles.mdx b/docs-mintlify/admin/users-and-permissions/custom-roles.mdx
index 6cd283e855dcb..4a0d08769d10e 100644
--- a/docs-mintlify/admin/users-and-permissions/custom-roles.mdx
+++ b/docs-mintlify/admin/users-and-permissions/custom-roles.mdx
@@ -119,6 +119,7 @@ Either grant **Full access** (a shortcut that enables every current and future d
| Data Model | Edit data model | Edit the data model on any branch, including the main/deploy branch. Allows committing and merging to main, force-syncing main, and starting dev mode against main. |
| Data Model | Edit data model on dev branches | Edit the data model only on non-default branches. Blocks any write that targets the main/deploy branch (including merging to main). |
| Monitoring | Access query history | View deployment query history, performance, and traces. |
+| Data Export | Download data | Download query results as CSV from workbooks, Analytics Chat, and published dashboards. Granted by default to the built-in Viewer, Explorer, and Developer roles. See [Data download controls][ref-data-download-controls]. |
When **Full access** is checked, the granular checkboxes appear checked and disabled — granting Full access today also covers any deployment-scoped permissions added in the future.
@@ -126,10 +127,12 @@ When **Full access** is checked, the granular checkboxes appear checked and disa
-**Access deployment** (`DeploymentRead`) is special. It's the only deployment action that does **not** auto-bump the Base Role to Developer, because Viewers also need it just to open a deployment.
+**Access deployment** (`DeploymentRead`) and **Download data** (`DownloadData`) are special. They are the only deployment actions that do **not** auto-bump the Base Role to Developer, because Viewers also need them just to open a deployment and download data from it.
+[ref-data-download-controls]: /admin/users-and-permissions/roles-and-permissions#restricting-data-downloads
+
## Walkthroughs
### Create a Viewer with read access to all deployments
@@ -252,3 +255,4 @@ This section lists every action a custom role can grant. The internal action nam
| `SchemaUpdate` | Edit data model |
| `SchemaUpdateDevBranches` | Edit data model on dev branches |
| `APMRead` | Access query history |
+| `DownloadData` | Download data |
diff --git a/docs-mintlify/admin/users-and-permissions/roles-and-permissions.mdx b/docs-mintlify/admin/users-and-permissions/roles-and-permissions.mdx
index 00d57ad409b46..c9abeeb771f62 100644
--- a/docs-mintlify/admin/users-and-permissions/roles-and-permissions.mdx
+++ b/docs-mintlify/admin/users-and-permissions/roles-and-permissions.mdx
@@ -28,6 +28,17 @@ Admin roles are billed at the developer rate.
+## Restricting data downloads
+
+By default, all roles can download query results as CSV from workbooks, Analytics Chat, and published dashboards. Two controls restrict this:
+
+- **Account-wide** — the **Allow data downloads** switch on the **Admin → Settings** page. Turning it off hides export controls everywhere, for all users — including admins and embeds.
+- **Per user** — the **Download data** action in [custom roles][ref-custom-roles]. Built-in roles grant it by default; to remove download access for a group of users, assign them a custom role without it. Admins and anonymous embed viewers bypass it.
+
+The account-wide switch always wins; the permission applies only while downloads are allowed account-wide. Both govern the download button, not data access — query results are still rendered on screen.
+
+[ref-custom-roles]: /admin/users-and-permissions/custom-roles
+
## Agent Permissions
Agents are connected to Semantic Model Deployments and inherit the permission level of the user they are operating under.
diff --git a/docs-mintlify/docs/explore-analyze/workbooks/querying-data.mdx b/docs-mintlify/docs/explore-analyze/workbooks/querying-data.mdx
index 27ee31cb768f9..c62981ff267ce 100644
--- a/docs-mintlify/docs/explore-analyze/workbooks/querying-data.mdx
+++ b/docs-mintlify/docs/explore-analyze/workbooks/querying-data.mdx
@@ -47,7 +47,7 @@ views:
operator: between
values: ["7 days ago", "today"]
- member: status
- operator: equals
+ operator: is
values: ["completed"]
```
diff --git a/docs-mintlify/docs/integrations/dbt.mdx b/docs-mintlify/docs/integrations/dbt.mdx
index 2338be40a910b..20490b8d80cc9 100644
--- a/docs-mintlify/docs/integrations/dbt.mdx
+++ b/docs-mintlify/docs/integrations/dbt.mdx
@@ -4,6 +4,12 @@ sidebarTitle: dbt
description: Pull dbt models into Cube and convert them into cubes automatically — manually, from your CI/CD pipeline, or on every push to your dbt repository.
---
+
+
+Available on [Premium and above plans](https://cube.dev/pricing).
+
+
+
If your team already models data in [dbt](https://www.getdbt.com/), you can import
those models into Cube as cubes instead of redefining them by hand. **dbt pull**
connects to your dbt project's Git repository, parses the project, converts each dbt
diff --git a/docs-mintlify/reference/data-modeling/view.mdx b/docs-mintlify/reference/data-modeling/view.mdx
index a4b8da0dc3d53..f937ae2f677d1 100644
--- a/docs-mintlify/reference/data-modeling/view.mdx
+++ b/docs-mintlify/reference/data-modeling/view.mdx
@@ -293,7 +293,8 @@ filters are pre-populated as regular, fully editable filters — data consumers
can change their values, switch operators, or remove them entirely.
Each entry has a `member` (a dimension or measure exposed by the view), an
-`operator`, and a list of `values`.
+`operator`, and a list of `values` — or a single `value`, which is natural for
+single-value operators. Null-check operators take no value.
@@ -314,11 +315,16 @@ views:
meta:
default_ui_filters:
+ # "is yesterday" → equality at day grain, shows yesterday's data
- member: created_at
+ operator: is
+ value: yesterday
+ # Rolling window → use "between" with two bounds
+ - member: updated_at
operator: between
values: ["7 days ago", "today"]
- member: status
- operator: equals
+ operator: is
values: ["completed", "shipped"]
```
@@ -333,14 +339,21 @@ view(`orders_view`, {
meta: {
default_ui_filters: [
+ // "is yesterday" → equality at day grain, shows yesterday's data
{
member: `created_at`,
+ operator: `is`,
+ value: `yesterday`
+ },
+ // Rolling window → use "between" with two bounds
+ {
+ member: `updated_at`,
operator: `between`,
values: [`7 days ago`, `today`]
},
{
member: `status`,
- operator: `equals`,
+ operator: `is`,
values: [`completed`, `shipped`]
}
]
@@ -352,10 +365,20 @@ view(`orders_view`, {
##### Operators
-Operators use the same names data consumers see in the workbook filter bar:
-`equals`, `not_equals`, `between`, `greater_than`, `greater_than_or_equal`,
-`less_than`, `less_than_or_equal`, `contains`, `not_contains`, `starts_with`,
-`not_starts_with`, `ends_with`, `not_ends_with`, `is_null`, `is_not_null`.
+Operators use the same labels data consumers see in the workbook filter bar —
+what you see in the filter bar is what you type: `is`, `is not`, `after date`,
+`after or on date`, `before date`, `before or on date`, `between`, `contains`,
+`not contains`, `starts with`, `not starts with`, `ends with`, `not ends with`,
+`is null`, `is not null`.
+
+Operators are case-insensitive and whitespace-tolerant. Internal type names and
+REST API aliases (e.g. `equals`, `gte`, `inDateRange`) are also accepted.
+
+On a date or time member, `is` with a relative value is an **equality** at that
+value's grain, not a range — `is yesterday` matches yesterday only (e.g.
+`DATE_TRUNC('day', created_at) = CURRENT_DATE - INTERVAL '1 day'`), and
+`is this month` matches the current month. For a rolling window, use `between`
+with two bounds.
##### Relative date values
@@ -366,11 +389,11 @@ Each bound is one of:
`N days|weeks|months|quarters|years ago` (e.g. `7 days ago`),
`N ... from now` (e.g. `2 weeks from now`), or
`this week|month|quarter|year`. `now` is accepted as an alias for `today`.
-- **A fixed ISO date**: `"2026-01-15"`.
+- **A fixed ISO date**: `"2026-01-15"`, meaning that whole day.
- **A number**, for numeric members.
-Relative values also work with the open-ended comparison operators — for
-example, `greater_than` with `values: ["7 days ago"]`.
+Relative values also work with `is` and the open-ended comparison operators —
+for example, `after date` with `value: 7 days ago`.
Relative bounds resolve when a query runs, not when the filter is seeded:
`["7 days ago", "today"]` produces SQL based on the current date (e.g.
@@ -379,10 +402,10 @@ rolls forward day over day. Both bounds are inclusive — `["7 days ago",
"today"]` covers 8 calendar days for daily data. In the workbook, the seeded
filter opens the date editor on the **Relative** tab showing its bounds.
-Values are case- and whitespace-insensitive. Bounds are validated: an
-unrecognized value, or a `between` filter with a single value, drops that
-filter entry with a browser-console warning — the remaining entries still
-apply, and view selection never breaks.
+Values are case- and whitespace-insensitive. Entries are validated: an
+unrecognized operator or value, or a `between` filter without exactly two
+bounds, drops that filter entry with a browser-console warning — the remaining
+entries still apply, and view selection never breaks.
Unlike [`default_filters`](#default_filters), which are enforced on every query
against the view, `default_ui_filters` only provide a starting point for the
diff --git a/lerna.json b/lerna.json
index 1430be3e1889d..641f853a99669 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "1.7.2",
+ "version": "1.7.3",
"npmClient": "yarn",
"command": {
"bootstrap": {
diff --git a/packages/cubejs-api-gateway/CHANGELOG.md b/packages/cubejs-api-gateway/CHANGELOG.md
index 0515a47050087..0576af75393d2 100644
--- a/packages/cubejs-api-gateway/CHANGELOG.md
+++ b/packages/cubejs-api-gateway/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/api-gateway
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/api-gateway
diff --git a/packages/cubejs-api-gateway/package.json b/packages/cubejs-api-gateway/package.json
index 2411d9d6d047e..d04f10a062755 100644
--- a/packages/cubejs-api-gateway/package.json
+++ b/packages/cubejs-api-gateway/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/api-gateway",
"description": "Cube API Gateway",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -27,9 +27,9 @@
"dist/src/*"
],
"dependencies": {
- "@cubejs-backend/native": "1.7.2",
- "@cubejs-backend/query-orchestrator": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/native": "1.7.3",
+ "@cubejs-backend/query-orchestrator": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"@ungap/structured-clone": "^0.3.4",
"assert-never": "^1.4.0",
"body-parser": "^1.19.0",
@@ -53,7 +53,7 @@
"zod": "^4.1.13"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
"@types/express": "^4.17.21",
"@types/jest": "^29",
"@types/jsonwebtoken": "^9.0.2",
diff --git a/packages/cubejs-athena-driver/CHANGELOG.md b/packages/cubejs-athena-driver/CHANGELOG.md
index 7e37926fb37b9..ab4ddb0b9dd1b 100644
--- a/packages/cubejs-athena-driver/CHANGELOG.md
+++ b/packages/cubejs-athena-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/athena-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/athena-driver
diff --git a/packages/cubejs-athena-driver/package.json b/packages/cubejs-athena-driver/package.json
index 902ab3b572ab1..85a07a9752c9d 100644
--- a/packages/cubejs-athena-driver/package.json
+++ b/packages/cubejs-athena-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/athena-driver",
"description": "Cube.js Athena database driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -30,13 +30,13 @@
"dependencies": {
"@aws-sdk/client-athena": "^3.22.0",
"@aws-sdk/credential-providers": "^3.22.0",
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"sqlstring": "^2.3.1"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
- "@cubejs-backend/testing-shared": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
+ "@cubejs-backend/testing-shared": "1.7.3",
"@types/ramda": "^0.27.40",
"typescript": "~5.2.2"
},
diff --git a/packages/cubejs-backend-cloud/CHANGELOG.md b/packages/cubejs-backend-cloud/CHANGELOG.md
index 66d7e05ef904b..e69d01153ffba 100644
--- a/packages/cubejs-backend-cloud/CHANGELOG.md
+++ b/packages/cubejs-backend-cloud/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/cloud
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/cloud
diff --git a/packages/cubejs-backend-cloud/package.json b/packages/cubejs-backend-cloud/package.json
index 88ca5f2547ffa..fb0f71db8c680 100644
--- a/packages/cubejs-backend-cloud/package.json
+++ b/packages/cubejs-backend-cloud/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-backend/cloud",
- "version": "1.7.2",
+ "version": "1.7.3",
"description": "Cube Cloud package",
"main": "dist/src/index.js",
"typings": "dist/src/index.d.ts",
@@ -30,7 +30,7 @@
"devDependencies": {
"@babel/core": "^7.24.5",
"@babel/preset-env": "^7.24.5",
- "@cubejs-backend/linter": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
"@types/fs-extra": "^9.0.8",
"@types/jest": "^29",
"jest": "^29",
@@ -38,7 +38,7 @@
},
"dependencies": {
"@cubejs-backend/dotenv": "^9.0.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/shared": "1.7.3",
"chokidar": "^3.5.1",
"env-var": "^6.3.0",
"form-data": "^4.0.0",
diff --git a/packages/cubejs-backend-maven/CHANGELOG.md b/packages/cubejs-backend-maven/CHANGELOG.md
index 1b2e0e248c617..f13634fafa17b 100644
--- a/packages/cubejs-backend-maven/CHANGELOG.md
+++ b/packages/cubejs-backend-maven/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/maven
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/maven
diff --git a/packages/cubejs-backend-maven/package.json b/packages/cubejs-backend-maven/package.json
index de5399f4b2dc8..901ca7128fc74 100644
--- a/packages/cubejs-backend-maven/package.json
+++ b/packages/cubejs-backend-maven/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/maven",
"description": "Cube.js Maven Wrapper for java dependencies downloading",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"license": "Apache-2.0",
"repository": {
"type": "git",
@@ -31,12 +31,12 @@
"dist/src/*"
],
"dependencies": {
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/shared": "1.7.3",
"source-map-support": "^0.5.19",
"xmlbuilder2": "^2.4.0"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
"@types/jest": "^29",
"@types/node": "^22",
"jest": "^29",
diff --git a/packages/cubejs-backend-native/CHANGELOG.md b/packages/cubejs-backend-native/CHANGELOG.md
index ff6c5a8ac68ab..93eb88cadeeb6 100644
--- a/packages/cubejs-backend-native/CHANGELOG.md
+++ b/packages/cubejs-backend-native/CHANGELOG.md
@@ -3,6 +3,13 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+### Bug Fixes
+
+- **cubesql:** Reject `ORDER BY` over ungrouped columns with a clear error ([#11249](https://github.com/cube-js/cube/issues/11249)) ([ff5eac9](https://github.com/cube-js/cube/commit/ff5eac95c5dcf7a7fb14d978ae2fd597ffd6bf5e))
+- **cubesql:** Support `HAVING` on a measure combined with `ORDER BY` on the same measure ([#11254](https://github.com/cube-js/cube/issues/11254)) ([23b199e](https://github.com/cube-js/cube/commit/23b199e03be75596e150eec551fef68aaedc8251))
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
### Performance Improvements
diff --git a/packages/cubejs-backend-native/package.json b/packages/cubejs-backend-native/package.json
index ae99e633e3f9f..bc0da2e99628d 100644
--- a/packages/cubejs-backend-native/package.json
+++ b/packages/cubejs-backend-native/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-backend/native",
- "version": "1.7.2",
+ "version": "1.7.3",
"author": "Cube Dev, Inc.",
"description": "Native module for Cube.js (binding to Rust codebase)",
"main": "dist/js/index.js",
@@ -39,7 +39,7 @@
"dist/js"
],
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
"@types/jest": "^29",
"@types/node": "^22",
"cargo-cp-artifact": "^0.1.9",
@@ -50,8 +50,8 @@
"uuid": "^8.3.2"
},
"dependencies": {
- "@cubejs-backend/cubesql": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/cubesql": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"@cubejs-infra/post-installer": "^0.0.7"
},
"resources": {
diff --git a/packages/cubejs-backend-shared/CHANGELOG.md b/packages/cubejs-backend-shared/CHANGELOG.md
index 0429d85fb9c98..fc26ba29904d9 100644
--- a/packages/cubejs-backend-shared/CHANGELOG.md
+++ b/packages/cubejs-backend-shared/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/shared
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/shared
diff --git a/packages/cubejs-backend-shared/package.json b/packages/cubejs-backend-shared/package.json
index ecff97a708059..0cbd61382ed31 100644
--- a/packages/cubejs-backend-shared/package.json
+++ b/packages/cubejs-backend-shared/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-backend/shared",
- "version": "1.7.2",
+ "version": "1.7.3",
"description": "Shared code for Cube.js backend packages",
"main": "dist/src/index.js",
"typings": "dist/src/index.d.ts",
@@ -27,7 +27,7 @@
},
"license": "Apache-2.0",
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
"@types/bytes": "^3.1.5",
"@types/cli-progress": "^3.9.1",
"@types/decompress": "^4.2.7",
diff --git a/packages/cubejs-base-driver/CHANGELOG.md b/packages/cubejs-base-driver/CHANGELOG.md
index 397930aea804e..3b0b8eb9e0685 100644
--- a/packages/cubejs-base-driver/CHANGELOG.md
+++ b/packages/cubejs-base-driver/CHANGELOG.md
@@ -3,6 +3,12 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+### Bug Fixes
+
+- **base-driver:** Handle NULL values in readOnly type detection (fix [#11094](https://github.com/cube-js/cube/issues/11094)) ([#11245](https://github.com/cube-js/cube/issues/11245)) ([f06bfb9](https://github.com/cube-js/cube/commit/f06bfb9875c285c63ac99b73a988c7ce1c61ca13))
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/base-driver
diff --git a/packages/cubejs-base-driver/package.json b/packages/cubejs-base-driver/package.json
index b31e965e89ff2..d178ebbeafc5c 100644
--- a/packages/cubejs-base-driver/package.json
+++ b/packages/cubejs-base-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/base-driver",
"description": "Cube.js Base Driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -33,11 +33,11 @@
"@aws-sdk/s3-request-presigner": "^3.49.0",
"@azure/identity": "^4.4.1",
"@azure/storage-blob": "^12.9.0",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/shared": "1.7.3",
"@google-cloud/storage": "^7.13.0"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
"@types/jest": "^29",
"@types/node": "^22",
"jest": "^29",
diff --git a/packages/cubejs-bigquery-driver/CHANGELOG.md b/packages/cubejs-bigquery-driver/CHANGELOG.md
index 2b9e446d25f0d..45fcd2a9f77d4 100644
--- a/packages/cubejs-bigquery-driver/CHANGELOG.md
+++ b/packages/cubejs-bigquery-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/bigquery-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/bigquery-driver
diff --git a/packages/cubejs-bigquery-driver/package.json b/packages/cubejs-bigquery-driver/package.json
index 5dcb21c4a5bc0..438ffd9b9373a 100644
--- a/packages/cubejs-bigquery-driver/package.json
+++ b/packages/cubejs-bigquery-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/bigquery-driver",
"description": "Cube.js BigQuery database driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -29,15 +29,15 @@
"main": "index.js",
"types": "dist/src/index.d.ts",
"dependencies": {
- "@cubejs-backend/base-driver": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
"@cubejs-backend/dotenv": "^9.0.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/shared": "1.7.3",
"@google-cloud/bigquery": "^7.7.0",
"@google-cloud/storage": "^7.13.0",
"ramda": "^0.27.2"
},
"devDependencies": {
- "@cubejs-backend/testing-shared": "1.7.2",
+ "@cubejs-backend/testing-shared": "1.7.3",
"@types/big.js": "^6.2.2",
"@types/dedent": "^0.7.0",
"@types/jest": "^29",
diff --git a/packages/cubejs-cli/CHANGELOG.md b/packages/cubejs-cli/CHANGELOG.md
index 5fe2a3762300c..0887b7e9c5884 100644
--- a/packages/cubejs-cli/CHANGELOG.md
+++ b/packages/cubejs-cli/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package cubejs-cli
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package cubejs-cli
diff --git a/packages/cubejs-cli/package.json b/packages/cubejs-cli/package.json
index 1d144f2f9295c..8aafa994daf07 100644
--- a/packages/cubejs-cli/package.json
+++ b/packages/cubejs-cli/package.json
@@ -2,7 +2,7 @@
"name": "cubejs-cli",
"description": "Cube.js Command Line Interface",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -30,10 +30,10 @@
"LICENSE"
],
"dependencies": {
- "@cubejs-backend/cloud": "1.7.2",
+ "@cubejs-backend/cloud": "1.7.3",
"@cubejs-backend/dotenv": "^9.0.2",
- "@cubejs-backend/schema-compiler": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/schema-compiler": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"chalk": "^2.4.2",
"cli-progress": "^3.10",
"commander": "^2.19.0",
@@ -50,8 +50,8 @@
"colors": "1.4.0"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
- "@cubejs-backend/server": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
+ "@cubejs-backend/server": "1.7.3",
"@oclif/command": "^1.8.0",
"@types/cli-progress": "^3.8.0",
"@types/cross-spawn": "^6.0.2",
diff --git a/packages/cubejs-clickhouse-driver/CHANGELOG.md b/packages/cubejs-clickhouse-driver/CHANGELOG.md
index a364c73518b37..c1ecc73490f03 100644
--- a/packages/cubejs-clickhouse-driver/CHANGELOG.md
+++ b/packages/cubejs-clickhouse-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/clickhouse-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/clickhouse-driver
diff --git a/packages/cubejs-clickhouse-driver/package.json b/packages/cubejs-clickhouse-driver/package.json
index 1c2bcfbd96069..4ea9c088a92c6 100644
--- a/packages/cubejs-clickhouse-driver/package.json
+++ b/packages/cubejs-clickhouse-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/clickhouse-driver",
"description": "Cube.js ClickHouse database driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -29,16 +29,16 @@
},
"dependencies": {
"@clickhouse/client": "^1.12.0",
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"moment": "^2.24.0",
"sqlstring": "^2.3.1",
"uuid": "^8.3.2"
},
"license": "Apache-2.0",
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
- "@cubejs-backend/testing-shared": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
+ "@cubejs-backend/testing-shared": "1.7.3",
"@types/jest": "^29",
"jest": "^29",
"typescript": "~5.2.2"
diff --git a/packages/cubejs-client-core/CHANGELOG.md b/packages/cubejs-client-core/CHANGELOG.md
index 819a8ee260fe7..d8b53bc7adf9d 100644
--- a/packages/cubejs-client-core/CHANGELOG.md
+++ b/packages/cubejs-client-core/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-client/core
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-client/core
diff --git a/packages/cubejs-client-core/package.json b/packages/cubejs-client-core/package.json
index 071429092e5dc..d00b0ab46c0df 100644
--- a/packages/cubejs-client-core/package.json
+++ b/packages/cubejs-client-core/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-client/core",
- "version": "1.7.2",
+ "version": "1.7.3",
"engines": {},
"type": "module",
"repository": {
@@ -57,7 +57,7 @@
],
"license": "MIT",
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
"@types/d3-format": "^3",
"@types/d3-time-format": "^4",
"@types/moment-range": "^4.0.0",
diff --git a/packages/cubejs-client-dx/CHANGELOG.md b/packages/cubejs-client-dx/CHANGELOG.md
index 175fbb4d680c8..867bf83129fdc 100644
--- a/packages/cubejs-client-dx/CHANGELOG.md
+++ b/packages/cubejs-client-dx/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-client/dx
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-client/dx
diff --git a/packages/cubejs-client-dx/package.json b/packages/cubejs-client-dx/package.json
index bc4e39f96c6d1..1334409e701fc 100644
--- a/packages/cubejs-client-dx/package.json
+++ b/packages/cubejs-client-dx/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-client/dx",
- "version": "1.7.2",
+ "version": "1.7.3",
"engines": {},
"repository": {
"type": "git",
diff --git a/packages/cubejs-client-ngx/CHANGELOG.md b/packages/cubejs-client-ngx/CHANGELOG.md
index 8ba40d1e96cd1..8b3ffa2a0a407 100644
--- a/packages/cubejs-client-ngx/CHANGELOG.md
+++ b/packages/cubejs-client-ngx/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-client/ngx
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-client/ngx
diff --git a/packages/cubejs-client-ngx/package.json b/packages/cubejs-client-ngx/package.json
index 6ae22b2455452..e88cb6faa1bf7 100644
--- a/packages/cubejs-client-ngx/package.json
+++ b/packages/cubejs-client-ngx/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-client/ngx",
- "version": "1.7.2",
+ "version": "1.7.3",
"author": "Cube Dev, Inc.",
"engines": {},
"repository": {
diff --git a/packages/cubejs-client-react/CHANGELOG.md b/packages/cubejs-client-react/CHANGELOG.md
index cde7ad0214b8b..2d9b0b58ede01 100644
--- a/packages/cubejs-client-react/CHANGELOG.md
+++ b/packages/cubejs-client-react/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-client/react
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-client/react
diff --git a/packages/cubejs-client-react/package.json b/packages/cubejs-client-react/package.json
index 74db73d447e84..f6186490257fe 100644
--- a/packages/cubejs-client-react/package.json
+++ b/packages/cubejs-client-react/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-client/react",
- "version": "1.7.2",
+ "version": "1.7.3",
"author": "Cube Dev, Inc.",
"license": "MIT",
"engines": {},
@@ -24,7 +24,7 @@
],
"dependencies": {
"@babel/runtime": "^7.1.2",
- "@cubejs-client/core": "1.7.2",
+ "@cubejs-client/core": "1.7.3",
"core-js": "^3.6.5",
"ramda": "^0.27.2"
},
diff --git a/packages/cubejs-client-vue3/CHANGELOG.md b/packages/cubejs-client-vue3/CHANGELOG.md
index e9fae1b878a55..27ca4dd1a8924 100644
--- a/packages/cubejs-client-vue3/CHANGELOG.md
+++ b/packages/cubejs-client-vue3/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-client/vue3
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-client/vue3
diff --git a/packages/cubejs-client-vue3/package.json b/packages/cubejs-client-vue3/package.json
index 7534678232557..444c857ed53c6 100644
--- a/packages/cubejs-client-vue3/package.json
+++ b/packages/cubejs-client-vue3/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-client/vue3",
- "version": "1.7.2",
+ "version": "1.7.3",
"engines": {},
"repository": {
"type": "git",
@@ -27,7 +27,7 @@
"src"
],
"dependencies": {
- "@cubejs-client/core": "1.7.2",
+ "@cubejs-client/core": "1.7.3",
"ramda": "^0.27.0"
},
"devDependencies": {
diff --git a/packages/cubejs-client-ws-transport/CHANGELOG.md b/packages/cubejs-client-ws-transport/CHANGELOG.md
index 1fac71611df77..aa715f7267c97 100644
--- a/packages/cubejs-client-ws-transport/CHANGELOG.md
+++ b/packages/cubejs-client-ws-transport/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-client/ws-transport
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-client/ws-transport
diff --git a/packages/cubejs-client-ws-transport/package.json b/packages/cubejs-client-ws-transport/package.json
index b7c05697e19e0..5e1e5c6d435ff 100644
--- a/packages/cubejs-client-ws-transport/package.json
+++ b/packages/cubejs-client-ws-transport/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-client/ws-transport",
- "version": "1.7.2",
+ "version": "1.7.3",
"engines": {},
"repository": {
"type": "git",
@@ -20,7 +20,7 @@
},
"dependencies": {
"@babel/runtime": "^7.1.2",
- "@cubejs-client/core": "1.7.2",
+ "@cubejs-client/core": "1.7.3",
"core-js": "^3.6.5",
"isomorphic-ws": "^4.0.1",
"ws": "^7.3.1"
@@ -33,7 +33,7 @@
"@babel/core": "^7.3.3",
"@babel/preset-env": "^7.3.1",
"@babel/preset-typescript": "^7.12.1",
- "@cubejs-backend/linter": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
"@types/ws": "^7.2.9",
"typescript": "~5.2.2"
},
diff --git a/packages/cubejs-crate-driver/CHANGELOG.md b/packages/cubejs-crate-driver/CHANGELOG.md
index 9d79d3f77469d..e210003d08105 100644
--- a/packages/cubejs-crate-driver/CHANGELOG.md
+++ b/packages/cubejs-crate-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/crate-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/crate-driver
diff --git a/packages/cubejs-crate-driver/package.json b/packages/cubejs-crate-driver/package.json
index 976f55e96ddd1..4c7bd05c6abae 100644
--- a/packages/cubejs-crate-driver/package.json
+++ b/packages/cubejs-crate-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/crate-driver",
"description": "Cube.js Crate database driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -24,17 +24,18 @@
"test": "yarn integration",
"integration": "npm run integration:crate",
"integration:crate": "jest --verbose dist/test",
+ "unit": "jest --forceExit --verbose dist/test/CrateDriver.unit.test.js",
"lint": "eslint src/* --ext .ts",
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/postgres-driver": "1.7.2",
- "@cubejs-backend/shared": "1.7.2"
+ "@cubejs-backend/postgres-driver": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3"
},
"license": "Apache-2.0",
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
- "@cubejs-backend/testing-shared": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
+ "@cubejs-backend/testing-shared": "1.7.3",
"testcontainers": "^10.28.0",
"typescript": "~5.2.2"
},
diff --git a/packages/cubejs-crate-driver/src/CrateDriver.ts b/packages/cubejs-crate-driver/src/CrateDriver.ts
index f031d64bb2d7a..7f31d24462650 100644
--- a/packages/cubejs-crate-driver/src/CrateDriver.ts
+++ b/packages/cubejs-crate-driver/src/CrateDriver.ts
@@ -14,4 +14,65 @@ export class CrateDriver extends PostgresDriver {
await this.loadUserDefinedTypes(conn);
}
+
+ /**
+ * CrateDB's Postgres-wire protocol does not accept bound parameters inside a
+ * `CREATE TABLE AS` statement -- it fails with "Requested parameter index
+ * exceeds the number of parameters: 0".
+ *
+ * The ParameterDescription message works for the most common use cases except for DDL statements
+ * https://cratedb.com/docs/crate/reference/en/latest/interfaces/postgres.html#extended-query
+ */
+ public async loadPreAggregationIntoTable(
+ preAggregationTableName: string,
+ loadSql: string,
+ params: unknown[],
+ options: any
+ ): Promise {
+ const result = await super.loadPreAggregationIntoTable(
+ preAggregationTableName,
+ CrateDriver.inlineParams(loadSql, params),
+ [],
+ options
+ );
+
+ // CrateDB is eventually consistent: rows written by the `CREATE TABLE AS`
+ // above are not visible to subsequent reads until the table is refreshed.
+ // Refresh so the freshly materialized pre-aggregation is immediately readable.
+ // See https://cratedb.com/docs/crate/reference/en/latest/general/dql/refresh.html
+ await this.query(`REFRESH TABLE ${preAggregationTableName}`, []);
+
+ return result;
+ }
+
+ protected static inlineParams(sql: string, params: unknown[]): string {
+ if (!params || params.length === 0) {
+ return sql;
+ }
+
+ return sql.replace(/\$(\d+)/g, (match, index) => {
+ const param = params[parseInt(index, 10) - 1];
+ return param === undefined ? match : CrateDriver.formatParam(param);
+ });
+ }
+
+ protected static formatParam(value: unknown): string {
+ if (value === null) {
+ return 'NULL';
+ }
+
+ if (typeof value === 'number') {
+ return `${value}`;
+ }
+
+ if (typeof value === 'boolean') {
+ return value ? 'TRUE' : 'FALSE';
+ }
+
+ if (value instanceof Date) {
+ return `'${value.toISOString()}'`;
+ }
+
+ return `'${String(value).replace(/'/g, '\'\'')}'`;
+ }
}
diff --git a/packages/cubejs-crate-driver/test/CrateDriver.unit.test.ts b/packages/cubejs-crate-driver/test/CrateDriver.unit.test.ts
new file mode 100644
index 0000000000000..1ef6b73ff0fdf
--- /dev/null
+++ b/packages/cubejs-crate-driver/test/CrateDriver.unit.test.ts
@@ -0,0 +1,69 @@
+import { CrateDriver } from '../src';
+
+class CrateDriverExtended extends CrateDriver {
+ public static inlineParams(sql: string, params: unknown[]): string {
+ return super.inlineParams(sql, params);
+ }
+
+ public static formatParam(value: unknown): string {
+ return super.formatParam(value);
+ }
+}
+
+describe('CrateDriver', () => {
+ it('formatParam formats values by type', () => {
+ // strings are quoted, single quotes doubled
+ expect(CrateDriverExtended.formatParam('abc')).toBe('\'abc\'');
+ expect(CrateDriverExtended.formatParam('O\'Brien')).toBe('\'O\'\'Brien\'');
+ expect(CrateDriverExtended.formatParam('a\'b\'c')).toBe('\'a\'\'b\'\'c\'');
+
+ expect(CrateDriverExtended.formatParam(42)).toBe('42');
+ expect(CrateDriverExtended.formatParam(3.14)).toBe('3.14');
+ expect(CrateDriverExtended.formatParam(0)).toBe('0');
+
+ expect(CrateDriverExtended.formatParam(true)).toBe('TRUE');
+ expect(CrateDriverExtended.formatParam(false)).toBe('FALSE');
+
+ expect(CrateDriverExtended.formatParam(null)).toBe('NULL');
+ expect(CrateDriverExtended.formatParam(new Date('2020-01-01T00:00:00.000Z'))).toBe(
+ '\'2020-01-01T00:00:00.000Z\''
+ );
+ });
+
+ describe('inlineParams', () => {
+ it('returns the SQL unchanged when there are no params', () => {
+ expect(CrateDriverExtended.inlineParams('SELECT 1', [])).toBe('SELECT 1');
+ });
+
+ it('inlines a single string param and keeps a trailing cast', () => {
+ expect(CrateDriverExtended.inlineParams('... WHERE d >= $1::timestamptz', ['2020-01-01T00:00:00.000Z']))
+ .toBe('... WHERE d >= \'2020-01-01T00:00:00.000Z\'::timestamptz');
+ });
+
+ it('inlines multiple params by position', () => {
+ expect(CrateDriverExtended.inlineParams('a = $1 AND b = $2', ['x', 7])).toBe('a = \'x\' AND b = 7');
+ });
+
+ it('handles multi-digit placeholders like $10', () => {
+ const params = Array.from({ length: 10 }, (_, i) => i + 1);
+ expect(CrateDriverExtended.inlineParams('v = $10', params)).toBe('v = 10');
+ });
+
+ it('escapes single quotes so a value cannot break the statement', () => {
+ expect(CrateDriverExtended.inlineParams('name = $1', ['O\'Brien'])).toBe('name = \'O\'\'Brien\'');
+ });
+
+ it('leaves a placeholder without a matching param intact', () => {
+ expect(CrateDriverExtended.inlineParams('a = $1 AND b = $2', ['only'])).toBe('a = \'only\' AND b = $2');
+ });
+
+ it('inlines the partitioned pre-aggregation CTAS time bounds', () => {
+ const sql = 'CREATE TABLE pa AS (SELECT sum("t".v) FROM t AS "t" '
+ + 'WHERE ("t".d >= $1::timestamptz AND "t".d <= $2::timestamptz) GROUP BY 1)';
+ const out = CrateDriverExtended.inlineParams(sql, ['2020-01-01T00:00:00.000Z', '2020-01-31T23:59:59.999Z']);
+ expect(out).not.toMatch(/\$\d/);
+ expect(out).toContain('\'2020-01-01T00:00:00.000Z\'::timestamptz');
+ expect(out).toContain('\'2020-01-31T23:59:59.999Z\'::timestamptz');
+ });
+ });
+});
diff --git a/packages/cubejs-cubestore-driver/CHANGELOG.md b/packages/cubejs-cubestore-driver/CHANGELOG.md
index b1b5ae1c06775..421af7e1e0533 100644
--- a/packages/cubejs-cubestore-driver/CHANGELOG.md
+++ b/packages/cubejs-cubestore-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/cubestore-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/cubestore-driver
diff --git a/packages/cubejs-cubestore-driver/package.json b/packages/cubejs-cubestore-driver/package.json
index 842ce1ea73bf3..dc4b001859b5c 100644
--- a/packages/cubejs-cubestore-driver/package.json
+++ b/packages/cubejs-cubestore-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/cubestore-driver",
"description": "Cube Store driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -26,10 +26,10 @@
"lint:fix": "eslint --fix src/*.ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/cubestore": "1.7.2",
- "@cubejs-backend/native": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/cubestore": "1.7.3",
+ "@cubejs-backend/native": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"csv-write-stream": "^2.0.0",
"flatbuffers": "25.9.23",
"fs-extra": "^9.1.0",
@@ -40,7 +40,7 @@
"ws": "^7.4.3"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
"@types/csv-write-stream": "^2.0.0",
"@types/jest": "^29",
"@types/node": "^22",
diff --git a/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md b/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md
index 5f965cb941eba..8a4c0f8b992d0 100644
--- a/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md
+++ b/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/databricks-jdbc-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/databricks-jdbc-driver
diff --git a/packages/cubejs-databricks-jdbc-driver/package.json b/packages/cubejs-databricks-jdbc-driver/package.json
index 8626aedeb4fcb..12e9fecf4bce3 100644
--- a/packages/cubejs-databricks-jdbc-driver/package.json
+++ b/packages/cubejs-databricks-jdbc-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/databricks-jdbc-driver",
"description": "Cube.js Databricks database driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"license": "Apache-2.0",
"repository": {
"type": "git",
@@ -30,17 +30,17 @@
"bin"
],
"dependencies": {
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/jdbc-driver": "1.7.2",
- "@cubejs-backend/schema-compiler": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/jdbc-driver": "1.7.3",
+ "@cubejs-backend/schema-compiler": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"node-fetch": "^2.6.1",
"ramda": "^0.27.2",
"source-map-support": "^0.5.19",
"uuid": "^8.3.2"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
"@types/jest": "^29",
"@types/node": "^22",
"@types/ramda": "^0.27.34",
diff --git a/packages/cubejs-dbt-schema-extension/CHANGELOG.md b/packages/cubejs-dbt-schema-extension/CHANGELOG.md
index 75edf3dd44f24..087e11614462c 100644
--- a/packages/cubejs-dbt-schema-extension/CHANGELOG.md
+++ b/packages/cubejs-dbt-schema-extension/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/dbt-schema-extension
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/dbt-schema-extension
diff --git a/packages/cubejs-dbt-schema-extension/package.json b/packages/cubejs-dbt-schema-extension/package.json
index 3dcc08a1e323c..d40870eebec39 100644
--- a/packages/cubejs-dbt-schema-extension/package.json
+++ b/packages/cubejs-dbt-schema-extension/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/dbt-schema-extension",
"description": "Cube.js dbt Schema Extension",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -25,14 +25,14 @@
"lint:fix": "eslint --fix src/* --ext .ts,.js"
},
"dependencies": {
- "@cubejs-backend/schema-compiler": "1.7.2",
+ "@cubejs-backend/schema-compiler": "1.7.3",
"fs-extra": "^9.1.0",
"inflection": "^1.12.0",
"node-fetch": "^2.6.1"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
- "@cubejs-backend/testing": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
+ "@cubejs-backend/testing": "1.7.3",
"@types/jest": "^29",
"jest": "^29",
"stream-to-array": "^2.3.0",
diff --git a/packages/cubejs-docker/CHANGELOG.md b/packages/cubejs-docker/CHANGELOG.md
index 1c88ffda96e93..66d60ca46a0a3 100644
--- a/packages/cubejs-docker/CHANGELOG.md
+++ b/packages/cubejs-docker/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/docker
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/docker
diff --git a/packages/cubejs-docker/package.json b/packages/cubejs-docker/package.json
index e28f44de90925..f08b75880c9f0 100644
--- a/packages/cubejs-docker/package.json
+++ b/packages/cubejs-docker/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-backend/docker",
- "version": "1.7.2",
+ "version": "1.7.3",
"description": "Cube.js In Docker (virtual package)",
"author": "Cube Dev, Inc.",
"license": "Apache-2.0",
@@ -9,34 +9,34 @@
"node": ">=20.0.0"
},
"dependencies": {
- "@cubejs-backend/athena-driver": "1.7.2",
- "@cubejs-backend/bigquery-driver": "1.7.2",
- "@cubejs-backend/clickhouse-driver": "1.7.2",
- "@cubejs-backend/crate-driver": "1.7.2",
- "@cubejs-backend/databricks-jdbc-driver": "1.7.2",
- "@cubejs-backend/dbt-schema-extension": "1.7.2",
- "@cubejs-backend/dremio-driver": "1.7.2",
- "@cubejs-backend/druid-driver": "1.7.2",
- "@cubejs-backend/duckdb-driver": "1.7.2",
- "@cubejs-backend/firebolt-driver": "1.7.2",
- "@cubejs-backend/hive-driver": "1.7.2",
- "@cubejs-backend/ksql-driver": "1.7.2",
- "@cubejs-backend/materialize-driver": "1.7.2",
- "@cubejs-backend/mongobi-driver": "1.7.2",
- "@cubejs-backend/mssql-driver": "1.7.2",
- "@cubejs-backend/mysql-driver": "1.7.2",
- "@cubejs-backend/oracle-driver": "1.7.2",
- "@cubejs-backend/pinot-driver": "1.7.2",
- "@cubejs-backend/postgres-driver": "1.7.2",
- "@cubejs-backend/prestodb-driver": "1.7.2",
- "@cubejs-backend/questdb-driver": "1.7.2",
- "@cubejs-backend/redshift-driver": "1.7.2",
- "@cubejs-backend/server": "1.7.2",
- "@cubejs-backend/snowflake-driver": "1.7.2",
- "@cubejs-backend/sqlite-driver": "1.7.2",
- "@cubejs-backend/trino-driver": "1.7.2",
- "@cubejs-backend/vertica-driver": "1.7.2",
- "cubejs-cli": "1.7.2",
+ "@cubejs-backend/athena-driver": "1.7.3",
+ "@cubejs-backend/bigquery-driver": "1.7.3",
+ "@cubejs-backend/clickhouse-driver": "1.7.3",
+ "@cubejs-backend/crate-driver": "1.7.3",
+ "@cubejs-backend/databricks-jdbc-driver": "1.7.3",
+ "@cubejs-backend/dbt-schema-extension": "1.7.3",
+ "@cubejs-backend/dremio-driver": "1.7.3",
+ "@cubejs-backend/druid-driver": "1.7.3",
+ "@cubejs-backend/duckdb-driver": "1.7.3",
+ "@cubejs-backend/firebolt-driver": "1.7.3",
+ "@cubejs-backend/hive-driver": "1.7.3",
+ "@cubejs-backend/ksql-driver": "1.7.3",
+ "@cubejs-backend/materialize-driver": "1.7.3",
+ "@cubejs-backend/mongobi-driver": "1.7.3",
+ "@cubejs-backend/mssql-driver": "1.7.3",
+ "@cubejs-backend/mysql-driver": "1.7.3",
+ "@cubejs-backend/oracle-driver": "1.7.3",
+ "@cubejs-backend/pinot-driver": "1.7.3",
+ "@cubejs-backend/postgres-driver": "1.7.3",
+ "@cubejs-backend/prestodb-driver": "1.7.3",
+ "@cubejs-backend/questdb-driver": "1.7.3",
+ "@cubejs-backend/redshift-driver": "1.7.3",
+ "@cubejs-backend/server": "1.7.3",
+ "@cubejs-backend/snowflake-driver": "1.7.3",
+ "@cubejs-backend/sqlite-driver": "1.7.3",
+ "@cubejs-backend/trino-driver": "1.7.3",
+ "@cubejs-backend/vertica-driver": "1.7.3",
+ "cubejs-cli": "1.7.3",
"typescript": "~5.2.2"
},
"resolutions": {
diff --git a/packages/cubejs-dremio-driver/CHANGELOG.md b/packages/cubejs-dremio-driver/CHANGELOG.md
index c050dd291fefe..3962d18e397e2 100644
--- a/packages/cubejs-dremio-driver/CHANGELOG.md
+++ b/packages/cubejs-dremio-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/dremio-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/dremio-driver
diff --git a/packages/cubejs-dremio-driver/package.json b/packages/cubejs-dremio-driver/package.json
index f6fcf6d9ce9ef..04c64cac03c52 100644
--- a/packages/cubejs-dremio-driver/package.json
+++ b/packages/cubejs-dremio-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/dremio-driver",
"description": "Cube.js Dremio driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -22,15 +22,15 @@
"lint:fix": "eslint driver/*.js"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/schema-compiler": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/schema-compiler": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"axios": "^1.8.3",
"sqlstring": "^2.3.1"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
- "@cubejs-backend/testing-shared": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
+ "@cubejs-backend/testing-shared": "1.7.3",
"jest": "^29"
},
"license": "Apache-2.0",
diff --git a/packages/cubejs-druid-driver/CHANGELOG.md b/packages/cubejs-druid-driver/CHANGELOG.md
index a005e18b4e1cf..d8119f33852ae 100644
--- a/packages/cubejs-druid-driver/CHANGELOG.md
+++ b/packages/cubejs-druid-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/druid-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/druid-driver
diff --git a/packages/cubejs-druid-driver/package.json b/packages/cubejs-druid-driver/package.json
index 0ea58699d3a5d..48e2564e1d3e1 100644
--- a/packages/cubejs-druid-driver/package.json
+++ b/packages/cubejs-druid-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/druid-driver",
"description": "Cube.js Druid database driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"license": "Apache-2.0",
"repository": {
"type": "git",
@@ -28,13 +28,13 @@
"dist/src/*"
],
"dependencies": {
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/schema-compiler": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/schema-compiler": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"axios": "^1.8.3"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
"@types/jest": "^29",
"@types/node": "^22",
"jest": "^29",
diff --git a/packages/cubejs-duckdb-driver/CHANGELOG.md b/packages/cubejs-duckdb-driver/CHANGELOG.md
index 21749a02fdf2c..054e180095d6b 100644
--- a/packages/cubejs-duckdb-driver/CHANGELOG.md
+++ b/packages/cubejs-duckdb-driver/CHANGELOG.md
@@ -3,6 +3,12 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+### Bug Fixes
+
+- **duckdb-driver:** Invalid SQL for custom granularities ([#11272](https://github.com/cube-js/cube/issues/11272)) ([7850aab](https://github.com/cube-js/cube/commit/7850aab6b291e486c5d1a9597da40d2ae021a755))
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/duckdb-driver
diff --git a/packages/cubejs-duckdb-driver/package.json b/packages/cubejs-duckdb-driver/package.json
index 5828aed54e38c..82e0a243a31e5 100644
--- a/packages/cubejs-duckdb-driver/package.json
+++ b/packages/cubejs-duckdb-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/duckdb-driver",
"description": "Cube DuckDB database driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -27,15 +27,15 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/schema-compiler": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/schema-compiler": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"duckdb": "^1.4.1"
},
"license": "Apache-2.0",
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
- "@cubejs-backend/testing-shared": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
+ "@cubejs-backend/testing-shared": "1.7.3",
"@types/jest": "^29",
"@types/node": "^22",
"jest": "^29",
diff --git a/packages/cubejs-duckdb-driver/src/DuckDBQuery.ts b/packages/cubejs-duckdb-driver/src/DuckDBQuery.ts
index 567374a0b993c..758cea95c5b57 100644
--- a/packages/cubejs-duckdb-driver/src/DuckDBQuery.ts
+++ b/packages/cubejs-duckdb-driver/src/DuckDBQuery.ts
@@ -47,7 +47,7 @@ export class DuckDBQuery extends BaseQuery {
const timeUnit = this.diffTimeUnitForInterval(interval);
const beginOfTime = this.dateTimeCast('\'1970-01-01 00:00:00.000\'');
- return `${this.dateTimeCast(`'${origin}'`)}' + INTERVAL '${interval}' *
+ return `${this.dateTimeCast(`'${origin}'`)} + INTERVAL '${interval}' *
floor(
date_diff('${timeUnit}', ${this.dateTimeCast(`'${origin}'`)}, ${source}) /
date_diff('${timeUnit}', ${beginOfTime}, ${beginOfTime} + INTERVAL '${interval}')
diff --git a/packages/cubejs-firebolt-driver/CHANGELOG.md b/packages/cubejs-firebolt-driver/CHANGELOG.md
index 265b42aa0d30d..c418cfcd46765 100644
--- a/packages/cubejs-firebolt-driver/CHANGELOG.md
+++ b/packages/cubejs-firebolt-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/firebolt-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/firebolt-driver
diff --git a/packages/cubejs-firebolt-driver/package.json b/packages/cubejs-firebolt-driver/package.json
index 2b49bb13464b6..5cc7e2771ed1f 100644
--- a/packages/cubejs-firebolt-driver/package.json
+++ b/packages/cubejs-firebolt-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/firebolt-driver",
"description": "Cube.js Firebolt database driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -28,15 +28,15 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/schema-compiler": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/schema-compiler": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"firebolt-sdk": "1.10.0"
},
"license": "Apache-2.0",
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
- "@cubejs-backend/testing-shared": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
+ "@cubejs-backend/testing-shared": "1.7.3",
"typescript": "~5.2.2"
},
"publishConfig": {
diff --git a/packages/cubejs-hive-driver/CHANGELOG.md b/packages/cubejs-hive-driver/CHANGELOG.md
index 11ed4b576a260..9d14e9eff9348 100644
--- a/packages/cubejs-hive-driver/CHANGELOG.md
+++ b/packages/cubejs-hive-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/hive-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/hive-driver
diff --git a/packages/cubejs-hive-driver/package.json b/packages/cubejs-hive-driver/package.json
index 8e079e6da7421..fcbd7f0381f47 100644
--- a/packages/cubejs-hive-driver/package.json
+++ b/packages/cubejs-hive-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/hive-driver",
"description": "Cube.js Hive database driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -17,8 +17,8 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"jshs2": "^0.4.4",
"sasl-plain": "^0.1.0",
"saslmechanisms": "^0.1.1",
@@ -27,7 +27,7 @@
},
"license": "Apache-2.0",
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2"
+ "@cubejs-backend/linter": "1.7.3"
},
"publishConfig": {
"access": "public"
diff --git a/packages/cubejs-jdbc-driver/CHANGELOG.md b/packages/cubejs-jdbc-driver/CHANGELOG.md
index fd1b8282249b2..3233874633f04 100644
--- a/packages/cubejs-jdbc-driver/CHANGELOG.md
+++ b/packages/cubejs-jdbc-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/jdbc-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/jdbc-driver
diff --git a/packages/cubejs-jdbc-driver/package.json b/packages/cubejs-jdbc-driver/package.json
index 432d205272c15..54eecc000341d 100644
--- a/packages/cubejs-jdbc-driver/package.json
+++ b/packages/cubejs-jdbc-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/jdbc-driver",
"description": "Cube.js JDBC database driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -25,9 +25,9 @@
"index.js"
],
"dependencies": {
- "@cubejs-backend/base-driver": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
"@cubejs-backend/node-java-maven": "^0.1.3",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/shared": "1.7.3",
"sqlstring": "^2.3.0"
},
"optionalDependencies": {
@@ -42,7 +42,7 @@
"testEnvironment": "node"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
"@types/node": "^22",
"@types/sqlstring": "^2.3.0",
"typescript": "~5.2.2"
diff --git a/packages/cubejs-ksql-driver/CHANGELOG.md b/packages/cubejs-ksql-driver/CHANGELOG.md
index 5830a7c5fa2b6..29abe4b67c5f9 100644
--- a/packages/cubejs-ksql-driver/CHANGELOG.md
+++ b/packages/cubejs-ksql-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/ksql-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/ksql-driver
diff --git a/packages/cubejs-ksql-driver/package.json b/packages/cubejs-ksql-driver/package.json
index 43ea2c6da177e..7979bac53c7e2 100644
--- a/packages/cubejs-ksql-driver/package.json
+++ b/packages/cubejs-ksql-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/ksql-driver",
"description": "Cube.js ksql database driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -25,9 +25,9 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/schema-compiler": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/schema-compiler": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"async-mutex": "0.3.2",
"axios": "^1.8.3",
"kafkajs": "^2.2.3",
@@ -41,7 +41,7 @@
"extends": "../cubejs-linter"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
"typescript": "~5.2.2"
}
}
diff --git a/packages/cubejs-linter/CHANGELOG.md b/packages/cubejs-linter/CHANGELOG.md
index b593cab523bb5..a55152b2141b8 100644
--- a/packages/cubejs-linter/CHANGELOG.md
+++ b/packages/cubejs-linter/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/linter
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/linter
diff --git a/packages/cubejs-linter/package.json b/packages/cubejs-linter/package.json
index 0a5b2acade6d1..c37ec76fe50b0 100644
--- a/packages/cubejs-linter/package.json
+++ b/packages/cubejs-linter/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/linter",
"description": "Cube.js ESLint (virtual package) for linting code",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
diff --git a/packages/cubejs-materialize-driver/CHANGELOG.md b/packages/cubejs-materialize-driver/CHANGELOG.md
index 7a4778c73f4d5..effda5bf12230 100644
--- a/packages/cubejs-materialize-driver/CHANGELOG.md
+++ b/packages/cubejs-materialize-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/materialize-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/materialize-driver
diff --git a/packages/cubejs-materialize-driver/package.json b/packages/cubejs-materialize-driver/package.json
index ddb35fc9b6760..1308f825ab194 100644
--- a/packages/cubejs-materialize-driver/package.json
+++ b/packages/cubejs-materialize-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/materialize-driver",
"description": "Cube.js Materialize database driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -27,15 +27,15 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/postgres-driver": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/postgres-driver": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"semver": "^7.6.3"
},
"license": "Apache-2.0",
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
- "@cubejs-backend/testing": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
+ "@cubejs-backend/testing": "1.7.3",
"typescript": "~5.2.2"
},
"publishConfig": {
diff --git a/packages/cubejs-mongobi-driver/CHANGELOG.md b/packages/cubejs-mongobi-driver/CHANGELOG.md
index c84f5e96e639e..5345095983d15 100644
--- a/packages/cubejs-mongobi-driver/CHANGELOG.md
+++ b/packages/cubejs-mongobi-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/mongobi-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/mongobi-driver
diff --git a/packages/cubejs-mongobi-driver/package.json b/packages/cubejs-mongobi-driver/package.json
index 9b0b10f655b6b..b4a546db4cf3f 100644
--- a/packages/cubejs-mongobi-driver/package.json
+++ b/packages/cubejs-mongobi-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/mongobi-driver",
"description": "Cube.js MongoBI driver",
"author": "krunalsabnis@gmail.com",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -27,8 +27,8 @@
"integration:mongobi": "jest dist/test"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"@types/node": "^22",
"moment": "^2.29.1",
"mysql2": "^3.11.5"
@@ -38,7 +38,7 @@
"access": "public"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
"testcontainers": "^10.28.0",
"typescript": "~5.2.2"
},
diff --git a/packages/cubejs-mssql-driver/CHANGELOG.md b/packages/cubejs-mssql-driver/CHANGELOG.md
index d62191f3824df..11568c2afb140 100644
--- a/packages/cubejs-mssql-driver/CHANGELOG.md
+++ b/packages/cubejs-mssql-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/mssql-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/mssql-driver
diff --git a/packages/cubejs-mssql-driver/package.json b/packages/cubejs-mssql-driver/package.json
index 529003b01e3ec..1fceb9e7dbbc0 100644
--- a/packages/cubejs-mssql-driver/package.json
+++ b/packages/cubejs-mssql-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/mssql-driver",
"description": "Cube.js MS SQL database driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -25,8 +25,8 @@
"lint:fix": "eslint --fix src/* --ext .ts,.js"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"mssql": "^11.0.1"
},
"devDependencies": {
diff --git a/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md b/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md
index ef16e3050e435..8974e2aab6232 100644
--- a/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md
+++ b/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/mysql-aurora-serverless-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/mysql-aurora-serverless-driver
diff --git a/packages/cubejs-mysql-aurora-serverless-driver/package.json b/packages/cubejs-mysql-aurora-serverless-driver/package.json
index c94e1df1f2655..dff5c84001b13 100644
--- a/packages/cubejs-mysql-aurora-serverless-driver/package.json
+++ b/packages/cubejs-mysql-aurora-serverless-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/mysql-aurora-serverless-driver",
"description": "Cube.js Aurora Serverless Mysql database driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -21,14 +21,14 @@
"lint": "eslint driver/*.js test/*.js"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"@types/mysql": "^2.15.15",
"aws-sdk": "^2.787.0",
"data-api-client": "^1.1.0"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
"@types/data-api-client": "^1.2.1",
"@types/jest": "^29",
"jest": "^29",
diff --git a/packages/cubejs-mysql-driver/CHANGELOG.md b/packages/cubejs-mysql-driver/CHANGELOG.md
index 6fc85d578547b..b2eb2e3cdceee 100644
--- a/packages/cubejs-mysql-driver/CHANGELOG.md
+++ b/packages/cubejs-mysql-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/mysql-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/mysql-driver
diff --git a/packages/cubejs-mysql-driver/package.json b/packages/cubejs-mysql-driver/package.json
index de512981adb2d..1c977bf9a551f 100644
--- a/packages/cubejs-mysql-driver/package.json
+++ b/packages/cubejs-mysql-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/mysql-driver",
"description": "Cube.js Mysql database driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -27,13 +27,13 @@
"lint:fix": "eslint --fix src/* test/* --ext .ts,.js"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"mysql2": "^3.16.1"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
- "@cubejs-backend/testing-shared": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
+ "@cubejs-backend/testing-shared": "1.7.3",
"@types/jest": "^29",
"jest": "^29",
"stream-to-array": "^2.3.0",
diff --git a/packages/cubejs-oracle-driver/CHANGELOG.md b/packages/cubejs-oracle-driver/CHANGELOG.md
index f772ba5abeffc..ee281dea07d20 100644
--- a/packages/cubejs-oracle-driver/CHANGELOG.md
+++ b/packages/cubejs-oracle-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/oracle-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/oracle-driver
diff --git a/packages/cubejs-oracle-driver/package.json b/packages/cubejs-oracle-driver/package.json
index f8b66a63c53d5..7ae608f655759 100644
--- a/packages/cubejs-oracle-driver/package.json
+++ b/packages/cubejs-oracle-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/oracle-driver",
"description": "Cube.js oracle database driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -13,8 +13,8 @@
},
"main": "driver/OracleDriver.js",
"dependencies": {
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"ramda": "^0.27.0"
},
"devDependencies": {
diff --git a/packages/cubejs-pinot-driver/CHANGELOG.md b/packages/cubejs-pinot-driver/CHANGELOG.md
index 1ec5ef967c68c..4d0a7006af893 100644
--- a/packages/cubejs-pinot-driver/CHANGELOG.md
+++ b/packages/cubejs-pinot-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/pinot-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
### Bug Fixes
diff --git a/packages/cubejs-pinot-driver/package.json b/packages/cubejs-pinot-driver/package.json
index 69b4ac43a4fa0..a3e9a5ff54d39 100644
--- a/packages/cubejs-pinot-driver/package.json
+++ b/packages/cubejs-pinot-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/pinot-driver",
"description": "Cube.js Pinot database driver",
"author": "Julian Ronsse, InTheMemory, Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -27,9 +27,9 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/schema-compiler": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/schema-compiler": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"node-fetch": "^2.6.1",
"ramda": "^0.27.2",
"sqlstring": "^2.3.3"
@@ -39,7 +39,7 @@
"access": "public"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
"@types/jest": "^29",
"jest": "^29",
"should": "^13.2.3",
diff --git a/packages/cubejs-playground/CHANGELOG.md b/packages/cubejs-playground/CHANGELOG.md
index d2023910e5779..e058b8b9df4c9 100644
--- a/packages/cubejs-playground/CHANGELOG.md
+++ b/packages/cubejs-playground/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-client/playground
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-client/playground
diff --git a/packages/cubejs-playground/package.json b/packages/cubejs-playground/package.json
index 98520a329769e..8a4cdd5863f39 100644
--- a/packages/cubejs-playground/package.json
+++ b/packages/cubejs-playground/package.json
@@ -1,7 +1,7 @@
{
"name": "@cubejs-client/playground",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"engines": {},
"repository": {
"type": "git",
@@ -68,8 +68,8 @@
"@ant-design/compatible": "^1.0.1",
"@ant-design/icons": "^5.3.5",
"@cube-dev/ui-kit": "0.52.3",
- "@cubejs-client/core": "1.7.2",
- "@cubejs-client/react": "1.7.2",
+ "@cubejs-client/core": "1.7.3",
+ "@cubejs-client/react": "1.7.3",
"@types/flexsearch": "^0.7.3",
"@types/node": "^22",
"@types/react": "^18.3.4",
diff --git a/packages/cubejs-postgres-driver/CHANGELOG.md b/packages/cubejs-postgres-driver/CHANGELOG.md
index 4fe77bb8dbe94..424c844228653 100644
--- a/packages/cubejs-postgres-driver/CHANGELOG.md
+++ b/packages/cubejs-postgres-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/postgres-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/postgres-driver
diff --git a/packages/cubejs-postgres-driver/package.json b/packages/cubejs-postgres-driver/package.json
index e195a84821abc..b9e33ae9efd25 100644
--- a/packages/cubejs-postgres-driver/package.json
+++ b/packages/cubejs-postgres-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/postgres-driver",
"description": "Cube.js Postgres database driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -27,8 +27,8 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"@types/pg": "^8.16.0",
"@types/pg-query-stream": "^1.0.3",
"pg": "^8.18.0",
@@ -36,8 +36,8 @@
},
"license": "Apache-2.0",
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
- "@cubejs-backend/testing-shared": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
+ "@cubejs-backend/testing-shared": "1.7.3",
"testcontainers": "^10.28.0",
"typescript": "~5.2.2"
},
diff --git a/packages/cubejs-prestodb-driver/CHANGELOG.md b/packages/cubejs-prestodb-driver/CHANGELOG.md
index 1799680abe54f..5aa81fd084cb4 100644
--- a/packages/cubejs-prestodb-driver/CHANGELOG.md
+++ b/packages/cubejs-prestodb-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/prestodb-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/prestodb-driver
diff --git a/packages/cubejs-prestodb-driver/package.json b/packages/cubejs-prestodb-driver/package.json
index 5919688e7f2d5..f647f9138ef2d 100644
--- a/packages/cubejs-prestodb-driver/package.json
+++ b/packages/cubejs-prestodb-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/prestodb-driver",
"description": "Cube.js Presto database driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -28,8 +28,8 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"presto-client": "1.2.0",
"ramda": "^0.27.0",
"sqlstring": "^2.3.1"
@@ -39,7 +39,7 @@
"access": "public"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
"@types/jest": "^29",
"jest": "^29",
"should": "^13.2.3",
diff --git a/packages/cubejs-query-orchestrator/CHANGELOG.md b/packages/cubejs-query-orchestrator/CHANGELOG.md
index 362a0bcdd6329..75fa564741e2b 100644
--- a/packages/cubejs-query-orchestrator/CHANGELOG.md
+++ b/packages/cubejs-query-orchestrator/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/query-orchestrator
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/query-orchestrator
diff --git a/packages/cubejs-query-orchestrator/package.json b/packages/cubejs-query-orchestrator/package.json
index 905fb70d0ffb0..4855ce0a35db2 100644
--- a/packages/cubejs-query-orchestrator/package.json
+++ b/packages/cubejs-query-orchestrator/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/query-orchestrator",
"description": "Cube.js Query Orchestrator and Cache",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -29,15 +29,15 @@
"dist/src/*"
],
"dependencies": {
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/cubestore-driver": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/cubestore-driver": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"csv-write-stream": "^2.0.0",
"lru-cache": "^11.1.0",
"ramda": "^0.27.2"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
"@types/jest": "^29",
"@types/node": "^22",
"@types/ramda": "^0.27.32",
diff --git a/packages/cubejs-questdb-driver/CHANGELOG.md b/packages/cubejs-questdb-driver/CHANGELOG.md
index 8da1fa1917819..abd55dd4b8395 100644
--- a/packages/cubejs-questdb-driver/CHANGELOG.md
+++ b/packages/cubejs-questdb-driver/CHANGELOG.md
@@ -3,6 +3,12 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+### Features
+
+- **questdb-driver:** Initial support for Tesseract, add integration tests ([#11259](https://github.com/cube-js/cube/issues/11259)) ([e6cd6e1](https://github.com/cube-js/cube/commit/e6cd6e12a05b256509fc94639e6bc3b2c7a1bb65))
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/questdb-driver
diff --git a/packages/cubejs-questdb-driver/package.json b/packages/cubejs-questdb-driver/package.json
index f0398d8ff044e..d6a2a16ffe373 100644
--- a/packages/cubejs-questdb-driver/package.json
+++ b/packages/cubejs-questdb-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/questdb-driver",
"description": "Cube.js QuestDB database driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -27,9 +27,9 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/schema-compiler": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/schema-compiler": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"@types/pg": "^8.6.0",
"moment": "^2.24.0",
"pg": "^8.7.0",
@@ -37,8 +37,8 @@
},
"license": "Apache-2.0",
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
- "@cubejs-backend/testing-shared": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
+ "@cubejs-backend/testing-shared": "1.7.3",
"testcontainers": "^10.28.0",
"typescript": "~5.2.2"
},
diff --git a/packages/cubejs-redshift-driver/CHANGELOG.md b/packages/cubejs-redshift-driver/CHANGELOG.md
index 7027660a41550..836c0f6af8a76 100644
--- a/packages/cubejs-redshift-driver/CHANGELOG.md
+++ b/packages/cubejs-redshift-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/redshift-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/redshift-driver
diff --git a/packages/cubejs-redshift-driver/package.json b/packages/cubejs-redshift-driver/package.json
index fab47b96a1a40..774f2797a06a9 100644
--- a/packages/cubejs-redshift-driver/package.json
+++ b/packages/cubejs-redshift-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/redshift-driver",
"description": "Cube.js Redshift database driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -27,13 +27,13 @@
"dependencies": {
"@aws-sdk/client-redshift": "^3.22.0",
"@aws-sdk/credential-providers": "^3.22.0",
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/postgres-driver": "1.7.2",
- "@cubejs-backend/shared": "1.7.2"
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/postgres-driver": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3"
},
"license": "Apache-2.0",
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
"typescript": "~5.2.2"
},
"publishConfig": {
diff --git a/packages/cubejs-schema-compiler/CHANGELOG.md b/packages/cubejs-schema-compiler/CHANGELOG.md
index 64183c5de31a6..2a00e65affaa6 100644
--- a/packages/cubejs-schema-compiler/CHANGELOG.md
+++ b/packages/cubejs-schema-compiler/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/schema-compiler
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
### Bug Fixes
diff --git a/packages/cubejs-schema-compiler/package.json b/packages/cubejs-schema-compiler/package.json
index a640c41562ec5..2660f93a68309 100644
--- a/packages/cubejs-schema-compiler/package.json
+++ b/packages/cubejs-schema-compiler/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/schema-compiler",
"description": "Cube schema compiler",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -40,8 +40,8 @@
"@babel/standalone": "^7.24",
"@babel/traverse": "^7.24",
"@babel/types": "^7.24",
- "@cubejs-backend/native": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/native": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"antlr4": "^4.13.2",
"camelcase": "^6.2.0",
"cron-parser": "^4.9.0",
@@ -60,9 +60,9 @@
},
"devDependencies": {
"@clickhouse/client": "^1.12.0",
- "@cubejs-backend/linter": "1.7.2",
- "@cubejs-backend/mssql-driver": "1.7.2",
- "@cubejs-backend/query-orchestrator": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
+ "@cubejs-backend/mssql-driver": "1.7.3",
+ "@cubejs-backend/query-orchestrator": "1.7.3",
"@types/babel__code-frame": "^7.0.6",
"@types/babel__generator": "^7.6.8",
"@types/babel__traverse": "^7.20.5",
diff --git a/packages/cubejs-schema-compiler/src/adapter/CrateQuery.ts b/packages/cubejs-schema-compiler/src/adapter/CrateQuery.ts
index 9bc48bedb8900..5c7d13895656b 100644
--- a/packages/cubejs-schema-compiler/src/adapter/CrateQuery.ts
+++ b/packages/cubejs-schema-compiler/src/adapter/CrateQuery.ts
@@ -10,8 +10,7 @@ export class CrateQuery extends PostgresQuery {
throw new UserError('Not implemented yet');
}
- // to implement after merge
- public countDistinctApprox(_sql): string {
- throw new UserError('Not implemented yet');
+ public countDistinctApprox(sql: string): string {
+ return `hyperloglog_distinct(${sql})`;
}
}
diff --git a/packages/cubejs-server-core/CHANGELOG.md b/packages/cubejs-server-core/CHANGELOG.md
index c6ea9a9dff61b..408d23f911aab 100644
--- a/packages/cubejs-server-core/CHANGELOG.md
+++ b/packages/cubejs-server-core/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/server-core
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/server-core
diff --git a/packages/cubejs-server-core/package.json b/packages/cubejs-server-core/package.json
index 40a5e26158efe..afaed53515426 100644
--- a/packages/cubejs-server-core/package.json
+++ b/packages/cubejs-server-core/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/server-core",
"description": "Cube.js base component to wire all backend components together",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -29,16 +29,16 @@
"unit": "jest --runInBand --forceExit --coverage dist/test"
},
"dependencies": {
- "@cubejs-backend/api-gateway": "1.7.2",
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/cloud": "1.7.2",
- "@cubejs-backend/cubestore-driver": "1.7.2",
+ "@cubejs-backend/api-gateway": "1.7.3",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/cloud": "1.7.3",
+ "@cubejs-backend/cubestore-driver": "1.7.3",
"@cubejs-backend/dotenv": "^9.0.2",
- "@cubejs-backend/native": "1.7.2",
- "@cubejs-backend/query-orchestrator": "1.7.2",
- "@cubejs-backend/schema-compiler": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
- "@cubejs-backend/templates": "1.7.2",
+ "@cubejs-backend/native": "1.7.3",
+ "@cubejs-backend/query-orchestrator": "1.7.3",
+ "@cubejs-backend/schema-compiler": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
+ "@cubejs-backend/templates": "1.7.3",
"codesandbox-import-utils": "^2.1.12",
"cross-spawn": "^7.0.1",
"fs-extra": "^8.1.0",
@@ -62,8 +62,8 @@
"ws": "^7.5.3"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
- "@cubejs-client/playground": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
+ "@cubejs-client/playground": "1.7.3",
"@types/cross-spawn": "^6.0.2",
"@types/express": "^4.17.21",
"@types/fs-extra": "^9.0.8",
diff --git a/packages/cubejs-server/CHANGELOG.md b/packages/cubejs-server/CHANGELOG.md
index a06406392a5c6..f0bf70b41682b 100644
--- a/packages/cubejs-server/CHANGELOG.md
+++ b/packages/cubejs-server/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/server
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/server
diff --git a/packages/cubejs-server/package.json b/packages/cubejs-server/package.json
index f1eef24295e53..dde7fb1443913 100644
--- a/packages/cubejs-server/package.json
+++ b/packages/cubejs-server/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/server",
"description": "Cube.js all-in-one server",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"types": "index.d.ts",
"repository": {
"type": "git",
@@ -40,11 +40,11 @@
"jest:shapshot": "jest --updateSnapshot test"
},
"dependencies": {
- "@cubejs-backend/cubestore-driver": "1.7.2",
+ "@cubejs-backend/cubestore-driver": "1.7.3",
"@cubejs-backend/dotenv": "^9.0.2",
- "@cubejs-backend/native": "1.7.2",
- "@cubejs-backend/server-core": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/native": "1.7.3",
+ "@cubejs-backend/server-core": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"@oclif/color": "^1.0.0",
"@oclif/command": "^1.8.13",
"@oclif/config": "^1.18.2",
@@ -61,8 +61,8 @@
"ws": "^7.1.2"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
- "@cubejs-backend/query-orchestrator": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
+ "@cubejs-backend/query-orchestrator": "1.7.3",
"@oclif/dev-cli": "^1.23.1",
"@types/body-parser": "^1.19.0",
"@types/cors": "^2.8.8",
diff --git a/packages/cubejs-snowflake-driver/CHANGELOG.md b/packages/cubejs-snowflake-driver/CHANGELOG.md
index f369b0c9c9f60..1cf27e6aee3ee 100644
--- a/packages/cubejs-snowflake-driver/CHANGELOG.md
+++ b/packages/cubejs-snowflake-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/snowflake-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/snowflake-driver
diff --git a/packages/cubejs-snowflake-driver/package.json b/packages/cubejs-snowflake-driver/package.json
index db6f61f82232a..98c98f1616b23 100644
--- a/packages/cubejs-snowflake-driver/package.json
+++ b/packages/cubejs-snowflake-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/snowflake-driver",
"description": "Cube.js Snowflake database driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -28,8 +28,8 @@
},
"dependencies": {
"@aws-sdk/client-s3": "^3.726.0",
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"snowflake-sdk": "^2.4.0"
},
"license": "Apache-2.0",
@@ -40,7 +40,7 @@
"extends": "../cubejs-linter"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
"typescript": "~5.2.2",
"vitest": "^4"
}
diff --git a/packages/cubejs-sqlite-driver/CHANGELOG.md b/packages/cubejs-sqlite-driver/CHANGELOG.md
index 66b914586a801..65ed24bc7f283 100644
--- a/packages/cubejs-sqlite-driver/CHANGELOG.md
+++ b/packages/cubejs-sqlite-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/sqlite-driver
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/sqlite-driver
diff --git a/packages/cubejs-sqlite-driver/package.json b/packages/cubejs-sqlite-driver/package.json
index b61a44acfce4b..1d0ac3eef97a5 100644
--- a/packages/cubejs-sqlite-driver/package.json
+++ b/packages/cubejs-sqlite-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/sqlite-driver",
"description": "Cube.js Sqlite database driver",
"author": "Cube Dev, Inc.",
- "version": "1.7.2",
+ "version": "1.7.3",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -18,13 +18,13 @@
"unit": "jest"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
"sqlite3": "^5.1.7"
},
"license": "Apache-2.0",
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
"jest": "^29"
},
"publishConfig": {
diff --git a/packages/cubejs-templates/CHANGELOG.md b/packages/cubejs-templates/CHANGELOG.md
index 34e53c4e92421..8e8e560ba0f9a 100644
--- a/packages/cubejs-templates/CHANGELOG.md
+++ b/packages/cubejs-templates/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+**Note:** Version bump only for package @cubejs-backend/templates
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
**Note:** Version bump only for package @cubejs-backend/templates
diff --git a/packages/cubejs-templates/package.json b/packages/cubejs-templates/package.json
index e7a94cc961140..a04ca4003277b 100644
--- a/packages/cubejs-templates/package.json
+++ b/packages/cubejs-templates/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-backend/templates",
- "version": "1.7.2",
+ "version": "1.7.3",
"description": "Cube.js Templates helpers",
"author": "Cube Dev, Inc.",
"repository": {
@@ -31,7 +31,7 @@
"extends": "../cubejs-linter"
},
"dependencies": {
- "@cubejs-backend/shared": "1.7.2",
+ "@cubejs-backend/shared": "1.7.3",
"cross-spawn": "^7.0.3",
"decompress": "^4.2.1",
"decompress-targz": "^4.1.1",
@@ -41,7 +41,7 @@
"source-map-support": "^0.5.19"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
"typescript": "~5.2.2"
}
}
diff --git a/packages/cubejs-testing-drivers/CHANGELOG.md b/packages/cubejs-testing-drivers/CHANGELOG.md
index 3e5f5d8c04b53..336e1eb59e60d 100644
--- a/packages/cubejs-testing-drivers/CHANGELOG.md
+++ b/packages/cubejs-testing-drivers/CHANGELOG.md
@@ -3,6 +3,12 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.7.3](https://github.com/cube-js/cube/compare/v1.7.2...v1.7.3) (2026-07-16)
+
+### Features
+
+- **questdb-driver:** Initial support for Tesseract, add integration tests ([#11259](https://github.com/cube-js/cube/issues/11259)) ([e6cd6e1](https://github.com/cube-js/cube/commit/e6cd6e12a05b256509fc94639e6bc3b2c7a1bb65))
+
## [1.7.2](https://github.com/cube-js/cube/compare/v1.7.1...v1.7.2) (2026-07-13)
### Features
diff --git a/packages/cubejs-testing-drivers/fixtures/crate.json b/packages/cubejs-testing-drivers/fixtures/crate.json
new file mode 100644
index 0000000000000..fcdb9aefd537a
--- /dev/null
+++ b/packages/cubejs-testing-drivers/fixtures/crate.json
@@ -0,0 +1,256 @@
+{
+ "cube": {
+ "environment": {
+ "CUBEJS_API_SECRET": "mysupersecret",
+ "CUBEJS_CACHE_AND_QUEUE_DRIVER": "cubestore",
+ "CUBEJS_CUBESTORE_HOST": "store",
+ "CUBEJS_DB_TYPE": "crate",
+ "CUBEJS_DB_HOST": "data",
+ "CUBEJS_DB_PORT": "5432",
+ "CUBEJS_DB_NAME": "crate",
+ "CUBEJS_DB_USER": "crate",
+ "CUBEJS_DB_PASS": "",
+ "CUBEJS_PG_SQL_PORT": "5656",
+ "CUBEJS_SQL_USER": "admin",
+ "CUBEJS_SQL_PASSWORD": "admin_password",
+ "CUBESQL_SQL_PUSH_DOWN": "true",
+ "CUBEJS_TESSERACT_SQL_PLANNER": "${DRIVERS_TESTS_CUBEJS_TESSERACT_SQL_PLANNER}",
+ "CUBEJS_TRANSPILATION_NATIVE": "${DRIVERS_TESTS_CUBEJS_TRANSPILATION_NATIVE}"
+ },
+ "depends_on": ["data"],
+ "links": ["data"],
+ "ports" : ["4000", "5656"]
+ },
+ "data": {
+ "image": "crate:6.3.5",
+ "command": ["crate", "-Cdiscovery.type=single-node"],
+ "environment": {
+ "CRATE_HEAP_SIZE": "1g"
+ },
+ "ports" : ["5432", "4200"]
+ },
+ "cast": {
+ "SELECT_PREFIX": "",
+ "SELECT_SUFFIX": "",
+ "DATE_PREFIX": "",
+ "DATE_SUFFIX": "::timestamp",
+ "CREATE_TBL_PREFIX": "CREATE TABLE ",
+ "CREATE_TBL_SUFFIX": " AS ",
+ "CREATE_SUB_PREFIX": "(",
+ "CREATE_SUB_SUFFIX": ");"
+ },
+ "tables": {
+ "products": "products",
+ "customers": "customers",
+ "ecommerce": "ecommerce",
+ "bigecommerce": "bigecommerce",
+ "retailcalendar": "retailcalendar"
+ },
+ "preAggregations": {
+ "Products": [],
+ "Customers": [
+ {
+ "name": "RA",
+ "measures": ["CUBE.count", "CUBE.runningTotal"]
+ }
+ ],
+ "ECommerce": [
+ {
+ "name": "SA",
+ "dimensions": ["CUBE.productName"],
+ "measures": [
+ "CUBE.totalQuantity",
+ "CUBE.avgDiscount",
+ "CUBE.totalSales",
+ "CUBE.totalProfit"
+ ]
+ },
+ {
+ "name": "TA",
+ "time_dimension": "CUBE.orderDate",
+ "granularity": "month",
+ "partition_granularity": "month",
+ "dimensions": ["CUBE.productName"],
+ "measures": [
+ "CUBE.totalQuantity",
+ "CUBE.avgDiscount",
+ "CUBE.totalSales",
+ "CUBE.totalProfit"
+ ]
+ },
+ {
+ "name": "MultiTimeDimForCount",
+ "time_dimensions": [
+ {
+ "dimension": "CUBE.completedDate",
+ "granularity": "day"
+ },
+ {
+ "dimension": "CUBE.orderDate",
+ "granularity": "day"
+ }
+ ],
+ "partition_granularity": "month",
+ "dimensions": ["CUBE.productName"],
+ "measures": [
+ "CUBE.count"
+ ]
+ },
+ {
+ "name": "TBuildOnlyHalfYear",
+ "time_dimension": "CUBE.orderDate",
+ "granularity": "build_only_half_year",
+ "partition_granularity": "year",
+ "dimensions": ["CUBE.productName"],
+ "measures": [
+ "CUBE.totalQuantity"
+ ]
+ }
+ ],
+ "BigECommerce": [
+ {
+ "name": "TA",
+ "time_dimension": "CUBE.orderDate",
+ "granularity": "month",
+ "partition_granularity": "year",
+ "dimensions": ["CUBE.productName", "CUBE.id"],
+ "measures": [
+ "CUBE.totalQuantity",
+ "CUBE.avgDiscount",
+ "CUBE.totalSales",
+ "CUBE.totalProfit"
+ ]
+ },
+ {
+ "name": "MultiTimeDimForCount",
+ "time_dimensions": [
+ {
+ "dimension": "CUBE.completedDate",
+ "granularity": "day"
+ },
+ {
+ "dimension": "CUBE.orderDate",
+ "granularity": "day"
+ }
+ ],
+ "partition_granularity": "month",
+ "dimensions": [],
+ "measures": [
+ "CUBE.count"
+ ]
+ },
+ {
+ "name": "CategoryFlat",
+ "dimensions": ["CUBE.productName", "CUBE.id", "CUBE.category"],
+ "measures": [
+ "CUBE.totalProfit"
+ ]
+ }
+ ]
+ },
+ "skip": [
+ "---------------------------------------",
+ "SKIPPED FOR ALL ",
+ "---------------------------------------",
+ "querying Products: dimensions -- doesn't work wo ordering",
+ "querying ECommerce: total quantity, avg discount, total sales, total profit by product + order + total -- rounding in athena",
+ "querying ECommerce: total quantity, avg discount, total sales, total profit by product + order + total -- noisy test",
+
+ "---------------------------------------",
+ "Requires Tesseract. ",
+ "---------------------------------------",
+ "querying BigECommerce: rolling window by 2 day without date range",
+ "querying BigECommerce: rolling window by 2 month without date range",
+ "querying BigECommerce: rolling window YTD without date range",
+ "querying custom granularities ECommerce: count by two_mo_by_feb + no dimension + rollingCountByLeading without date range",
+ "querying BigECommerce with Retail Calendar: totalCountRetailYearAgo",
+ "querying BigECommerce with Retail Calendar: totalCountRetailMonthAgo",
+ "querying BigECommerce with Retail Calendar: totalCountRetailWeekAgo",
+ "Tesseract: querying BigECommerce with Retail Calendar: totalCountRetailMonthAgo",
+ "Tesseract: querying BigECommerce with Retail Calendar: totalCountRetailWeekAgo",
+ "Tesseract: SQL API: Timeshift measure from cube",
+ "querying BigECommerce: multi-stage group by time dimension",
+ "querying SwitchSourceTest: simple cross join",
+ "querying SwitchSourceTest: full cross join",
+ "querying SwitchSourceTest: filter by switch dimensions",
+ "querying BigECommerce: SeveralMultiStageMeasures",
+ "querying BigECommerce: two multi-stage branches sharing one pre-aggregation",
+ "querying BigECommerce: base measure plus multi-stage over non-partitioned pre-aggregation",
+
+ "---------------------------------------",
+ "CrateDB: rolling-window queries build the time series with `FROM ... LATERAL",
+ "generate_series(...)`. CrateDB has generate_series but not LATERAL / correlated",
+ "table-function arguments (the non-Tesseract base query needs it here too).",
+ "---------------------------------------",
+ "querying BigECommerce: time series in rolling window",
+ "querying BigECommerce: rolling window by 2 day",
+ "querying BigECommerce: rolling window by 2 week",
+ "querying BigECommerce: rolling window by 2 month",
+ "querying BigECommerce: rolling window YTD (month)",
+ "querying BigECommerce: rolling window YTD (month + week)",
+ "querying BigECommerce: rolling window YTD (month + week + no gran)",
+ "querying BigECommerce: rolling window YTD (month + week + day)",
+ "querying BigECommerce: rolling window YTD (month + week + day + no gran)",
+ "querying custom granularities ECommerce: count by two_mo_by_feb + no dimension + rollingCountByUnbounded",
+ "querying custom granularities ECommerce: count by two_mo_by_feb + no dimension + rollingCountByTrailing",
+ "querying custom granularities ECommerce: count by two_mo_by_feb + no dimension + rollingCountByLeading",
+
+ "---------------------------------------",
+ "CrateDB: SQL API push-down uses SQL CrateDB does not support -- GROUP BY ROLLUP",
+ "(Unknown function: rollup) and rolling-window date_trunc comparisons.",
+ "---------------------------------------",
+ "SQL API: Simple Rollup",
+ "SQL API: Complex Rollup",
+ "SQL API: Rollup with aliases",
+ "SQL API: Rollup over exprs",
+ "SQL API: Nested Rollup",
+ "SQL API: Nested Rollup with aliases",
+ "SQL API: Nested Rollup over asterisk",
+ "SQL API: Extended nested Rollup over asterisk",
+ "SQL API: Rolling Window YTD (year + month + day + date_trunc equal)",
+ "SQL API: Rolling Window YTD (year + month + day + date_trunc IN)"
+ ],
+ "tesseractSkip": [
+ "querying Products: dimensions -- doesn't work wo ordering",
+ "querying ECommerce: total quantity, avg discount, total sales, total profit by product + order + total -- rounding in athena",
+ "querying ECommerce: total quantity, avg discount, total sales, total profit by product + order + total -- noisy test",
+ "querying custom granularities (with preaggregation) ECommerce: totalQuantity by half_year + no dimension",
+ "querying custom granularities (with preaggregation) ECommerce: totalQuantity by half_year + dimension",
+ "querying BigECommerce with Retail Calendar: totalCountRetailMonthAgo",
+ "querying BigECommerce with Retail Calendar: totalCountRetailWeekAgo",
+ "SQL API: Timeshift measure from cube",
+
+ "SQL API: Simple Rollup",
+ "SQL API: Complex Rollup",
+ "SQL API: Rollup with aliases",
+ "SQL API: Rollup over exprs",
+ "SQL API: Nested Rollup",
+ "SQL API: Nested Rollup with aliases",
+ "SQL API: Nested Rollup over asterisk",
+ "SQL API: Extended nested Rollup over asterisk",
+ "SQL API: SQL push down push to cube quoted alias",
+
+ "---- Different results comparing to baseQuery version. Need to investigate ----",
+ "querying BigECommerce: rolling window YTD (month + week)",
+ "querying BigECommerce: rolling window YTD (month + week + no gran)",
+ "querying BigECommerce: rolling window YTD without granularity",
+
+ "---------------------------------------",
+ "CrateDB: rolling windows without an explicit date range build the time series",
+ "with `FROM ... LATERAL generate_series(...)`. CrateDB has generate_series but",
+ "does not support LATERAL / correlated table-function arguments, so this query",
+ "cannot be expressed. The variants with an explicit date range work.",
+ "---------------------------------------",
+ "querying BigECommerce: rolling window by 2 day without date range",
+ "querying BigECommerce: rolling window by 2 month without date range",
+ "querying BigECommerce: rolling window YTD without date range",
+ "querying custom granularities ECommerce: count by two_mo_by_feb + no dimension + rollingCountByLeading without date range",
+
+ "---------------------------------------",
+ "CrateDB: SwitchSourceTest cross joins generate a prepared statement CrateDB",
+ "rejects with `The assembled list of ParameterSymbols is invalid. Missing parameters.`",
+ "---------------------------------------",
+ "querying SwitchSourceTest: simple cross join",
+ "querying SwitchSourceTest: full cross join"
+ ]
+}
diff --git a/packages/cubejs-testing-drivers/package.json b/packages/cubejs-testing-drivers/package.json
index 04c345b4f9df3..ec87b0178b8f9 100644
--- a/packages/cubejs-testing-drivers/package.json
+++ b/packages/cubejs-testing-drivers/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-backend/testing-drivers",
- "version": "1.7.2",
+ "version": "1.7.3",
"description": "Cube.js drivers test suite",
"author": "Cube Dev, Inc.",
"repository": {
@@ -31,6 +31,9 @@
"clickhouse-full": "yarn test-driver -i dist/test/clickhouse-full.test.js",
"clickhouse-export-bucket-s3-full": "yarn test-driver -i dist/test/clickhouse-export-bucket-s3-full.test.js",
"clickhouse-export-bucket-s3-prefix-full": "yarn test-driver -i dist/test/clickhouse-export-bucket-s3-prefix-full.test.js",
+ "crate-driver": "yarn test-driver -i dist/test/crate-driver.test.js",
+ "crate-core": "yarn test-driver -i dist/test/crate-core.test.js",
+ "crate-full": "yarn test-driver -i dist/test/crate-full.test.js",
"databricks-jdbc-driver": "yarn test-driver -i dist/test/databricks-jdbc-driver.test.js",
"databricks-jdbc-core": "yarn test-driver -i dist/test/databricks-jdbc-core.test.js",
"databricks-jdbc-full": "yarn test-driver -i dist/test/databricks-jdbc-full.test.js",
@@ -76,34 +79,35 @@
"pinot-core": "yarn test-driver -i dist/test/pinot-core.test.js",
"pinot-full": "yarn test-driver -i dist/test/pinot-full.test.js",
"generate-pinot-fixtures": "node dist/test/generatePinotFixtures.js",
- "update-all-snapshots-local": "yarn run oracle-full --mode=local -u; yarn run athena-export-bucket-s3-full --mode=local -u; yarn run bigquery-export-bucket-gcs-full --mode=local -u; yarn run clickhouse-full --mode=local -u; yarn run clickhouse-export-bucket-s3-full --mode=local -u; yarn run clickhouse-export-bucket-s3-prefix-full --mode=local -u; yarn run databricks-jdbc-export-bucket-azure-full --mode=local -u; yarn run databricks-jdbc-export-bucket-azure-prefix-full --mode=local -u; yarn run databricks-jdbc-export-bucket-gcs-full --mode=local -u; yarn run databricks-jdbc-export-bucket-gcs-prefix-full --mode=local -u; yarn run databricks-jdbc-export-bucket-s3-full --mode=local -u; yarn run databricks-jdbc-export-bucket-s3-prefix-full --mode=local -u; yarn run databricks-jdbc-full --mode=local -u; yarn run mssql-full --mode=local -u; yarn run mysql-full --mode=local -u; yarn run postgres-full --mode=local -u; yarn run questdb-full --mode=local -u; yarn run redshift-export-bucket-s3-full --mode=local -u; yarn run redshift-full --mode=local -u; yarn run snowflake-encrypted-pk-full --mode=local -u; yarn run snowflake-export-bucket-azure-full --mode=local -u; yarn run snowflake-export-bucket-azure-prefix-full --mode=local -u; yarn run snowflake-export-bucket-azure-via-storage-integration-full --mode=local -u; yarn run snowflake-export-bucket-gcs-full --mode=local -u; yarn run snowflake-export-bucket-gcs-prefix-full --mode=local -u; yarn run snowflake-export-bucket-s3-full --mode=local -u; yarn run snowflake-export-bucket-s3-via-storage-integration-iam-roles-full --mode=local -u; yarn run snowflake-export-bucket-s3-prefix-full --mode=local -u; yarn run snowflake-export-bucket-azure-prefix-full --mode=local -u; yarn run snowflake-export-bucket-azure-full --mode=local -u; yarn run snowflake-full --mode=local -u",
+ "update-all-snapshots-local": "yarn run oracle-full --mode=local -u; yarn run athena-export-bucket-s3-full --mode=local -u; yarn run bigquery-export-bucket-gcs-full --mode=local -u; yarn run clickhouse-full --mode=local -u; yarn run clickhouse-export-bucket-s3-full --mode=local -u; yarn run clickhouse-export-bucket-s3-prefix-full --mode=local -u; yarn run crate-full --mode=local -u; yarn run databricks-jdbc-export-bucket-azure-full --mode=local -u; yarn run databricks-jdbc-export-bucket-azure-prefix-full --mode=local -u; yarn run databricks-jdbc-export-bucket-gcs-full --mode=local -u; yarn run databricks-jdbc-export-bucket-gcs-prefix-full --mode=local -u; yarn run databricks-jdbc-export-bucket-s3-full --mode=local -u; yarn run databricks-jdbc-export-bucket-s3-prefix-full --mode=local -u; yarn run databricks-jdbc-full --mode=local -u; yarn run mssql-full --mode=local -u; yarn run mysql-full --mode=local -u; yarn run postgres-full --mode=local -u; yarn run questdb-full --mode=local -u; yarn run redshift-export-bucket-s3-full --mode=local -u; yarn run redshift-full --mode=local -u; yarn run snowflake-encrypted-pk-full --mode=local -u; yarn run snowflake-export-bucket-azure-full --mode=local -u; yarn run snowflake-export-bucket-azure-prefix-full --mode=local -u; yarn run snowflake-export-bucket-azure-via-storage-integration-full --mode=local -u; yarn run snowflake-export-bucket-gcs-full --mode=local -u; yarn run snowflake-export-bucket-gcs-prefix-full --mode=local -u; yarn run snowflake-export-bucket-s3-full --mode=local -u; yarn run snowflake-export-bucket-s3-via-storage-integration-iam-roles-full --mode=local -u; yarn run snowflake-export-bucket-s3-prefix-full --mode=local -u; yarn run snowflake-export-bucket-azure-prefix-full --mode=local -u; yarn run snowflake-export-bucket-azure-full --mode=local -u; yarn run snowflake-full --mode=local -u",
"tst": "clear && yarn tsc && yarn bigquery-core"
},
"files": [
"dist/src"
],
"dependencies": {
- "@cubejs-backend/athena-driver": "1.7.2",
- "@cubejs-backend/base-driver": "1.7.2",
- "@cubejs-backend/bigquery-driver": "1.7.2",
- "@cubejs-backend/clickhouse-driver": "1.7.2",
- "@cubejs-backend/cubestore-driver": "1.7.2",
- "@cubejs-backend/databricks-jdbc-driver": "1.7.2",
+ "@cubejs-backend/athena-driver": "1.7.3",
+ "@cubejs-backend/base-driver": "1.7.3",
+ "@cubejs-backend/bigquery-driver": "1.7.3",
+ "@cubejs-backend/clickhouse-driver": "1.7.3",
+ "@cubejs-backend/crate-driver": "1.7.3",
+ "@cubejs-backend/cubestore-driver": "1.7.3",
+ "@cubejs-backend/databricks-jdbc-driver": "1.7.3",
"@cubejs-backend/dotenv": "^9.0.2",
- "@cubejs-backend/linter": "1.7.2",
- "@cubejs-backend/mssql-driver": "1.7.2",
- "@cubejs-backend/mysql-driver": "1.7.2",
- "@cubejs-backend/oracle-driver": "1.7.2",
- "@cubejs-backend/pinot-driver": "1.7.2",
- "@cubejs-backend/postgres-driver": "1.7.2",
- "@cubejs-backend/query-orchestrator": "1.7.2",
- "@cubejs-backend/questdb-driver": "1.7.2",
- "@cubejs-backend/server-core": "1.7.2",
- "@cubejs-backend/shared": "1.7.2",
- "@cubejs-backend/snowflake-driver": "1.7.2",
- "@cubejs-backend/testing-shared": "1.7.2",
- "@cubejs-client/core": "1.7.2",
- "@cubejs-client/ws-transport": "1.7.2",
+ "@cubejs-backend/linter": "1.7.3",
+ "@cubejs-backend/mssql-driver": "1.7.3",
+ "@cubejs-backend/mysql-driver": "1.7.3",
+ "@cubejs-backend/oracle-driver": "1.7.3",
+ "@cubejs-backend/pinot-driver": "1.7.3",
+ "@cubejs-backend/postgres-driver": "1.7.3",
+ "@cubejs-backend/query-orchestrator": "1.7.3",
+ "@cubejs-backend/questdb-driver": "1.7.3",
+ "@cubejs-backend/server-core": "1.7.3",
+ "@cubejs-backend/shared": "1.7.3",
+ "@cubejs-backend/snowflake-driver": "1.7.3",
+ "@cubejs-backend/testing-shared": "1.7.3",
+ "@cubejs-client/core": "1.7.3",
+ "@cubejs-client/ws-transport": "1.7.3",
"@jest/globals": "^29",
"@types/jest": "^29",
"@types/node": "^22",
diff --git a/packages/cubejs-testing-drivers/src/helpers/getRefreshQueries.ts b/packages/cubejs-testing-drivers/src/helpers/getRefreshQueries.ts
new file mode 100644
index 0000000000000..2abf543fd70c8
--- /dev/null
+++ b/packages/cubejs-testing-drivers/src/helpers/getRefreshQueries.ts
@@ -0,0 +1,21 @@
+import { getFixtures } from './getFixtures';
+
+/**
+ * Returns `REFRESH TABLE` statements for the fixture tables.
+ *
+ * CrateDB is eventually consistent: rows written by `CREATE TABLE AS` / `INSERT`
+ * are not guaranteed to be visible to the next `SELECT` until the table is
+ * refreshed (the default table refresh interval is ~1s). Run these right after
+ * seeding so the freshly loaded fixture data is readable immediately.
+ *
+ * See https://cratedb.com/docs/crate/reference/en/latest/general/dql/refresh.html
+ */
+export function getRefreshQueries(type: string, suf?: string): string[] {
+ const { tables } = getFixtures(type);
+ return Object
+ .keys(tables)
+ .map((key: string) => {
+ const name = suf ? `${tables[key]}_${suf}` : tables[key];
+ return `REFRESH TABLE ${name}`;
+ });
+}
diff --git a/packages/cubejs-testing-drivers/src/helpers/getSelectQueries.ts b/packages/cubejs-testing-drivers/src/helpers/getSelectQueries.ts
index f06ab795af15e..360c11c02187e 100644
--- a/packages/cubejs-testing-drivers/src/helpers/getSelectQueries.ts
+++ b/packages/cubejs-testing-drivers/src/helpers/getSelectQueries.ts
@@ -10,6 +10,13 @@ export function getSelectQueries(type: string, suf?: string): string[] {
.map((key: string) => {
let name = tables[key];
name = suf ? `${name}_${suf}` : name;
+ // CrateDB is sharded and returns rows in a non-deterministic order across
+ // table (re)creations, which breaks the positional row snapshots in the raw
+ // driver suite. Order by the first column (a unique key in every fixture
+ // table) to make the result order stable.
+ if (type === 'crate') {
+ return `select * from ${name} order by 1`;
+ }
return `select * from ${name}`;
});
}
diff --git a/packages/cubejs-testing-drivers/src/helpers/index.ts b/packages/cubejs-testing-drivers/src/helpers/index.ts
index c9b5d735eb270..764b2361a09d9 100644
--- a/packages/cubejs-testing-drivers/src/helpers/index.ts
+++ b/packages/cubejs-testing-drivers/src/helpers/index.ts
@@ -4,6 +4,7 @@ import { getTempPath } from './getTempPath';
import { getComposePath } from './getComposePath';
import { getCreateQueries } from './getCreateQueries';
import { getSelectQueries } from './getSelectQueries';
+import { getRefreshQueries } from './getRefreshQueries';
import { getCubeJsPath } from './getCubeJsPath';
import { getFixtures } from './getFixtures';
import { getSchemaPath } from './getSchemaPath';
@@ -21,6 +22,7 @@ export {
getComposePath,
getCreateQueries,
getSelectQueries,
+ getRefreshQueries,
getCubeJsPath,
getFixtures,
getSchemaPath,
diff --git a/packages/cubejs-testing-drivers/src/helpers/runEnvironment.ts b/packages/cubejs-testing-drivers/src/helpers/runEnvironment.ts
index 38e04335ba362..e0dfc2bcbfb43 100644
--- a/packages/cubejs-testing-drivers/src/helpers/runEnvironment.ts
+++ b/packages/cubejs-testing-drivers/src/helpers/runEnvironment.ts
@@ -179,6 +179,12 @@ export async function runEnvironment(
if (type === 'questdb') {
compose.withWaitStrategy('data', Wait.forHealthCheck());
}
+ // CrateDB opens its Postgres-wire port before the cluster is ready to serve
+ // queries, so wait on the "started" startup log line (matching CrateDBRunner in
+ // testing-shared) before connecting.
+ if (type === 'crate') {
+ compose.withWaitStrategy('data', Wait.forLogMessage('started').withStartupTimeout(120 * 1000));
+ }
const environment = await compose.up();
diff --git a/packages/cubejs-testing-drivers/src/tests/testConnection.ts b/packages/cubejs-testing-drivers/src/tests/testConnection.ts
index 54cd65269dc2a..ac2d74b777d02 100644
--- a/packages/cubejs-testing-drivers/src/tests/testConnection.ts
+++ b/packages/cubejs-testing-drivers/src/tests/testConnection.ts
@@ -9,6 +9,7 @@ import {
getFixtures,
getCreateQueries,
getSelectQueries,
+ getRefreshQueries,
getDriver,
runEnvironment,
} from '../helpers';
@@ -70,6 +71,11 @@ export function testConnection(type: string): void {
await Promise.all(query.map(async (q) => {
await driver.query(q);
}));
+ // CrateDB is eventually consistent: make the freshly loaded rows visible to
+ // the following SELECTs before they run.
+ if (type === 'crate') {
+ await Promise.all(getRefreshQueries(type, suffix).map((q) => driver.query(q)));
+ }
});
execute('must select from the data source', async () => {
diff --git a/packages/cubejs-testing-drivers/src/tests/testQueries.ts b/packages/cubejs-testing-drivers/src/tests/testQueries.ts
index 915eb6be639fd..48fbb696a2aba 100644
--- a/packages/cubejs-testing-drivers/src/tests/testQueries.ts
+++ b/packages/cubejs-testing-drivers/src/tests/testQueries.ts
@@ -9,6 +9,7 @@ import { Environment } from '../types/Environment';
import {
getFixtures,
getCreateQueries,
+ getRefreshQueries,
getDriver,
runEnvironment,
buildPreaggs,
@@ -149,6 +150,13 @@ export function testQueries(type: string, { includeIncrementalSchemaSuite, exten
await delay(10 * OP_DELAY);
}
}
+ // CrateDB is eventually consistent: make the freshly loaded rows visible
+ // before any queries run against the fixture tables.
+ if (type === 'crate') {
+ for (const q of getRefreshQueries(type, suffix)) {
+ await driver.query(q);
+ }
+ }
console.log(`Creating ${queries.length} fixture tables completed`);
} catch (e: any) {
console.log('Error creating fixtures', e.stack);
diff --git a/packages/cubejs-testing-drivers/src/tests/testSequence.ts b/packages/cubejs-testing-drivers/src/tests/testSequence.ts
index 7d338e78f245d..0cee0953b028b 100644
--- a/packages/cubejs-testing-drivers/src/tests/testSequence.ts
+++ b/packages/cubejs-testing-drivers/src/tests/testSequence.ts
@@ -5,6 +5,7 @@ import { CubejsServerCoreExposed } from '../types/CubejsServerCoreExposed';
import {
getFixtures,
getCreateQueries,
+ getRefreshQueries,
getCore,
getDriver,
patchDriver,
@@ -56,6 +57,11 @@ export function testSequence(type: string): void {
await Promise.all(query.map(async (q) => {
await source.query(q);
}));
+ // CrateDB is eventually consistent: make the freshly loaded rows visible
+ // before pre-aggregations are built from them.
+ if (type === 'crate') {
+ await Promise.all(getRefreshQueries(type, suffix).map((q) => source.query(q)));
+ }
}
patchDriver(source);
patchDriver(storage);
diff --git a/packages/cubejs-testing-drivers/test/__snapshots__/crate-core.test.ts.snap b/packages/cubejs-testing-drivers/test/__snapshots__/crate-core.test.ts.snap
new file mode 100644
index 0000000000000..6b7540aebde53
--- /dev/null
+++ b/packages/cubejs-testing-drivers/test/__snapshots__/crate-core.test.ts.snap
@@ -0,0 +1,124 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Sequence with the @cubejs-backend/crate-driver for the Customers.RollingExternal 1`] = `
+Array [
+ Array [
+ "downloadQueryResults",
+ "stream",
+ ],
+ Array [
+ "createSchemaIfNotExists",
+ "uploadTableWithIndexes",
+ ],
+]
+`;
+
+exports[`Sequence with the @cubejs-backend/crate-driver for the Customers.RollingInternal 1`] = `
+Array [
+ Array [
+ "createSchemaIfNotExists",
+ "loadPreAggregationIntoTable",
+ "query",
+ ],
+ Array [],
+]
+`;
+
+exports[`Sequence with the @cubejs-backend/crate-driver for the ECommerce.SimpleAnalysisExternal 1`] = `
+Array [
+ Array [
+ "downloadQueryResults",
+ "stream",
+ ],
+ Array [
+ "uploadTableWithIndexes",
+ ],
+]
+`;
+
+exports[`Sequence with the @cubejs-backend/crate-driver for the ECommerce.SimpleAnalysisInternal 1`] = `
+Array [
+ Array [
+ "loadPreAggregationIntoTable",
+ "query",
+ ],
+ Array [],
+]
+`;
+
+exports[`Sequence with the @cubejs-backend/crate-driver for the ECommerce.TimeAnalysisExternal 1`] = `
+Array [
+ Array [
+ "downloadQueryResults",
+ "stream",
+ "downloadQueryResults",
+ "stream",
+ "downloadQueryResults",
+ "stream",
+ "downloadQueryResults",
+ "stream",
+ "downloadQueryResults",
+ "stream",
+ "downloadQueryResults",
+ "stream",
+ "downloadQueryResults",
+ "stream",
+ "downloadQueryResults",
+ "stream",
+ "downloadQueryResults",
+ "stream",
+ "downloadQueryResults",
+ "stream",
+ "downloadQueryResults",
+ "stream",
+ "downloadQueryResults",
+ "stream",
+ ],
+ Array [
+ "uploadTableWithIndexes",
+ "uploadTableWithIndexes",
+ "uploadTableWithIndexes",
+ "uploadTableWithIndexes",
+ "uploadTableWithIndexes",
+ "uploadTableWithIndexes",
+ "uploadTableWithIndexes",
+ "uploadTableWithIndexes",
+ "uploadTableWithIndexes",
+ "uploadTableWithIndexes",
+ "uploadTableWithIndexes",
+ "uploadTableWithIndexes",
+ ],
+]
+`;
+
+exports[`Sequence with the @cubejs-backend/crate-driver for the ECommerce.TimeAnalysisInternal 1`] = `
+Array [
+ Array [
+ "loadPreAggregationIntoTable",
+ "loadPreAggregationIntoTable",
+ "query",
+ "loadPreAggregationIntoTable",
+ "query",
+ "loadPreAggregationIntoTable",
+ "query",
+ "loadPreAggregationIntoTable",
+ "query",
+ "loadPreAggregationIntoTable",
+ "query",
+ "loadPreAggregationIntoTable",
+ "query",
+ "loadPreAggregationIntoTable",
+ "query",
+ "loadPreAggregationIntoTable",
+ "query",
+ "loadPreAggregationIntoTable",
+ "query",
+ "loadPreAggregationIntoTable",
+ "query",
+ "loadPreAggregationIntoTable",
+ "query",
+ "query",
+ ],
+ Array [],
+]
+`;
diff --git a/packages/cubejs-testing-drivers/test/__snapshots__/crate-driver.test.ts.snap b/packages/cubejs-testing-drivers/test/__snapshots__/crate-driver.test.ts.snap
new file mode 100644
index 0000000000000..08c50cc99d50e
--- /dev/null
+++ b/packages/cubejs-testing-drivers/test/__snapshots__/crate-driver.test.ts.snap
@@ -0,0 +1,9936 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 1`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 2`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 3`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 4`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 5`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 6`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 7`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 8`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 9`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 10`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 11`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 12`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 13`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 14`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 15`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 16`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 17`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 18`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 19`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 20`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 21`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 22`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 23`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 24`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 25`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 26`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 27`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 28`] = `
+Object {
+ "category": Any,
+ "product_name": Any,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 29`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 30`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 31`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 32`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 33`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 34`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 35`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 36`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 37`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 38`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 39`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 40`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 41`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 42`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 43`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 44`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 45`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 46`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 47`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 48`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 49`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 50`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 51`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 52`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 53`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 54`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 55`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 56`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 57`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 58`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 59`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 60`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 61`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 62`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 63`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 64`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 65`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 66`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 67`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 68`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 69`] = `
+Object {
+ "customer_id": Any,
+ "customer_name": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 70`] = `
+Object {
+ "category": Any,
+ "city": Any,
+ "completed_date": "2020-01-24T00:00:00.000",
+ "customer_id": Any,
+ "discount": Anything,
+ "order_date": Anything,
+ "order_id": Any,
+ "product_name": Any,
+ "profit": Anything,
+ "quantity": Anything,
+ "row_id": Anything,
+ "sales": Anything,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 71`] = `
+Object {
+ "category": Any,
+ "city": Any,
+ "completed_date": "2020-01-02T00:00:00.000",
+ "customer_id": Any,
+ "discount": Anything,
+ "order_date": Anything,
+ "order_id": Any,
+ "product_name": Any,
+ "profit": Anything,
+ "quantity": Anything,
+ "row_id": Anything,
+ "sales": Anything,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 72`] = `
+Object {
+ "category": Any,
+ "city": Any,
+ "completed_date": "2020-06-18T00:00:00.000",
+ "customer_id": Any,
+ "discount": Anything,
+ "order_date": Anything,
+ "order_id": Any,
+ "product_name": Any,
+ "profit": Anything,
+ "quantity": Anything,
+ "row_id": Anything,
+ "sales": Anything,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 73`] = `
+Object {
+ "category": Any,
+ "city": Any,
+ "completed_date": "2020-11-01T00:00:00.000",
+ "customer_id": Any,
+ "discount": Anything,
+ "order_date": Anything,
+ "order_id": Any,
+ "product_name": Any,
+ "profit": Anything,
+ "quantity": Anything,
+ "row_id": Anything,
+ "sales": Anything,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 74`] = `
+Object {
+ "category": Any,
+ "city": Any,
+ "completed_date": "2020-06-26T00:00:00.000",
+ "customer_id": Any,
+ "discount": Anything,
+ "order_date": Anything,
+ "order_id": Any,
+ "product_name": Any,
+ "profit": Anything,
+ "quantity": Anything,
+ "row_id": Anything,
+ "sales": Anything,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 75`] = `
+Object {
+ "category": Any,
+ "city": Any,
+ "completed_date": "2020-09-24T00:00:00.000",
+ "customer_id": Any,
+ "discount": Anything,
+ "order_date": Anything,
+ "order_id": Any,
+ "product_name": Any,
+ "profit": Anything,
+ "quantity": Anything,
+ "row_id": Anything,
+ "sales": Anything,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 76`] = `
+Object {
+ "category": Any,
+ "city": Any,
+ "completed_date": "2020-03-18T00:00:00.000",
+ "customer_id": Any,
+ "discount": Anything,
+ "order_date": Anything,
+ "order_id": Any,
+ "product_name": Any,
+ "profit": Anything,
+ "quantity": Anything,
+ "row_id": Anything,
+ "sales": Anything,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 77`] = `
+Object {
+ "category": Any,
+ "city": Any,
+ "completed_date": "2020-05-14T00:00:00.000",
+ "customer_id": Any,
+ "discount": Anything,
+ "order_date": Anything,
+ "order_id": Any,
+ "product_name": Any,
+ "profit": Anything,
+ "quantity": Anything,
+ "row_id": Anything,
+ "sales": Anything,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 78`] = `
+Object {
+ "category": Any,
+ "city": Any,
+ "completed_date": "2020-09-18T00:00:00.000",
+ "customer_id": Any,
+ "discount": Anything,
+ "order_date": Anything,
+ "order_id": Any,
+ "product_name": Any,
+ "profit": Anything,
+ "quantity": Anything,
+ "row_id": Anything,
+ "sales": Anything,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 79`] = `
+Object {
+ "category": Any,
+ "city": Any,
+ "completed_date": "2020-11-29T00:00:00.000",
+ "customer_id": Any,
+ "discount": Anything,
+ "order_date": Anything,
+ "order_id": Any,
+ "product_name": Any,
+ "profit": Anything,
+ "quantity": Anything,
+ "row_id": Anything,
+ "sales": Anything,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 80`] = `
+Object {
+ "category": Any,
+ "city": Any,
+ "completed_date": "2020-11-13T00:00:00.000",
+ "customer_id": Any,
+ "discount": Anything,
+ "order_date": Anything,
+ "order_id": Any,
+ "product_name": Any,
+ "profit": Anything,
+ "quantity": Anything,
+ "row_id": Anything,
+ "sales": Anything,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 81`] = `
+Object {
+ "category": Any,
+ "city": Any,
+ "completed_date": "2020-10-20T00:00:00.000",
+ "customer_id": Any,
+ "discount": Anything,
+ "order_date": Anything,
+ "order_id": Any,
+ "product_name": Any,
+ "profit": Anything,
+ "quantity": Anything,
+ "row_id": Anything,
+ "sales": Anything,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 82`] = `
+Object {
+ "category": Any,
+ "city": Any,
+ "completed_date": "2020-10-20T00:00:00.000",
+ "customer_id": Any,
+ "discount": Anything,
+ "order_date": Anything,
+ "order_id": Any,
+ "product_name": Any,
+ "profit": Anything,
+ "quantity": Anything,
+ "row_id": Anything,
+ "sales": Anything,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 83`] = `
+Object {
+ "category": Any,
+ "city": Any,
+ "completed_date": "2020-05-28T00:00:00.000",
+ "customer_id": Any,
+ "discount": Anything,
+ "order_date": Anything,
+ "order_id": Any,
+ "product_name": Any,
+ "profit": Anything,
+ "quantity": Anything,
+ "row_id": Anything,
+ "sales": Anything,
+ "sub_category": Any,
+}
+`;
+
+exports[`Raw @cubejs-backend/crate-driver must select from the data source 84`] = `
+Object {
+ "category": Any,
+ "city": Any,
+ "completed_date": "2020-06-12T00:00:00.000",
+ "customer_id": Any