diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml
index 7431cda4d106d..4f3c47359f3c6 100644
--- a/.github/workflows/push.yml
+++ b/.github/workflows/push.yml
@@ -396,6 +396,7 @@ jobs:
strategy:
matrix:
node-version: [ 20.x ]
+ python-version: [ 3.11 ]
fail-fast: false
steps:
@@ -421,6 +422,10 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
+ - name: Install Python
+ uses: actions/setup-python@v5
+ with:
+ python-version: ${{ matrix.python-version }}
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn cache dir)" >> "$GITHUB_OUTPUT"
@@ -448,6 +453,11 @@ jobs:
uses: GoodManWEN/oracle-client-action@main
- name: Build client
run: yarn build
+ - name: Build cubejs-backend-native (with Python)
+ run: yarn run native:build-release-python
+ working-directory: ./packages/cubejs-backend-native
+ env:
+ PYO3_PYTHON: python${{ matrix.python-version }}
- name: Lerna tsc
run: yarn tsc
- name: Download cubestored-x86_64-unknown-linux-gnu-release artifact
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 466c045f271d2..08c9caddec2a9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,39 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+
+### Bug Fixes
+
+* TypeError: Cannot read properties of undefined (reading 'joins') ([14adaeb](https://github.com/cube-js/cube/commit/14adaebdd1c3d398bcd2997012da070999e47d9d))
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+
+### Bug Fixes
+
+* **api-gateway:** allow switch sql user when the new user is the same ([#9037](https://github.com/cube-js/cube/issues/9037)) ([a69c28f](https://github.com/cube-js/cube/commit/a69c28f524fa0625b825b98a38e7f5a211a98f74))
+* **api-gateway:** make sure DAP works sql pushdown ([#9021](https://github.com/cube-js/cube/issues/9021)) ([23695b2](https://github.com/cube-js/cube/commit/23695b2b5e886b5b7daf8b3f74003bb04e5b2e0b))
+* **cubestore:** Allow create an index from expressions ([#9006](https://github.com/cube-js/cube/issues/9006)) ([222cab8](https://github.com/cube-js/cube/commit/222cab897c289bfc929f217483e4905204bac12f))
+* **schema-compiler:** fix DAP with query_rewrite and python config ([#9033](https://github.com/cube-js/cube/issues/9033)) ([849790f](https://github.com/cube-js/cube/commit/849790f965dd0d9fddba11e3d8d124b84397ca9b))
+* **schema-compiler:** join relationship aliases ([ad4e8e3](https://github.com/cube-js/cube/commit/ad4e8e3872307ab77e035709e5208b0191f87f5b))
+
+
+### Features
+
+* **cubesql:** Basic VALUES support in rewrite engine ([#9041](https://github.com/cube-js/cube/issues/9041)) ([368671f](https://github.com/cube-js/cube/commit/368671fd1b53b2ed5ad8df6af113492982f23c0c))
+* **dremio-driver:** Add Dremio Cloud Support ([#8956](https://github.com/cube-js/cube/issues/8956)) ([d2c2fcd](https://github.com/cube-js/cube/commit/d2c2fcdaf8944ea7dd27e73b63c0b151c317022e))
+* **tesseract:** Support multiple join paths within single query ([#9047](https://github.com/cube-js/cube/issues/9047)) ([b62446e](https://github.com/cube-js/cube/commit/b62446e3c3893068f8dd8aa32d7204ea06a16f98))
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
diff --git a/docs/pages/product/auth/context.mdx b/docs/pages/product/auth/context.mdx
index 3b14eb867e58a..641497f7aee37 100644
--- a/docs/pages/product/auth/context.mdx
+++ b/docs/pages/product/auth/context.mdx
@@ -220,7 +220,7 @@ def masked(sql, security_context):
if is_trusted_team:
return sql
else:
- return "\"'--- masked ---'\""
+ return "'--- masked ---'"
```
diff --git a/docs/pages/product/caching.mdx b/docs/pages/product/caching.mdx
index 87a177e6e15de..a9f2b6f73f6e1 100644
--- a/docs/pages/product/caching.mdx
+++ b/docs/pages/product/caching.mdx
@@ -257,21 +257,26 @@ versions.
Any query that is fulfilled by Cube will use one of the following cache types:
-- **[Pre-aggregations](#pre-aggregations) in Cube Store.** This is the most
-advantageous and performant option.
+- **[Pre-aggregations](#pre-aggregations) in Cube Store.** This cache type
+indicates that the query utilized existing pre-aggregations in Cube Store,
+so it did not need to go to the database for processing.
- **Pre-aggregations in Cube Store with a suboptimal query plan.** This cache
-type indicates that queries still benefit from pre-aggregations in Cube Store
-but it's possible to get a performance boost by [using indexes][ref-indexes].
+type indicates that the query ultilized pre-aggregations in Cube Store,
+but that it's possible to get a performance boost by [using indexes][ref-indexes].
- **Pre-aggregations in the data source.** This cache type indicates that
-queries don't benefit from pre-aggregations in Cube Store and it's possible
-to get a massive performance boost by using Cube Store as [pre-aggregation
+the query utilized pre-aggregations from in the upstream data source.
+These queries could gain a performance boost by using Cube Store as [pre-aggregation
storage][ref-storage].
-- **[In-memory cache.](#in-memory-cache)** This cache type indicates that
-queries don't benefit from pre-aggregations at all. Queries directly hit the
-upstream data source and in-memory cache is used to speed up the execution of
-identical queries that arrive within a short period of time.
-- **No cache.** This cache type indicates queries that directly hit the
-upstream data source and have the worst performance possible.
+- **[In-memory cache.](#in-memory-cache)** This cache type indicates that the
+results were retrieved from Cube's in-memory cache. All query results
+are stored in Cube's in-memory cache, and if the same query is
+run within a certain time frame, the results will be retrieved from in-memory
+cache instead of being processed on the database or in Cube Store. This is the
+fastest query retrieval method, but it requires that the exact same query was
+run very recently.
+- **No cache.** This cache type indicates that the query was processed in the upstream
+data source and was not accelrated using pre-aggregations. These queries could have
+a significant performance boost if pre-aggregations and Cube Store were utilized.
In [Query History][ref-query-history] and throughout Cube Cloud, colored bolt
icons are used to indicate the cache type. Also, [Performance
diff --git a/docs/pages/reference/configuration/environment-variables.mdx b/docs/pages/reference/configuration/environment-variables.mdx
index 6952c6f1025ed..dba5d5f3074f7 100644
--- a/docs/pages/reference/configuration/environment-variables.mdx
+++ b/docs/pages/reference/configuration/environment-variables.mdx
@@ -560,6 +560,14 @@ The timeout value for any queries made to the database by Cube.
| ---------------------------------------- | ---------------------- | --------------------- |
| A number in seconds or a duration string | `10m` | `10m` |
+
+
+There's a hard limit of 20 minutes for queries that ingest data into Cube Store
+when pre-aggregations are built. If you bump into this limit, consider using
+an export bucket and splitting pre-aggregations into partitions.
+
+
+
## `CUBEJS_DB_FETCH_COLUMNS_BY_ORDINAL_POSITION`
Force fetching of columns by ordinal positions. Certain data-providers (e.g., Redshift) do not guarantee columns in the
diff --git a/docs/pages/reference/data-model/joins.mdx b/docs/pages/reference/data-model/joins.mdx
index 295dd476082e7..c34d6f8dab133 100644
--- a/docs/pages/reference/data-model/joins.mdx
+++ b/docs/pages/reference/data-model/joins.mdx
@@ -404,6 +404,119 @@ cubes:
+## Chasm and fan traps
+
+Cube automatically detects chasm and fan traps based on the `many_to_one` and `one_to_many` relationships defined in join.
+When detected, Cube generates a deduplication query that evaluates all distinct primary keys within the multiplied measure's cube and then joins distinct primary keys to this cube on itself to calculate the aggregation result.
+If there's more than one multiplied measure in a query, then such query is generated for every such multiplied measure, and results are joined.
+Cube solves for chasm and fan traps during query time.
+If there's pre-aggregregation that fits measure multiplication requirements it'd be leveraged to serve such a query.
+Such pre-aggregations and queries are always considered non-additive for the purpose of pre-aggregation matching.
+
+Let's consider an example data model:
+
+
+
+```javascript
+cube(`orders`, {
+ sql_table: `orders`
+
+ dimensions: {
+ id: {
+ sql: `id`,
+ type: `number`,
+ primary_key: true
+ },
+ city: {
+ sql: `city`,
+ type: `string`
+ }
+ },
+
+ joins: {
+ customers: {
+ relationship: `many_to_one`,
+ sql: `${CUBE}.customer_id = ${customers.id}`,
+ },
+ },
+});
+
+cube(`customers`, {
+ sql_table: `customers`
+
+ measures: {
+ count: {
+ type: `count`,
+ }
+ },
+
+ dimensions: {
+ id: {
+ sql: `id`,
+ type: `number`,
+ primary_key: true
+ }
+ }
+});
+```
+
+```yaml
+cubes:
+ - name: orders
+ sql_table: orders
+
+ dimensions:
+ - name: id
+ sql: id
+ type: number
+ primary_key: true
+ - name: city
+ sql: city
+ type: string
+
+ joins:
+ - name: customers
+ relationship: many_to_one
+ sql: "{orders}.customer_id = {customers.id}"
+
+- name: customers
+ sql_table: customers
+
+ dimensions:
+ - name: id
+ sql: id
+ type: number
+ primary_key: true
+
+ measures:
+ - name: average_age
+ sql: age
+ type: avg
+
+```
+
+
+
+If we try to query `customers.average_age` by `orders.city`, the Cube detects that the `average_age` measure in the `customers` cube would be multiplied by `orders` to `customers` and would generate SQL similar to:
+
+```sql
+SELECT
+ "keys"."orders__city",
+ avg("customers_key__customers".age) "customers__average_age"
+FROM
+ (
+ SELECT
+ DISTINCT "customers_key__orders".city "orders__city",
+ "customers_key__customers".id "customers__id"
+ FROM
+ orders AS "customers_key__orders"
+ LEFT JOIN customers AS "customers_key__customers" ON "customers_key__orders".customer_id = "customers_key__customers".id
+ ) AS "keys"
+ LEFT JOIN customers AS "customers_key__customers" ON "keys"."customers__id" = "customers_key__customers".id
+GROUP BY
+ 1
+```
+
## CUBE reference
When you have several joined cubes, you should accurately use columns’ names to
diff --git a/docs/pages/reference/data-model/pre-aggregations.mdx b/docs/pages/reference/data-model/pre-aggregations.mdx
index 986076437d94c..941d7a2b5d6f6 100644
--- a/docs/pages/reference/data-model/pre-aggregations.mdx
+++ b/docs/pages/reference/data-model/pre-aggregations.mdx
@@ -921,7 +921,7 @@ cubes:
-For possible `every` parameter values please refer to
+To have a pre-aggregation rebuild at a specific time of day, you can use a CRON string with some limitations. For more details about values that can be used with the `every` parameter, please refer to the
[`refreshKey`][ref-cube-refreshkey] documentation.
You can also use `every` with `sql`:
diff --git a/lerna.json b/lerna.json
index 147bccb662d68..1cc3b55e1971a 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "1.1.9",
+ "version": "1.1.11",
"npmClient": "yarn",
"useWorkspaces": true,
"packages": [
diff --git a/packages/cubejs-api-gateway/CHANGELOG.md b/packages/cubejs-api-gateway/CHANGELOG.md
index 3419e7095a47c..a7da43201cb4c 100644
--- a/packages/cubejs-api-gateway/CHANGELOG.md
+++ b/packages/cubejs-api-gateway/CHANGELOG.md
@@ -3,6 +3,19 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+
+### Bug Fixes
+
+* **api-gateway:** allow switch sql user when the new user is the same ([#9037](https://github.com/cube-js/cube/issues/9037)) ([a69c28f](https://github.com/cube-js/cube/commit/a69c28f524fa0625b825b98a38e7f5a211a98f74))
+* **api-gateway:** make sure DAP works sql pushdown ([#9021](https://github.com/cube-js/cube/issues/9021)) ([23695b2](https://github.com/cube-js/cube/commit/23695b2b5e886b5b7daf8b3f74003bb04e5b2e0b))
+* **schema-compiler:** fix DAP with query_rewrite and python config ([#9033](https://github.com/cube-js/cube/issues/9033)) ([849790f](https://github.com/cube-js/cube/commit/849790f965dd0d9fddba11e3d8d124b84397ca9b))
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**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 1dbf5304958e5..29ef7baacbbdd 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.js API Gateway",
"author": "Cube Dev, Inc.",
- "version": "1.1.9",
+ "version": "1.1.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -27,8 +27,8 @@
"dist/src/*"
],
"dependencies": {
- "@cubejs-backend/native": "1.1.9",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/native": "1.1.10",
+ "@cubejs-backend/shared": "1.1.10",
"@ungap/structured-clone": "^0.3.4",
"body-parser": "^1.19.0",
"chrono-node": "^2.6.2",
diff --git a/packages/cubejs-api-gateway/src/gateway.ts b/packages/cubejs-api-gateway/src/gateway.ts
index 5ecbb53523504..c508e36b17fdc 100644
--- a/packages/cubejs-api-gateway/src/gateway.ts
+++ b/packages/cubejs-api-gateway/src/gateway.ts
@@ -1214,18 +1214,20 @@ class ApiGateway {
currentQuery = this.parseMemberExpressionsInQuery(currentQuery);
}
- let normalizedQuery = normalizeQuery(currentQuery, persistent);
+ const normalizedQuery = normalizeQuery(currentQuery, persistent);
+ let evaluatedQuery = normalizedQuery;
if (hasExpressionsInQuery) {
// We need to parse/eval all member expressions early as applyRowLevelSecurity
// needs to access the full SQL query in order to evaluate rules
- normalizedQuery =
+ evaluatedQuery =
this.evalMemberExpressionsInQuery(normalizedQuery);
}
// First apply cube/view level security policies
const queryWithRlsFilters = await compilerApi.applyRowLevelSecurity(
normalizedQuery,
+ evaluatedQuery,
context
);
// Then apply user-supplied queryRewrite
@@ -1237,7 +1239,7 @@ class ApiGateway {
// applyRowLevelSecurity may add new filters which may contain raw member expressions
// if that's the case, we should run an extra pass of parsing here to make sure
// nothing breaks down the road
- if (this.hasExpressionsInQuery(rewrittenQuery)) {
+ if (hasExpressionsInQuery || this.hasExpressionsInQuery(rewrittenQuery)) {
rewrittenQuery = this.parseMemberExpressionsInQuery(rewrittenQuery);
rewrittenQuery = this.evalMemberExpressionsInQuery(rewrittenQuery);
}
diff --git a/packages/cubejs-api-gateway/src/sql-server.ts b/packages/cubejs-api-gateway/src/sql-server.ts
index 292cb44a50446..49a404706fe43 100644
--- a/packages/cubejs-api-gateway/src/sql-server.ts
+++ b/packages/cubejs-api-gateway/src/sql-server.ts
@@ -306,7 +306,11 @@ export class SQLServer {
protected createDefaultCanSwitchSqlUserFn(options: SQLServerOptions): CanSwitchSQLUserFn {
const superUser = options.sqlSuperUser || getEnv('sqlSuperUser');
- return async (current: string | null, _user: string) => {
+ return async (current: string | null, newUser: string) => {
+ if (current === newUser) {
+ return true;
+ }
+
if (superUser) {
return current === superUser;
}
diff --git a/packages/cubejs-athena-driver/CHANGELOG.md b/packages/cubejs-athena-driver/CHANGELOG.md
index 54c9e9a5b26b2..999a08186483f 100644
--- a/packages/cubejs-athena-driver/CHANGELOG.md
+++ b/packages/cubejs-athena-driver/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/athena-driver
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/athena-driver
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**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 bb032f9c02faf..ad11a01eb45e7 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.1.9",
+ "version": "1.1.11",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -29,13 +29,13 @@
"types": "dist/src/index.d.ts",
"dependencies": {
"@aws-sdk/client-athena": "^3.22.0",
- "@cubejs-backend/base-driver": "1.1.8",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/shared": "1.1.10",
"sqlstring": "^2.3.1"
},
"devDependencies": {
"@cubejs-backend/linter": "^1.0.0",
- "@cubejs-backend/testing-shared": "1.1.9",
+ "@cubejs-backend/testing-shared": "1.1.11",
"@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 fd85329452169..67055d0d53e1c 100644
--- a/packages/cubejs-backend-cloud/CHANGELOG.md
+++ b/packages/cubejs-backend-cloud/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/cloud
+
+
+
+
+
## [1.1.8](https://github.com/cube-js/cube/compare/v1.1.7...v1.1.8) (2024-12-05)
**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 741999795eeb2..fc22a65095539 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.1.8",
+ "version": "1.1.10",
"description": "Cube Cloud package",
"main": "dist/src/index.js",
"typings": "dist/src/index.d.ts",
@@ -32,7 +32,7 @@
},
"dependencies": {
"@cubejs-backend/dotenv": "^9.0.2",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/shared": "1.1.10",
"chokidar": "^3.5.1",
"env-var": "^6.3.0",
"fs-extra": "^9.1.0",
diff --git a/packages/cubejs-backend-maven/CHANGELOG.md b/packages/cubejs-backend-maven/CHANGELOG.md
index 2d3591aaa267e..36e6286575186 100644
--- a/packages/cubejs-backend-maven/CHANGELOG.md
+++ b/packages/cubejs-backend-maven/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/maven
+
+
+
+
+
## [1.1.8](https://github.com/cube-js/cube/compare/v1.1.7...v1.1.8) (2024-12-05)
**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 55c5de037dfa5..e1ed0991f725e 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.1.8",
+ "version": "1.1.10",
"license": "Apache-2.0",
"repository": {
"type": "git",
@@ -31,7 +31,7 @@
"dist/src/*"
],
"dependencies": {
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/shared": "1.1.10",
"source-map-support": "^0.5.19",
"xmlbuilder2": "^2.4.0"
},
diff --git a/packages/cubejs-backend-native/CHANGELOG.md b/packages/cubejs-backend-native/CHANGELOG.md
index e7a57f3b44709..b952f65eabd37 100644
--- a/packages/cubejs-backend-native/CHANGELOG.md
+++ b/packages/cubejs-backend-native/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/native
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**Note:** Version bump only for package @cubejs-backend/native
diff --git a/packages/cubejs-backend-native/package.json b/packages/cubejs-backend-native/package.json
index 153c99c3fefb8..68ec83e906cb6 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.1.9",
+ "version": "1.1.10",
"author": "Cube Dev, Inc.",
"description": "Native module for Cube.js (binding to Rust codebase)",
"main": "dist/js/index.js",
@@ -43,8 +43,8 @@
"uuid": "^8.3.2"
},
"dependencies": {
- "@cubejs-backend/cubesql": "1.1.9",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/cubesql": "1.1.10",
+ "@cubejs-backend/shared": "1.1.10",
"@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 baebb91db2d67..3029356faaf29 100644
--- a/packages/cubejs-backend-shared/CHANGELOG.md
+++ b/packages/cubejs-backend-shared/CHANGELOG.md
@@ -3,6 +3,17 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+
+### Features
+
+* **dremio-driver:** Add Dremio Cloud Support ([#8956](https://github.com/cube-js/cube/issues/8956)) ([d2c2fcd](https://github.com/cube-js/cube/commit/d2c2fcdaf8944ea7dd27e73b63c0b151c317022e))
+
+
+
+
+
## [1.1.8](https://github.com/cube-js/cube/compare/v1.1.7...v1.1.8) (2024-12-05)
diff --git a/packages/cubejs-backend-shared/package.json b/packages/cubejs-backend-shared/package.json
index 0fceeb421f6d8..88530184258be 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.1.8",
+ "version": "1.1.10",
"description": "Shared code for Cube.js backend packages",
"main": "dist/src/index.js",
"typings": "dist/src/index.d.ts",
diff --git a/packages/cubejs-backend-shared/src/env.ts b/packages/cubejs-backend-shared/src/env.ts
index 5c7f3b11543ac..65ad344806f48 100644
--- a/packages/cubejs-backend-shared/src/env.ts
+++ b/packages/cubejs-backend-shared/src/env.ts
@@ -1650,6 +1650,23 @@ const variables: Record any> = {
]
),
+ /** ****************************************************************
+ * Dremio Driver *
+ ***************************************************************** */
+
+ /**
+ * Dremio Auth Token
+ */
+ dremioAuthToken: ({
+ dataSource,
+ }: {
+ dataSource: string,
+ }) => (
+ process.env[
+ keyByDataSource('CUBEJS_DB_DREMIO_AUTH_TOKEN', dataSource)
+ ]
+ ),
+
/** ****************************************************************
* Cube Store Driver *
***************************************************************** */
diff --git a/packages/cubejs-base-driver/CHANGELOG.md b/packages/cubejs-base-driver/CHANGELOG.md
index 0397935a5a325..10120caa43c56 100644
--- a/packages/cubejs-base-driver/CHANGELOG.md
+++ b/packages/cubejs-base-driver/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/base-driver
+
+
+
+
+
## [1.1.8](https://github.com/cube-js/cube/compare/v1.1.7...v1.1.8) (2024-12-05)
**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 256ad550d4c5a..0085c0595560d 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.1.8",
+ "version": "1.1.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -33,7 +33,7 @@
"@aws-sdk/s3-request-presigner": "^3.49.0",
"@azure/identity": "^4.4.1",
"@azure/storage-blob": "^12.9.0",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/shared": "1.1.10",
"@google-cloud/storage": "^7.13.0"
},
"devDependencies": {
diff --git a/packages/cubejs-bigquery-driver/CHANGELOG.md b/packages/cubejs-bigquery-driver/CHANGELOG.md
index e591d7f86dc39..9f82f514ecc1e 100644
--- a/packages/cubejs-bigquery-driver/CHANGELOG.md
+++ b/packages/cubejs-bigquery-driver/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/bigquery-driver
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/bigquery-driver
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**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 9b43b58199842..38db27f243b2d 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.1.9",
+ "version": "1.1.11",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -28,15 +28,15 @@
"main": "index.js",
"types": "dist/src/index.d.ts",
"dependencies": {
- "@cubejs-backend/base-driver": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
"@cubejs-backend/dotenv": "^9.0.2",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/shared": "1.1.10",
"@google-cloud/bigquery": "^7.7.0",
"@google-cloud/storage": "^7.13.0",
"ramda": "^0.27.2"
},
"devDependencies": {
- "@cubejs-backend/testing-shared": "1.1.9",
+ "@cubejs-backend/testing-shared": "1.1.11",
"@types/big.js": "^6.2.2",
"@types/dedent": "^0.7.0",
"@types/jest": "^27",
diff --git a/packages/cubejs-cli/CHANGELOG.md b/packages/cubejs-cli/CHANGELOG.md
index 5e94fd74d369b..c0600ebb66829 100644
--- a/packages/cubejs-cli/CHANGELOG.md
+++ b/packages/cubejs-cli/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package cubejs-cli
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package cubejs-cli
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**Note:** Version bump only for package cubejs-cli
diff --git a/packages/cubejs-cli/package.json b/packages/cubejs-cli/package.json
index c3e7191f06b9c..bfef4edfc1ba9 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.1.9",
+ "version": "1.1.11",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -31,8 +31,8 @@
],
"dependencies": {
"@cubejs-backend/dotenv": "^9.0.2",
- "@cubejs-backend/schema-compiler": "1.1.9",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/schema-compiler": "1.1.11",
+ "@cubejs-backend/shared": "1.1.10",
"chalk": "^2.4.2",
"cli-progress": "^3.10",
"commander": "^2.19.0",
@@ -50,7 +50,7 @@
},
"devDependencies": {
"@cubejs-backend/linter": "^1.0.0",
- "@cubejs-backend/server": "1.1.9",
+ "@cubejs-backend/server": "1.1.11",
"@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 21d7c465fe932..a5bfb6933b9c8 100644
--- a/packages/cubejs-clickhouse-driver/CHANGELOG.md
+++ b/packages/cubejs-clickhouse-driver/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/clickhouse-driver
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/clickhouse-driver
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**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 564815c89b0fb..613e081512963 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.1.9",
+ "version": "1.1.11",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -28,8 +28,8 @@
},
"dependencies": {
"@clickhouse/client": "^1.7.0",
- "@cubejs-backend/base-driver": "1.1.8",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/shared": "1.1.10",
"moment": "^2.24.0",
"sqlstring": "^2.3.1",
"uuid": "^8.3.2"
@@ -37,7 +37,7 @@
"license": "Apache-2.0",
"devDependencies": {
"@cubejs-backend/linter": "^1.0.0",
- "@cubejs-backend/testing-shared": "1.1.9",
+ "@cubejs-backend/testing-shared": "1.1.11",
"@types/jest": "^27",
"jest": "27",
"typescript": "~5.2.2"
diff --git a/packages/cubejs-crate-driver/CHANGELOG.md b/packages/cubejs-crate-driver/CHANGELOG.md
index 331e0b92cecbd..16c6d3874c9aa 100644
--- a/packages/cubejs-crate-driver/CHANGELOG.md
+++ b/packages/cubejs-crate-driver/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/crate-driver
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/crate-driver
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**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 7093ce2f89bcc..966129cc8a8d5 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.1.9",
+ "version": "1.1.11",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -28,14 +28,14 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/postgres-driver": "1.1.9",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/postgres-driver": "1.1.11",
+ "@cubejs-backend/shared": "1.1.10",
"pg": "^8.7.1"
},
"license": "Apache-2.0",
"devDependencies": {
"@cubejs-backend/linter": "^1.0.0",
- "@cubejs-backend/testing-shared": "1.1.9",
+ "@cubejs-backend/testing-shared": "1.1.11",
"testcontainers": "^10.10.4",
"typescript": "~5.2.2"
},
diff --git a/packages/cubejs-cubestore-driver/CHANGELOG.md b/packages/cubejs-cubestore-driver/CHANGELOG.md
index 76b725a1647dc..d75fef146450a 100644
--- a/packages/cubejs-cubestore-driver/CHANGELOG.md
+++ b/packages/cubejs-cubestore-driver/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/cubestore-driver
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**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 3085b5b8275e4..457ca2bb92580 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.1.9",
+ "version": "1.1.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -26,9 +26,9 @@
"lint:fix": "eslint --fix src/*.ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.1.8",
- "@cubejs-backend/cubestore": "1.1.9",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/cubestore": "1.1.10",
+ "@cubejs-backend/shared": "1.1.10",
"@cubejs-backend/native": "1.1.9",
"csv-write-stream": "^2.0.0",
"flatbuffers": "23.3.3",
diff --git a/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md b/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md
index ffd198bcf7bf0..c53baf3e402c6 100644
--- a/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md
+++ b/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/databricks-jdbc-driver
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/databricks-jdbc-driver
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**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 3654cef0ab2c1..05e4b0560bcb4 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.1.9",
+ "version": "1.1.11",
"license": "Apache-2.0",
"repository": {
"type": "git",
@@ -28,10 +28,10 @@
"bin"
],
"dependencies": {
- "@cubejs-backend/base-driver": "1.1.8",
- "@cubejs-backend/jdbc-driver": "1.1.8",
- "@cubejs-backend/schema-compiler": "1.1.9",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/jdbc-driver": "1.1.10",
+ "@cubejs-backend/schema-compiler": "1.1.11",
+ "@cubejs-backend/shared": "1.1.10",
"node-fetch": "^2.6.1",
"ramda": "^0.27.2",
"source-map-support": "^0.5.19",
diff --git a/packages/cubejs-dbt-schema-extension/CHANGELOG.md b/packages/cubejs-dbt-schema-extension/CHANGELOG.md
index 94c4974fe9f3c..61640e63904ab 100644
--- a/packages/cubejs-dbt-schema-extension/CHANGELOG.md
+++ b/packages/cubejs-dbt-schema-extension/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/dbt-schema-extension
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/dbt-schema-extension
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**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 660fa22a65ab7..a59e350eb6cb0 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.1.9",
+ "version": "1.1.11",
"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.1.9",
+ "@cubejs-backend/schema-compiler": "1.1.11",
"fs-extra": "^9.1.0",
"inflection": "^1.12.0",
"node-fetch": "^2.6.1"
},
"devDependencies": {
"@cubejs-backend/linter": "^1.0.0",
- "@cubejs-backend/testing": "1.1.9",
+ "@cubejs-backend/testing": "1.1.11",
"@types/generic-pool": "^3.1.9",
"@types/jest": "^27",
"jest": "^27",
diff --git a/packages/cubejs-docker/CHANGELOG.md b/packages/cubejs-docker/CHANGELOG.md
index b8de3333fe99a..22b1532740212 100644
--- a/packages/cubejs-docker/CHANGELOG.md
+++ b/packages/cubejs-docker/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/docker
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/docker
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**Note:** Version bump only for package @cubejs-backend/docker
diff --git a/packages/cubejs-docker/package.json b/packages/cubejs-docker/package.json
index 5c3dd4f65e14f..b54a9609d7078 100644
--- a/packages/cubejs-docker/package.json
+++ b/packages/cubejs-docker/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-backend/docker",
- "version": "1.1.9",
+ "version": "1.1.11",
"description": "Cube.js In Docker (virtual package)",
"author": "Cube Dev, Inc.",
"license": "Apache-2.0",
@@ -9,34 +9,34 @@
"node": "^14.0.0 || ^16.0.0 || >=17.0.0"
},
"dependencies": {
- "@cubejs-backend/athena-driver": "1.1.9",
- "@cubejs-backend/bigquery-driver": "1.1.9",
- "@cubejs-backend/clickhouse-driver": "1.1.9",
- "@cubejs-backend/crate-driver": "1.1.9",
- "@cubejs-backend/databricks-jdbc-driver": "1.1.9",
- "@cubejs-backend/dbt-schema-extension": "1.1.9",
- "@cubejs-backend/dremio-driver": "1.1.9",
- "@cubejs-backend/druid-driver": "1.1.9",
- "@cubejs-backend/duckdb-driver": "1.1.9",
- "@cubejs-backend/elasticsearch-driver": "1.1.8",
- "@cubejs-backend/firebolt-driver": "1.1.9",
- "@cubejs-backend/hive-driver": "1.1.8",
- "@cubejs-backend/ksql-driver": "1.1.9",
- "@cubejs-backend/materialize-driver": "1.1.9",
- "@cubejs-backend/mongobi-driver": "1.1.8",
- "@cubejs-backend/mssql-driver": "1.1.8",
- "@cubejs-backend/mysql-driver": "1.1.9",
- "@cubejs-backend/oracle-driver": "1.1.8",
- "@cubejs-backend/pinot-driver": "1.1.9",
- "@cubejs-backend/postgres-driver": "1.1.9",
- "@cubejs-backend/prestodb-driver": "1.1.8",
- "@cubejs-backend/questdb-driver": "1.1.9",
- "@cubejs-backend/redshift-driver": "1.1.9",
- "@cubejs-backend/server": "1.1.9",
- "@cubejs-backend/snowflake-driver": "1.1.8",
- "@cubejs-backend/sqlite-driver": "1.1.8",
- "@cubejs-backend/trino-driver": "1.1.9",
- "cubejs-cli": "1.1.9",
+ "@cubejs-backend/athena-driver": "1.1.11",
+ "@cubejs-backend/bigquery-driver": "1.1.11",
+ "@cubejs-backend/clickhouse-driver": "1.1.11",
+ "@cubejs-backend/crate-driver": "1.1.11",
+ "@cubejs-backend/databricks-jdbc-driver": "1.1.11",
+ "@cubejs-backend/dbt-schema-extension": "1.1.11",
+ "@cubejs-backend/dremio-driver": "1.1.11",
+ "@cubejs-backend/druid-driver": "1.1.11",
+ "@cubejs-backend/duckdb-driver": "1.1.11",
+ "@cubejs-backend/elasticsearch-driver": "1.1.10",
+ "@cubejs-backend/firebolt-driver": "1.1.11",
+ "@cubejs-backend/hive-driver": "1.1.10",
+ "@cubejs-backend/ksql-driver": "1.1.11",
+ "@cubejs-backend/materialize-driver": "1.1.11",
+ "@cubejs-backend/mongobi-driver": "1.1.10",
+ "@cubejs-backend/mssql-driver": "1.1.10",
+ "@cubejs-backend/mysql-driver": "1.1.11",
+ "@cubejs-backend/oracle-driver": "1.1.10",
+ "@cubejs-backend/pinot-driver": "1.1.11",
+ "@cubejs-backend/postgres-driver": "1.1.11",
+ "@cubejs-backend/prestodb-driver": "1.1.10",
+ "@cubejs-backend/questdb-driver": "1.1.11",
+ "@cubejs-backend/redshift-driver": "1.1.11",
+ "@cubejs-backend/server": "1.1.11",
+ "@cubejs-backend/snowflake-driver": "1.1.10",
+ "@cubejs-backend/sqlite-driver": "1.1.10",
+ "@cubejs-backend/trino-driver": "1.1.11",
+ "cubejs-cli": "1.1.11",
"typescript": "~5.2.2"
},
"resolutions": {
diff --git a/packages/cubejs-dremio-driver/CHANGELOG.md b/packages/cubejs-dremio-driver/CHANGELOG.md
index 924881354fdad..9bfe9eae563d4 100644
--- a/packages/cubejs-dremio-driver/CHANGELOG.md
+++ b/packages/cubejs-dremio-driver/CHANGELOG.md
@@ -3,6 +3,25 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/dremio-driver
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+
+### Features
+
+* **dremio-driver:** Add Dremio Cloud Support ([#8956](https://github.com/cube-js/cube/issues/8956)) ([d2c2fcd](https://github.com/cube-js/cube/commit/d2c2fcdaf8944ea7dd27e73b63c0b151c317022e))
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**Note:** Version bump only for package @cubejs-backend/dremio-driver
diff --git a/packages/cubejs-dremio-driver/README.md b/packages/cubejs-dremio-driver/README.md
index c8a50533b08fb..c534901156385 100644
--- a/packages/cubejs-dremio-driver/README.md
+++ b/packages/cubejs-dremio-driver/README.md
@@ -9,11 +9,26 @@
Pure Javascript Dremio driver.
+## Dremio Cloud
+
+To use this driver with [Dremio Cloud](https://docs.dremio.com/cloud/reference/api/), use the following setup:
+
+| Environment Variable | Value |
+| --------------------------- | -------------------------------------------------- |
+| CUBEJS_DB_TYPE | dremio |
+| CUBEJS_DB_URL | https://api.dremio.cloud/v0/projects/${PROJECT_ID} |
+| CUBEJS_DB_NAME | ${DB_NAME} |
+| CUBEJS_DB_DREMIO_AUTH_TOKEN | ${PERSONAL_ACCESS_TOKEN} |
+
+> [!NOTE]
+> When `CUBEJS_DB_URL` is set it takes precedence over `CUBEJS_DB_HOST` and it
+> is assumed that the driver is connecting to the Dremio Cloud API.
+
## Support
-This package is **community supported** and should be used at your own risk.
+This package is **community supported** and should be used at your own risk.
-While the Cube Dev team is happy to review and accept future community contributions, we don't have active plans for further development. This includes bug fixes unless they affect different parts of Cube.js. **We're looking for maintainers for this package.** If you'd like to become a maintainer, please contact us in Cube.js Slack.
+While the Cube Dev team is happy to review and accept future community contributions, we don't have active plans for further development. This includes bug fixes unless they affect different parts of Cube.js. **We're looking for maintainers for this package.** If you'd like to become a maintainer, please contact us in Cube.js Slack.
## License
diff --git a/packages/cubejs-dremio-driver/driver/DremioDriver.js b/packages/cubejs-dremio-driver/driver/DremioDriver.js
index b825f570586bf..300f9dc795d41 100644
--- a/packages/cubejs-dremio-driver/driver/DremioDriver.js
+++ b/packages/cubejs-dremio-driver/driver/DremioDriver.js
@@ -49,6 +49,14 @@ class DremioDriver extends BaseDriver {
assertDataSource('default');
this.config = {
+ dbUrl:
+ config.dbUrl ||
+ getEnv('dbUrl', { dataSource }) ||
+ '',
+ dremioAuthToken:
+ config.dremioAuthToken ||
+ getEnv('dremioAuthToken', { dataSource }) ||
+ '',
host:
config.host ||
getEnv('dbHost', { dataSource }) ||
@@ -80,11 +88,20 @@ class DremioDriver extends BaseDriver {
getEnv('dbPollMaxInterval', { dataSource })
) * 1000,
};
- const protocol = (this.config.ssl === true || this.config.ssl === 'true')
- ? 'https'
- : 'http';
- this.config.url =
- `${protocol}://${this.config.host}:${this.config.port}`;
+
+ if (this.config.dbUrl) {
+ this.config.url = this.config.dbUrl;
+ this.config.apiVersion = '';
+ if (this.config.dremioAuthToken === '') {
+ throw new Error('dremioAuthToken is blank');
+ }
+ } else {
+ const protocol = (this.config.ssl === true || this.config.ssl === 'true')
+ ? 'https'
+ : 'http';
+ this.config.url = `${protocol}://${this.config.host}:${this.config.port}`;
+ this.config.apiVersion = '/api/v3';
+ }
}
/**
@@ -103,6 +120,20 @@ class DremioDriver extends BaseDriver {
* @protected
*/
async getToken() {
+ if (this.config.dremioAuthToken) {
+ const bearerToken = `Bearer ${this.config.dremioAuthToken}`;
+ await axios.get(
+ `${this.config.url}${this.config.apiVersion}/catalog`,
+ {
+ headers: {
+ Authorization: bearerToken
+ },
+ },
+ );
+
+ return bearerToken;
+ }
+
if (this.authToken && this.authToken.expires > new Date().getTime()) {
return `_dremio${this.authToken.token}`;
}
@@ -129,7 +160,7 @@ class DremioDriver extends BaseDriver {
return axios.request({
method,
- url: `${this.config.url}${url}`,
+ url: `${this.config.url}${this.config.apiVersion}${url}`,
headers: {
Authorization: token
},
@@ -141,7 +172,7 @@ class DremioDriver extends BaseDriver {
* @protected
*/
async getJobStatus(jobId) {
- const { data } = await this.restDremioQuery('get', `/api/v3/job/${jobId}`);
+ const { data } = await this.restDremioQuery('get', `/job/${jobId}`);
if (data.jobState === 'FAILED') {
throw new Error(data.errorMessage);
@@ -162,7 +193,7 @@ class DremioDriver extends BaseDriver {
* @protected
*/
async getJobResults(jobId, limit = 500, offset = 0) {
- return this.restDremioQuery('get', `/api/v3/job/${jobId}/results?offset=${offset}&limit=${limit}`);
+ return this.restDremioQuery('get', `/job/${jobId}/results?offset=${offset}&limit=${limit}`);
}
/**
@@ -171,7 +202,7 @@ class DremioDriver extends BaseDriver {
* @return {Promise<*>}
*/
async executeQuery(sql) {
- const { data } = await this.restDremioQuery('post', '/api/v3/sql', { sql });
+ const { data } = await this.restDremioQuery('post', '/sql', { sql });
return data.id;
}
@@ -216,7 +247,7 @@ class DremioDriver extends BaseDriver {
}
async refreshTablesSchema(path) {
- const { data } = await this.restDremioQuery('get', `/api/v3/catalog/by-path/${path}`);
+ const { data } = await this.restDremioQuery('get', `/catalog/by-path/${path}`);
if (!data || !data.children) {
return true;
}
diff --git a/packages/cubejs-dremio-driver/package.json b/packages/cubejs-dremio-driver/package.json
index e4fe8eeca2bb2..02a8cfe795200 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.1.9",
+ "version": "1.1.11",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -17,9 +17,9 @@
"lint:fix": "eslint driver/*.js"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.1.8",
- "@cubejs-backend/schema-compiler": "1.1.9",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/schema-compiler": "1.1.11",
+ "@cubejs-backend/shared": "1.1.10",
"axios": "^0.21.1",
"moment-timezone": "^0.5.31",
"sqlstring": "^2.3.1"
diff --git a/packages/cubejs-druid-driver/CHANGELOG.md b/packages/cubejs-druid-driver/CHANGELOG.md
index a0396272f441b..60ed6c6d9d1a1 100644
--- a/packages/cubejs-druid-driver/CHANGELOG.md
+++ b/packages/cubejs-druid-driver/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/druid-driver
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/druid-driver
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**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 7395b797a4b56..8bf93f69a6bd4 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.1.9",
+ "version": "1.1.11",
"license": "Apache-2.0",
"repository": {
"type": "git",
@@ -28,9 +28,9 @@
"dist/src/*"
],
"dependencies": {
- "@cubejs-backend/base-driver": "1.1.8",
- "@cubejs-backend/schema-compiler": "1.1.9",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/schema-compiler": "1.1.11",
+ "@cubejs-backend/shared": "1.1.10",
"axios": "^0.21.1",
"moment-timezone": "^0.5.31"
},
diff --git a/packages/cubejs-duckdb-driver/CHANGELOG.md b/packages/cubejs-duckdb-driver/CHANGELOG.md
index 3e4c01bda4355..310b1dd904990 100644
--- a/packages/cubejs-duckdb-driver/CHANGELOG.md
+++ b/packages/cubejs-duckdb-driver/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/duckdb-driver
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/duckdb-driver
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**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 34ca687d22613..896b35c49a483 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.1.9",
+ "version": "1.1.11",
"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.1.8",
- "@cubejs-backend/schema-compiler": "1.1.9",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/schema-compiler": "1.1.11",
+ "@cubejs-backend/shared": "1.1.10",
"duckdb": "^1.0.0"
},
"license": "Apache-2.0",
"devDependencies": {
"@cubejs-backend/linter": "^1.0.0",
- "@cubejs-backend/testing-shared": "1.1.9",
+ "@cubejs-backend/testing-shared": "1.1.11",
"@types/jest": "^27",
"@types/node": "^18",
"jest": "^27",
diff --git a/packages/cubejs-elasticsearch-driver/CHANGELOG.md b/packages/cubejs-elasticsearch-driver/CHANGELOG.md
index 880aef4c833d6..b5f4832e1a4a7 100644
--- a/packages/cubejs-elasticsearch-driver/CHANGELOG.md
+++ b/packages/cubejs-elasticsearch-driver/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/elasticsearch-driver
+
+
+
+
+
## [1.1.8](https://github.com/cube-js/cube/compare/v1.1.7...v1.1.8) (2024-12-05)
**Note:** Version bump only for package @cubejs-backend/elasticsearch-driver
diff --git a/packages/cubejs-elasticsearch-driver/package.json b/packages/cubejs-elasticsearch-driver/package.json
index 796e77c82dabc..a4d9b0e6e9811 100644
--- a/packages/cubejs-elasticsearch-driver/package.json
+++ b/packages/cubejs-elasticsearch-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/elasticsearch-driver",
"description": "Cube.js elasticsearch database driver",
"author": "Cube Dev, Inc.",
- "version": "1.1.8",
+ "version": "1.1.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -23,8 +23,8 @@
"driver"
],
"dependencies": {
- "@cubejs-backend/base-driver": "1.1.8",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/shared": "1.1.10",
"@elastic/elasticsearch": "7.12.0",
"sqlstring": "^2.3.1"
},
diff --git a/packages/cubejs-firebolt-driver/CHANGELOG.md b/packages/cubejs-firebolt-driver/CHANGELOG.md
index ed36131143d13..57601f2ac6101 100644
--- a/packages/cubejs-firebolt-driver/CHANGELOG.md
+++ b/packages/cubejs-firebolt-driver/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/firebolt-driver
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/firebolt-driver
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**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 7644959233f6d..7cedb7132888d 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.1.9",
+ "version": "1.1.11",
"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.1.8",
- "@cubejs-backend/schema-compiler": "1.1.9",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/schema-compiler": "1.1.11",
+ "@cubejs-backend/shared": "1.1.10",
"firebolt-sdk": "^1.8.0"
},
"license": "Apache-2.0",
"devDependencies": {
"@cubejs-backend/linter": "^1.0.0",
- "@cubejs-backend/testing-shared": "1.1.9",
+ "@cubejs-backend/testing-shared": "1.1.11",
"typescript": "~5.2.2"
},
"publishConfig": {
diff --git a/packages/cubejs-hive-driver/CHANGELOG.md b/packages/cubejs-hive-driver/CHANGELOG.md
index eca7db9c243e6..9fa08e1263c23 100644
--- a/packages/cubejs-hive-driver/CHANGELOG.md
+++ b/packages/cubejs-hive-driver/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/hive-driver
+
+
+
+
+
## [1.1.8](https://github.com/cube-js/cube/compare/v1.1.7...v1.1.8) (2024-12-05)
**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 ef57625d4cd12..2cd6d7c97c514 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.1.8",
+ "version": "1.1.10",
"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.1.8",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/shared": "1.1.10",
"generic-pool": "^3.6.0",
"jshs2": "^0.4.4",
"sasl-plain": "^0.1.0",
diff --git a/packages/cubejs-jdbc-driver/CHANGELOG.md b/packages/cubejs-jdbc-driver/CHANGELOG.md
index ac425025ba23a..52b1a09af4b1e 100644
--- a/packages/cubejs-jdbc-driver/CHANGELOG.md
+++ b/packages/cubejs-jdbc-driver/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/jdbc-driver
+
+
+
+
+
## [1.1.8](https://github.com/cube-js/cube/compare/v1.1.7...v1.1.8) (2024-12-05)
**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 5ae02b73e69a4..cacd185c1645a 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.1.8",
+ "version": "1.1.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -25,8 +25,8 @@
"index.js"
],
"dependencies": {
- "@cubejs-backend/base-driver": "1.1.8",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/shared": "1.1.10",
"generic-pool": "^3.1.7",
"node-java-maven": "^0.1.2",
"sqlstring": "^2.3.0"
diff --git a/packages/cubejs-ksql-driver/CHANGELOG.md b/packages/cubejs-ksql-driver/CHANGELOG.md
index 28ed8152e0af4..608f9ed072c3d 100644
--- a/packages/cubejs-ksql-driver/CHANGELOG.md
+++ b/packages/cubejs-ksql-driver/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/ksql-driver
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/ksql-driver
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
diff --git a/packages/cubejs-ksql-driver/package.json b/packages/cubejs-ksql-driver/package.json
index 7c077cea390c0..6121f65895098 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.1.9",
+ "version": "1.1.11",
"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.1.8",
- "@cubejs-backend/schema-compiler": "1.1.9",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/schema-compiler": "1.1.11",
+ "@cubejs-backend/shared": "1.1.10",
"async-mutex": "0.3.2",
"axios": "^0.21.1",
"kafkajs": "^2.2.3",
diff --git a/packages/cubejs-materialize-driver/CHANGELOG.md b/packages/cubejs-materialize-driver/CHANGELOG.md
index 41977594f2e27..d0165352c97aa 100644
--- a/packages/cubejs-materialize-driver/CHANGELOG.md
+++ b/packages/cubejs-materialize-driver/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/materialize-driver
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/materialize-driver
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**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 91f4016ff79fb..3b09d895ac612 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.1.9",
+ "version": "1.1.11",
"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.1.8",
- "@cubejs-backend/postgres-driver": "1.1.9",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/postgres-driver": "1.1.11",
+ "@cubejs-backend/shared": "1.1.10",
"@types/pg": "^8.6.0",
"pg": "^8.6.0",
"semver": "7.3.7"
@@ -37,7 +37,7 @@
"license": "Apache-2.0",
"devDependencies": {
"@cubejs-backend/linter": "^1.0.0",
- "@cubejs-backend/testing": "1.1.9",
+ "@cubejs-backend/testing": "1.1.11",
"typescript": "~5.2.2"
},
"publishConfig": {
diff --git a/packages/cubejs-mongobi-driver/CHANGELOG.md b/packages/cubejs-mongobi-driver/CHANGELOG.md
index 20561cc5385ad..47e69f52cb274 100644
--- a/packages/cubejs-mongobi-driver/CHANGELOG.md
+++ b/packages/cubejs-mongobi-driver/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/mongobi-driver
+
+
+
+
+
## [1.1.8](https://github.com/cube-js/cube/compare/v1.1.7...v1.1.8) (2024-12-05)
**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 30cae5ca6d87f..5af7545c022ea 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.1.8",
+ "version": "1.1.10",
"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.1.8",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/shared": "1.1.10",
"@types/node": "^18",
"generic-pool": "^3.6.0",
"moment": "^2.29.1",
diff --git a/packages/cubejs-mssql-driver/CHANGELOG.md b/packages/cubejs-mssql-driver/CHANGELOG.md
index 15a6d97e78cbe..fabfdb085120e 100644
--- a/packages/cubejs-mssql-driver/CHANGELOG.md
+++ b/packages/cubejs-mssql-driver/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/mssql-driver
+
+
+
+
+
## [1.1.8](https://github.com/cube-js/cube/compare/v1.1.7...v1.1.8) (2024-12-05)
**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 66743991812be..37829f9b938db 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.1.8",
+ "version": "1.1.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -13,7 +13,7 @@
},
"main": "driver/MSSqlDriver.js",
"dependencies": {
- "@cubejs-backend/base-driver": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
"mssql": "^10.0.2"
},
"devDependencies": {
diff --git a/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md b/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md
index 2d4fe95f4ad98..823631edefad3 100644
--- a/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md
+++ b/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/mysql-aurora-serverless-driver
+
+
+
+
+
## [1.1.8](https://github.com/cube-js/cube/compare/v1.1.7...v1.1.8) (2024-12-05)
**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 ffdbdb5b75f71..675cf8d18f6ea 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.1.8",
+ "version": "1.1.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -21,8 +21,8 @@
"lint": "eslint driver/*.js test/*.js"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.1.8",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/shared": "1.1.10",
"@types/mysql": "^2.15.15",
"aws-sdk": "^2.787.0",
"data-api-client": "^1.1.0"
diff --git a/packages/cubejs-mysql-driver/CHANGELOG.md b/packages/cubejs-mysql-driver/CHANGELOG.md
index ce093197da443..ee9e5a3f26784 100644
--- a/packages/cubejs-mysql-driver/CHANGELOG.md
+++ b/packages/cubejs-mysql-driver/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/mysql-driver
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/mysql-driver
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**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 4e18691eac0e3..db569dd37622a 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.1.9",
+ "version": "1.1.11",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -27,15 +27,15 @@
"lint:fix": "eslint --fix src/* test/* --ext .ts,.js"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.1.8",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/shared": "1.1.10",
"@types/mysql": "^2.15.21",
"generic-pool": "^3.6.0",
"mysql": "^2.18.1"
},
"devDependencies": {
"@cubejs-backend/linter": "^1.0.0",
- "@cubejs-backend/testing-shared": "1.1.9",
+ "@cubejs-backend/testing-shared": "1.1.11",
"@types/generic-pool": "^3.1.9",
"@types/jest": "^27",
"jest": "^27",
diff --git a/packages/cubejs-oracle-driver/CHANGELOG.md b/packages/cubejs-oracle-driver/CHANGELOG.md
index 36601518d74d3..94d65da829475 100644
--- a/packages/cubejs-oracle-driver/CHANGELOG.md
+++ b/packages/cubejs-oracle-driver/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/oracle-driver
+
+
+
+
+
## [1.1.8](https://github.com/cube-js/cube/compare/v1.1.7...v1.1.8) (2024-12-05)
**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 252d234587d7d..685f22b0e6c77 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.1.8",
+ "version": "1.1.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -13,7 +13,7 @@
},
"main": "driver/OracleDriver.js",
"dependencies": {
- "@cubejs-backend/base-driver": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
"ramda": "^0.27.0"
},
"optionalDependencies": {
diff --git a/packages/cubejs-pinot-driver/CHANGELOG.md b/packages/cubejs-pinot-driver/CHANGELOG.md
index cfb3ad3639b6f..0b933a30b10a9 100644
--- a/packages/cubejs-pinot-driver/CHANGELOG.md
+++ b/packages/cubejs-pinot-driver/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/pinot-driver
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/pinot-driver
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**Note:** Version bump only for package @cubejs-backend/pinot-driver
diff --git a/packages/cubejs-pinot-driver/package.json b/packages/cubejs-pinot-driver/package.json
index dbd920316d37f..0fe32f71f03d4 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.1.9",
+ "version": "1.1.11",
"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.1.8",
- "@cubejs-backend/schema-compiler": "1.1.9",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/schema-compiler": "1.1.11",
+ "@cubejs-backend/shared": "1.1.10",
"node-fetch": "^2.6.1",
"ramda": "^0.27.2",
"sqlstring": "^2.3.3"
diff --git a/packages/cubejs-postgres-driver/CHANGELOG.md b/packages/cubejs-postgres-driver/CHANGELOG.md
index b0247045dd526..a3779033e7ebd 100644
--- a/packages/cubejs-postgres-driver/CHANGELOG.md
+++ b/packages/cubejs-postgres-driver/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/postgres-driver
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/postgres-driver
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**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 6b885e1da4034..90d85d7bffc74 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.1.9",
+ "version": "1.1.11",
"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.1.8",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/shared": "1.1.10",
"@types/pg": "^8.6.0",
"@types/pg-query-stream": "^1.0.3",
"moment": "^2.24.0",
@@ -38,7 +38,7 @@
"license": "Apache-2.0",
"devDependencies": {
"@cubejs-backend/linter": "^1.0.0",
- "@cubejs-backend/testing-shared": "1.1.9",
+ "@cubejs-backend/testing-shared": "1.1.11",
"testcontainers": "^10.10.4",
"typescript": "~5.2.2"
},
diff --git a/packages/cubejs-prestodb-driver/CHANGELOG.md b/packages/cubejs-prestodb-driver/CHANGELOG.md
index 7bc63f78c99c3..6c9bdca315edc 100644
--- a/packages/cubejs-prestodb-driver/CHANGELOG.md
+++ b/packages/cubejs-prestodb-driver/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/prestodb-driver
+
+
+
+
+
## [1.1.8](https://github.com/cube-js/cube/compare/v1.1.7...v1.1.8) (2024-12-05)
**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 e4401f9d31695..ce39c65cd9e16 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.1.8",
+ "version": "1.1.10",
"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.1.8",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/shared": "1.1.10",
"presto-client": "^0.12.2",
"ramda": "^0.27.0",
"sqlstring": "^2.3.1"
diff --git a/packages/cubejs-query-orchestrator/CHANGELOG.md b/packages/cubejs-query-orchestrator/CHANGELOG.md
index 02c60895258bd..1d96d41120c63 100644
--- a/packages/cubejs-query-orchestrator/CHANGELOG.md
+++ b/packages/cubejs-query-orchestrator/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/query-orchestrator
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**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 7f7a9ef14e099..bfc6c1a478554 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.1.9",
+ "version": "1.1.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -29,9 +29,9 @@
"dist/src/*"
],
"dependencies": {
- "@cubejs-backend/base-driver": "1.1.8",
- "@cubejs-backend/cubestore-driver": "1.1.9",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/cubestore-driver": "1.1.10",
+ "@cubejs-backend/shared": "1.1.10",
"csv-write-stream": "^2.0.0",
"es5-ext": "0.10.53",
"generic-pool": "^3.7.1",
diff --git a/packages/cubejs-questdb-driver/CHANGELOG.md b/packages/cubejs-questdb-driver/CHANGELOG.md
index 1448c179c8d31..b91d4cfd90d51 100644
--- a/packages/cubejs-questdb-driver/CHANGELOG.md
+++ b/packages/cubejs-questdb-driver/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/questdb-driver
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/questdb-driver
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**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 b7123c748772c..0b08f3cbb5088 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.1.9",
+ "version": "1.1.11",
"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.1.8",
- "@cubejs-backend/schema-compiler": "1.1.9",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/schema-compiler": "1.1.11",
+ "@cubejs-backend/shared": "1.1.10",
"@types/pg": "^8.6.0",
"moment": "^2.24.0",
"pg": "^8.7.0",
@@ -38,7 +38,7 @@
"license": "Apache-2.0",
"devDependencies": {
"@cubejs-backend/linter": "^1.0.0",
- "@cubejs-backend/testing-shared": "1.1.9",
+ "@cubejs-backend/testing-shared": "1.1.11",
"testcontainers": "^10.10.4",
"typescript": "~5.2.2"
},
diff --git a/packages/cubejs-redshift-driver/CHANGELOG.md b/packages/cubejs-redshift-driver/CHANGELOG.md
index ceca6e4d841f1..eab5aa53fa054 100644
--- a/packages/cubejs-redshift-driver/CHANGELOG.md
+++ b/packages/cubejs-redshift-driver/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/redshift-driver
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/redshift-driver
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**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 76a6395634baa..c14d71ef83166 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.1.9",
+ "version": "1.1.11",
"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.1.8",
- "@cubejs-backend/postgres-driver": "1.1.9",
- "@cubejs-backend/shared": "1.1.8"
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/postgres-driver": "1.1.11",
+ "@cubejs-backend/shared": "1.1.10"
},
"license": "Apache-2.0",
"devDependencies": {
diff --git a/packages/cubejs-schema-compiler/CHANGELOG.md b/packages/cubejs-schema-compiler/CHANGELOG.md
index a0e54cfe1cc0f..5f143a23913bf 100644
--- a/packages/cubejs-schema-compiler/CHANGELOG.md
+++ b/packages/cubejs-schema-compiler/CHANGELOG.md
@@ -3,6 +3,33 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+
+### Bug Fixes
+
+* TypeError: Cannot read properties of undefined (reading 'joins') ([14adaeb](https://github.com/cube-js/cube/commit/14adaebdd1c3d398bcd2997012da070999e47d9d))
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+
+### Bug Fixes
+
+* **schema-compiler:** join relationship aliases ([ad4e8e3](https://github.com/cube-js/cube/commit/ad4e8e3872307ab77e035709e5208b0191f87f5b))
+
+
+### Features
+
+* **tesseract:** Support multiple join paths within single query ([#9047](https://github.com/cube-js/cube/issues/9047)) ([b62446e](https://github.com/cube-js/cube/commit/b62446e3c3893068f8dd8aa32d7204ea06a16f98))
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
diff --git a/packages/cubejs-schema-compiler/package.json b/packages/cubejs-schema-compiler/package.json
index c1b2fb99eaa3b..04512626b7be2 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.1.9",
+ "version": "1.1.11",
"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.1.9",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/native": "1.1.10",
+ "@cubejs-backend/shared": "1.1.10",
"antlr4ts": "0.5.0-alpha.4",
"camelcase": "^6.2.0",
"cron-parser": "^4.9.0",
@@ -59,7 +59,7 @@
"devDependencies": {
"@clickhouse/client": "^1.7.0",
"@cubejs-backend/linter": "^1.0.0",
- "@cubejs-backend/query-orchestrator": "1.1.9",
+ "@cubejs-backend/query-orchestrator": "1.1.10",
"@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/BaseQuery.js b/packages/cubejs-schema-compiler/src/adapter/BaseQuery.js
index 9cb9323a0b885..2c71d23778ea3 100644
--- a/packages/cubejs-schema-compiler/src/adapter/BaseQuery.js
+++ b/packages/cubejs-schema-compiler/src/adapter/BaseQuery.js
@@ -11,7 +11,7 @@ import cronParser from 'cron-parser';
import moment from 'moment-timezone';
import inflection from 'inflection';
-import { FROM_PARTITION_RANGE, inDbTimeZone, MAX_SOURCE_ROW_LIMIT, QueryAlias, getEnv } from '@cubejs-backend/shared';
+import { FROM_PARTITION_RANGE, inDbTimeZone, MAX_SOURCE_ROW_LIMIT, QueryAlias, getEnv, timeSeries as timeSeriesBase } from '@cubejs-backend/shared';
import {
buildSqlAndParams as nativeBuildSqlAndParams,
@@ -261,7 +261,10 @@ export class BaseQuery {
}).filter(R.identity).map(this.newTimeDimension.bind(this));
this.allFilters = this.timeDimensions.concat(this.segments).concat(this.filters);
- this.join = this.joinGraph.buildJoin(this.allJoinHints);
+ if (!getEnv('nativeSqlPlanner')) {
+ // Tesseract doesn't require join to be prebuilt and there's a case where single join can't be built for multi-fact query
+ this.join = this.joinGraph.buildJoin(this.allJoinHints);
+ }
this.cubeAliasPrefix = this.options.cubeAliasPrefix;
this.preAggregationsSchemaOption = this.options.preAggregationsSchema ?? DEFAULT_PREAGGREGATIONS_SCHEMA;
this.externalQueryClass = this.options.externalQueryClass;
@@ -349,7 +352,8 @@ export class BaseQuery {
initUngrouped() {
this.ungrouped = this.options.ungrouped;
if (this.ungrouped) {
- if (!this.options.allowUngroupedWithoutPrimaryKey) {
+ // this.join is not defined for Tesseract
+ if (!this.options.allowUngroupedWithoutPrimaryKey && !getEnv('nativeSqlPlanner')) {
const cubes = R.uniq([this.join.root].concat(this.join.joins.map(j => j.originalTo)));
const primaryKeyNames = cubes.flatMap(c => this.primaryKeyNames(c));
const missingPrimaryKeys = primaryKeyNames.filter(key => !this.dimensions.find(d => d.dimension === key));
@@ -606,20 +610,25 @@ export class BaseQuery {
}
buildSqlAndParamsRust(exportAnnotatedSql) {
+ const order = this.options.order && R.pipe(
+ R.map((hash) => ((!hash || !hash.id) ? null : hash)),
+ R.reject(R.isNil),
+ )(this.options.order);
+
const queryParams = {
measures: this.options.measures,
dimensions: this.options.dimensions,
timeDimensions: this.options.timeDimensions,
timezone: this.options.timezone,
- joinRoot: this.join.root,
joinGraph: this.joinGraph,
cubeEvaluator: this.cubeEvaluator,
- order: this.options.order,
+ order,
filters: this.options.filters,
limit: this.options.limit ? this.options.limit.toString() : null,
rowLimit: this.options.rowLimit ? this.options.rowLimit.toString() : null,
offset: this.options.offset ? this.options.offset.toString() : null,
baseTools: this,
+ ungrouped: this.options.ungrouped
};
const res = nativeBuildSqlAndParams(queryParams);
@@ -628,6 +637,21 @@ export class BaseQuery {
return res;
}
+ allCubeMembers(path) {
+ const fromPath = this.cubeEvaluator.cubeFromPath(path);
+
+ return Object.keys(fromPath.measures).concat(Object.keys(fromPath.dimensions));
+ }
+
+ getAllocatedParams() {
+ return this.paramAllocator.getParams();
+ }
+
+ // FIXME helper for native generator, maybe should be moved entire to rust
+ generateTimeSeries(granularity, dateRange) {
+ return timeSeriesBase(granularity, dateRange);
+ }
+
get shouldReuseParams() {
return false;
}
@@ -3236,7 +3260,16 @@ export class BaseQuery {
'{% if offset is not none %}\nOFFSET {{ offset }}{% endif %}',
group_by_exprs: '{{ group_by | map(attribute=\'index\') | join(\', \') }}',
join: '{{ join_type }} JOIN {{ source }} ON {{ condition }}',
- cte: '{{ alias }} AS ({{ query | indent(2, true) }})'
+ cte: '{{ alias }} AS ({{ query | indent(2, true) }})',
+ time_series_select: 'SELECT date_from::timestamp AS "date_from",\n' +
+ 'date_to::timestamp AS "date_to" \n' +
+ 'FROM(\n' +
+ ' VALUES ' +
+ '{% for time_item in seria %}' +
+ '(\'{{ time_item | join(\'\\\', \\\'\') }}\')' +
+ '{% if not loop.last %}, {% endif %}' +
+ '{% endfor %}' +
+ ') AS dates (date_from, date_to)'
},
expressions: {
column_reference: '{% if table_name %}{{ table_name }}.{% endif %}{{ name }}',
@@ -3257,6 +3290,8 @@ export class BaseQuery {
cube: 'CUBE({{ exprs_concat }})',
negative: '-({{ expr }})',
not: 'NOT ({{ expr }})',
+ add_interval: '{{ date }} + interval \'{{ interval }}\'',
+ sub_interval: '{{ date }} - interval \'{{ interval }}\'',
true: 'TRUE',
false: 'FALSE',
like: '{{ expr }} {% if negated %}NOT {% endif %}LIKE {{ pattern }}',
@@ -3276,9 +3311,11 @@ export class BaseQuery {
gte: '{{ column }} >= {{ param }}',
lt: '{{ column }} < {{ param }}',
lte: '{{ column }} <= {{ param }}',
- always_true: '1 == 1'
+ like_pattern: '{% if start_wild %}\'%\' || {% endif %}{{ value }}{% if end_wild %}|| \'%\'{% endif %}',
+ always_true: '1 = 1'
},
+ operators: {},
quotes: {
identifiers: '"',
escape: '""'
@@ -3288,7 +3325,8 @@ export class BaseQuery {
},
join_types: {
inner: 'INNER',
- left: 'LEFT'
+ left: 'LEFT',
+ full: 'FULL',
},
window_frame_types: {
rows: 'ROWS',
diff --git a/packages/cubejs-schema-compiler/src/adapter/BigqueryQuery.ts b/packages/cubejs-schema-compiler/src/adapter/BigqueryQuery.ts
index 7c34a4a0d8e9a..07cc1759f6a2d 100644
--- a/packages/cubejs-schema-compiler/src/adapter/BigqueryQuery.ts
+++ b/packages/cubejs-schema-compiler/src/adapter/BigqueryQuery.ts
@@ -256,6 +256,7 @@ export class BigqueryQuery extends BaseQuery {
templates.types.double = 'FLOAT64';
templates.types.decimal = 'BIGDECIMAL({{ precision }},{{ scale }})';
templates.types.binary = 'BYTES';
+ templates.operators.is_not_distinct_from = 'IS NOT DISTINCT FROM';
return templates;
}
}
diff --git a/packages/cubejs-schema-compiler/src/adapter/ParamAllocator.ts b/packages/cubejs-schema-compiler/src/adapter/ParamAllocator.ts
index 5dd8ae43d2c87..360dd90eecb35 100644
--- a/packages/cubejs-schema-compiler/src/adapter/ParamAllocator.ts
+++ b/packages/cubejs-schema-compiler/src/adapter/ParamAllocator.ts
@@ -51,6 +51,10 @@ export class ParamAllocator {
return `$${paramIndex}$`;
}
+ public getParams() {
+ return this.params;
+ }
+
// eslint-disable-next-line no-unused-vars
protected paramPlaceHolder(paramIndex) {
return '?';
diff --git a/packages/cubejs-schema-compiler/src/adapter/PostgresQuery.ts b/packages/cubejs-schema-compiler/src/adapter/PostgresQuery.ts
index 01f763e4339dd..818a2f3c92d09 100644
--- a/packages/cubejs-schema-compiler/src/adapter/PostgresQuery.ts
+++ b/packages/cubejs-schema-compiler/src/adapter/PostgresQuery.ts
@@ -81,6 +81,7 @@ export class PostgresQuery extends BaseQuery {
templates.types.float = 'REAL';
templates.types.double = 'DOUBLE PRECISION';
templates.types.binary = 'BYTEA';
+ templates.operators.is_not_distinct_from = 'IS NOT DISTINCT FROM';
return templates;
}
diff --git a/packages/cubejs-schema-compiler/src/adapter/PreAggregations.js b/packages/cubejs-schema-compiler/src/adapter/PreAggregations.js
index 5e15e22ca5dea..efc642af9d727 100644
--- a/packages/cubejs-schema-compiler/src/adapter/PreAggregations.js
+++ b/packages/cubejs-schema-compiler/src/adapter/PreAggregations.js
@@ -1,5 +1,5 @@
import R from 'ramda';
-import { FROM_PARTITION_RANGE, TO_PARTITION_RANGE } from '@cubejs-backend/shared';
+import { FROM_PARTITION_RANGE, getEnv, TO_PARTITION_RANGE } from '@cubejs-backend/shared';
import { UserError } from '../compiler/UserError';
@@ -57,6 +57,10 @@ export class PreAggregations {
}
preAggregationCubes() {
+ if (getEnv('nativeSqlPlanner')) {
+ // No join defined in Tesseract
+ return [];
+ }
const { join } = this.query;
return join.joins.map(j => j.originalTo).concat([join.root]);
}
diff --git a/packages/cubejs-schema-compiler/src/adapter/SnowflakeQuery.ts b/packages/cubejs-schema-compiler/src/adapter/SnowflakeQuery.ts
index 8d3e5a63dc85a..a59e139f9a2df 100644
--- a/packages/cubejs-schema-compiler/src/adapter/SnowflakeQuery.ts
+++ b/packages/cubejs-schema-compiler/src/adapter/SnowflakeQuery.ts
@@ -115,6 +115,7 @@ export class SnowflakeQuery extends BaseQuery {
templates.expressions.extract = 'EXTRACT({{ date_part }} FROM {{ expr }})';
templates.expressions.interval = 'INTERVAL \'{{ interval }}\'';
templates.expressions.timestamp_literal = '\'{{ value }}\'::timestamp_tz';
+ templates.operators.is_not_distinct_from = 'IS NOT DISTINCT FROM';
delete templates.types.interval;
return templates;
}
diff --git a/packages/cubejs-schema-compiler/src/compiler/CubeSymbols.js b/packages/cubejs-schema-compiler/src/compiler/CubeSymbols.js
index 28c99383ae1fc..754f340fd609c 100644
--- a/packages/cubejs-schema-compiler/src/compiler/CubeSymbols.js
+++ b/packages/cubejs-schema-compiler/src/compiler/CubeSymbols.js
@@ -106,7 +106,7 @@ export class CubeSymbols {
},
set segments(v) {
// Dont allow to modify
- }
+ },
}, cubeDefinition);
if (cubeDefinition.extends) {
diff --git a/packages/cubejs-schema-compiler/src/scaffolding/formatters/BaseSchemaFormatter.ts b/packages/cubejs-schema-compiler/src/scaffolding/formatters/BaseSchemaFormatter.ts
index d1981ffed2ffe..02227ed87dcbd 100644
--- a/packages/cubejs-schema-compiler/src/scaffolding/formatters/BaseSchemaFormatter.ts
+++ b/packages/cubejs-schema-compiler/src/scaffolding/formatters/BaseSchemaFormatter.ts
@@ -13,8 +13,11 @@ import { toSnakeCase } from '../utils';
const JOIN_RELATIONSHIP_MAP = {
hasOne: 'one_to_one',
+ has_one: 'one_to_one',
hasMany: 'one_to_many',
+ has_many: 'one_to_many',
belongsTo: 'many_to_one',
+ belongs_to: 'many_to_one',
};
export type SchemaFile = {
@@ -107,7 +110,7 @@ export abstract class BaseSchemaFormatter {
let table = `${
tableSchema.schema?.length ? `${this.escapeName(tableSchema.schema)}.` : ''
}${this.escapeName(tableSchema.table)}`;
-
+
if (this.options.catalog) {
table = `${this.escapeName(this.options.catalog)}.${table}`;
}
@@ -126,7 +129,7 @@ export abstract class BaseSchemaFormatter {
: {
sql: `SELECT * FROM ${table}`,
};
-
+
return {
cube: tableSchema.cube,
...sqlOption,
@@ -139,7 +142,7 @@ export abstract class BaseSchemaFormatter {
j.thisTableColumn
)} = ${this.cubeReference(j.cubeToJoin)}.${this.escapeName(j.columnToJoin)}`,
relationship: this.options.snakeCase
- ? JOIN_RELATIONSHIP_MAP[j.relationship]
+ ? (JOIN_RELATIONSHIP_MAP[j.relationship] ?? j.relationship)
: j.relationship,
},
}))
diff --git a/packages/cubejs-schema-compiler/test/integration/clickhouse/ClickHouseDbRunner.ts b/packages/cubejs-schema-compiler/test/integration/clickhouse/ClickHouseDbRunner.ts
index f399bcfa72a7b..296a224446a57 100644
--- a/packages/cubejs-schema-compiler/test/integration/clickhouse/ClickHouseDbRunner.ts
+++ b/packages/cubejs-schema-compiler/test/integration/clickhouse/ClickHouseDbRunner.ts
@@ -5,7 +5,7 @@ import type { StartedTestContainer } from 'testcontainers';
import { format as formatSql } from 'sqlstring';
import { v4 as uuidv4 } from 'uuid';
import { ClickHouseQuery } from '../../../src/adapter/ClickHouseQuery';
-import { BaseDbRunner } from "../utils/BaseDbRunner";
+import { BaseDbRunner } from '../utils/BaseDbRunner';
process.env.TZ = 'GMT';
diff --git a/packages/cubejs-schema-compiler/test/integration/postgres/PostgresDBRunner.js b/packages/cubejs-schema-compiler/test/integration/postgres/PostgresDBRunner.js
index 5e8ded3aec0f3..84dc36df77372 100644
--- a/packages/cubejs-schema-compiler/test/integration/postgres/PostgresDBRunner.js
+++ b/packages/cubejs-schema-compiler/test/integration/postgres/PostgresDBRunner.js
@@ -125,7 +125,7 @@ export class PostgresDBRunner extends BaseDbRunner {
}
async containerLazyInit() {
- const version = process.env.TEST_PGSQL_VERSION || '9.6.8';
+ const version = process.env.TEST_PGSQL_VERSION || '12.22';
return new GenericContainer(`postgres:${version}`)
.withEnvironment({
diff --git a/packages/cubejs-schema-compiler/test/integration/postgres/multi-fact-join.test.ts b/packages/cubejs-schema-compiler/test/integration/postgres/multi-fact-join.test.ts
new file mode 100644
index 0000000000000..bd3f795803b38
--- /dev/null
+++ b/packages/cubejs-schema-compiler/test/integration/postgres/multi-fact-join.test.ts
@@ -0,0 +1,134 @@
+import {
+ getEnv,
+} from '@cubejs-backend/shared';
+import { PostgresQuery } from '../../../src/adapter/PostgresQuery';
+import { prepareCompiler } from '../../unit/PrepareCompiler';
+import { dbRunner } from './PostgresDBRunner';
+
+describe('Multi-fact join', () => {
+ jest.setTimeout(200000);
+
+ const { compiler, joinGraph, cubeEvaluator } = prepareCompiler(`
+cube(\`orders\`, {
+ sql: \`
+ SELECT 79 AS id, 1 AS amount, 1 AS city_id UNION ALL
+ SELECT 80 AS id, 2 AS amount, 1 AS city_id UNION ALL
+ SELECT 81 AS id, 3 AS amount, 1 AS city_id UNION ALL
+ SELECT 82 AS id, 4 AS amount, 2 AS city_id UNION ALL
+ SELECT 83 AS id, 5 AS amount, 2 AS city_id UNION ALL
+ SELECT 84 AS id, 6 AS amount, 3 AS city_id
+ \`,
+
+ joins: {
+ city: {
+ relationship: \`many_to_one\`,
+ sql: \`\${orders}.city_id = \${city}.id\`,
+ },
+ },
+
+ measures: {
+ amount: {
+ sql: \`amount\`,
+ type: 'sum'
+ }
+ },
+
+ dimensions: {
+ id: {
+ sql: \`id\`,
+ type: \`number\`,
+ primaryKey: true,
+ },
+ },
+});
+
+cube(\`shipments\`, {
+ sql: \`
+ SELECT 100 AS id, 1 AS foo_id, 1 AS city_id UNION ALL
+ SELECT 101 AS id, 2 AS foo_id, 2 AS city_id UNION ALL
+ SELECT 102 AS id, 3 AS foo_id, 2 AS city_id UNION ALL
+ SELECT 103 AS id, 4 AS foo_id, 2 AS city_id UNION ALL
+ SELECT 104 AS id, 5 AS foo_id, 4 AS city_id
+ \`,
+
+ joins: {
+ city: {
+ relationship: \`many_to_one\`,
+ sql: \`\${shipments}.city_id = \${city}.id\`,
+ },
+ },
+
+ measures: {
+ count: {
+ type: \`count\`
+ },
+ },
+
+ dimensions: {
+ id: {
+ sql: \`id\`,
+ type: \`number\`,
+ primaryKey: true,
+ shown: true
+ },
+ }
+});
+
+cube(\`city\`, {
+ sql: \`
+ SELECT 1 AS id, 'San Francisco' AS name UNION ALL
+ SELECT 2 AS id, 'New York City' AS name
+ \`,
+
+ dimensions: {
+ id: {
+ sql: \`id\`,
+ type: \`number\`,
+ primaryKey: true,
+ },
+
+ name: {
+ sql: \`\${CUBE}.name\`,
+ type: \`string\`,
+ },
+ },
+});
+ `);
+
+ async function runQueryTest(q, expectedResult) {
+ if (!getEnv('nativeSqlPlanner')) {
+ return;
+ }
+ await compiler.compile();
+ const query = new PostgresQuery({ joinGraph, cubeEvaluator, compiler }, q);
+
+ console.log(query.buildSqlAndParams());
+
+ const res = await dbRunner.testQuery(query.buildSqlAndParams());
+ console.log(JSON.stringify(res));
+
+ expect(res).toEqual(
+ expectedResult
+ );
+ }
+
+ it('two regular sub-queries', async () => runQueryTest({
+ measures: ['orders.amount', 'shipments.count'],
+ dimensions: [
+ 'city.name'
+ ],
+ order: [{ id: 'city.name' }]
+ }, [{
+ city__name: 'New York City',
+ orders__amount: '9',
+ shipments__count: '3',
+ }, {
+ city__name: 'San Francisco',
+ orders__amount: '6',
+ shipments__count: '1',
+ }, {
+ city__name: null,
+ orders__amount: '6',
+ shipments__count: '1',
+ }]));
+});
diff --git a/packages/cubejs-schema-compiler/test/integration/postgres/sql-generation-logic.test.ts b/packages/cubejs-schema-compiler/test/integration/postgres/sql-generation-logic.test.ts
index e8d6d6e4b2aac..c902b7d1faf37 100644
--- a/packages/cubejs-schema-compiler/test/integration/postgres/sql-generation-logic.test.ts
+++ b/packages/cubejs-schema-compiler/test/integration/postgres/sql-generation-logic.test.ts
@@ -453,7 +453,7 @@ describe('SQL Generation', () => {
}
});
- it('having filter with operator OR', async () => {
+ it('having filter with operator OR 1', async () => {
await compiler.compile();
const query = new PostgresQuery({ joinGraph, cubeEvaluator, compiler }, {
@@ -648,7 +648,7 @@ describe('SQL Generation', () => {
});
});
- it('where filter with operators OR & AND', async () => {
+ it('where filter with operators OR & AND 1', async () => {
await compiler.compile();
const query = new PostgresQuery({ joinGraph, cubeEvaluator, compiler }, {
diff --git a/packages/cubejs-schema-compiler/test/integration/postgres/sql-generation.test.ts b/packages/cubejs-schema-compiler/test/integration/postgres/sql-generation.test.ts
index 06f676a655b14..4d80e89185391 100644
--- a/packages/cubejs-schema-compiler/test/integration/postgres/sql-generation.test.ts
+++ b/packages/cubejs-schema-compiler/test/integration/postgres/sql-generation.test.ts
@@ -64,7 +64,7 @@ describe('SQL Generation', () => {
offset: 'start'
}
},
- revenueRolling3day: {
+ revenueRollingThreeDay: {
type: 'sum',
sql: 'amount',
rollingWindow: {
@@ -780,7 +780,7 @@ describe('SQL Generation', () => {
it('rolling month', async () => runQueryTest({
measures: [
- 'visitors.revenueRolling3day'
+ 'visitors.revenueRollingThreeDay'
],
timeDimensions: [{
dimension: 'visitors.created_at',
@@ -792,7 +792,7 @@ describe('SQL Generation', () => {
}],
timezone: 'America/Los_Angeles'
}, [
- { visitors__created_at_week: '2017-01-09T00:00:00.000Z', visitors__revenue_rolling3day: '900' }
+ { visitors__created_at_week: '2017-01-09T00:00:00.000Z', visitors__revenue_rolling_three_day: '900' }
]));
it('rolling count', async () => runQueryTest({
@@ -1791,7 +1791,7 @@ describe('SQL Generation', () => {
]));
it(
- 'contains filter',
+ 'contains filter 1',
() => runQueryTest({
measures: [],
dimensions: [
@@ -2583,7 +2583,7 @@ describe('SQL Generation', () => {
]
));
- it('rank measure', async () => runQueryTest(
+ it('rank measure 1', async () => runQueryTest(
{
measures: ['visitors.revenue_rank'],
},
diff --git a/packages/cubejs-schema-compiler/test/unit/base-query.test.ts b/packages/cubejs-schema-compiler/test/unit/base-query.test.ts
index b25e0c4fd7a45..6a4752d600765 100644
--- a/packages/cubejs-schema-compiler/test/unit/base-query.test.ts
+++ b/packages/cubejs-schema-compiler/test/unit/base-query.test.ts
@@ -1596,7 +1596,7 @@ describe('SQL Generation', () => {
sql: 'product_id',
type: 'avg',
filters: [
- { sql: `{FILTER_PARAMS.Order.category.filter('category')}` }
+ { sql: '{FILTER_PARAMS.Order.category.filter(\'category\')}' }
]
}
],
@@ -1613,7 +1613,7 @@ describe('SQL Generation', () => {
},
{
name: 'proxied',
- sql: `{FILTER_PARAMS.Order.type.filter("x => type = 'online'")}`,
+ sql: '{FILTER_PARAMS.Order.type.filter("x => type = \'online\'")}',
type: 'boolean',
}
]
diff --git a/packages/cubejs-schema-compiler/test/unit/pre-aggregations.test.ts b/packages/cubejs-schema-compiler/test/unit/pre-aggregations.test.ts
index cb6d653b4b23c..641f2aea699d5 100644
--- a/packages/cubejs-schema-compiler/test/unit/pre-aggregations.test.ts
+++ b/packages/cubejs-schema-compiler/test/unit/pre-aggregations.test.ts
@@ -217,8 +217,8 @@ describe('pre-aggregations', () => {
console.log(JSON.stringify(preAggregationsDescription, null, 2));
expect(preAggregationsDescription.length).toEqual(2);
- expect(preAggregationsDescription[0].preAggregationId).toEqual("Orders.simple1");
- expect(preAggregationsDescription[1].preAggregationId).toEqual("Orders.simple2");
+ expect(preAggregationsDescription[0].preAggregationId).toEqual('Orders.simple1');
+ expect(preAggregationsDescription[1].preAggregationId).toEqual('Orders.simple2');
});
// @link https://github.com/cube-js/cube/issues/6623
diff --git a/packages/cubejs-server-core/CHANGELOG.md b/packages/cubejs-server-core/CHANGELOG.md
index 881eb4d9f1208..1d87c0dcd6eeb 100644
--- a/packages/cubejs-server-core/CHANGELOG.md
+++ b/packages/cubejs-server-core/CHANGELOG.md
@@ -3,6 +3,25 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/server-core
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+
+### Bug Fixes
+
+* **schema-compiler:** fix DAP with query_rewrite and python config ([#9033](https://github.com/cube-js/cube/issues/9033)) ([849790f](https://github.com/cube-js/cube/commit/849790f965dd0d9fddba11e3d8d124b84397ca9b))
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
diff --git a/packages/cubejs-server-core/package.json b/packages/cubejs-server-core/package.json
index 8957d4c212293..3241b226f1aad 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.1.9",
+ "version": "1.1.11",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -29,14 +29,14 @@
"unit": "jest --runInBand --forceExit --coverage dist/test"
},
"dependencies": {
- "@cubejs-backend/api-gateway": "1.1.9",
- "@cubejs-backend/cloud": "1.1.8",
+ "@cubejs-backend/api-gateway": "1.1.10",
+ "@cubejs-backend/cloud": "1.1.10",
"@cubejs-backend/dotenv": "^9.0.2",
- "@cubejs-backend/native": "1.1.9",
- "@cubejs-backend/query-orchestrator": "1.1.9",
- "@cubejs-backend/schema-compiler": "1.1.9",
- "@cubejs-backend/shared": "1.1.8",
- "@cubejs-backend/templates": "1.1.8",
+ "@cubejs-backend/native": "1.1.10",
+ "@cubejs-backend/query-orchestrator": "1.1.10",
+ "@cubejs-backend/schema-compiler": "1.1.11",
+ "@cubejs-backend/shared": "1.1.10",
+ "@cubejs-backend/templates": "1.1.10",
"codesandbox-import-utils": "^2.1.12",
"cross-spawn": "^7.0.1",
"fs-extra": "^8.1.0",
@@ -57,7 +57,7 @@
"ws": "^7.5.3"
},
"devDependencies": {
- "@cubejs-backend/cubestore-driver": "1.1.9",
+ "@cubejs-backend/cubestore-driver": "1.1.10",
"@cubejs-backend/linter": "^1.0.0",
"@cubejs-client/playground": "1.1.6",
"@types/cross-spawn": "^6.0.2",
diff --git a/packages/cubejs-server-core/src/core/CompilerApi.js b/packages/cubejs-server-core/src/core/CompilerApi.js
index 6e3689491a314..64dd7e9fa9da8 100644
--- a/packages/cubejs-server-core/src/core/CompilerApi.js
+++ b/packages/cubejs-server-core/src/core/CompilerApi.js
@@ -271,7 +271,7 @@ export class CompilerApi {
* - combining all filters for different roles with OR
* - combining cube and view filters with AND
*/
- async applyRowLevelSecurity(query, context) {
+ async applyRowLevelSecurity(query, evaluatedQuery, context) {
const compilers = await this.getCompilers({ requestId: context.requestId });
const { cubeEvaluator } = compilers;
@@ -279,7 +279,7 @@ export class CompilerApi {
return query;
}
- const queryCubes = await this.getCubesFromQuery(query, context);
+ const queryCubes = await this.getCubesFromQuery(evaluatedQuery, context);
// We collect Cube and View filters separately because they have to be
// applied in "two layers": first Cube filters, then View filters on top
diff --git a/packages/cubejs-server/CHANGELOG.md b/packages/cubejs-server/CHANGELOG.md
index 60921b5994126..12536288b6d08 100644
--- a/packages/cubejs-server/CHANGELOG.md
+++ b/packages/cubejs-server/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/server
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/server
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**Note:** Version bump only for package @cubejs-backend/server
diff --git a/packages/cubejs-server/package.json b/packages/cubejs-server/package.json
index 608f40b384dc1..45b2e7df1adfe 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.1.9",
+ "version": "1.1.11",
"types": "index.d.ts",
"repository": {
"type": "git",
@@ -40,11 +40,11 @@
"jest:shapshot": "jest --updateSnapshot test"
},
"dependencies": {
- "@cubejs-backend/cubestore-driver": "1.1.9",
+ "@cubejs-backend/cubestore-driver": "1.1.10",
"@cubejs-backend/dotenv": "^9.0.2",
- "@cubejs-backend/native": "1.1.9",
- "@cubejs-backend/server-core": "1.1.9",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/native": "1.1.10",
+ "@cubejs-backend/server-core": "1.1.11",
+ "@cubejs-backend/shared": "1.1.10",
"@oclif/color": "^1.0.0",
"@oclif/command": "^1.8.13",
"@oclif/config": "^1.18.2",
@@ -62,7 +62,7 @@
},
"devDependencies": {
"@cubejs-backend/linter": "^1.0.0",
- "@cubejs-backend/query-orchestrator": "1.1.9",
+ "@cubejs-backend/query-orchestrator": "1.1.10",
"@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 ff2db4cb1ebe6..a89efed2e1547 100644
--- a/packages/cubejs-snowflake-driver/CHANGELOG.md
+++ b/packages/cubejs-snowflake-driver/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/snowflake-driver
+
+
+
+
+
## [1.1.8](https://github.com/cube-js/cube/compare/v1.1.7...v1.1.8) (2024-12-05)
**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 f8715e6ced8ad..d5df1dc3b26d0 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.1.8",
+ "version": "1.1.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -25,8 +25,8 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.1.8",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/shared": "1.1.10",
"date-fns-timezone": "^0.1.4",
"snowflake-sdk": "^1.13.1"
},
diff --git a/packages/cubejs-sqlite-driver/CHANGELOG.md b/packages/cubejs-sqlite-driver/CHANGELOG.md
index dab1919e98f43..e30523bc8b266 100644
--- a/packages/cubejs-sqlite-driver/CHANGELOG.md
+++ b/packages/cubejs-sqlite-driver/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/sqlite-driver
+
+
+
+
+
## [1.1.8](https://github.com/cube-js/cube/compare/v1.1.7...v1.1.8) (2024-12-05)
**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 d5fba86fd4a7d..4cb62865e8c83 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.1.8",
+ "version": "1.1.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -17,8 +17,8 @@
"lint": "eslint **/*.js"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.1.8",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/shared": "1.1.10",
"sqlite3": "^5.1.7"
},
"license": "Apache-2.0",
diff --git a/packages/cubejs-templates/CHANGELOG.md b/packages/cubejs-templates/CHANGELOG.md
index 2e7b5867db120..1b6fe5d6f34f8 100644
--- a/packages/cubejs-templates/CHANGELOG.md
+++ b/packages/cubejs-templates/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/templates
+
+
+
+
+
## [1.1.8](https://github.com/cube-js/cube/compare/v1.1.7...v1.1.8) (2024-12-05)
**Note:** Version bump only for package @cubejs-backend/templates
diff --git a/packages/cubejs-templates/package.json b/packages/cubejs-templates/package.json
index e6e7c8bd4b8f4..4475d1991bbc6 100644
--- a/packages/cubejs-templates/package.json
+++ b/packages/cubejs-templates/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-backend/templates",
- "version": "1.1.8",
+ "version": "1.1.10",
"description": "Cube.js Templates helpers",
"author": "Cube Dev, Inc.",
"license": "Apache-2.0",
@@ -26,7 +26,7 @@
"extends": "../cubejs-linter"
},
"dependencies": {
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/shared": "1.1.10",
"cross-spawn": "^7.0.3",
"decompress": "^4.2.1",
"decompress-targz": "^4.1.1",
diff --git a/packages/cubejs-testing-drivers/CHANGELOG.md b/packages/cubejs-testing-drivers/CHANGELOG.md
index 0657f5f25c5e6..6560f106fc2c6 100644
--- a/packages/cubejs-testing-drivers/CHANGELOG.md
+++ b/packages/cubejs-testing-drivers/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/testing-drivers
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/testing-drivers
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**Note:** Version bump only for package @cubejs-backend/testing-drivers
diff --git a/packages/cubejs-testing-drivers/package.json b/packages/cubejs-testing-drivers/package.json
index 67d0a022b7783..72364a68c4bc0 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.1.9",
+ "version": "1.1.11",
"description": "Cube.js drivers test suite",
"author": "Cube Dev, Inc.",
"license": "MIT",
@@ -57,22 +57,22 @@
"dist/src"
],
"dependencies": {
- "@cubejs-backend/athena-driver": "1.1.9",
- "@cubejs-backend/base-driver": "1.1.8",
- "@cubejs-backend/bigquery-driver": "1.1.9",
- "@cubejs-backend/clickhouse-driver": "1.1.9",
- "@cubejs-backend/cubestore-driver": "1.1.9",
- "@cubejs-backend/databricks-jdbc-driver": "1.1.9",
+ "@cubejs-backend/athena-driver": "1.1.11",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/bigquery-driver": "1.1.11",
+ "@cubejs-backend/clickhouse-driver": "1.1.11",
+ "@cubejs-backend/cubestore-driver": "1.1.10",
+ "@cubejs-backend/databricks-jdbc-driver": "1.1.11",
"@cubejs-backend/dotenv": "^9.0.2",
"@cubejs-backend/linter": "^1.0.0",
- "@cubejs-backend/mssql-driver": "1.1.8",
- "@cubejs-backend/mysql-driver": "1.1.9",
- "@cubejs-backend/postgres-driver": "1.1.9",
- "@cubejs-backend/query-orchestrator": "1.1.9",
- "@cubejs-backend/server-core": "1.1.9",
- "@cubejs-backend/shared": "1.1.8",
- "@cubejs-backend/snowflake-driver": "1.1.8",
- "@cubejs-backend/testing-shared": "1.1.9",
+ "@cubejs-backend/mssql-driver": "1.1.10",
+ "@cubejs-backend/mysql-driver": "1.1.11",
+ "@cubejs-backend/postgres-driver": "1.1.11",
+ "@cubejs-backend/query-orchestrator": "1.1.10",
+ "@cubejs-backend/server-core": "1.1.11",
+ "@cubejs-backend/shared": "1.1.10",
+ "@cubejs-backend/snowflake-driver": "1.1.10",
+ "@cubejs-backend/testing-shared": "1.1.11",
"@cubejs-client/core": "^1.0.0",
"@cubejs-client/ws-transport": "^1.0.0",
"@jest/globals": "^27",
diff --git a/packages/cubejs-testing-shared/CHANGELOG.md b/packages/cubejs-testing-shared/CHANGELOG.md
index 4b8b514c8aa23..6a8438bdbbd46 100644
--- a/packages/cubejs-testing-shared/CHANGELOG.md
+++ b/packages/cubejs-testing-shared/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/testing-shared
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/testing-shared
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**Note:** Version bump only for package @cubejs-backend/testing-shared
diff --git a/packages/cubejs-testing-shared/package.json b/packages/cubejs-testing-shared/package.json
index 78e75db990718..ee01d5c176358 100644
--- a/packages/cubejs-testing-shared/package.json
+++ b/packages/cubejs-testing-shared/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-backend/testing-shared",
- "version": "1.1.9",
+ "version": "1.1.11",
"description": "Cube.js Testing Helpers",
"author": "Cube Dev, Inc.",
"license": "Apache-2.0",
@@ -21,9 +21,9 @@
],
"dependencies": {
"@cubejs-backend/dotenv": "^9.0.2",
- "@cubejs-backend/query-orchestrator": "1.1.9",
- "@cubejs-backend/schema-compiler": "1.1.9",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/query-orchestrator": "1.1.10",
+ "@cubejs-backend/schema-compiler": "1.1.11",
+ "@cubejs-backend/shared": "1.1.10",
"@testcontainers/kafka": "~10.13.0",
"dedent": "^0.7.0",
"node-fetch": "^2.6.7",
diff --git a/packages/cubejs-testing-shared/src/db-container-runners/postgres.ts b/packages/cubejs-testing-shared/src/db-container-runners/postgres.ts
index 255fc1bdd1ef1..8fc359792d275 100644
--- a/packages/cubejs-testing-shared/src/db-container-runners/postgres.ts
+++ b/packages/cubejs-testing-shared/src/db-container-runners/postgres.ts
@@ -5,7 +5,7 @@ import { DbRunnerAbstract, DBRunnerContainerOptions } from './db-runner.abstract
export class PostgresDBRunner extends DbRunnerAbstract {
public static startContainer(options: DBRunnerContainerOptions) {
- const version = process.env.TEST_PGSQL_VERSION || options.version || '9.6.8';
+ const version = process.env.TEST_PGSQL_VERSION || options.version || '12.22';
const container = new GenericContainer(`postgres:${version}`)
.withEnvironment({
diff --git a/packages/cubejs-testing/CHANGELOG.md b/packages/cubejs-testing/CHANGELOG.md
index eb5905299f73b..e61138fa52509 100644
--- a/packages/cubejs-testing/CHANGELOG.md
+++ b/packages/cubejs-testing/CHANGELOG.md
@@ -3,6 +3,26 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/testing
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+
+### Bug Fixes
+
+* **api-gateway:** make sure DAP works sql pushdown ([#9021](https://github.com/cube-js/cube/issues/9021)) ([23695b2](https://github.com/cube-js/cube/commit/23695b2b5e886b5b7daf8b3f74003bb04e5b2e0b))
+* **schema-compiler:** fix DAP with query_rewrite and python config ([#9033](https://github.com/cube-js/cube/issues/9033)) ([849790f](https://github.com/cube-js/cube/commit/849790f965dd0d9fddba11e3d8d124b84397ca9b))
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**Note:** Version bump only for package @cubejs-backend/testing
diff --git a/packages/cubejs-testing/birdbox-fixtures/rbac-python/cube.py b/packages/cubejs-testing/birdbox-fixtures/rbac-python/cube.py
new file mode 100644
index 0000000000000..ca5e668d0c81a
--- /dev/null
+++ b/packages/cubejs-testing/birdbox-fixtures/rbac-python/cube.py
@@ -0,0 +1,62 @@
+# Cube configuration options: https://cube.dev/docs/config
+
+from cube import config
+
+
+@config('context_to_roles')
+def context_to_roles(context):
+ return context.get("securityContext", {}).get("auth", {}).get("roles", [])
+
+
+def extract_matching_dicts(data):
+ matching_dicts = []
+ keys = ['values', 'member', 'operator']
+
+ # Recursive function to traverse through the list or dictionary
+ def traverse(element):
+ if isinstance(element, dict):
+ # Check if any of the specified keys are in the dictionary
+ if any(key in element for key in keys):
+ matching_dicts.append(element)
+ # Traverse the dictionary values
+ for value in element.values():
+ traverse(value)
+ elif isinstance(element, list):
+ # Traverse the list items
+ for item in element:
+ traverse(item)
+
+ traverse(data)
+ return matching_dicts
+
+
+@config('query_rewrite')
+def query_rewrite(query: dict, ctx: dict) -> dict:
+ filters = extract_matching_dicts(query.get('filters'))
+
+ for value in range(len(query['timeDimensions'])):
+ filters.append(query['timeDimensions'][value]['dateRange'])
+
+ if not filters or None in filters:
+ raise Exception("Queries can't be run without a filter")
+ return query
+
+
+@config('check_sql_auth')
+def check_sql_auth(query: dict, username: str, password: str) -> dict:
+ if username == 'admin':
+ return {
+ 'username': 'admin',
+ 'password': password,
+ 'securityContext': {
+ 'auth': {
+ 'username': 'admin',
+ 'userAttributes': {
+ 'canHaveAdmin': True,
+ 'city': 'New York'
+ },
+ 'roles': ['admin']
+ }
+ }
+ }
+ raise Exception("Invalid username or password")
diff --git a/packages/cubejs-testing/birdbox-fixtures/rbac-python/model/cubes/users.yaml b/packages/cubejs-testing/birdbox-fixtures/rbac-python/model/cubes/users.yaml
new file mode 100644
index 0000000000000..7904a2199dee2
--- /dev/null
+++ b/packages/cubejs-testing/birdbox-fixtures/rbac-python/model/cubes/users.yaml
@@ -0,0 +1,54 @@
+cubes:
+ - name: users
+ sql_table: users
+
+ measures:
+ - name: count
+ sql: id
+ type: count
+
+ dimensions:
+ - name: city
+ sql: city
+ type: string
+
+ - name: id
+ sql: id
+ type: number
+ primary_key: true
+
+ access_policy:
+ - role: "*"
+ row_level:
+ filters:
+ - member: "{CUBE}.city"
+ operator: equals
+ values: ["{ security_context.auth.userAttributes.city }"]
+ - role: admin
+ conditions:
+ # This thing will fail if there's no auth info in the context
+ # Unfortunately, as of now, there's no way to write more complex expressions
+ # that would allow us to check for the existence of the auth object
+ - if: "{ security_context.auth.userAttributes.canHaveAdmin }"
+ row_level:
+ filters:
+ - or:
+ - and:
+ - member: "{CUBE}.city"
+ operator: notStartsWith
+ values:
+ - London
+ - "{ security_context.auth.userAttributes.city }"
+ # mixing string, dynamic values, integers and bools should not
+ # cause any compilation issues
+ - 4
+ - true
+ - member: "city"
+ operator: notEquals
+ values:
+ - 'San Francisco'
+ - member: "{CUBE}.city"
+ operator: equals
+ values:
+ - "New York"
+
diff --git a/packages/cubejs-testing/package.json b/packages/cubejs-testing/package.json
index bfc6513c0c7a0..c605bbd47c387 100644
--- a/packages/cubejs-testing/package.json
+++ b/packages/cubejs-testing/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-backend/testing",
- "version": "1.1.9",
+ "version": "1.1.11",
"description": "Cube.js e2e tests",
"author": "Cube Dev, Inc.",
"license": "Apache-2.0",
@@ -90,14 +90,14 @@
"birdbox-fixtures"
],
"dependencies": {
- "@cubejs-backend/cubestore-driver": "1.1.9",
+ "@cubejs-backend/cubestore-driver": "1.1.10",
"@cubejs-backend/dotenv": "^9.0.2",
- "@cubejs-backend/ksql-driver": "1.1.9",
- "@cubejs-backend/postgres-driver": "1.1.9",
- "@cubejs-backend/query-orchestrator": "1.1.9",
- "@cubejs-backend/schema-compiler": "1.1.9",
- "@cubejs-backend/shared": "1.1.8",
- "@cubejs-backend/testing-shared": "1.1.9",
+ "@cubejs-backend/ksql-driver": "1.1.11",
+ "@cubejs-backend/postgres-driver": "1.1.11",
+ "@cubejs-backend/query-orchestrator": "1.1.10",
+ "@cubejs-backend/schema-compiler": "1.1.11",
+ "@cubejs-backend/shared": "1.1.10",
+ "@cubejs-backend/testing-shared": "1.1.11",
"@cubejs-client/ws-transport": "^1.0.0",
"dedent": "^0.7.0",
"fs-extra": "^8.1.0",
diff --git a/packages/cubejs-testing/src/birdbox.ts b/packages/cubejs-testing/src/birdbox.ts
index b357abab4dd18..23810105e673f 100644
--- a/packages/cubejs-testing/src/birdbox.ts
+++ b/packages/cubejs-testing/src/birdbox.ts
@@ -262,7 +262,7 @@ export async function startBirdBoxFromContainer(
if (pid !== null) {
process.kill(pid, signal);
} else {
- process.stdout.write(`[Birdbox] Cannot kill Cube instance running in TEST_CUBE_HOST mode without TEST_CUBE_PID defined\n`);
+ process.stdout.write('[Birdbox] Cannot kill Cube instance running in TEST_CUBE_HOST mode without TEST_CUBE_PID defined\n');
throw new Error('Attempted to use killCube while running with TEST_CUBE_HOST');
}
},
@@ -541,9 +541,15 @@ export async function startBirdBoxFromCli(
}
if (options.cubejsConfig) {
+ const configType = options.cubejsConfig.split('.').at(-1);
+ for (const configFile of ['cube.js', 'cube.py']) {
+ if (fs.existsSync(path.join(testDir, configFile))) {
+ fs.removeSync(path.join(testDir, configFile));
+ }
+ }
fs.copySync(
path.join(process.cwd(), 'birdbox-fixtures', options.cubejsConfig),
- path.join(testDir, 'cube.js')
+ path.join(testDir, `cube.${configType}`)
);
}
diff --git a/packages/cubejs-testing/test/__snapshots__/smoke-rbac.test.ts.snap b/packages/cubejs-testing/test/__snapshots__/smoke-rbac.test.ts.snap
index 6543d2eeb65cb..43a7d007d863f 100644
--- a/packages/cubejs-testing/test/__snapshots__/smoke-rbac.test.ts.snap
+++ b/packages/cubejs-testing/test/__snapshots__/smoke-rbac.test.ts.snap
@@ -1,5 +1,13 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
+exports[`Cube RBAC Engine [Python config] RBAC via SQL API [python config] SELECT * from users: users_python 1`] = `
+Array [
+ Object {
+ "count": "551",
+ },
+]
+`;
+
exports[`Cube RBAC Engine RBAC via REST API line_items hidden price_dim: line_items_view_no_policy_rest 1`] = `
Array [
Object {
diff --git a/packages/cubejs-testing/test/smoke-cubesql.test.ts b/packages/cubejs-testing/test/smoke-cubesql.test.ts
index 1e8e5583b4e28..0833ed85b40c3 100644
--- a/packages/cubejs-testing/test/smoke-cubesql.test.ts
+++ b/packages/cubejs-testing/test/smoke-cubesql.test.ts
@@ -119,7 +119,7 @@ describe('SQL API', () => {
expect(JSON.parse(chunk.toString()).schema).toEqual([
{
name: 'orderDate',
- column_type: 'String',
+ column_type: 'Timestamp',
},
]);
} else {
diff --git a/packages/cubejs-testing/test/smoke-rbac.test.ts b/packages/cubejs-testing/test/smoke-rbac.test.ts
index 95e7dc5cbf723..36bf86514f2fc 100644
--- a/packages/cubejs-testing/test/smoke-rbac.test.ts
+++ b/packages/cubejs-testing/test/smoke-rbac.test.ts
@@ -13,40 +13,40 @@ import {
JEST_BEFORE_ALL_DEFAULT_TIMEOUT,
} from './smoke-tests';
+const PG_PORT = 5656;
+let connectionId = 0;
+
+async function createPostgresClient(user: string, password: string) {
+ connectionId++;
+ const currentConnId = connectionId;
+
+ console.debug(`[pg] new connection ${currentConnId}`);
+
+ const conn = new PgClient({
+ database: 'db',
+ port: PG_PORT,
+ host: '127.0.0.1',
+ user,
+ password,
+ ssl: false,
+ });
+ conn.on('error', (err) => {
+ console.log(err);
+ });
+ conn.on('end', () => {
+ console.debug(`[pg] end ${currentConnId}`);
+ });
+
+ await conn.connect();
+
+ return conn;
+}
+
describe('Cube RBAC Engine', () => {
jest.setTimeout(60 * 5 * 1000);
let db: StartedTestContainer;
let birdbox: BirdBox;
- const pgPort = 5656;
- let connectionId = 0;
-
- async function createPostgresClient(user: string, password: string) {
- connectionId++;
- const currentConnId = connectionId;
-
- console.debug(`[pg] new connection ${currentConnId}`);
-
- const conn = new PgClient({
- database: 'db',
- port: pgPort,
- host: '127.0.0.1',
- user,
- password,
- ssl: false,
- });
- conn.on('error', (err) => {
- console.log(err);
- });
- conn.on('end', () => {
- console.debug(`[pg] end ${currentConnId}`);
- });
-
- await conn.connect();
-
- return conn;
- }
-
beforeAll(async () => {
db = await PostgresDBRunner.startContainer({});
await PostgresDBRunner.loadEcom(db);
@@ -64,7 +64,7 @@ describe('Cube RBAC Engine', () => {
CUBEJS_DB_USER: 'test',
CUBEJS_DB_PASS: 'test',
//
- CUBEJS_PG_SQL_PORT: `${pgPort}`,
+ CUBEJS_PG_SQL_PORT: `${PG_PORT}`,
},
{
schemaDir: 'rbac/model',
@@ -345,3 +345,60 @@ describe('Cube RBAC Engine [dev mode]', () => {
}
});
});
+
+describe('Cube RBAC Engine [Python config]', () => {
+ jest.setTimeout(60 * 5 * 1000);
+ let db: StartedTestContainer;
+ let birdbox: BirdBox;
+
+ beforeAll(async () => {
+ db = await PostgresDBRunner.startContainer({});
+ await PostgresDBRunner.loadEcom(db);
+ birdbox = await getBirdbox(
+ 'postgres',
+ {
+ ...DEFAULT_CONFIG,
+ CUBEJS_DEV_MODE: 'false',
+ NODE_ENV: 'production',
+ //
+ CUBEJS_DB_TYPE: 'postgres',
+ CUBEJS_DB_HOST: db.getHost(),
+ CUBEJS_DB_PORT: `${db.getMappedPort(5432)}`,
+ CUBEJS_DB_NAME: 'test',
+ CUBEJS_DB_USER: 'test',
+ CUBEJS_DB_PASS: 'test',
+ //
+ CUBEJS_PG_SQL_PORT: `${PG_PORT}`,
+ },
+ {
+ schemaDir: 'rbac-python/model',
+ cubejsConfig: 'rbac-python/cube.py',
+ }
+ );
+ }, JEST_BEFORE_ALL_DEFAULT_TIMEOUT);
+
+ afterAll(async () => {
+ await birdbox.stop();
+ await db.stop();
+ }, JEST_AFTER_ALL_DEFAULT_TIMEOUT);
+
+ describe('RBAC via SQL API [python config]', () => {
+ let connection: PgClient;
+
+ beforeAll(async () => {
+ connection = await createPostgresClient('admin', 'admin_password');
+ });
+
+ afterAll(async () => {
+ await connection.end();
+ }, JEST_AFTER_ALL_DEFAULT_TIMEOUT);
+
+ test('SELECT * from users', async () => {
+ const res = await connection.query('SELECT COUNT(city) as count from "users" HAVING (COUNT(1) > 0)');
+ // const res = await connection.query('SELECT * FROM users limit 10');
+ // This query should return all rows because of the `allow_all` statement
+ // It should also exclude the `created_at` dimension as per memberLevel policy
+ expect(res.rows).toMatchSnapshot('users_python');
+ });
+ });
+});
diff --git a/packages/cubejs-trino-driver/CHANGELOG.md b/packages/cubejs-trino-driver/CHANGELOG.md
index 8ff94e0b3c44b..a96c3ad31846f 100644
--- a/packages/cubejs-trino-driver/CHANGELOG.md
+++ b/packages/cubejs-trino-driver/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.11](https://github.com/cube-js/cube/compare/v1.1.10...v1.1.11) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/trino-driver
+
+
+
+
+
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+**Note:** Version bump only for package @cubejs-backend/trino-driver
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
**Note:** Version bump only for package @cubejs-backend/trino-driver
diff --git a/packages/cubejs-trino-driver/package.json b/packages/cubejs-trino-driver/package.json
index 3fe1b6075ff83..90a5a3449928f 100644
--- a/packages/cubejs-trino-driver/package.json
+++ b/packages/cubejs-trino-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/trino-driver",
"description": "Cube.js Trino database driver",
"author": "Cube Dev, Inc.",
- "version": "1.1.9",
+ "version": "1.1.11",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -25,10 +25,10 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.1.8",
- "@cubejs-backend/prestodb-driver": "1.1.8",
- "@cubejs-backend/schema-compiler": "1.1.9",
- "@cubejs-backend/shared": "1.1.8",
+ "@cubejs-backend/base-driver": "1.1.10",
+ "@cubejs-backend/prestodb-driver": "1.1.10",
+ "@cubejs-backend/schema-compiler": "1.1.11",
+ "@cubejs-backend/shared": "1.1.10",
"presto-client": "^0.12.2",
"sqlstring": "^2.3.1"
},
diff --git a/rust/cubesql/CHANGELOG.md b/rust/cubesql/CHANGELOG.md
index 65262c79701e9..a3330116ebda5 100644
--- a/rust/cubesql/CHANGELOG.md
+++ b/rust/cubesql/CHANGELOG.md
@@ -3,6 +3,17 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.1.10](https://github.com/cube-js/cube/compare/v1.1.9...v1.1.10) (2024-12-16)
+
+
+### Features
+
+* **cubesql:** Basic VALUES support in rewrite engine ([#9041](https://github.com/cube-js/cube/issues/9041)) ([368671f](https://github.com/cube-js/cube/commit/368671fd1b53b2ed5ad8df6af113492982f23c0c))
+
+
+
+
+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
diff --git a/rust/cubesql/cubesql/src/compile/mod.rs b/rust/cubesql/cubesql/src/compile/mod.rs
index e0b4974a99166..2da928a683930 100644
--- a/rust/cubesql/cubesql/src/compile/mod.rs
+++ b/rust/cubesql/cubesql/src/compile/mod.rs
@@ -16333,4 +16333,19 @@ LIMIT {{ limit }}{% endif %}"#.to_string(),
.sql;
assert!(sql.contains(" IS NULL DESC, "));
}
+
+ #[tokio::test]
+ async fn test_values_literal_table() -> Result<(), CubeError> {
+ insta::assert_snapshot!(
+ "values_literal_table",
+ execute_query(
+ r#"SELECT a AS a, b AS b FROM (VALUES (1, 2), (3, 4), (5, 6)) AS t(a, b)"#
+ .to_string(),
+ DatabaseProtocol::PostgreSQL
+ )
+ .await?
+ );
+
+ Ok(())
+ }
}
diff --git a/rust/cubesql/cubesql/src/compile/rewrite/converter.rs b/rust/cubesql/cubesql/src/compile/rewrite/converter.rs
index 99d5057e706f3..5b028b24d37fd 100644
--- a/rust/cubesql/cubesql/src/compile/rewrite/converter.rs
+++ b/rust/cubesql/cubesql/src/compile/rewrite/converter.rs
@@ -26,7 +26,7 @@ use crate::{
SortExprAsc, SortExprNullsFirst, SubqueryTypes, TableScanFetch, TableScanProjection,
TableScanSourceTableName, TableScanTableName, TableUDFExprFun, TimeDimensionDateRange,
TimeDimensionGranularity, TimeDimensionName, TryCastExprDataType, UnionAlias,
- WindowFunctionExprFun, WindowFunctionExprWindowFrame, WrappedSelectAlias,
+ ValuesValues, WindowFunctionExprFun, WindowFunctionExprWindowFrame, WrappedSelectAlias,
WrappedSelectDistinct, WrappedSelectJoinJoinType, WrappedSelectLimit,
WrappedSelectOffset, WrappedSelectPushToCube, WrappedSelectSelectType,
WrappedSelectType,
@@ -772,12 +772,13 @@ impl LogicalPlanToLanguageConverter {
self.graph
.add(LogicalPlanLanguage::Limit([skip, fetch, input]))
}
+ LogicalPlan::Values(values) => {
+ let values = add_data_node!(self, values.values, ValuesValues);
+ self.graph.add(LogicalPlanLanguage::Values([values]))
+ }
LogicalPlan::CreateExternalTable { .. } => {
panic!("CreateExternalTable is not supported");
}
- LogicalPlan::Values { .. } => {
- panic!("Values is not supported");
- }
LogicalPlan::Explain { .. } => {
panic!("Explain is not supported");
}
@@ -2283,6 +2284,11 @@ impl LanguageToLogicalPlanConverter {
LogicalPlan::Distinct(Distinct { input })
}
+ LogicalPlanLanguage::Values(values) => {
+ let values = match_data_node!(node_by_id, values[0], ValuesValues);
+
+ LogicalPlanBuilder::values(values)?.build()?
+ }
x => panic!("Unexpected logical plan node: {:?}", x),
})
}
diff --git a/rust/cubesql/cubesql/src/compile/rewrite/mod.rs b/rust/cubesql/cubesql/src/compile/rewrite/mod.rs
index 5473a4548f29a..c368ef8c1f4c1 100644
--- a/rust/cubesql/cubesql/src/compile/rewrite/mod.rs
+++ b/rust/cubesql/cubesql/src/compile/rewrite/mod.rs
@@ -157,6 +157,9 @@ crate::plan_to_language! {
location: String,
has_header: bool,
},
+ Values {
+ values: Vec>,
+ },
Extension {
node: Arc,
},
diff --git a/rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__values_literal_table.snap b/rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__values_literal_table.snap
new file mode 100644
index 0000000000000..511bbe78035cf
--- /dev/null
+++ b/rust/cubesql/cubesql/src/compile/snapshots/cubesql__compile__tests__values_literal_table.snap
@@ -0,0 +1,11 @@
+---
+source: cubesql/src/compile/mod.rs
+expression: "execute_query(r#\"SELECT a AS a, b AS b FROM (VALUES (1, 2), (3, 4), (5, 6)) AS t(a, b)\"#.to_string(),\nDatabaseProtocol::PostgreSQL).await?"
+---
++---+---+
+| a | b |
++---+---+
+| 1 | 2 |
+| 3 | 4 |
+| 5 | 6 |
++---+---+
diff --git a/rust/cubesql/cubesql/src/sql/dataframe.rs b/rust/cubesql/cubesql/src/sql/dataframe.rs
index aa9bc341ee16c..d932fe75a6212 100644
--- a/rust/cubesql/cubesql/src/sql/dataframe.rs
+++ b/rust/cubesql/cubesql/src/sql/dataframe.rs
@@ -404,7 +404,7 @@ pub fn arrow_to_column_type(arrow_type: DataType) -> Result Ok(ColumnType::String),
DataType::Date32 => Ok(ColumnType::Date(false)),
DataType::Date64 => Ok(ColumnType::Date(true)),
- DataType::Timestamp(_, _) => Ok(ColumnType::String),
+ DataType::Timestamp(_, _) => Ok(ColumnType::Timestamp),
DataType::Interval(unit) => Ok(ColumnType::Interval(unit)),
DataType::Float16 | DataType::Float32 | DataType::Float64 => Ok(ColumnType::Double),
DataType::Boolean => Ok(ColumnType::Boolean),
@@ -794,4 +794,41 @@ mod tests {
serde_json::to_string(&frame.data).unwrap()
);
}
+
+ #[test]
+ fn test_arrow_to_column_type() {
+ let cases = vec![
+ (DataType::Binary, ColumnType::Blob),
+ (DataType::Utf8, ColumnType::String),
+ (DataType::LargeUtf8, ColumnType::String),
+ (DataType::Date32, ColumnType::Date(false)),
+ (DataType::Date64, ColumnType::Date(true)),
+ (
+ DataType::Timestamp(TimeUnit::Second, None),
+ ColumnType::Timestamp,
+ ),
+ (
+ DataType::Interval(IntervalUnit::YearMonth),
+ ColumnType::Interval(IntervalUnit::YearMonth),
+ ),
+ (DataType::Float16, ColumnType::Double),
+ (DataType::Float32, ColumnType::Double),
+ (DataType::Float64, ColumnType::Double),
+ (DataType::Boolean, ColumnType::Boolean),
+ (DataType::Int32, ColumnType::Int32),
+ (DataType::UInt32, ColumnType::Int32),
+ (DataType::Int8, ColumnType::Int64),
+ (DataType::Int16, ColumnType::Int64),
+ (DataType::Int64, ColumnType::Int64),
+ (DataType::UInt8, ColumnType::Int64),
+ (DataType::UInt16, ColumnType::Int64),
+ (DataType::UInt64, ColumnType::Int64),
+ (DataType::Null, ColumnType::String),
+ ];
+
+ for (arrow_type, expected_column_type) in cases {
+ let result = arrow_to_column_type(arrow_type.clone()).unwrap();
+ assert_eq!(result, expected_column_type, "Failed for {:?}", arrow_type);
+ }
+ }
}
diff --git a/rust/cubesql/package.json b/rust/cubesql/package.json
index c12ce50e9d2cd..b9fe2739a1c76 100644
--- a/rust/cubesql/package.json
+++ b/rust/cubesql/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-backend/cubesql",
- "version": "1.1.9",
+ "version": "1.1.10",
"description": "SQL API for Cube as proxy over MySQL protocol.",
"engines": {
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
diff --git a/rust/cubesqlplanner/cubesqlplanner/src/cube_bridge/base_query_options.rs b/rust/cubesqlplanner/cubesqlplanner/src/cube_bridge/base_query_options.rs
index f08447d48c81f..2e0571cfa0fb5 100644
--- a/rust/cubesqlplanner/cubesqlplanner/src/cube_bridge/base_query_options.rs
+++ b/rust/cubesqlplanner/cubesqlplanner/src/cube_bridge/base_query_options.rs
@@ -60,6 +60,7 @@ pub struct BaseQueryOptionsStatic {
#[serde(rename = "rowLimit")]
pub row_limit: Option,
pub offset: Option,
+ pub ungrouped: Option,
}
#[nativebridge::native_bridge(BaseQueryOptionsStatic)]
diff --git a/rust/cubesqlplanner/cubesqlplanner/src/cube_bridge/base_tools.rs b/rust/cubesqlplanner/cubesqlplanner/src/cube_bridge/base_tools.rs
index d5aef3c6d812d..ded10dda2e5d4 100644
--- a/rust/cubesqlplanner/cubesqlplanner/src/cube_bridge/base_tools.rs
+++ b/rust/cubesqlplanner/cubesqlplanner/src/cube_bridge/base_tools.rs
@@ -38,4 +38,11 @@ pub trait BaseTools {
fn filter_group_function(&self) -> Result, CubeError>;
fn timestamp_precision(&self) -> Result;
fn in_db_time_zone(&self, date: String) -> Result;
+ fn generate_time_series(
+ &self,
+ granularity: String,
+ date_range: Vec,
+ ) -> Result>, CubeError>;
+ fn get_allocated_params(&self) -> Result, CubeError>;
+ fn all_cube_members(&self, path: String) -> Result, CubeError>;
}
diff --git a/rust/cubesqlplanner/cubesqlplanner/src/cube_bridge/join_item.rs b/rust/cubesqlplanner/cubesqlplanner/src/cube_bridge/join_item.rs
index 2cdcd912f2b44..f3130d0ec7f6f 100644
--- a/rust/cubesqlplanner/cubesqlplanner/src/cube_bridge/join_item.rs
+++ b/rust/cubesqlplanner/cubesqlplanner/src/cube_bridge/join_item.rs
@@ -11,7 +11,7 @@ use std::any::Any;
use std::marker::PhantomData;
use std::rc::Rc;
-#[derive(Serialize, Deserialize, Debug)]
+#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq, Hash)]
pub struct JoinItemStatic {
pub from: String,
pub to: String,
diff --git a/rust/cubesqlplanner/cubesqlplanner/src/cube_bridge/measure_definition.rs b/rust/cubesqlplanner/cubesqlplanner/src/cube_bridge/measure_definition.rs
index 5b23f4e971e4e..4c1cdb21f2596 100644
--- a/rust/cubesqlplanner/cubesqlplanner/src/cube_bridge/measure_definition.rs
+++ b/rust/cubesqlplanner/cubesqlplanner/src/cube_bridge/measure_definition.rs
@@ -21,6 +21,13 @@ pub struct TimeShiftReference {
pub time_dimension: String,
}
+#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Clone)]
+pub struct RollingWindow {
+ pub trailing: Option,
+ pub leading: Option,
+ pub offset: Option,
+}
+
#[derive(Serialize, Deserialize, Debug)]
pub struct MeasureDefinitionStatic {
#[serde(rename = "type")]
@@ -37,6 +44,8 @@ pub struct MeasureDefinitionStatic {
pub group_by_references: Option>,
#[serde(rename = "timeShiftReferences")]
pub time_shift_references: Option>,
+ #[serde(rename = "rollingWindow")]
+ pub rolling_window: Option,
}
#[nativebridge::native_bridge(MeasureDefinitionStatic)]
diff --git a/rust/cubesqlplanner/cubesqlplanner/src/cube_bridge/memeber_sql.rs b/rust/cubesqlplanner/cubesqlplanner/src/cube_bridge/memeber_sql.rs
index bb18007581a10..3dbf3a967f713 100644
--- a/rust/cubesqlplanner/cubesqlplanner/src/cube_bridge/memeber_sql.rs
+++ b/rust/cubesqlplanner/cubesqlplanner/src/cube_bridge/memeber_sql.rs
@@ -19,7 +19,7 @@ use std::rc::Rc;
pub struct MemberSqlStruct {
pub sql_fn: Option,
pub to_string_fn: Option,
- pub properties: HashMap,
+ pub properties: HashMap,
}
pub enum ContextSymbolArg {
@@ -64,6 +64,39 @@ impl NativeSerialize for MemberSqlStruct {
}
}
+impl NativeSerialize for MemberSqlArg {
+ fn to_native(
+ &self,
+ context_holder: NativeContextHolder,
+ ) -> Result, CubeError> {
+ let res = match self {
+ MemberSqlArg::String(s) => s.to_native(context_holder.clone()),
+ MemberSqlArg::Struct(s) => s.to_native(context_holder.clone()),
+ MemberSqlArg::ContextSymbol(symbol) => match symbol {
+ ContextSymbolArg::SecurityContext(context) => context
+ .clone()
+ .as_any()
+ .downcast::>()
+ .unwrap()
+ .to_native(context_holder.clone()),
+ ContextSymbolArg::FilterParams(params) => params
+ .clone()
+ .as_any()
+ .downcast::>()
+ .unwrap()
+ .to_native(context_holder.clone()),
+ ContextSymbolArg::FilterGroup(group) => group
+ .clone()
+ .as_any()
+ .downcast::>()
+ .unwrap()
+ .to_native(context_holder.clone()),
+ },
+ }?;
+ Ok(NativeObjectHandle::new(res.into_object()))
+ }
+}
+
impl NativeMemberSql {
pub fn try_new(native_object: NativeObjectHandle) -> Result {
let args_names = native_object.to_function()?.args_names()?;
@@ -89,27 +122,7 @@ impl MemberSql for NativeMemberSql {
let context_holder = NativeContextHolder::::new(self.native_object.get_context());
let native_args = args
.into_iter()
- .map(|a| match a {
- MemberSqlArg::String(s) => s.to_native(context_holder.clone()),
- MemberSqlArg::Struct(s) => s.to_native(context_holder.clone()),
- MemberSqlArg::ContextSymbol(symbol) => match symbol {
- ContextSymbolArg::SecurityContext(context) => context
- .as_any()
- .downcast::>()
- .unwrap()
- .to_native(context_holder.clone()),
- ContextSymbolArg::FilterParams(params) => params
- .as_any()
- .downcast::>()
- .unwrap()
- .to_native(context_holder.clone()),
- ContextSymbolArg::FilterGroup(group) => group
- .as_any()
- .downcast::>()
- .unwrap()
- .to_native(context_holder.clone()),
- },
- })
+ .map(|a| a.to_native(context_holder.clone()))
.collect::, _>>()?;
let res = self.native_object.to_function()?.call(native_args)?;
diff --git a/rust/cubesqlplanner/cubesqlplanner/src/plan/builder/join.rs b/rust/cubesqlplanner/cubesqlplanner/src/plan/builder/join.rs
index 8b2abcb1cf587..22ea6911dcf07 100644
--- a/rust/cubesqlplanner/cubesqlplanner/src/plan/builder/join.rs
+++ b/rust/cubesqlplanner/cubesqlplanner/src/plan/builder/join.rs
@@ -1,3 +1,4 @@
+use crate::plan::join::JoinType;
use crate::plan::{Join, JoinCondition, JoinItem, QueryPlan, Schema, Select, SingleAliasedSource};
use crate::planner::BaseCube;
use std::rc::Rc;
@@ -41,15 +42,19 @@ impl JoinBuilder {
}
pub fn left_join_subselect(&mut self, subquery: Rc