From 36c4aa2736122d14098b1ca3ec15c0828b5527e4 Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Mon, 9 Mar 2026 15:40:49 +0100 Subject: [PATCH 1/4] feat(cubestore-driver): Share process-id with Cube Store (#10477) --- .../src/WebSocketConnection.ts | 7 ++- rust/cubestore/cubestore/src/http/mod.rs | 43 ++++++++++++------- rust/cubestore/cubestore/src/mysql/mod.rs | 1 + rust/cubestore/cubestore/src/sql/mod.rs | 7 +++ 4 files changed, 41 insertions(+), 17 deletions(-) diff --git a/packages/cubejs-cubestore-driver/src/WebSocketConnection.ts b/packages/cubejs-cubestore-driver/src/WebSocketConnection.ts index 200017321dc83..f51fdc0ace764 100644 --- a/packages/cubejs-cubestore-driver/src/WebSocketConnection.ts +++ b/packages/cubejs-cubestore-driver/src/WebSocketConnection.ts @@ -2,7 +2,7 @@ import WebSocket from 'ws'; import * as flatbuffers from 'flatbuffers'; import { v4 as uuidv4 } from 'uuid'; import { InlineTable } from '@cubejs-backend/base-driver'; -import { getEnv } from '@cubejs-backend/shared'; +import { getEnv, getProcessUid } from '@cubejs-backend/shared'; import { parseCubestoreResultMessage } from '@cubejs-backend/native'; import { ConnectionError, QueryError } from './errors'; import { @@ -53,7 +53,10 @@ export class WebSocketConnection { protected async initWebSocket(): Promise { if (!this.webSocket) { - const webSocket = new WebSocket(this.url) as CubeStoreWebSocket; + const headers: Record = {}; + headers['x-process-id'] = getProcessUid(); + + const webSocket = new WebSocket(this.url, { headers }) as CubeStoreWebSocket; webSocket.readyPromise = new Promise((resolve, reject) => { webSocket.lastHeartBeat = new Date(); const pingInterval = setInterval(() => { diff --git a/rust/cubestore/cubestore/src/http/mod.rs b/rust/cubestore/cubestore/src/http/mod.rs index 98467fece71e5..e6a74c3848711 100644 --- a/rust/cubestore/cubestore/src/http/mod.rs +++ b/rust/cubestore/cubestore/src/http/mod.rs @@ -109,20 +109,31 @@ impl HttpServer { let auth_filter = warp::any() .and(warp::header::optional("authorization")) - .and_then(move |auth_header: Option| { - let auth_service = auth_service.clone(); - async move { - let res = HttpServer::authorize(auth_service, auth_header).await; - match res { - Ok(user) => Ok(SqlQueryContext { - user, - inline_tables: InlineTables::new(), - trace_obj: None, - }), - Err(_) => Err(warp::reject::custom(CubeRejection::NotAuthorized)), + .and(warp::header::optional("x-process-id")) + .and_then( + move |auth_header: Option, process_id: Option| { + let auth_service = auth_service.clone(); + async move { + if let Some(ref id) = process_id { + if id.len() > 64 { + return Err(warp::reject::custom(CubeRejection::Internal( + "x-process-id header exceeds 64 characters".to_string(), + ))); + } + } + let res = HttpServer::authorize(auth_service, auth_header).await; + match res { + Ok(user) => Ok(SqlQueryContext { + user, + inline_tables: InlineTables::new(), + trace_obj: None, + process_id, + }), + Err(_) => Err(warp::reject::custom(CubeRejection::NotAuthorized)), + } } - } - }); + }, + ); let context_filter = tx_to_move_filter.and(auth_filter.clone()); @@ -137,11 +148,13 @@ impl HttpServer { let tx_to_move = tx.clone(); let sql_query_context = sql_query_context.clone(); Result::<_, Rejection>::Ok(ws.max_frame_size(max_frame_size).max_message_size(max_message_size).on_upgrade(async move |mut web_socket| { + let process_id = sql_query_context.process_id.as_deref().unwrap_or("None"); + trace!("WebSocket connection established (process_id: {})", process_id); let (response_tx, mut response_rx) = mpsc::channel::>(10000); loop { tokio::select! { Some(res) = response_rx.recv() => { - trace!("Sending web socket response"); + trace!("Sending web socket response (process_id: {})", process_id); let send_res = web_socket.send(Message::binary(res.bytes())).await; if let Err(e) = send_res { error!("Websocket message send error: {:?}", e) @@ -162,7 +175,7 @@ impl HttpServer { match HttpMessage::read(msg.into_bytes()).await { Err(e) => error!("Websocket message read error: {:?}", e), Ok(msg) => { - trace!("Received web socket message"); + trace!("Received web socket message (process_id: {})", process_id); let message_id = msg.message_id; let connection_id = msg.connection_id.clone(); // TODO use timeout instead of try send for burst control however try_send is safer for now diff --git a/rust/cubestore/cubestore/src/mysql/mod.rs b/rust/cubestore/cubestore/src/mysql/mod.rs index ac4982316f6fd..a56b381b05835 100644 --- a/rust/cubestore/cubestore/src/mysql/mod.rs +++ b/rust/cubestore/cubestore/src/mysql/mod.rs @@ -63,6 +63,7 @@ impl AsyncMysqlShim for Backend { user: self.user.clone(), inline_tables: InlineTables::new(), trace_obj: None, + process_id: None, }, query, ) diff --git a/rust/cubestore/cubestore/src/sql/mod.rs b/rust/cubestore/cubestore/src/sql/mod.rs index ce2747c97125f..9243ef2dec664 100644 --- a/rust/cubestore/cubestore/src/sql/mod.rs +++ b/rust/cubestore/cubestore/src/sql/mod.rs @@ -139,6 +139,7 @@ pub struct SqlQueryContext { pub user: Option, pub inline_tables: InlineTables, pub trace_obj: Option, + pub process_id: Option, } impl SqlQueryContext { @@ -159,6 +160,12 @@ impl SqlQueryContext { res.trace_obj = trace_obj; res } + + pub fn with_process_id(&self, process_id: Option) -> Self { + let mut res = self.clone(); + res.process_id = process_id; + res + } } pub struct SqlServiceImpl { From e88c8906641b302c5af02c32cdf2cfb5890cd3aa Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Mon, 9 Mar 2026 15:58:12 +0100 Subject: [PATCH 2/4] v1.6.20 --- CHANGELOG.md | 12 ++++ lerna.json | 2 +- packages/cubejs-api-gateway/CHANGELOG.md | 6 ++ packages/cubejs-api-gateway/package.json | 10 ++-- packages/cubejs-athena-driver/CHANGELOG.md | 4 ++ packages/cubejs-athena-driver/package.json | 10 ++-- packages/cubejs-backend-cloud/CHANGELOG.md | 4 ++ packages/cubejs-backend-cloud/package.json | 6 +- packages/cubejs-backend-maven/CHANGELOG.md | 4 ++ packages/cubejs-backend-maven/package.json | 6 +- packages/cubejs-backend-native/CHANGELOG.md | 6 ++ packages/cubejs-backend-native/package.json | 8 +-- packages/cubejs-backend-shared/CHANGELOG.md | 4 ++ packages/cubejs-backend-shared/package.json | 4 +- packages/cubejs-base-driver/CHANGELOG.md | 4 ++ packages/cubejs-base-driver/package.json | 6 +- packages/cubejs-bigquery-driver/CHANGELOG.md | 4 ++ packages/cubejs-bigquery-driver/package.json | 8 +-- packages/cubejs-cli/CHANGELOG.md | 4 ++ packages/cubejs-cli/package.json | 12 ++-- .../cubejs-clickhouse-driver/CHANGELOG.md | 4 ++ .../cubejs-clickhouse-driver/package.json | 10 ++-- packages/cubejs-client-core/CHANGELOG.md | 4 ++ packages/cubejs-client-core/package.json | 4 +- packages/cubejs-client-dx/CHANGELOG.md | 4 ++ packages/cubejs-client-dx/package.json | 2 +- packages/cubejs-client-ngx/CHANGELOG.md | 4 ++ packages/cubejs-client-ngx/package.json | 2 +- packages/cubejs-client-react/CHANGELOG.md | 4 ++ packages/cubejs-client-react/package.json | 4 +- packages/cubejs-client-vue3/CHANGELOG.md | 4 ++ packages/cubejs-client-vue3/package.json | 4 +- .../cubejs-client-ws-transport/CHANGELOG.md | 4 ++ .../cubejs-client-ws-transport/package.json | 6 +- packages/cubejs-crate-driver/CHANGELOG.md | 4 ++ packages/cubejs-crate-driver/package.json | 10 ++-- packages/cubejs-cubestore-driver/CHANGELOG.md | 6 ++ packages/cubejs-cubestore-driver/package.json | 12 ++-- .../CHANGELOG.md | 4 ++ .../package.json | 12 ++-- .../cubejs-dbt-schema-extension/CHANGELOG.md | 4 ++ .../cubejs-dbt-schema-extension/package.json | 8 +-- packages/cubejs-docker/CHANGELOG.md | 4 ++ packages/cubejs-docker/package.json | 60 +++++++++---------- packages/cubejs-dremio-driver/CHANGELOG.md | 4 ++ packages/cubejs-dremio-driver/package.json | 12 ++-- packages/cubejs-druid-driver/CHANGELOG.md | 4 ++ packages/cubejs-druid-driver/package.json | 10 ++-- packages/cubejs-duckdb-driver/CHANGELOG.md | 4 ++ packages/cubejs-duckdb-driver/package.json | 12 ++-- .../cubejs-elasticsearch-driver/CHANGELOG.md | 4 ++ .../cubejs-elasticsearch-driver/package.json | 8 +-- packages/cubejs-firebolt-driver/CHANGELOG.md | 4 ++ packages/cubejs-firebolt-driver/package.json | 12 ++-- packages/cubejs-hive-driver/CHANGELOG.md | 4 ++ packages/cubejs-hive-driver/package.json | 8 +-- packages/cubejs-jdbc-driver/CHANGELOG.md | 4 ++ packages/cubejs-jdbc-driver/package.json | 8 +-- packages/cubejs-ksql-driver/CHANGELOG.md | 4 ++ packages/cubejs-ksql-driver/package.json | 10 ++-- packages/cubejs-linter/CHANGELOG.md | 4 ++ packages/cubejs-linter/package.json | 2 +- .../cubejs-materialize-driver/CHANGELOG.md | 4 ++ .../cubejs-materialize-driver/package.json | 12 ++-- packages/cubejs-mongobi-driver/CHANGELOG.md | 4 ++ packages/cubejs-mongobi-driver/package.json | 8 +-- packages/cubejs-mssql-driver/CHANGELOG.md | 4 ++ packages/cubejs-mssql-driver/package.json | 6 +- .../CHANGELOG.md | 4 ++ .../package.json | 8 +-- packages/cubejs-mysql-driver/CHANGELOG.md | 4 ++ packages/cubejs-mysql-driver/package.json | 10 ++-- packages/cubejs-oracle-driver/CHANGELOG.md | 4 ++ packages/cubejs-oracle-driver/package.json | 4 +- packages/cubejs-pinot-driver/CHANGELOG.md | 4 ++ packages/cubejs-pinot-driver/package.json | 10 ++-- packages/cubejs-playground/CHANGELOG.md | 4 ++ packages/cubejs-playground/package.json | 6 +- packages/cubejs-postgres-driver/CHANGELOG.md | 4 ++ packages/cubejs-postgres-driver/package.json | 10 ++-- packages/cubejs-prestodb-driver/CHANGELOG.md | 4 ++ packages/cubejs-prestodb-driver/package.json | 8 +-- .../cubejs-query-orchestrator/CHANGELOG.md | 4 ++ .../cubejs-query-orchestrator/package.json | 10 ++-- packages/cubejs-questdb-driver/CHANGELOG.md | 4 ++ packages/cubejs-questdb-driver/package.json | 12 ++-- packages/cubejs-redshift-driver/CHANGELOG.md | 4 ++ packages/cubejs-redshift-driver/package.json | 10 ++-- packages/cubejs-schema-compiler/CHANGELOG.md | 6 ++ packages/cubejs-schema-compiler/package.json | 12 ++-- packages/cubejs-server-core/CHANGELOG.md | 4 ++ packages/cubejs-server-core/package.json | 24 ++++---- packages/cubejs-server/CHANGELOG.md | 4 ++ packages/cubejs-server/package.json | 14 ++--- packages/cubejs-snowflake-driver/CHANGELOG.md | 4 ++ packages/cubejs-snowflake-driver/package.json | 8 +-- packages/cubejs-sqlite-driver/CHANGELOG.md | 4 ++ packages/cubejs-sqlite-driver/package.json | 8 +-- packages/cubejs-templates/CHANGELOG.md | 4 ++ packages/cubejs-templates/package.json | 6 +- packages/cubejs-testing-drivers/CHANGELOG.md | 4 ++ packages/cubejs-testing-drivers/package.json | 36 +++++------ packages/cubejs-testing-shared/CHANGELOG.md | 4 ++ packages/cubejs-testing-shared/package.json | 10 ++-- packages/cubejs-testing/CHANGELOG.md | 4 ++ packages/cubejs-testing/package.json | 22 +++---- packages/cubejs-trino-driver/CHANGELOG.md | 4 ++ packages/cubejs-trino-driver/package.json | 12 ++-- packages/cubejs-vertica-driver/CHANGELOG.md | 4 ++ packages/cubejs-vertica-driver/package.json | 14 ++--- rust/cubesql/CHANGELOG.md | 10 ++++ rust/cubesql/package.json | 2 +- rust/cubestore/CHANGELOG.md | 6 ++ rust/cubestore/package.json | 6 +- 114 files changed, 540 insertions(+), 288 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a3f001a13ca49..898403cbf8acc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +### Bug Fixes + +- **cube:** Issue with rollup pre-aggragations matching for views ([#10474](https://github.com/cube-js/cube/issues/10474)) ([7160283](https://github.com/cube-js/cube/commit/7160283c7dac5d5696cf683b8e59418e58453821)) +- **cubesql:** Do not panic when executing `MEASURE` function ([#10472](https://github.com/cube-js/cube/issues/10472)) ([3202d51](https://github.com/cube-js/cube/commit/3202d517dce747831ff2549f30f4888b11bb005b)) + +### Features + +- **backend-native:** Add `throwContinueWait` parameter to `/cubesql` API endpoint ([#10385](https://github.com/cube-js/cube/issues/10385)) ([3687c5f](https://github.com/cube-js/cube/commit/3687c5f422d6b265409a3e539fc77f37df207eb1)) +- **cubestore-driver:** Share process-id with Cube Store ([#10477](https://github.com/cube-js/cube/issues/10477)) ([36c4aa2](https://github.com/cube-js/cube/commit/36c4aa2736122d14098b1ca3ec15c0828b5527e4)) + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) ### Bug Fixes diff --git a/lerna.json b/lerna.json index 80e6e252aba02..31834cf1f52be 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.6.19", + "version": "1.6.20", "npmClient": "yarn", "command": { "bootstrap": { diff --git a/packages/cubejs-api-gateway/CHANGELOG.md b/packages/cubejs-api-gateway/CHANGELOG.md index 2a7c4f77380fa..ebdc3a7194c8c 100644 --- a/packages/cubejs-api-gateway/CHANGELOG.md +++ b/packages/cubejs-api-gateway/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +### Features + +- **backend-native:** Add `throwContinueWait` parameter to `/cubesql` API endpoint ([#10385](https://github.com/cube-js/cube/issues/10385)) ([3687c5f](https://github.com/cube-js/cube/commit/3687c5f422d6b265409a3e539fc77f37df207eb1)) + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) ### Bug Fixes diff --git a/packages/cubejs-api-gateway/package.json b/packages/cubejs-api-gateway/package.json index 25bad3f55d7a4..8b7ab54cf2ca9 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.6.19", + "version": "1.6.20", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -27,9 +27,9 @@ "dist/src/*" ], "dependencies": { - "@cubejs-backend/native": "1.6.19", - "@cubejs-backend/query-orchestrator": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/native": "1.6.20", + "@cubejs-backend/query-orchestrator": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "@ungap/structured-clone": "^0.3.4", "assert-never": "^1.4.0", "body-parser": "^1.19.0", @@ -53,7 +53,7 @@ "zod": "^4.1.13" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "@types/express": "^4.17.21", "@types/jest": "^29", "@types/jsonwebtoken": "^9.0.2", diff --git a/packages/cubejs-athena-driver/CHANGELOG.md b/packages/cubejs-athena-driver/CHANGELOG.md index 966170a23b172..4a841d20c6f03 100644 --- a/packages/cubejs-athena-driver/CHANGELOG.md +++ b/packages/cubejs-athena-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/athena-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 debab6074fbfc..e7370e6408d1e 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.6.19", + "version": "1.6.20", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -30,13 +30,13 @@ "dependencies": { "@aws-sdk/client-athena": "^3.22.0", "@aws-sdk/credential-providers": "^3.22.0", - "@cubejs-backend/base-driver": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "sqlstring": "^2.3.1" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", - "@cubejs-backend/testing-shared": "1.6.19", + "@cubejs-backend/linter": "1.6.20", + "@cubejs-backend/testing-shared": "1.6.20", "@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 597ba75bcbda8..6518598d21c8a 100644 --- a/packages/cubejs-backend-cloud/CHANGELOG.md +++ b/packages/cubejs-backend-cloud/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/cloud + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 d634828e964e5..8852d14c8479b 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.6.19", + "version": "1.6.20", "description": "Cube Cloud package", "main": "dist/src/index.js", "typings": "dist/src/index.d.ts", @@ -30,7 +30,7 @@ "devDependencies": { "@babel/core": "^7.24.5", "@babel/preset-env": "^7.24.5", - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "@types/fs-extra": "^9.0.8", "@types/jest": "^29", "jest": "^29", @@ -38,7 +38,7 @@ }, "dependencies": { "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/shared": "1.6.20", "chokidar": "^3.5.1", "env-var": "^6.3.0", "form-data": "^4.0.0", diff --git a/packages/cubejs-backend-maven/CHANGELOG.md b/packages/cubejs-backend-maven/CHANGELOG.md index 0975a58dc6825..7737ad00bd6e1 100644 --- a/packages/cubejs-backend-maven/CHANGELOG.md +++ b/packages/cubejs-backend-maven/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/maven + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 f9a44f801b574..cf106049adc90 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.6.19", + "version": "1.6.20", "license": "Apache-2.0", "repository": { "type": "git", @@ -31,12 +31,12 @@ "dist/src/*" ], "dependencies": { - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/shared": "1.6.20", "source-map-support": "^0.5.19", "xmlbuilder2": "^2.4.0" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "@types/jest": "^29", "@types/node": "^20", "jest": "^29", diff --git a/packages/cubejs-backend-native/CHANGELOG.md b/packages/cubejs-backend-native/CHANGELOG.md index c143dd7a611b5..4e7bb9e204507 100644 --- a/packages/cubejs-backend-native/CHANGELOG.md +++ b/packages/cubejs-backend-native/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +### Features + +- **backend-native:** Add `throwContinueWait` parameter to `/cubesql` API endpoint ([#10385](https://github.com/cube-js/cube/issues/10385)) ([3687c5f](https://github.com/cube-js/cube/commit/3687c5f422d6b265409a3e539fc77f37df207eb1)) + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 498dfab96b3ac..a5d85c3e9d02a 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.6.19", + "version": "1.6.20", "author": "Cube Dev, Inc.", "description": "Native module for Cube.js (binding to Rust codebase)", "main": "dist/js/index.js", @@ -36,7 +36,7 @@ "dist/js" ], "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "@types/jest": "^29", "@types/node": "^20", "cargo-cp-artifact": "^0.1.9", @@ -47,8 +47,8 @@ "uuid": "^8.3.2" }, "dependencies": { - "@cubejs-backend/cubesql": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/cubesql": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "@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 37f3dce06a96a..45a31722b09b4 100644 --- a/packages/cubejs-backend-shared/CHANGELOG.md +++ b/packages/cubejs-backend-shared/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/shared + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **Note:** Version bump only for package @cubejs-backend/shared diff --git a/packages/cubejs-backend-shared/package.json b/packages/cubejs-backend-shared/package.json index 6080cc0dd0b58..ae1f172d5515e 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.6.19", + "version": "1.6.20", "description": "Shared code for Cube.js backend packages", "main": "dist/src/index.js", "typings": "dist/src/index.d.ts", @@ -27,7 +27,7 @@ }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "@types/bytes": "^3.1.5", "@types/cli-progress": "^3.9.1", "@types/decompress": "^4.2.7", diff --git a/packages/cubejs-base-driver/CHANGELOG.md b/packages/cubejs-base-driver/CHANGELOG.md index 915251c44af4d..834155e44e094 100644 --- a/packages/cubejs-base-driver/CHANGELOG.md +++ b/packages/cubejs-base-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/base-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 67ea543aab9f5..22536e71320aa 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.6.19", + "version": "1.6.20", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -33,11 +33,11 @@ "@aws-sdk/s3-request-presigner": "^3.49.0", "@azure/identity": "^4.4.1", "@azure/storage-blob": "^12.9.0", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/shared": "1.6.20", "@google-cloud/storage": "^7.13.0" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "@types/jest": "^29", "@types/node": "^20", "jest": "^29", diff --git a/packages/cubejs-bigquery-driver/CHANGELOG.md b/packages/cubejs-bigquery-driver/CHANGELOG.md index 484fa2ff7bc07..b5a77c6341734 100644 --- a/packages/cubejs-bigquery-driver/CHANGELOG.md +++ b/packages/cubejs-bigquery-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/bigquery-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 8fab89dc64db0..d3b298d1136be 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.6.19", + "version": "1.6.20", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -29,15 +29,15 @@ "main": "index.js", "types": "dist/src/index.d.ts", "dependencies": { - "@cubejs-backend/base-driver": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/shared": "1.6.20", "@google-cloud/bigquery": "^7.7.0", "@google-cloud/storage": "^7.13.0", "ramda": "^0.27.2" }, "devDependencies": { - "@cubejs-backend/testing-shared": "1.6.19", + "@cubejs-backend/testing-shared": "1.6.20", "@types/big.js": "^6.2.2", "@types/dedent": "^0.7.0", "@types/jest": "^29", diff --git a/packages/cubejs-cli/CHANGELOG.md b/packages/cubejs-cli/CHANGELOG.md index 1818714925a15..a80b0af342365 100644 --- a/packages/cubejs-cli/CHANGELOG.md +++ b/packages/cubejs-cli/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package cubejs-cli + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **Note:** Version bump only for package cubejs-cli diff --git a/packages/cubejs-cli/package.json b/packages/cubejs-cli/package.json index 5995147009f22..592bdb2494982 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.6.19", + "version": "1.6.20", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -30,10 +30,10 @@ "LICENSE" ], "dependencies": { - "@cubejs-backend/cloud": "1.6.19", + "@cubejs-backend/cloud": "1.6.20", "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/schema-compiler": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/schema-compiler": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "chalk": "^2.4.2", "cli-progress": "^3.10", "commander": "^2.19.0", @@ -50,8 +50,8 @@ "colors": "1.4.0" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", - "@cubejs-backend/server": "1.6.19", + "@cubejs-backend/linter": "1.6.20", + "@cubejs-backend/server": "1.6.20", "@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 91c11a2e84935..4b96b0b627c8d 100644 --- a/packages/cubejs-clickhouse-driver/CHANGELOG.md +++ b/packages/cubejs-clickhouse-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/clickhouse-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 701941afbe111..30ff57c72ae19 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.6.19", + "version": "1.6.20", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -28,16 +28,16 @@ }, "dependencies": { "@clickhouse/client": "^1.12.0", - "@cubejs-backend/base-driver": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "moment": "^2.24.0", "sqlstring": "^2.3.1", "uuid": "^8.3.2" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.6.19", - "@cubejs-backend/testing-shared": "1.6.19", + "@cubejs-backend/linter": "1.6.20", + "@cubejs-backend/testing-shared": "1.6.20", "@types/jest": "^29", "jest": "^29", "typescript": "~5.2.2" diff --git a/packages/cubejs-client-core/CHANGELOG.md b/packages/cubejs-client-core/CHANGELOG.md index 8833794e1f175..2fe22a13cd257 100644 --- a/packages/cubejs-client-core/CHANGELOG.md +++ b/packages/cubejs-client-core/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-client/core + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **Note:** Version bump only for package @cubejs-client/core diff --git a/packages/cubejs-client-core/package.json b/packages/cubejs-client-core/package.json index 365d64a5040a7..f4511acf3fddd 100644 --- a/packages/cubejs-client-core/package.json +++ b/packages/cubejs-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-client/core", - "version": "1.6.19", + "version": "1.6.20", "engines": {}, "repository": { "type": "git", @@ -39,7 +39,7 @@ ], "license": "MIT", "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "@types/jest": "^29", "@types/moment-range": "^4.0.0", "@types/ramda": "^0.27.34", diff --git a/packages/cubejs-client-dx/CHANGELOG.md b/packages/cubejs-client-dx/CHANGELOG.md index 746d552999acf..ca5539e702bc7 100644 --- a/packages/cubejs-client-dx/CHANGELOG.md +++ b/packages/cubejs-client-dx/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-client/dx + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **Note:** Version bump only for package @cubejs-client/dx diff --git a/packages/cubejs-client-dx/package.json b/packages/cubejs-client-dx/package.json index 97f546fff92e4..23b2308c70af4 100644 --- a/packages/cubejs-client-dx/package.json +++ b/packages/cubejs-client-dx/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-client/dx", - "version": "1.6.19", + "version": "1.6.20", "engines": {}, "repository": { "type": "git", diff --git a/packages/cubejs-client-ngx/CHANGELOG.md b/packages/cubejs-client-ngx/CHANGELOG.md index 9fa51d6c0cae5..8ac404c111c45 100644 --- a/packages/cubejs-client-ngx/CHANGELOG.md +++ b/packages/cubejs-client-ngx/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-client/ngx + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **Note:** Version bump only for package @cubejs-client/ngx diff --git a/packages/cubejs-client-ngx/package.json b/packages/cubejs-client-ngx/package.json index 929463ed700ac..dc96f0bca529f 100644 --- a/packages/cubejs-client-ngx/package.json +++ b/packages/cubejs-client-ngx/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-client/ngx", - "version": "1.6.19", + "version": "1.6.20", "author": "Cube Dev, Inc.", "engines": {}, "repository": { diff --git a/packages/cubejs-client-react/CHANGELOG.md b/packages/cubejs-client-react/CHANGELOG.md index b105ded74b4cd..77d82805d8794 100644 --- a/packages/cubejs-client-react/CHANGELOG.md +++ b/packages/cubejs-client-react/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-client/react + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **Note:** Version bump only for package @cubejs-client/react diff --git a/packages/cubejs-client-react/package.json b/packages/cubejs-client-react/package.json index a3df172e81492..70b65ce3e86a0 100644 --- a/packages/cubejs-client-react/package.json +++ b/packages/cubejs-client-react/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-client/react", - "version": "1.6.19", + "version": "1.6.20", "author": "Cube Dev, Inc.", "license": "MIT", "engines": {}, @@ -24,7 +24,7 @@ ], "dependencies": { "@babel/runtime": "^7.1.2", - "@cubejs-client/core": "1.6.19", + "@cubejs-client/core": "1.6.20", "core-js": "^3.6.5", "ramda": "^0.27.2" }, diff --git a/packages/cubejs-client-vue3/CHANGELOG.md b/packages/cubejs-client-vue3/CHANGELOG.md index 8e21aa17d4ac3..13a1ac0f525f9 100644 --- a/packages/cubejs-client-vue3/CHANGELOG.md +++ b/packages/cubejs-client-vue3/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-client/vue3 + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **Note:** Version bump only for package @cubejs-client/vue3 diff --git a/packages/cubejs-client-vue3/package.json b/packages/cubejs-client-vue3/package.json index 55fc9b863ea74..54d4102aab6fe 100644 --- a/packages/cubejs-client-vue3/package.json +++ b/packages/cubejs-client-vue3/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-client/vue3", - "version": "1.6.19", + "version": "1.6.20", "engines": {}, "repository": { "type": "git", @@ -28,7 +28,7 @@ "src" ], "dependencies": { - "@cubejs-client/core": "1.6.19", + "@cubejs-client/core": "1.6.20", "ramda": "^0.27.0" }, "devDependencies": { diff --git a/packages/cubejs-client-ws-transport/CHANGELOG.md b/packages/cubejs-client-ws-transport/CHANGELOG.md index c6d80faa93d3a..750dd199d9be7 100644 --- a/packages/cubejs-client-ws-transport/CHANGELOG.md +++ b/packages/cubejs-client-ws-transport/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-client/ws-transport + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **Note:** Version bump only for package @cubejs-client/ws-transport diff --git a/packages/cubejs-client-ws-transport/package.json b/packages/cubejs-client-ws-transport/package.json index 819fee4bd44cd..8b32b897ab3b2 100644 --- a/packages/cubejs-client-ws-transport/package.json +++ b/packages/cubejs-client-ws-transport/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-client/ws-transport", - "version": "1.6.19", + "version": "1.6.20", "engines": {}, "repository": { "type": "git", @@ -20,7 +20,7 @@ }, "dependencies": { "@babel/runtime": "^7.1.2", - "@cubejs-client/core": "1.6.19", + "@cubejs-client/core": "1.6.20", "core-js": "^3.6.5", "isomorphic-ws": "^4.0.1", "ws": "^7.3.1" @@ -33,7 +33,7 @@ "@babel/core": "^7.3.3", "@babel/preset-env": "^7.3.1", "@babel/preset-typescript": "^7.12.1", - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "@types/ws": "^7.2.9", "typescript": "~5.2.2" }, diff --git a/packages/cubejs-crate-driver/CHANGELOG.md b/packages/cubejs-crate-driver/CHANGELOG.md index f26dbe1256eff..03203e45d2e0a 100644 --- a/packages/cubejs-crate-driver/CHANGELOG.md +++ b/packages/cubejs-crate-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/crate-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 36cf9d6ddc337..22bb80ad1e5d2 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.6.19", + "version": "1.6.20", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -28,13 +28,13 @@ "lint:fix": "eslint --fix src/* --ext .ts" }, "dependencies": { - "@cubejs-backend/postgres-driver": "1.6.19", - "@cubejs-backend/shared": "1.6.19" + "@cubejs-backend/postgres-driver": "1.6.20", + "@cubejs-backend/shared": "1.6.20" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.6.19", - "@cubejs-backend/testing-shared": "1.6.19", + "@cubejs-backend/linter": "1.6.20", + "@cubejs-backend/testing-shared": "1.6.20", "testcontainers": "^10.28.0", "typescript": "~5.2.2" }, diff --git a/packages/cubejs-cubestore-driver/CHANGELOG.md b/packages/cubejs-cubestore-driver/CHANGELOG.md index e554e96094e64..fbdd8d0687d17 100644 --- a/packages/cubejs-cubestore-driver/CHANGELOG.md +++ b/packages/cubejs-cubestore-driver/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +### Features + +- **cubestore-driver:** Share process-id with Cube Store ([#10477](https://github.com/cube-js/cube/issues/10477)) ([36c4aa2](https://github.com/cube-js/cube/commit/36c4aa2736122d14098b1ca3ec15c0828b5527e4)) + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) ### Bug Fixes diff --git a/packages/cubejs-cubestore-driver/package.json b/packages/cubejs-cubestore-driver/package.json index 8720d22918eee..dd58fdf8ce5fe 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.6.19", + "version": "1.6.20", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -26,10 +26,10 @@ "lint:fix": "eslint --fix src/*.ts" }, "dependencies": { - "@cubejs-backend/base-driver": "1.6.19", - "@cubejs-backend/cubestore": "1.6.19", - "@cubejs-backend/native": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/cubestore": "1.6.20", + "@cubejs-backend/native": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "csv-write-stream": "^2.0.0", "flatbuffers": "23.3.3", "fs-extra": "^9.1.0", @@ -40,7 +40,7 @@ "ws": "^7.4.3" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "@types/csv-write-stream": "^2.0.0", "@types/jest": "^29", "@types/node": "^20", diff --git a/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md b/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md index b93a81509bfc2..edfc6617abfdb 100644 --- a/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md +++ b/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/databricks-jdbc-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 07e38e60932bc..0684132bda9d9 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.6.19", + "version": "1.6.20", "license": "Apache-2.0", "repository": { "type": "git", @@ -30,17 +30,17 @@ "bin" ], "dependencies": { - "@cubejs-backend/base-driver": "1.6.19", - "@cubejs-backend/jdbc-driver": "1.6.19", - "@cubejs-backend/schema-compiler": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/jdbc-driver": "1.6.20", + "@cubejs-backend/schema-compiler": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "node-fetch": "^2.6.1", "ramda": "^0.27.2", "source-map-support": "^0.5.19", "uuid": "^8.3.2" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "@types/jest": "^29", "@types/node": "^20", "@types/ramda": "^0.27.34", diff --git a/packages/cubejs-dbt-schema-extension/CHANGELOG.md b/packages/cubejs-dbt-schema-extension/CHANGELOG.md index 0cc331ad14498..980343e547a58 100644 --- a/packages/cubejs-dbt-schema-extension/CHANGELOG.md +++ b/packages/cubejs-dbt-schema-extension/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/dbt-schema-extension + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 dc243a84a625f..0103814999b63 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.6.19", + "version": "1.6.20", "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.6.19", + "@cubejs-backend/schema-compiler": "1.6.20", "fs-extra": "^9.1.0", "inflection": "^1.12.0", "node-fetch": "^2.6.1" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", - "@cubejs-backend/testing": "1.6.19", + "@cubejs-backend/linter": "1.6.20", + "@cubejs-backend/testing": "1.6.20", "@types/jest": "^29", "jest": "^29", "stream-to-array": "^2.3.0", diff --git a/packages/cubejs-docker/CHANGELOG.md b/packages/cubejs-docker/CHANGELOG.md index e6c9226807fbc..d4dc0367c775e 100644 --- a/packages/cubejs-docker/CHANGELOG.md +++ b/packages/cubejs-docker/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/docker + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **Note:** Version bump only for package @cubejs-backend/docker diff --git a/packages/cubejs-docker/package.json b/packages/cubejs-docker/package.json index bc205a740669d..cce75447652f9 100644 --- a/packages/cubejs-docker/package.json +++ b/packages/cubejs-docker/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/docker", - "version": "1.6.19", + "version": "1.6.20", "description": "Cube.js In Docker (virtual package)", "author": "Cube Dev, Inc.", "license": "Apache-2.0", @@ -9,35 +9,35 @@ "node": ">=18.0.0" }, "dependencies": { - "@cubejs-backend/athena-driver": "1.6.19", - "@cubejs-backend/bigquery-driver": "1.6.19", - "@cubejs-backend/clickhouse-driver": "1.6.19", - "@cubejs-backend/crate-driver": "1.6.19", - "@cubejs-backend/databricks-jdbc-driver": "1.6.19", - "@cubejs-backend/dbt-schema-extension": "1.6.19", - "@cubejs-backend/dremio-driver": "1.6.19", - "@cubejs-backend/druid-driver": "1.6.19", - "@cubejs-backend/duckdb-driver": "1.6.19", - "@cubejs-backend/elasticsearch-driver": "1.6.19", - "@cubejs-backend/firebolt-driver": "1.6.19", - "@cubejs-backend/hive-driver": "1.6.19", - "@cubejs-backend/ksql-driver": "1.6.19", - "@cubejs-backend/materialize-driver": "1.6.19", - "@cubejs-backend/mongobi-driver": "1.6.19", - "@cubejs-backend/mssql-driver": "1.6.19", - "@cubejs-backend/mysql-driver": "1.6.19", - "@cubejs-backend/oracle-driver": "1.6.19", - "@cubejs-backend/pinot-driver": "1.6.19", - "@cubejs-backend/postgres-driver": "1.6.19", - "@cubejs-backend/prestodb-driver": "1.6.19", - "@cubejs-backend/questdb-driver": "1.6.19", - "@cubejs-backend/redshift-driver": "1.6.19", - "@cubejs-backend/server": "1.6.19", - "@cubejs-backend/snowflake-driver": "1.6.19", - "@cubejs-backend/sqlite-driver": "1.6.19", - "@cubejs-backend/trino-driver": "1.6.19", - "@cubejs-backend/vertica-driver": "1.6.19", - "cubejs-cli": "1.6.19", + "@cubejs-backend/athena-driver": "1.6.20", + "@cubejs-backend/bigquery-driver": "1.6.20", + "@cubejs-backend/clickhouse-driver": "1.6.20", + "@cubejs-backend/crate-driver": "1.6.20", + "@cubejs-backend/databricks-jdbc-driver": "1.6.20", + "@cubejs-backend/dbt-schema-extension": "1.6.20", + "@cubejs-backend/dremio-driver": "1.6.20", + "@cubejs-backend/druid-driver": "1.6.20", + "@cubejs-backend/duckdb-driver": "1.6.20", + "@cubejs-backend/elasticsearch-driver": "1.6.20", + "@cubejs-backend/firebolt-driver": "1.6.20", + "@cubejs-backend/hive-driver": "1.6.20", + "@cubejs-backend/ksql-driver": "1.6.20", + "@cubejs-backend/materialize-driver": "1.6.20", + "@cubejs-backend/mongobi-driver": "1.6.20", + "@cubejs-backend/mssql-driver": "1.6.20", + "@cubejs-backend/mysql-driver": "1.6.20", + "@cubejs-backend/oracle-driver": "1.6.20", + "@cubejs-backend/pinot-driver": "1.6.20", + "@cubejs-backend/postgres-driver": "1.6.20", + "@cubejs-backend/prestodb-driver": "1.6.20", + "@cubejs-backend/questdb-driver": "1.6.20", + "@cubejs-backend/redshift-driver": "1.6.20", + "@cubejs-backend/server": "1.6.20", + "@cubejs-backend/snowflake-driver": "1.6.20", + "@cubejs-backend/sqlite-driver": "1.6.20", + "@cubejs-backend/trino-driver": "1.6.20", + "@cubejs-backend/vertica-driver": "1.6.20", + "cubejs-cli": "1.6.20", "typescript": "~5.2.2" }, "resolutions": { diff --git a/packages/cubejs-dremio-driver/CHANGELOG.md b/packages/cubejs-dremio-driver/CHANGELOG.md index 038e69122f8c9..5afe8b8a9dfe4 100644 --- a/packages/cubejs-dremio-driver/CHANGELOG.md +++ b/packages/cubejs-dremio-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/dremio-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **Note:** Version bump only for package @cubejs-backend/dremio-driver diff --git a/packages/cubejs-dremio-driver/package.json b/packages/cubejs-dremio-driver/package.json index 693bf7938fb14..8e33726d03134 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.6.19", + "version": "1.6.20", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -22,15 +22,15 @@ "lint:fix": "eslint driver/*.js" }, "dependencies": { - "@cubejs-backend/base-driver": "1.6.19", - "@cubejs-backend/schema-compiler": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/schema-compiler": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "axios": "^1.8.3", "sqlstring": "^2.3.1" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", - "@cubejs-backend/testing-shared": "1.6.19", + "@cubejs-backend/linter": "1.6.20", + "@cubejs-backend/testing-shared": "1.6.20", "jest": "^29" }, "license": "Apache-2.0", diff --git a/packages/cubejs-druid-driver/CHANGELOG.md b/packages/cubejs-druid-driver/CHANGELOG.md index 318aa78c714d7..0a51cba026e3f 100644 --- a/packages/cubejs-druid-driver/CHANGELOG.md +++ b/packages/cubejs-druid-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/druid-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 e2e1ba3701447..6ec9d53bd0f62 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.6.19", + "version": "1.6.20", "license": "Apache-2.0", "repository": { "type": "git", @@ -28,13 +28,13 @@ "dist/src/*" ], "dependencies": { - "@cubejs-backend/base-driver": "1.6.19", - "@cubejs-backend/schema-compiler": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/schema-compiler": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "axios": "^1.8.3" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "@types/jest": "^29", "@types/node": "^20", "jest": "^29", diff --git a/packages/cubejs-duckdb-driver/CHANGELOG.md b/packages/cubejs-duckdb-driver/CHANGELOG.md index 3fa16b2ef4abe..0eeabd9853e3e 100644 --- a/packages/cubejs-duckdb-driver/CHANGELOG.md +++ b/packages/cubejs-duckdb-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/duckdb-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 551a0f73f178c..685948a7bcf15 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.6.19", + "version": "1.6.20", "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.6.19", - "@cubejs-backend/schema-compiler": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/schema-compiler": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "duckdb": "^1.4.1" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.6.19", - "@cubejs-backend/testing-shared": "1.6.19", + "@cubejs-backend/linter": "1.6.20", + "@cubejs-backend/testing-shared": "1.6.20", "@types/jest": "^29", "@types/node": "^20", "jest": "^29", diff --git a/packages/cubejs-elasticsearch-driver/CHANGELOG.md b/packages/cubejs-elasticsearch-driver/CHANGELOG.md index aa0cf4bedf66d..a9e125df89e92 100644 --- a/packages/cubejs-elasticsearch-driver/CHANGELOG.md +++ b/packages/cubejs-elasticsearch-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/elasticsearch-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 c910c266172e0..ae0fd60b8a6e0 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.6.19", + "version": "1.6.20", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -23,14 +23,14 @@ "driver" ], "dependencies": { - "@cubejs-backend/base-driver": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "@elastic/elasticsearch": "7.12.0", "sqlstring": "^2.3.1" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "@types/jest": "^29", "jest": "^29", "testcontainers": "^10.28.0" diff --git a/packages/cubejs-firebolt-driver/CHANGELOG.md b/packages/cubejs-firebolt-driver/CHANGELOG.md index b806a43d3879e..9a9527e805334 100644 --- a/packages/cubejs-firebolt-driver/CHANGELOG.md +++ b/packages/cubejs-firebolt-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/firebolt-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 957795647a352..95cc37fb3eb91 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.6.19", + "version": "1.6.20", "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.6.19", - "@cubejs-backend/schema-compiler": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/schema-compiler": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "firebolt-sdk": "1.10.0" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.6.19", - "@cubejs-backend/testing-shared": "1.6.19", + "@cubejs-backend/linter": "1.6.20", + "@cubejs-backend/testing-shared": "1.6.20", "typescript": "~5.2.2" }, "publishConfig": { diff --git a/packages/cubejs-hive-driver/CHANGELOG.md b/packages/cubejs-hive-driver/CHANGELOG.md index 0be2b51ce3e46..9b4a8873aa55d 100644 --- a/packages/cubejs-hive-driver/CHANGELOG.md +++ b/packages/cubejs-hive-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/hive-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 511955a59e2f1..204bae3184879 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.6.19", + "version": "1.6.20", "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.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "jshs2": "^0.4.4", "sasl-plain": "^0.1.0", "saslmechanisms": "^0.1.1", @@ -27,7 +27,7 @@ }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.6.19" + "@cubejs-backend/linter": "1.6.20" }, "publishConfig": { "access": "public" diff --git a/packages/cubejs-jdbc-driver/CHANGELOG.md b/packages/cubejs-jdbc-driver/CHANGELOG.md index e54a64ba435c2..c6c646d9ca565 100644 --- a/packages/cubejs-jdbc-driver/CHANGELOG.md +++ b/packages/cubejs-jdbc-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/jdbc-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 92a605c58dfd5..5328d9b4bbf12 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.6.19", + "version": "1.6.20", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -25,9 +25,9 @@ "index.js" ], "dependencies": { - "@cubejs-backend/base-driver": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", "@cubejs-backend/node-java-maven": "^0.1.3", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/shared": "1.6.20", "sqlstring": "^2.3.0" }, "optionalDependencies": { @@ -42,7 +42,7 @@ "testEnvironment": "node" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "@types/node": "^20", "@types/sqlstring": "^2.3.0", "typescript": "~5.2.2" diff --git a/packages/cubejs-ksql-driver/CHANGELOG.md b/packages/cubejs-ksql-driver/CHANGELOG.md index 283a26200832b..7431ca8763d88 100644 --- a/packages/cubejs-ksql-driver/CHANGELOG.md +++ b/packages/cubejs-ksql-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/ksql-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **Note:** Version bump only for package @cubejs-backend/ksql-driver diff --git a/packages/cubejs-ksql-driver/package.json b/packages/cubejs-ksql-driver/package.json index 244272d05742c..b186baeb9396c 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.6.19", + "version": "1.6.20", "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.6.19", - "@cubejs-backend/schema-compiler": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/schema-compiler": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "async-mutex": "0.3.2", "axios": "^1.8.3", "kafkajs": "^2.2.3", @@ -41,7 +41,7 @@ "extends": "../cubejs-linter" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "typescript": "~5.2.2" } } diff --git a/packages/cubejs-linter/CHANGELOG.md b/packages/cubejs-linter/CHANGELOG.md index b08710f21625a..f85baef1e1efd 100644 --- a/packages/cubejs-linter/CHANGELOG.md +++ b/packages/cubejs-linter/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/linter + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **Note:** Version bump only for package @cubejs-backend/linter diff --git a/packages/cubejs-linter/package.json b/packages/cubejs-linter/package.json index 605e45d416b46..3774467af598a 100644 --- a/packages/cubejs-linter/package.json +++ b/packages/cubejs-linter/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/linter", "description": "Cube.js ESLint (virtual package) for linting code", "author": "Cube Dev, Inc.", - "version": "1.6.19", + "version": "1.6.20", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", diff --git a/packages/cubejs-materialize-driver/CHANGELOG.md b/packages/cubejs-materialize-driver/CHANGELOG.md index 7f7f1eaa13f5f..f25b188c68407 100644 --- a/packages/cubejs-materialize-driver/CHANGELOG.md +++ b/packages/cubejs-materialize-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/materialize-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 db10fe8590a00..b3803a4482c49 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.6.19", + "version": "1.6.20", "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.6.19", - "@cubejs-backend/postgres-driver": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/postgres-driver": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "semver": "^7.6.3" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.6.19", - "@cubejs-backend/testing": "1.6.19", + "@cubejs-backend/linter": "1.6.20", + "@cubejs-backend/testing": "1.6.20", "typescript": "~5.2.2" }, "publishConfig": { diff --git a/packages/cubejs-mongobi-driver/CHANGELOG.md b/packages/cubejs-mongobi-driver/CHANGELOG.md index 55f0daddf4a40..50c4c30989d41 100644 --- a/packages/cubejs-mongobi-driver/CHANGELOG.md +++ b/packages/cubejs-mongobi-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/mongobi-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 f45078f421300..6ebfc4d327e15 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.6.19", + "version": "1.6.20", "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.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "@types/node": "^20", "moment": "^2.29.1", "mysql2": "^3.11.5" @@ -38,7 +38,7 @@ "access": "public" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "testcontainers": "^10.28.0", "typescript": "~5.2.2" }, diff --git a/packages/cubejs-mssql-driver/CHANGELOG.md b/packages/cubejs-mssql-driver/CHANGELOG.md index 8f047fb0a5c19..1e95a48989f6d 100644 --- a/packages/cubejs-mssql-driver/CHANGELOG.md +++ b/packages/cubejs-mssql-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/mssql-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 2f9020671f0ba..905a1d5da240c 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.6.19", + "version": "1.6.20", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -25,8 +25,8 @@ "lint:fix": "eslint --fix src/* --ext .ts,.js" }, "dependencies": { - "@cubejs-backend/base-driver": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "mssql": "^11.0.1" }, "devDependencies": { diff --git a/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md b/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md index df110f30a0d45..4624c897bf679 100644 --- a/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md +++ b/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/mysql-aurora-serverless-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 a38a4c7cae9ed..c0eafb1fc2e37 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.6.19", + "version": "1.6.20", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -21,14 +21,14 @@ "lint": "eslint driver/*.js test/*.js" }, "dependencies": { - "@cubejs-backend/base-driver": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "@types/mysql": "^2.15.15", "aws-sdk": "^2.787.0", "data-api-client": "^1.1.0" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "@types/data-api-client": "^1.2.1", "@types/jest": "^29", "jest": "^29", diff --git a/packages/cubejs-mysql-driver/CHANGELOG.md b/packages/cubejs-mysql-driver/CHANGELOG.md index 35bbc7ed04c1d..98e0617803f42 100644 --- a/packages/cubejs-mysql-driver/CHANGELOG.md +++ b/packages/cubejs-mysql-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/mysql-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 9254eead628bc..2ed9e678d18e8 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.6.19", + "version": "1.6.20", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -27,13 +27,13 @@ "lint:fix": "eslint --fix src/* test/* --ext .ts,.js" }, "dependencies": { - "@cubejs-backend/base-driver": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "mysql": "^2.18.1" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", - "@cubejs-backend/testing-shared": "1.6.19", + "@cubejs-backend/linter": "1.6.20", + "@cubejs-backend/testing-shared": "1.6.20", "@types/jest": "^29", "@types/mysql": "^2.15.21", "jest": "^29", diff --git a/packages/cubejs-oracle-driver/CHANGELOG.md b/packages/cubejs-oracle-driver/CHANGELOG.md index b23f0abab7337..c0e4b712e2a1c 100644 --- a/packages/cubejs-oracle-driver/CHANGELOG.md +++ b/packages/cubejs-oracle-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/oracle-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 252eaca1e553e..4ae20dc519eb8 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.6.19", + "version": "1.6.20", "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.6.19", + "@cubejs-backend/base-driver": "1.6.20", "ramda": "^0.27.0" }, "optionalDependencies": { diff --git a/packages/cubejs-pinot-driver/CHANGELOG.md b/packages/cubejs-pinot-driver/CHANGELOG.md index f696c8bec5969..eacef4d56b6bc 100644 --- a/packages/cubejs-pinot-driver/CHANGELOG.md +++ b/packages/cubejs-pinot-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/pinot-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 bd6b282ce43be..25a054f5fb18b 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.6.19", + "version": "1.6.20", "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.6.19", - "@cubejs-backend/schema-compiler": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/schema-compiler": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "node-fetch": "^2.6.1", "ramda": "^0.27.2", "sqlstring": "^2.3.3" @@ -39,7 +39,7 @@ "access": "public" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "@types/jest": "^29", "jest": "^29", "should": "^13.2.3", diff --git a/packages/cubejs-playground/CHANGELOG.md b/packages/cubejs-playground/CHANGELOG.md index 67e1001cda4b3..cbbb39bdfea05 100644 --- a/packages/cubejs-playground/CHANGELOG.md +++ b/packages/cubejs-playground/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-client/playground + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **Note:** Version bump only for package @cubejs-client/playground diff --git a/packages/cubejs-playground/package.json b/packages/cubejs-playground/package.json index 0ef8524df0bb7..78f3dbc8b24e6 100644 --- a/packages/cubejs-playground/package.json +++ b/packages/cubejs-playground/package.json @@ -1,7 +1,7 @@ { "name": "@cubejs-client/playground", "author": "Cube Dev, Inc.", - "version": "1.6.19", + "version": "1.6.20", "engines": {}, "repository": { "type": "git", @@ -69,8 +69,8 @@ "@ant-design/compatible": "^1.0.1", "@ant-design/icons": "^5.3.5", "@cube-dev/ui-kit": "0.52.3", - "@cubejs-client/core": "1.6.19", - "@cubejs-client/react": "1.6.19", + "@cubejs-client/core": "1.6.20", + "@cubejs-client/react": "1.6.20", "@types/flexsearch": "^0.7.3", "@types/node": "^20", "@types/react": "^18.3.4", diff --git a/packages/cubejs-postgres-driver/CHANGELOG.md b/packages/cubejs-postgres-driver/CHANGELOG.md index 66427f4ce7c3b..72f1171326bce 100644 --- a/packages/cubejs-postgres-driver/CHANGELOG.md +++ b/packages/cubejs-postgres-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/postgres-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 14b7cc2500c18..595d9a017bd59 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.6.19", + "version": "1.6.20", "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.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "@types/pg": "^8.16.0", "@types/pg-query-stream": "^1.0.3", "moment": "^2.24.0", @@ -37,8 +37,8 @@ }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.6.19", - "@cubejs-backend/testing-shared": "1.6.19", + "@cubejs-backend/linter": "1.6.20", + "@cubejs-backend/testing-shared": "1.6.20", "testcontainers": "^10.28.0", "typescript": "~5.2.2" }, diff --git a/packages/cubejs-prestodb-driver/CHANGELOG.md b/packages/cubejs-prestodb-driver/CHANGELOG.md index 2b02d74d1e008..ba1667d993d29 100644 --- a/packages/cubejs-prestodb-driver/CHANGELOG.md +++ b/packages/cubejs-prestodb-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/prestodb-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 c2ab5708e8e1e..f90ebbf3ade8a 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.6.19", + "version": "1.6.20", "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.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "presto-client": "^1.1.0", "ramda": "^0.27.0", "sqlstring": "^2.3.1" @@ -38,7 +38,7 @@ "access": "public" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "@types/jest": "^29", "jest": "^29", "should": "^13.2.3", diff --git a/packages/cubejs-query-orchestrator/CHANGELOG.md b/packages/cubejs-query-orchestrator/CHANGELOG.md index a79758a5efe2c..ca061f4584648 100644 --- a/packages/cubejs-query-orchestrator/CHANGELOG.md +++ b/packages/cubejs-query-orchestrator/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/query-orchestrator + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) ### Bug Fixes diff --git a/packages/cubejs-query-orchestrator/package.json b/packages/cubejs-query-orchestrator/package.json index 362ac79961437..2a8ff2d7cbb02 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.6.19", + "version": "1.6.20", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -29,15 +29,15 @@ "dist/src/*" ], "dependencies": { - "@cubejs-backend/base-driver": "1.6.19", - "@cubejs-backend/cubestore-driver": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/cubestore-driver": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "csv-write-stream": "^2.0.0", "lru-cache": "^11.1.0", "ramda": "^0.27.2" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "@types/jest": "^29", "@types/node": "^20", "@types/ramda": "^0.27.32", diff --git a/packages/cubejs-questdb-driver/CHANGELOG.md b/packages/cubejs-questdb-driver/CHANGELOG.md index a4f791e0bd642..30a40dd5f1170 100644 --- a/packages/cubejs-questdb-driver/CHANGELOG.md +++ b/packages/cubejs-questdb-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/questdb-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 83148753c2587..e13e5ba24d87a 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.6.19", + "version": "1.6.20", "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.6.19", - "@cubejs-backend/schema-compiler": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/schema-compiler": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "@types/pg": "^8.6.0", "moment": "^2.24.0", "pg": "^8.7.0", @@ -37,8 +37,8 @@ }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.6.19", - "@cubejs-backend/testing-shared": "1.6.19", + "@cubejs-backend/linter": "1.6.20", + "@cubejs-backend/testing-shared": "1.6.20", "testcontainers": "^10.28.0", "typescript": "~5.2.2" }, diff --git a/packages/cubejs-redshift-driver/CHANGELOG.md b/packages/cubejs-redshift-driver/CHANGELOG.md index be12199c0f0db..c2fbfc1633c2b 100644 --- a/packages/cubejs-redshift-driver/CHANGELOG.md +++ b/packages/cubejs-redshift-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/redshift-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 0c30bc08bdf3a..e1be1973e15b1 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.6.19", + "version": "1.6.20", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -27,13 +27,13 @@ "dependencies": { "@aws-sdk/client-redshift": "^3.22.0", "@aws-sdk/credential-providers": "^3.22.0", - "@cubejs-backend/base-driver": "1.6.19", - "@cubejs-backend/postgres-driver": "1.6.19", - "@cubejs-backend/shared": "1.6.19" + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/postgres-driver": "1.6.20", + "@cubejs-backend/shared": "1.6.20" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "typescript": "~5.2.2" }, "publishConfig": { diff --git a/packages/cubejs-schema-compiler/CHANGELOG.md b/packages/cubejs-schema-compiler/CHANGELOG.md index 19719c17a956c..00e4ac9748c0b 100644 --- a/packages/cubejs-schema-compiler/CHANGELOG.md +++ b/packages/cubejs-schema-compiler/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +### Bug Fixes + +- **cube:** Issue with rollup pre-aggragations matching for views ([#10474](https://github.com/cube-js/cube/issues/10474)) ([7160283](https://github.com/cube-js/cube/commit/7160283c7dac5d5696cf683b8e59418e58453821)) + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **Note:** Version bump only for package @cubejs-backend/schema-compiler diff --git a/packages/cubejs-schema-compiler/package.json b/packages/cubejs-schema-compiler/package.json index 8881d24ab485c..63184f245e542 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.6.19", + "version": "1.6.20", "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.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/native": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "antlr4": "^4.13.2", "camelcase": "^6.2.0", "cron-parser": "^4.9.0", @@ -60,9 +60,9 @@ }, "devDependencies": { "@clickhouse/client": "^1.12.0", - "@cubejs-backend/linter": "1.6.19", - "@cubejs-backend/mssql-driver": "1.6.19", - "@cubejs-backend/query-orchestrator": "1.6.19", + "@cubejs-backend/linter": "1.6.20", + "@cubejs-backend/mssql-driver": "1.6.20", + "@cubejs-backend/query-orchestrator": "1.6.20", "@types/babel__code-frame": "^7.0.6", "@types/babel__generator": "^7.6.8", "@types/babel__traverse": "^7.20.5", diff --git a/packages/cubejs-server-core/CHANGELOG.md b/packages/cubejs-server-core/CHANGELOG.md index 9bbe761db18ef..e2e2f2772eee5 100644 --- a/packages/cubejs-server-core/CHANGELOG.md +++ b/packages/cubejs-server-core/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/server-core + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **Note:** Version bump only for package @cubejs-backend/server-core diff --git a/packages/cubejs-server-core/package.json b/packages/cubejs-server-core/package.json index 6a8ec65ad65c5..a702ccd9ea70c 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.6.19", + "version": "1.6.20", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -29,16 +29,16 @@ "unit": "jest --runInBand --forceExit --coverage dist/test" }, "dependencies": { - "@cubejs-backend/api-gateway": "1.6.19", - "@cubejs-backend/base-driver": "1.6.19", - "@cubejs-backend/cloud": "1.6.19", - "@cubejs-backend/cubestore-driver": "1.6.19", + "@cubejs-backend/api-gateway": "1.6.20", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/cloud": "1.6.20", + "@cubejs-backend/cubestore-driver": "1.6.20", "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/native": "1.6.19", - "@cubejs-backend/query-orchestrator": "1.6.19", - "@cubejs-backend/schema-compiler": "1.6.19", - "@cubejs-backend/shared": "1.6.19", - "@cubejs-backend/templates": "1.6.19", + "@cubejs-backend/native": "1.6.20", + "@cubejs-backend/query-orchestrator": "1.6.20", + "@cubejs-backend/schema-compiler": "1.6.20", + "@cubejs-backend/shared": "1.6.20", + "@cubejs-backend/templates": "1.6.20", "codesandbox-import-utils": "^2.1.12", "cross-spawn": "^7.0.1", "fs-extra": "^8.1.0", @@ -62,8 +62,8 @@ "ws": "^7.5.3" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", - "@cubejs-client/playground": "1.6.19", + "@cubejs-backend/linter": "1.6.20", + "@cubejs-client/playground": "1.6.20", "@types/cross-spawn": "^6.0.2", "@types/express": "^4.17.21", "@types/fs-extra": "^9.0.8", diff --git a/packages/cubejs-server/CHANGELOG.md b/packages/cubejs-server/CHANGELOG.md index 53c7faf113430..de8a145a4a52a 100644 --- a/packages/cubejs-server/CHANGELOG.md +++ b/packages/cubejs-server/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/server + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **Note:** Version bump only for package @cubejs-backend/server diff --git a/packages/cubejs-server/package.json b/packages/cubejs-server/package.json index 57e50624dabbd..c7bef2e389de9 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.6.19", + "version": "1.6.20", "types": "index.d.ts", "repository": { "type": "git", @@ -40,11 +40,11 @@ "jest:shapshot": "jest --updateSnapshot test" }, "dependencies": { - "@cubejs-backend/cubestore-driver": "1.6.19", + "@cubejs-backend/cubestore-driver": "1.6.20", "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/native": "1.6.19", - "@cubejs-backend/server-core": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/native": "1.6.20", + "@cubejs-backend/server-core": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "@oclif/color": "^1.0.0", "@oclif/command": "^1.8.13", "@oclif/config": "^1.18.2", @@ -61,8 +61,8 @@ "ws": "^7.1.2" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", - "@cubejs-backend/query-orchestrator": "1.6.19", + "@cubejs-backend/linter": "1.6.20", + "@cubejs-backend/query-orchestrator": "1.6.20", "@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 b6730459eead6..7c1b5396a9ec3 100644 --- a/packages/cubejs-snowflake-driver/CHANGELOG.md +++ b/packages/cubejs-snowflake-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/snowflake-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 ace8f2f54db0a..d3ffb96a6804c 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.6.19", + "version": "1.6.20", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -26,8 +26,8 @@ }, "dependencies": { "@aws-sdk/client-s3": "^3.726.0", - "@cubejs-backend/base-driver": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "date-fns-timezone": "^0.1.4", "snowflake-sdk": "^2.2.0" }, @@ -39,7 +39,7 @@ "extends": "../cubejs-linter" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "typescript": "~5.2.2" } } diff --git a/packages/cubejs-sqlite-driver/CHANGELOG.md b/packages/cubejs-sqlite-driver/CHANGELOG.md index fa17e03ff7125..905f2dde864f3 100644 --- a/packages/cubejs-sqlite-driver/CHANGELOG.md +++ b/packages/cubejs-sqlite-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/sqlite-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 cc0a3d2a58b1a..352fbae33e690 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.6.19", + "version": "1.6.20", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -18,13 +18,13 @@ "unit": "jest" }, "dependencies": { - "@cubejs-backend/base-driver": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "sqlite3": "^5.1.7" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "jest": "^29" }, "publishConfig": { diff --git a/packages/cubejs-templates/CHANGELOG.md b/packages/cubejs-templates/CHANGELOG.md index fbb3efa96908c..ffbed8c7725a9 100644 --- a/packages/cubejs-templates/CHANGELOG.md +++ b/packages/cubejs-templates/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/templates + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **Note:** Version bump only for package @cubejs-backend/templates diff --git a/packages/cubejs-templates/package.json b/packages/cubejs-templates/package.json index 689da200d28c7..25c890986dfdf 100644 --- a/packages/cubejs-templates/package.json +++ b/packages/cubejs-templates/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/templates", - "version": "1.6.19", + "version": "1.6.20", "description": "Cube.js Templates helpers", "author": "Cube Dev, Inc.", "repository": { @@ -31,7 +31,7 @@ "extends": "../cubejs-linter" }, "dependencies": { - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/shared": "1.6.20", "cross-spawn": "^7.0.3", "decompress": "^4.2.1", "decompress-targz": "^4.1.1", @@ -41,7 +41,7 @@ "source-map-support": "^0.5.19" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "typescript": "~5.2.2" } } diff --git a/packages/cubejs-testing-drivers/CHANGELOG.md b/packages/cubejs-testing-drivers/CHANGELOG.md index 21acb741f8227..e21e8787eeb11 100644 --- a/packages/cubejs-testing-drivers/CHANGELOG.md +++ b/packages/cubejs-testing-drivers/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/testing-drivers + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 26009e2d374a6..7af2b41b8feb9 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.6.19", + "version": "1.6.20", "description": "Cube.js drivers test suite", "author": "Cube Dev, Inc.", "repository": { @@ -72,24 +72,24 @@ "dist/src" ], "dependencies": { - "@cubejs-backend/athena-driver": "1.6.19", - "@cubejs-backend/base-driver": "1.6.19", - "@cubejs-backend/bigquery-driver": "1.6.19", - "@cubejs-backend/clickhouse-driver": "1.6.19", - "@cubejs-backend/cubestore-driver": "1.6.19", - "@cubejs-backend/databricks-jdbc-driver": "1.6.19", + "@cubejs-backend/athena-driver": "1.6.20", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/bigquery-driver": "1.6.20", + "@cubejs-backend/clickhouse-driver": "1.6.20", + "@cubejs-backend/cubestore-driver": "1.6.20", + "@cubejs-backend/databricks-jdbc-driver": "1.6.20", "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/linter": "1.6.19", - "@cubejs-backend/mssql-driver": "1.6.19", - "@cubejs-backend/mysql-driver": "1.6.19", - "@cubejs-backend/postgres-driver": "1.6.19", - "@cubejs-backend/query-orchestrator": "1.6.19", - "@cubejs-backend/server-core": "1.6.19", - "@cubejs-backend/shared": "1.6.19", - "@cubejs-backend/snowflake-driver": "1.6.19", - "@cubejs-backend/testing-shared": "1.6.19", - "@cubejs-client/core": "1.6.19", - "@cubejs-client/ws-transport": "1.6.19", + "@cubejs-backend/linter": "1.6.20", + "@cubejs-backend/mssql-driver": "1.6.20", + "@cubejs-backend/mysql-driver": "1.6.20", + "@cubejs-backend/postgres-driver": "1.6.20", + "@cubejs-backend/query-orchestrator": "1.6.20", + "@cubejs-backend/server-core": "1.6.20", + "@cubejs-backend/shared": "1.6.20", + "@cubejs-backend/snowflake-driver": "1.6.20", + "@cubejs-backend/testing-shared": "1.6.20", + "@cubejs-client/core": "1.6.20", + "@cubejs-client/ws-transport": "1.6.20", "@jest/globals": "^29", "@types/jest": "^29", "@types/node": "^20", diff --git a/packages/cubejs-testing-shared/CHANGELOG.md b/packages/cubejs-testing-shared/CHANGELOG.md index 94748c05fd406..e602d32598afa 100644 --- a/packages/cubejs-testing-shared/CHANGELOG.md +++ b/packages/cubejs-testing-shared/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/testing-shared + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 4d0e9440fe503..7de3c762b24b3 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.6.19", + "version": "1.6.20", "description": "Cube.js Testing Helpers", "author": "Cube Dev, Inc.", "repository": { @@ -26,16 +26,16 @@ ], "dependencies": { "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/query-orchestrator": "1.6.19", - "@cubejs-backend/schema-compiler": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/query-orchestrator": "1.6.20", + "@cubejs-backend/schema-compiler": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "@testcontainers/kafka": "~10.28.0", "dedent": "^0.7.0", "node-fetch": "^2.6.7", "testcontainers": "^10.28.0" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "@jest/globals": "^29", "@types/dedent": "^0.7.0", "@types/jest": "^29", diff --git a/packages/cubejs-testing/CHANGELOG.md b/packages/cubejs-testing/CHANGELOG.md index 4cbfb8970441c..dcc2d8e5dec5b 100644 --- a/packages/cubejs-testing/CHANGELOG.md +++ b/packages/cubejs-testing/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/testing + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **Note:** Version bump only for package @cubejs-backend/testing diff --git a/packages/cubejs-testing/package.json b/packages/cubejs-testing/package.json index 343d49d36aac7..09a94c7eed7f2 100644 --- a/packages/cubejs-testing/package.json +++ b/packages/cubejs-testing/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/testing", - "version": "1.6.19", + "version": "1.6.20", "description": "Cube.js e2e tests", "author": "Cube Dev, Inc.", "repository": { @@ -99,15 +99,15 @@ "birdbox-fixtures" ], "dependencies": { - "@cubejs-backend/cubestore-driver": "1.6.19", + "@cubejs-backend/cubestore-driver": "1.6.20", "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/ksql-driver": "1.6.19", - "@cubejs-backend/postgres-driver": "1.6.19", - "@cubejs-backend/query-orchestrator": "1.6.19", - "@cubejs-backend/schema-compiler": "1.6.19", - "@cubejs-backend/shared": "1.6.19", - "@cubejs-backend/testing-shared": "1.6.19", - "@cubejs-client/ws-transport": "1.6.19", + "@cubejs-backend/ksql-driver": "1.6.20", + "@cubejs-backend/postgres-driver": "1.6.20", + "@cubejs-backend/query-orchestrator": "1.6.20", + "@cubejs-backend/schema-compiler": "1.6.20", + "@cubejs-backend/shared": "1.6.20", + "@cubejs-backend/testing-shared": "1.6.20", + "@cubejs-client/ws-transport": "1.6.20", "dedent": "^0.7.0", "fs-extra": "^8.1.0", "http-proxy": "^1.18.1", @@ -118,8 +118,8 @@ }, "devDependencies": { "@4tw/cypress-drag-drop": "^1.6.0", - "@cubejs-backend/linter": "1.6.19", - "@cubejs-client/core": "1.6.19", + "@cubejs-backend/linter": "1.6.20", + "@cubejs-client/core": "1.6.20", "@jest/globals": "^29", "@types/dedent": "^0.7.0", "@types/http-proxy": "^1.17.5", diff --git a/packages/cubejs-trino-driver/CHANGELOG.md b/packages/cubejs-trino-driver/CHANGELOG.md index c23b79d08b954..2ae0bb739df3c 100644 --- a/packages/cubejs-trino-driver/CHANGELOG.md +++ b/packages/cubejs-trino-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/trino-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **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 baba76e00e352..00caf2017457f 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.6.19", + "version": "1.6.20", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -27,10 +27,10 @@ "lint:fix": "eslint --fix src/* --ext .ts" }, "dependencies": { - "@cubejs-backend/base-driver": "1.6.19", - "@cubejs-backend/prestodb-driver": "1.6.19", - "@cubejs-backend/schema-compiler": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/prestodb-driver": "1.6.20", + "@cubejs-backend/schema-compiler": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "node-fetch": "^2.6.1", "presto-client": "^1.1.0", "sqlstring": "^2.3.1" @@ -40,7 +40,7 @@ "access": "public" }, "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "@types/jest": "^29", "jest": "^29", "testcontainers": "^10.28.0", diff --git a/packages/cubejs-vertica-driver/CHANGELOG.md b/packages/cubejs-vertica-driver/CHANGELOG.md index 36be8e3fb7647..199be7605d80c 100644 --- a/packages/cubejs-vertica-driver/CHANGELOG.md +++ b/packages/cubejs-vertica-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +**Note:** Version bump only for package @cubejs-backend/vertica-driver + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **Note:** Version bump only for package @cubejs-backend/vertica-driver diff --git a/packages/cubejs-vertica-driver/package.json b/packages/cubejs-vertica-driver/package.json index 3f4fbd00ea7c5..831df2e93887a 100644 --- a/packages/cubejs-vertica-driver/package.json +++ b/packages/cubejs-vertica-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/vertica-driver", "description": "Cube.js Vertica database driver", "author": "Eduard Karacharov, Tim Brown, Cube Dev, Inc.", - "version": "1.6.19", + "version": "1.6.20", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -19,16 +19,16 @@ "lint:fix": "eslint --fix **/*.js" }, "dependencies": { - "@cubejs-backend/base-driver": "1.6.19", - "@cubejs-backend/query-orchestrator": "1.6.19", - "@cubejs-backend/schema-compiler": "1.6.19", - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/base-driver": "1.6.20", + "@cubejs-backend/query-orchestrator": "1.6.20", + "@cubejs-backend/schema-compiler": "1.6.20", + "@cubejs-backend/shared": "1.6.20", "vertica-nodejs": "^1.0.3" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.6.19", - "@cubejs-backend/testing-shared": "1.6.19", + "@cubejs-backend/linter": "1.6.20", + "@cubejs-backend/testing-shared": "1.6.20", "@types/jest": "^29", "jest": "^29", "testcontainers": "^10.28.0" diff --git a/rust/cubesql/CHANGELOG.md b/rust/cubesql/CHANGELOG.md index aca0a505a6b06..ca3a53578086a 100644 --- a/rust/cubesql/CHANGELOG.md +++ b/rust/cubesql/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +### Bug Fixes + +- **cubesql:** Do not panic when executing `MEASURE` function ([#10472](https://github.com/cube-js/cube/issues/10472)) ([3202d51](https://github.com/cube-js/cube/commit/3202d517dce747831ff2549f30f4888b11bb005b)) + +### Features + +- **backend-native:** Add `throwContinueWait` parameter to `/cubesql` API endpoint ([#10385](https://github.com/cube-js/cube/issues/10385)) ([3687c5f](https://github.com/cube-js/cube/commit/3687c5f422d6b265409a3e539fc77f37df207eb1)) + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **Note:** Version bump only for package @cubejs-backend/cubesql diff --git a/rust/cubesql/package.json b/rust/cubesql/package.json index 876b618e0f982..a1861d2019924 100644 --- a/rust/cubesql/package.json +++ b/rust/cubesql/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/cubesql", - "version": "1.6.19", + "version": "1.6.20", "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/cubestore/CHANGELOG.md b/rust/cubestore/CHANGELOG.md index 0fc052c4f12ff..acac98ffc8210 100644 --- a/rust/cubestore/CHANGELOG.md +++ b/rust/cubestore/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.6.20](https://github.com/cube-js/cube/compare/v1.6.19...v1.6.20) (2026-03-09) + +### Features + +- **cubestore-driver:** Share process-id with Cube Store ([#10477](https://github.com/cube-js/cube/issues/10477)) ([36c4aa2](https://github.com/cube-js/cube/commit/36c4aa2736122d14098b1ca3ec15c0828b5527e4)) + ## [1.6.19](https://github.com/cube-js/cube/compare/v1.6.18...v1.6.19) (2026-03-03) **Note:** Version bump only for package @cubejs-backend/cubestore diff --git a/rust/cubestore/package.json b/rust/cubestore/package.json index 23e568c1638e8..cbb91632acc2e 100644 --- a/rust/cubestore/package.json +++ b/rust/cubestore/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/cubestore", - "version": "1.6.19", + "version": "1.6.20", "description": "Cube.js pre-aggregation storage layer.", "main": "dist/src/index.js", "typings": "dist/src/index.d.ts", @@ -32,7 +32,7 @@ }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.6.19", + "@cubejs-backend/linter": "1.6.20", "@types/jest": "^29", "@types/node": "^18", "jest": "^29", @@ -42,7 +42,7 @@ "access": "public" }, "dependencies": { - "@cubejs-backend/shared": "1.6.19", + "@cubejs-backend/shared": "1.6.20", "@octokit/core": "^3.2.5", "source-map-support": "^0.5.19" }, From 4b8ac6ff81b0ee114cd0bc4a5e8235fe294c53a2 Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Mon, 9 Mar 2026 17:20:04 +0100 Subject: [PATCH 3/4] feat(cubestore): Logarithmic probabilistic increment of LFU counter (#10478) --- .../src/cachestore/cache_eviction_manager.rs | 241 ++++++++++++++---- .../cubestore/cubestore/src/cachestore/mod.rs | 2 +- rust/cubestore/cubestore/src/config/mod.rs | 18 ++ .../cubestore/src/metastore/rocks_table.rs | 3 +- 4 files changed, 213 insertions(+), 51 deletions(-) diff --git a/rust/cubestore/cubestore/src/cachestore/cache_eviction_manager.rs b/rust/cubestore/cubestore/src/cachestore/cache_eviction_manager.rs index a0807b9bf5c55..738bdb86249db 100644 --- a/rust/cubestore/cubestore/src/cachestore/cache_eviction_manager.rs +++ b/rust/cubestore/cubestore/src/cachestore/cache_eviction_manager.rs @@ -16,6 +16,7 @@ use chrono::Utc; use datafusion::cube_ext; use deepsize::DeepSizeOf; use itertools::Itertools; +use rand::Rng; use serde_derive::{Deserialize, Serialize}; use std::collections::HashMap; use std::fmt; @@ -114,7 +115,7 @@ impl FromStr for CacheEvictionPolicy { &"allkeys-lfu" => Ok(CacheEvictionPolicy::AllKeysLfu), &"allkeys-ttl" => Ok(CacheEvictionPolicy::AllKeysTtl), &"sampled-lru" => Ok(CacheEvictionPolicy::SampledLru), - &"sampled-lfu" => Ok(CacheEvictionPolicy::SampledLru), + &"sampled-lfu" => Ok(CacheEvictionPolicy::SampledLfu), &"sampled-ttl" => Ok(CacheEvictionPolicy::SampledTtl), other => Err(CubeError::user(format!( "Unsupported cache eviction type: {}", @@ -124,6 +125,57 @@ impl FromStr for CacheEvictionPolicy { } } +/// Starting at 10 instead of 0 protects newly inserted keys from immediate eviction, +/// giving them a grace period to accumulate real access frequency before they can be +/// considered low-frequency candidates. +/// TODO: Implement such protection +pub const LFU_INIT_VAL: u8 = 10; + +/// Decay the LFU counter based on elapsed time. +/// Subtracts `elapsed_minutes / decay_time` from counter, saturating at 0. +fn lfu_decay_counter(counter: u8, elapsed_minutes: u32, decay_time: u32) -> u8 { + if decay_time == 0 || elapsed_minutes == 0 { + return counter; + } + + let decrement = elapsed_minutes / decay_time; + counter.saturating_sub(decrement as u8) +} + +/// Logarithmic probabilistic increment of LFU counter. +/// Higher counters have exponentially a lower probability of incrementing. +/// +/// Expected hits needed to increment (with default log_factor=10, LFU_INIT_VAL=10): +/// +/// | counter | base_val | p = 1/(base_val*lf+1) | avg hits to incr | cumulative hits to reach | +/// |---------|----------|-----------------------|-------------------|--------------------------| +/// | 10 | 0 | 1.000 | 1 | 10 | +/// | 11 | 1 | 0.0909 | 11 | 11 | +/// | 15 | 5 | 0.0196 | 51 | 115 | +/// | 20 | 10 | 0.0099 | 101 | 470 | +/// | 50 | 40 | 0.00249 | 401 | 7_850 | +/// | 100 | 90 | 0.00111 | 901 | 40_150 | +/// | 200 | 190 | 0.000526 | 1901 | 179_750 | +/// | 255 | - | 0 (capped) | - | - | +/// +/// Cumulative formula: `LFU_INIT_VAL + lf * n*(n-1)/2 + n` where `n = counter - LFU_INIT_VAL`. +/// For counter <= LFU_INIT_VAL, cumulative = counter (each step is guaranteed). +fn lfu_log_increment(counter: u8, log_factor: u8, rng: &mut impl Rng) -> u8 { + if counter == 255 { + return 255; + } + + let base_val = counter.saturating_sub(LFU_INIT_VAL) as f64; + let p = 1.0 / (base_val * log_factor as f64 + 1.0); + let r: f64 = rng.gen(); + + if r < p { + counter + 1 + } else { + counter + } +} + type KeysVector = Vec<(/* row_id */ u64, /* raw_size */ u32)>; #[derive(Debug)] @@ -153,6 +205,8 @@ pub struct CacheEvictionManager { eviction_proactive_size_threshold: u32, eviction_proactive_ttl_threshold: u32, compaction_trigger_size: u64, + // LFU configuration + lfu_decay_time: u32, // background listener to track events _ttl_tl_loop_join_handle: Arc>, } @@ -222,55 +276,56 @@ impl CacheEvictionManager { let ttl_buffer_to_move = ttl_buffer.clone(); let ttl_buffer_max_size = config.cachestore_cache_ttl_buffer_max_size(); + let lfu_log_factor = config.cachestore_cache_lfu_log_factor(); + let lfu_decay_time = config.cachestore_cache_lfu_decay_time(); + + let join_handle = cube_ext::spawn_blocking(move || { + let mut rng = rand::thread_rng(); + loop { + match ttl_event_rx.blocking_recv() { + Some(CacheEvent::Delete { row_id }) => { + let mut ttl_buffer = ttl_buffer_to_move.blocking_write(); + ttl_buffer.remove(&row_id); + } + Some(CacheEvent::Lookup { + row_id, + key_hash, + raw_size, + }) => { + let mut ttl_buffer = ttl_buffer_to_move.blocking_write(); + if let Some(cache_data) = ttl_buffer.get_mut(&row_id) { + let now = Utc::now(); + let elapsed_minutes = if let Some(previous_lru) = + cache_data.lru.decode_value_as_opt_datetime().unwrap() + { + now.signed_duration_since(previous_lru).num_minutes().max(0) as u32 + } else { + 0 + }; - let join_handle = cube_ext::spawn_blocking(move || loop { - match ttl_event_rx.blocking_recv() { - Some(CacheEvent::Delete { row_id }) => { - let mut ttl_buffer = ttl_buffer_to_move.blocking_write(); - ttl_buffer.remove(&row_id); - } - Some(CacheEvent::Lookup { - row_id, - key_hash, - raw_size, - }) => { - let mut ttl_buffer = ttl_buffer_to_move.blocking_write(); - if let Some(cache_data) = ttl_buffer.get_mut(&row_id) { - let expired_lfu = if let Some(previous_lru) = - cache_data.lru.decode_value_as_opt_datetime().unwrap() - { - previous_lru < Utc::now() - chrono::Duration::seconds(60 * 2) - } else { - true - }; - - cache_data.lru = Utc::now().encode_value_as_u32().unwrap(); - - if expired_lfu { - cache_data.lfu = 1; + let decayed = + lfu_decay_counter(cache_data.lfu, elapsed_minutes, lfu_decay_time); + cache_data.lfu = lfu_log_increment(decayed, lfu_log_factor, &mut rng); + cache_data.lru = now.encode_value_as_u32().unwrap(); } else { - if cache_data.lfu < u8::MAX { - cache_data.lfu += 1; + if ttl_buffer.len() >= ttl_buffer_max_size { + continue; } - } - } else { - if ttl_buffer.len() >= ttl_buffer_max_size { - continue; - } - ttl_buffer.insert( - row_id, - CachePolicyData { - key_hash, - raw_size, - lru: Utc::now().encode_value_as_u32().unwrap(), - lfu: 1, - }, - ); - }; - } - None => { - return; + ttl_buffer.insert( + row_id, + CachePolicyData { + key_hash, + raw_size, + lru: Utc::now().encode_value_as_u32().unwrap(), + lfu: LFU_INIT_VAL, + }, + ); + }; + } + None => { + return; + } } } }); @@ -314,6 +369,7 @@ impl CacheEvictionManager { eviction_proactive_ttl_threshold: config .cachestore_cache_eviction_proactive_ttl_threshold(), compaction_trigger_size: config.cachestore_cache_compaction_trigger_size(), + lfu_decay_time: config.cachestore_cache_lfu_decay_time(), // _ttl_tl_loop_join_handle: Arc::new(AbortingJoinHandle::new(join_handle)), } @@ -622,6 +678,7 @@ impl CacheEvictionManager { ) -> Result<(KeysVector, KeysVector), CubeError> { let eviction_proactive_ttl_threshold = self.eviction_proactive_ttl_threshold; let eviction_proactive_size_threshold = self.eviction_proactive_size_threshold; + let lfu_decay_time = self.lfu_decay_time; let (all_keys, stats_total_keys, stats_total_raw_size, expired_keys) = store .read_operation_out_of_queue("collect_allkeys_to_evict", move |db_ref| { @@ -643,7 +700,7 @@ impl CacheEvictionManager { let item = item?; let (weight, raw_size) = - Self::get_weight_and_size_by_criteria(&item, &criteria)?; + Self::get_weight_and_size_by_criteria(&item, &criteria, lfu_decay_time)?; // We need to count expired keys too for correct stats! stats_total_keys += 1; @@ -766,6 +823,7 @@ impl CacheEvictionManager { let eviction_batch_size = self.eviction_batch_size; let eviction_proactive_ttl_threshold = self.eviction_proactive_ttl_threshold; let eviction_proactive_size_threshold = self.eviction_proactive_size_threshold; + let lfu_decay_time = self.lfu_decay_time; let to_delete: Vec<(u64, u32)> = store .read_operation_out_of_queue("do_eviction_by_sampling", move |db_ref| { @@ -787,7 +845,7 @@ impl CacheEvictionManager { let item = item?; let (weight, raw_size) = - Self::get_weight_and_size_by_criteria(&item, &criteria)?; + Self::get_weight_and_size_by_criteria(&item, &criteria, lfu_decay_time)?; if let Some(ttl) = item.ttl { let ready_to_delete = if ttl < now_at_start { @@ -1101,12 +1159,23 @@ impl CacheEvictionManager { fn get_weight_and_size_by_criteria( item: &SecondaryIndexValueScanIterItem, criteria: &CacheEvictionWeightCriteria, + lfu_decay_time: u32, ) -> Result<(u32, u32), CubeError> { if let Some(extended) = &item.extended { let weight = match criteria { CacheEvictionWeightCriteria::ByLRU => extended.lru.encode_value_as_u32()?, CacheEvictionWeightCriteria::ByTTL => item.ttl.encode_value_as_u32()?, - CacheEvictionWeightCriteria::ByLFU => extended.lfu as u32, + CacheEvictionWeightCriteria::ByLFU => { + let elapsed_minutes = if let Some(lru_dt) = extended.lru { + Utc::now() + .signed_duration_since(lru_dt) + .num_minutes() + .max(0) as u32 + } else { + 0 + }; + lfu_decay_counter(extended.lfu, elapsed_minutes, lfu_decay_time) as u32 + } }; Ok((weight, extended.raw_size)) @@ -1166,3 +1235,77 @@ impl CacheEvictionManager { pub struct TruncationBlockGuard<'a> { _ttl_buffer_guard: RwLockWriteGuard<'a, HashMap>, } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_lfu_decay_no_time() { + assert_eq!(lfu_decay_counter(50, 0, 1), 50); + } + + #[test] + fn test_lfu_decay_basic() { + // 10 elapsed minutes / 1 decay_time = subtract 10 + assert_eq!(lfu_decay_counter(100, 10, 1), 90); + // 30 elapsed / 10 decay = subtract 3 + assert_eq!(lfu_decay_counter(50, 30, 10), 47); + } + + #[test] + fn test_lfu_decay_clamps() { + // Saturating subtraction to 0 + assert_eq!(lfu_decay_counter(5, 100, 1), 0); + assert_eq!(lfu_decay_counter(0, 10, 1), 0); + } + + #[test] + fn test_lfu_decay_disabled() { + // decay_time=0 means decay is disabled + assert_eq!(lfu_decay_counter(100, 999, 0), 100); + } + + #[test] + fn test_lfu_log_increment_at_max() { + assert_eq!(lfu_log_increment(255, 10, &mut rand::thread_rng()), 255); + } + + #[test] + fn test_lfu_log_increment_low_counter() { + // Counters at or below LFU_INIT_VAL have base_val=0, so p=1.0 -> always increments + let mut rng = rand::thread_rng(); + for counter in 0..=LFU_INIT_VAL { + assert_eq!( + lfu_log_increment(counter, 10, &mut rng), + counter + 1, + "counter {} should always increment", + counter + ); + } + } + + #[test] + fn test_lfu_log_increment_distribution() { + // Statistical test: counter=50, log_factor=10 + // base_val = 50 - 5 = 45, p = 1/(45*10+1) = 1/451 ≈ 0.00222 + // Over 10000 trials, expect ~22 increments + let mut increments = 0; + let mut rng = rand::thread_rng(); + + let trials = 10_000; + for _ in 0..trials { + if lfu_log_increment(50, 10, &mut rng) == 51 { + increments += 1; + } + } + + // Expected ~22, allow wide range for randomness + assert!( + increments < 100, + "Expected ~22 increments out of {} trials, got {}", + trials, + increments + ); + } +} diff --git a/rust/cubestore/cubestore/src/cachestore/mod.rs b/rust/cubestore/cubestore/src/cachestore/mod.rs index d4f8c81cb8251..9289e9abcda38 100644 --- a/rust/cubestore/cubestore/src/cachestore/mod.rs +++ b/rust/cubestore/cubestore/src/cachestore/mod.rs @@ -10,7 +10,7 @@ mod queue_result; mod scheduler; pub use cache_eviction_manager::{ - CacheEvictionManager, CacheEvictionPolicy, EvictionFinishedResult, EvictionResult, + CacheEvictionManager, CacheEvictionPolicy, EvictionFinishedResult, EvictionResult, LFU_INIT_VAL, }; pub use cache_item::CacheItem; pub use cache_rocksstore::{ diff --git a/rust/cubestore/cubestore/src/config/mod.rs b/rust/cubestore/cubestore/src/config/mod.rs index 42ae8103a53ee..a29b2866ae516 100644 --- a/rust/cubestore/cubestore/src/config/mod.rs +++ b/rust/cubestore/cubestore/src/config/mod.rs @@ -472,6 +472,10 @@ pub trait ConfigObj: DIService { fn cachestore_cache_ttl_buffer_max_size(&self) -> usize; + fn cachestore_cache_lfu_log_factor(&self) -> u8; + + fn cachestore_cache_lfu_decay_time(&self) -> u32; + fn cachestore_queue_results_expire(&self) -> u64; fn cachestore_metrics_interval(&self) -> u64; @@ -617,6 +621,8 @@ pub struct ConfigObjImpl { pub cachestore_cache_eviction_proactive_ttl_threshold: u32, pub cachestore_cache_ttl_notify_channel: usize, pub cachestore_cache_ttl_buffer_max_size: usize, + pub cachestore_cache_lfu_log_factor: u8, + pub cachestore_cache_lfu_decay_time: u32, pub upload_concurrency: u64, pub download_concurrency: u64, pub connection_timeout: u64, @@ -873,6 +879,14 @@ impl ConfigObj for ConfigObjImpl { self.cachestore_cache_ttl_buffer_max_size } + fn cachestore_cache_lfu_log_factor(&self) -> u8 { + self.cachestore_cache_lfu_log_factor + } + + fn cachestore_cache_lfu_decay_time(&self) -> u32 { + self.cachestore_cache_lfu_decay_time + } + fn cachestore_queue_results_expire(&self) -> u64 { self.cachestore_queue_results_expire } @@ -1457,6 +1471,8 @@ impl Config { "CUBESTORE_CACHE_TTL_BUFFER_MAX_SIZE", 16_384, ), + cachestore_cache_lfu_log_factor: env_parse("CUBESTORE_CACHE_LFU_LOG_FACTOR", 10), + cachestore_cache_lfu_decay_time: env_parse("CUBESTORE_CACHE_LFU_DECAY_TIME", 60), upload_concurrency: env_parse("CUBESTORE_MAX_ACTIVE_UPLOADS", 4), download_concurrency: env_parse("CUBESTORE_MAX_ACTIVE_DOWNLOADS", 8), max_ingestion_data_frames: env_parse("CUBESTORE_MAX_DATA_FRAMES", 4), @@ -1679,6 +1695,8 @@ impl Config { cachestore_cache_eviction_proactive_ttl_threshold: 5, cachestore_cache_ttl_notify_channel: 4_096, cachestore_cache_ttl_buffer_max_size: 16_384, + cachestore_cache_lfu_log_factor: 10, + cachestore_cache_lfu_decay_time: 60, upload_concurrency: 4, download_concurrency: 8, max_ingestion_data_frames: 4, diff --git a/rust/cubestore/cubestore/src/metastore/rocks_table.rs b/rust/cubestore/cubestore/src/metastore/rocks_table.rs index da75f11bd5700..93ab13b61951d 100644 --- a/rust/cubestore/cubestore/src/metastore/rocks_table.rs +++ b/rust/cubestore/cubestore/src/metastore/rocks_table.rs @@ -1,3 +1,4 @@ +use crate::cachestore::LFU_INIT_VAL; use crate::metastore::rocks_store::TableId; use crate::metastore::{ get_fixed_prefix, BatchPipe, DbTableRef, IdRow, IndexId, KeyVal, MemorySequence, @@ -176,7 +177,7 @@ pub trait RocksSecondaryIndex: BaseRocksSecondaryIndex { &hash, expire, RocksSecondaryIndexValueTTLExtended { - lfu: 0, + lfu: LFU_INIT_VAL, // Specify the current time as protection from LRU eviction lru: Some(Utc::now()), raw_size: self.raw_value_size(row), From b5a0ec32c061834af0c30bd7def9097ae27af32f Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Mon, 9 Mar 2026 19:49:23 +0100 Subject: [PATCH 4/4] feat(cubestore): Queue - add exclusivity support (#10479) QUEUE ADD command now accepts an EXCLUSIVE flag, and QUEUE RETRIEVE passes the caller's process_id for exclusivity checks. --- .../cubestore/benches/cachestore_queue.rs | 2 + .../src/cachestore/cache_rocksstore.rs | 69 ++++++- .../cubestore/src/cachestore/lazy.rs | 3 +- .../cubestore/src/cachestore/queue_item.rs | 77 +++++++- .../queryplanner/info_schema/system_queue.rs | 20 +- .../cubestore/src/queryplanner/test_utils.rs | 1 + .../cubestore/cubestore/src/sql/cachestore.rs | 13 +- rust/cubestore/cubestore/src/sql/parser.rs | 177 +++++++++++++++--- 8 files changed, 316 insertions(+), 46 deletions(-) diff --git a/rust/cubestore/cubestore/benches/cachestore_queue.rs b/rust/cubestore/cubestore/benches/cachestore_queue.rs index a7dcb060e5fb3..7613b16c8c896 100644 --- a/rust/cubestore/cubestore/benches/cachestore_queue.rs +++ b/rust/cubestore/cubestore/benches/cachestore_queue.rs @@ -61,6 +61,8 @@ async fn do_insert( value: "a".repeat(size_kb * 1024), // size in bytes priority: 0, orphaned: None, + process_id: None, + exclusive: false, }); let res = fut.await; diff --git a/rust/cubestore/cubestore/src/cachestore/cache_rocksstore.rs b/rust/cubestore/cubestore/src/cachestore/cache_rocksstore.rs index 47172c6a35dee..0b062a3e20bc7 100644 --- a/rust/cubestore/cubestore/src/cachestore/cache_rocksstore.rs +++ b/rust/cubestore/cubestore/src/cachestore/cache_rocksstore.rs @@ -681,6 +681,8 @@ pub struct QueueAddPayload { pub value: String, pub priority: i64, pub orphaned: Option, + pub process_id: Option, + pub exclusive: bool, } #[derive(Clone, Serialize, Deserialize, Debug, Eq, PartialEq)] @@ -831,6 +833,7 @@ pub trait CacheStore: DIService + Send + Sync { &self, path: String, allow_concurrency: u32, + caller_process_id: Option, ) -> Result; async fn queue_ack(&self, key: QueueKey, result: Option) -> Result; async fn queue_result_by_path( @@ -1103,6 +1106,8 @@ impl CacheStore for RocksCacheStore { QueueItem::status_default(), payload.priority, payload.orphaned.clone(), + payload.process_id, + payload.exclusive, ), batch_pipe, )?; @@ -1300,6 +1305,7 @@ impl CacheStore for RocksCacheStore { &self, path: String, allow_concurrency: u32, + caller_process_id: Option, ) -> Result { self.write_operation_queue("queue_retrieve_by_path", move |db_ref, batch_pipe| { let queue_schema = QueueItemRocksTable::new(db_ref.clone()); @@ -1334,9 +1340,33 @@ impl CacheStore for RocksCacheStore { }; if id_row.get_row().get_status() == &QueueItemStatus::Pending { + if id_row.get_row().get_exclusive() { + match (id_row.get_row().get_process_id(), &caller_process_id) { + (Some(_), None) => return Err(CubeError::user( + "QUEUE RETRIEVE requires a process_id in the connection context (x-process-id header)".to_string(), + )), + (None, Some(_)) => { + log::warn!("Incorrect queue_item with exclusive flag, empty process_id, id: {:?}", caller_process_id); + + return Ok(QueueRetrieveResponse::NotFound { pending, active }) + } + (Some(item_process_id), Some(caller_id)) => if item_process_id == caller_id { + // OK, caller matches the exclusive item owner + } else { + return Ok(QueueRetrieveResponse::ExclusiveAccessFailed { + pending, + active, + }) + }, + (None, None) => { + // No process_id on item and no caller — allow retrieval + } + } + } + let mut new = id_row.get_row().clone(); new.status = QueueItemStatus::Active; - // It's important to insert heartbeat, because + // It's important to insert heartbeat, because // without that created datetime will be used for orphaned filtering new.update_heartbeat(); @@ -1652,6 +1682,7 @@ impl CacheStore for ClusterCacheStoreClient { &self, _path: String, _allow_concurrency: u32, + _caller_process_id: Option, ) -> Result { panic!("CacheStore cannot be used on the worker node! queue_retrieve_by_path was used.") } @@ -2074,19 +2105,47 @@ mod tests { let now = Utc::now(); let item_pending_custom_orphaned = IdRow::new( 1, - QueueItem::new("1".to_string(), QueueItemStatus::Pending, 1, Some(10)), + QueueItem::new( + "1".to_string(), + QueueItemStatus::Pending, + 1, + Some(10), + None, + false, + ), ); let item_pending_custom_orphaned_expired = IdRow::new( 2, - QueueItem::new("2".to_string(), QueueItemStatus::Pending, 1, Some(1)), + QueueItem::new( + "2".to_string(), + QueueItemStatus::Pending, + 1, + Some(1), + None, + false, + ), ); let item_active_custom_orphaned = IdRow::new( 3, - QueueItem::new("3".to_string(), QueueItemStatus::Active, 1, Some(10)), + QueueItem::new( + "3".to_string(), + QueueItemStatus::Active, + 1, + Some(10), + None, + false, + ), ); let mut item_active_custom_orphaned_expired = IdRow::new( 4, - QueueItem::new("4".to_string(), QueueItemStatus::Active, 1, Some(1)), + QueueItem::new( + "4".to_string(), + QueueItemStatus::Active, + 1, + Some(1), + None, + false, + ), ); assert_eq!( diff --git a/rust/cubestore/cubestore/src/cachestore/lazy.rs b/rust/cubestore/cubestore/src/cachestore/lazy.rs index 493e41f02d9ca..f53d011ab9f66 100644 --- a/rust/cubestore/cubestore/src/cachestore/lazy.rs +++ b/rust/cubestore/cubestore/src/cachestore/lazy.rs @@ -272,10 +272,11 @@ impl CacheStore for LazyRocksCacheStore { &self, path: String, allow_concurrency: u32, + caller_process_id: Option, ) -> Result { self.init() .await? - .queue_retrieve_by_path(path, allow_concurrency) + .queue_retrieve_by_path(path, allow_concurrency, caller_process_id) .await } diff --git a/rust/cubestore/cubestore/src/cachestore/queue_item.rs b/rust/cubestore/cubestore/src/cachestore/queue_item.rs index 6f68bade4e1bf..3a29ada56787e 100644 --- a/rust/cubestore/cubestore/src/cachestore/queue_item.rs +++ b/rust/cubestore/cubestore/src/cachestore/queue_item.rs @@ -86,6 +86,10 @@ pub struct QueueItem { orphaned: Option>, #[serde(with = "ts_seconds")] expire: DateTime, + #[serde(default)] + pub(crate) process_id: Option, + #[serde(default, skip_serializing_if = "std::ops::Not::not")] + pub(crate) exclusive: bool, } impl RocksEntity for QueueItem { @@ -134,6 +138,8 @@ impl QueueItem { status: QueueItemStatus, priority: i64, orphaned: Option, + process_id: Option, + exclusive: bool, ) -> Self { let (prefix, key) = QueueItem::parse_path(path); let created = Utc::now(); @@ -156,6 +162,8 @@ impl QueueItem { created.clone() + Duration::hours(4) }, created, + process_id, + exclusive, } } @@ -213,6 +221,14 @@ impl QueueItem { &self.expire } + pub fn get_process_id(&self) -> &Option { + &self.process_id + } + + pub fn get_exclusive(&self) -> bool { + self.exclusive + } + pub fn status_default() -> QueueItemStatus { QueueItemStatus::Pending } @@ -260,6 +276,10 @@ pub enum QueueRetrieveResponse { pending: u64, active: Vec, }, + ExclusiveAccessFailed { + pending: u64, + active: Vec, + }, } impl QueueRetrieveResponse { @@ -288,7 +308,8 @@ impl QueueRetrieveResponse { ])], QueueRetrieveResponse::LockFailed { pending, active } | QueueRetrieveResponse::NotEnoughConcurrency { pending, active } - | QueueRetrieveResponse::NotFound { pending, active } => { + | QueueRetrieveResponse::NotFound { pending, active } + | QueueRetrieveResponse::ExclusiveAccessFailed { pending, active } => { if extended { vec![Row::new(vec![ TableValue::Null, @@ -441,12 +462,54 @@ mod tests { #[test] fn test_queue_item_sort() -> Result<(), CubeError> { - let priority0_1 = QueueItem::new("1".to_string(), QueueItemStatus::Active, 0, None); - let mut priority0_2 = QueueItem::new("2".to_string(), QueueItemStatus::Active, 0, None); - let mut priority0_3 = QueueItem::new("3".to_string(), QueueItemStatus::Active, 0, None); - let mut priority10_4 = QueueItem::new("4".to_string(), QueueItemStatus::Active, 10, None); - let mut priority0_5 = QueueItem::new("5".to_string(), QueueItemStatus::Active, 0, None); - let mut priority_n5_6 = QueueItem::new("6".to_string(), QueueItemStatus::Active, -5, None); + let priority0_1 = QueueItem::new( + "1".to_string(), + QueueItemStatus::Active, + 0, + None, + None, + false, + ); + let mut priority0_2 = QueueItem::new( + "2".to_string(), + QueueItemStatus::Active, + 0, + None, + None, + false, + ); + let mut priority0_3 = QueueItem::new( + "3".to_string(), + QueueItemStatus::Active, + 0, + None, + None, + false, + ); + let mut priority10_4 = QueueItem::new( + "4".to_string(), + QueueItemStatus::Active, + 10, + None, + None, + false, + ); + let mut priority0_5 = QueueItem::new( + "5".to_string(), + QueueItemStatus::Active, + 0, + None, + None, + false, + ); + let mut priority_n5_6 = QueueItem::new( + "6".to_string(), + QueueItemStatus::Active, + -5, + None, + None, + false, + ); // Force timestamps to be distinct (on systems that are too fast or have low clock resolution) for (i, item) in (1..).zip([ diff --git a/rust/cubestore/cubestore/src/queryplanner/info_schema/system_queue.rs b/rust/cubestore/cubestore/src/queryplanner/info_schema/system_queue.rs index df5bb7671ed8b..3a00cbc6a09e3 100644 --- a/rust/cubestore/cubestore/src/queryplanner/info_schema/system_queue.rs +++ b/rust/cubestore/cubestore/src/queryplanner/info_schema/system_queue.rs @@ -3,7 +3,9 @@ use crate::queryplanner::info_schema::timestamp_nanos_or_panic; use crate::queryplanner::{InfoSchemaTableDef, InfoSchemaTableDefContext}; use crate::CubeError; use async_trait::async_trait; -use datafusion::arrow::array::{ArrayRef, Int64Array, StringArray, TimestampNanosecondArray}; +use datafusion::arrow::array::{ + ArrayRef, BooleanArray, Int64Array, StringArray, TimestampNanosecondArray, +}; use datafusion::arrow::datatypes::{DataType, Field, TimeUnit}; use std::sync::Arc; @@ -44,6 +46,8 @@ impl InfoSchemaTableDef for SystemQueueTableDef { ), Field::new("value", DataType::Utf8, false), Field::new("extra", DataType::Utf8, true), + Field::new("process_id", DataType::Utf8, true), + Field::new("exclusive", DataType::Boolean, false), ] } @@ -116,6 +120,20 @@ impl InfoSchemaTableDef for SystemQueueTableDef { .map(|row| row.item.get_row().get_extra().clone()), )) }), + Box::new(|items| { + Arc::new(StringArray::from_iter( + items + .iter() + .map(|row| row.item.get_row().get_process_id().clone()), + )) + }), + Box::new(|items| { + Arc::new(BooleanArray::from_iter( + items + .iter() + .map(|row| Some(row.item.get_row().get_exclusive())), + )) + }), ] } } diff --git a/rust/cubestore/cubestore/src/queryplanner/test_utils.rs b/rust/cubestore/cubestore/src/queryplanner/test_utils.rs index f23219aeec260..03e2e22eee59d 100644 --- a/rust/cubestore/cubestore/src/queryplanner/test_utils.rs +++ b/rust/cubestore/cubestore/src/queryplanner/test_utils.rs @@ -848,6 +848,7 @@ impl CacheStore for CacheStoreMock { &self, _path: String, _allow_concurrency: u32, + _caller_process_id: Option, ) -> Result { panic!("CacheStore mock!") } diff --git a/rust/cubestore/cubestore/src/sql/cachestore.rs b/rust/cubestore/cubestore/src/sql/cachestore.rs index 5d64db36aaebb..af81e3c5760a7 100644 --- a/rust/cubestore/cubestore/src/sql/cachestore.rs +++ b/rust/cubestore/cubestore/src/sql/cachestore.rs @@ -305,7 +305,7 @@ impl CacheStoreSqlService { pub async fn exec_queue_command_with_context( &self, - _context: SqlQueryContext, + context: SqlQueryContext, command: QueueCommand, ) -> Result, CubeError> { let command_tag = command.as_tag_command(); @@ -323,10 +323,17 @@ impl CacheStoreSqlService { let (result, additional_traffic, track_time) = match command { QueueCommand::Add { key, + exclusive, priority, orphaned, value, } => { + if exclusive && context.process_id.is_none() { + return Err(CubeError::user( + "QUEUE ADD EXCLUSIVE requires a process_id in the connection context (x-process-id header)".to_string(), + )); + } + let value_size = key.value.deep_size_of() + value.deep_size_of(); let response = self .cachestore @@ -335,6 +342,8 @@ impl CacheStoreSqlService { value, priority, orphaned, + process_id: context.process_id.clone(), + exclusive, }) .await?; @@ -491,7 +500,7 @@ impl CacheStoreSqlService { } => { let result = self .cachestore - .queue_retrieve_by_path(key.value, concurrency) + .queue_retrieve_by_path(key.value, concurrency, context.process_id.clone()) .await?; ( diff --git a/rust/cubestore/cubestore/src/sql/parser.rs b/rust/cubestore/cubestore/src/sql/parser.rs index 8c035655a83b1..6f521a5d5e886 100644 --- a/rust/cubestore/cubestore/src/sql/parser.rs +++ b/rust/cubestore/cubestore/src/sql/parser.rs @@ -112,6 +112,7 @@ impl CacheCommand { #[derive(Debug, Clone, PartialEq)] pub enum QueueCommand { Add { + exclusive: bool, priority: i64, orphaned: Option, key: Ident, @@ -219,6 +220,34 @@ pub struct CubeStoreParser<'a> { parser: Parser<'a>, } +macro_rules! parse_sql_options { + ($self:expr, { $($name:literal => $body:expr),* $(,)? }) => {{ + const _OPTION_COUNT: usize = { let mut n = 0usize; $( { let _ = $name; n += 1; } )* n }; + const _: () = assert!(_OPTION_COUNT <= 32, "parse_sql_options! supports at most 32 options"); + + let mut __seen = [false; _OPTION_COUNT]; + let mut __idx: usize; + + loop { + __idx = 0; + $( + if $self.parse_custom_token($name) { + if __seen[__idx] { + return Err(ParserError::ParserError(format!( + "Duplicate option: {}", $name.to_uppercase() + ))); + } + __seen[__idx] = true; + $body; + continue; + } + __idx += 1; + )* + break; + } + }}; +} + impl<'a> CubeStoreParser<'a> { pub fn new(sql: &str) -> Result { let dialect = &MySqlDialectWithBackTicks {}; @@ -477,19 +506,18 @@ impl<'a> CubeStoreParser<'a> { let command = match method.as_str() { "add" => { - let priority = if self.parse_custom_token(&"priority") { - self.parse_integer(&"priority", true)? - } else { - 0 - }; + let mut exclusive = false; + let mut priority = 0i64; + let mut orphaned: Option = None; - let orphaned = if self.parse_custom_token(&"orphaned") { - Some(self.parse_integer("orphaned", false)?) - } else { - None - }; + parse_sql_options!(self, { + "exclusive" => { exclusive = true }, + "priority" => { priority = self.parse_integer("priority", true)? }, + "orphaned" => { orphaned = Some(self.parse_integer("orphaned", false)?) }, + }); QueueCommand::Add { + exclusive, priority, orphaned, key: self.parser.parse_identifier()?, @@ -864,10 +892,16 @@ impl<'a> CubeStoreParser<'a> { mod tests { use super::*; + use crate::CubeError; use sqlparser::ast::Statement as SQLStatement; + fn parse_stmt(query: &str) -> Result { + let mut parser = CubeStoreParser::new(query)?; + Ok(parser.parse_statement()?) + } + #[test] - fn parse_aggregate_index() { + fn parse_aggregate_index() -> Result<(), CubeError> { let query = "CREATE TABLE foo.Orders ( id int, platform varchar(255), @@ -882,21 +916,18 @@ mod tests { AGGREGATE INDEX aggr_index (platform, age) INDEX index2 (age, platform ) ;"; - let mut parser = CubeStoreParser::new(&query).unwrap(); - let res = parser.parse_statement().unwrap(); + let res = parse_stmt(query)?; match res { Statement::CreateTable { indexes, aggregates, .. } => { - assert_eq!(aggregates.as_ref().unwrap()[0].0.value, "sum".to_string()); - assert_eq!(aggregates.as_ref().unwrap()[0].1.value, "count".to_string()); - assert_eq!(aggregates.as_ref().unwrap()[1].0.value, "max".to_string()); - assert_eq!( - aggregates.as_ref().unwrap()[1].1.value, - "max_id".to_string() - ); + let aggregates = aggregates.as_ref().expect("aggregates should be present"); + assert_eq!(aggregates[0].0.value, "sum".to_string()); + assert_eq!(aggregates[0].1.value, "count".to_string()); + assert_eq!(aggregates[1].0.value, "max".to_string()); + assert_eq!(aggregates[1].1.value, "max_id".to_string()); assert_eq!(indexes.len(), 3); @@ -908,7 +939,7 @@ mod tests { assert_eq!(columns.len(), 2); assert_eq!(unique, &false); } else { - assert!(false); + panic!("Expected CreateIndex"); } let ind = &indexes[1]; @@ -919,25 +950,111 @@ mod tests { assert_eq!(columns.len(), 2); assert_eq!(unique, &true); } else { - assert!(false); + panic!("Expected CreateIndex"); } } - _ => {} + _ => panic!("Expected CreateTable"), } + + Ok(()) } #[test] - fn parse_metastore_set_current() { - let query = "sys MeTasTore SEt_Current 1671235558783"; - let mut parser = CubeStoreParser::new(&query).unwrap(); - let res = parser.parse_statement().unwrap(); + fn parse_queue_add_options_any_order() -> Result<(), CubeError> { + // Original order: EXCLUSIVE PRIORITY ORPHANED + let res = parse_stmt("QUEUE ADD EXCLUSIVE PRIORITY 1 ORPHANED 60 'key' 'value'")?; + match res { + Statement::Queue(QueueCommand::Add { + exclusive, + priority, + orphaned, + .. + }) => { + assert!(exclusive); + assert_eq!(priority, 1); + assert_eq!(orphaned, Some(60)); + } + _ => panic!("Expected QueueCommand::Add"), + } + + let res = parse_stmt("QUEUE ADD PRIORITY 5 EXCLUSIVE 'key' 'value'")?; + match res { + Statement::Queue(QueueCommand::Add { + exclusive, + priority, + orphaned, + .. + }) => { + assert!(exclusive); + assert_eq!(priority, 5); + assert_eq!(orphaned, None); + } + _ => panic!("Expected QueueCommand::Add"), + } + + let res = parse_stmt("QUEUE ADD ORPHANED 120 PRIORITY -3 'key' 'value'")?; + match res { + Statement::Queue(QueueCommand::Add { + exclusive, + priority, + orphaned, + .. + }) => { + assert!(!exclusive); + assert_eq!(priority, -3); + assert_eq!(orphaned, Some(120)); + } + _ => panic!("Expected QueueCommand::Add"), + } + + // No options at all + let res = parse_stmt("QUEUE ADD 'key' 'value'")?; + match res { + Statement::Queue(QueueCommand::Add { + exclusive, + priority, + orphaned, + .. + }) => { + assert!(!exclusive); + assert_eq!(priority, 0); + assert_eq!(orphaned, None); + } + _ => panic!("Expected QueueCommand::Add"), + } + + Ok(()) + } + + #[test] + fn parse_queue_add_duplicate_option_error() -> Result<(), CubeError> { + let res = parse_stmt("QUEUE ADD PRIORITY 1 PRIORITY 2 'key' 'value'"); + assert!(res.is_err()); + assert!(res + .unwrap_err() + .to_string() + .contains("Duplicate option: PRIORITY")); + + let res = parse_stmt("QUEUE ADD EXCLUSIVE EXCLUSIVE 'key' 'value'"); + assert!(res.is_err()); + assert!(res + .unwrap_err() + .to_string() + .contains("Duplicate option: EXCLUSIVE")); + + Ok(()) + } + + #[test] + fn parse_metastore_set_current() -> Result<(), CubeError> { + let res = parse_stmt("sys MeTasTore SEt_Current 1671235558783")?; match res { Statement::System(SystemCommand::MetaStore(MetaStoreCommand::SetCurrent { id })) => { assert_eq!(id, 1671235558783); } - _ => { - assert!(false) - } + _ => panic!("Expected MetaStore SetCurrent"), } + + Ok(()) } }