diff --git a/CHANGELOG.md b/CHANGELOG.md index 74f3948bc657a..78c124c826090 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +### Bug Fixes + +- **tesseract:** Fix join condition for toDate Rolling Window ([#9738](https://github.com/cube-js/cube/issues/9738)) ([dae44a4](https://github.com/cube-js/cube/commit/dae44a471a27f771b4908274ba0990502e0c8982)) + +### Features + +- **cubesql:** Support `AGE` function ([#9734](https://github.com/cube-js/cube/issues/9734)) ([5b2682c](https://github.com/cube-js/cube/commit/5b2682c3569933e94f56f6d998065b9063525d29)) +- **cubesql:** Support `DATE_PART` with intervals ([#9740](https://github.com/cube-js/cube/issues/9740)) ([65d084d](https://github.com/cube-js/cube/commit/65d084ddd81f6cfefe836b224fb9dd7575a62756)) +- **cubesql:** Support decimal math with scalar ([#9742](https://github.com/cube-js/cube/issues/9742)) ([2629d36](https://github.com/cube-js/cube/commit/2629d36572944b0b1f6194970c4a4e6132fd5a8a)) + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) ### Bug Fixes diff --git a/lerna.json b/lerna.json index 0ecdb71266a6e..ed2ab911eb893 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.29", + "version": "1.3.30", "npmClient": "yarn", "command": { "bootstrap": { diff --git a/packages/cubejs-api-gateway/CHANGELOG.md b/packages/cubejs-api-gateway/CHANGELOG.md index 6eecc2d5282e2..6e0155100d37a 100644 --- a/packages/cubejs-api-gateway/CHANGELOG.md +++ b/packages/cubejs-api-gateway/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/api-gateway + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **Note:** Version bump only for package @cubejs-backend/api-gateway diff --git a/packages/cubejs-api-gateway/package.json b/packages/cubejs-api-gateway/package.json index 5deecbec98375..3f21a93c3b1b8 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.3.29", + "version": "1.3.30", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -27,8 +27,8 @@ "dist/src/*" ], "dependencies": { - "@cubejs-backend/native": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/native": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "@ungap/structured-clone": "^0.3.4", "assert-never": "^1.4.0", "body-parser": "^1.19.0", @@ -51,7 +51,7 @@ "uuid": "^8.3.2" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.29", + "@cubejs-backend/linter": "1.3.30", "@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 edee70bf5ab49..3ca954d6a90d0 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/athena-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) ### Features diff --git a/packages/cubejs-athena-driver/package.json b/packages/cubejs-athena-driver/package.json index ae351f777a5f7..3990dfcaca393 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.3.29", + "version": "1.3.30", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -29,13 +29,13 @@ "types": "dist/src/index.d.ts", "dependencies": { "@aws-sdk/client-athena": "^3.22.0", - "@cubejs-backend/base-driver": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "sqlstring": "^2.3.1" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.29", - "@cubejs-backend/testing-shared": "1.3.29", + "@cubejs-backend/linter": "1.3.30", + "@cubejs-backend/testing-shared": "1.3.30", "@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 17b9e6459d958..b0ca13fb505b7 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/cloud + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 16cb7f9d126ad..e30f4031f961d 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.3.29", + "version": "1.3.30", "description": "Cube Cloud package", "main": "dist/src/index.js", "typings": "dist/src/index.d.ts", @@ -25,7 +25,7 @@ "devDependencies": { "@babel/core": "^7.24.5", "@babel/preset-env": "^7.24.5", - "@cubejs-backend/linter": "1.3.29", + "@cubejs-backend/linter": "1.3.30", "@types/fs-extra": "^9.0.8", "@types/jest": "^29", "jest": "^29", @@ -33,7 +33,7 @@ }, "dependencies": { "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/shared": "1.3.30", "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 bd19c39ca7263..d314ec7c6fdc5 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/maven + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 c226b6b4d9343..4d5129ff2af25 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.3.29", + "version": "1.3.30", "license": "Apache-2.0", "repository": { "type": "git", @@ -31,12 +31,12 @@ "dist/src/*" ], "dependencies": { - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/shared": "1.3.30", "source-map-support": "^0.5.19", "xmlbuilder2": "^2.4.0" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.29", + "@cubejs-backend/linter": "1.3.30", "@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 e274e460117ad..4e0eb9946cf16 100644 --- a/packages/cubejs-backend-native/CHANGELOG.md +++ b/packages/cubejs-backend-native/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +### Features + +- **cubesql:** Support `DATE_PART` with intervals ([#9740](https://github.com/cube-js/cube/issues/9740)) ([65d084d](https://github.com/cube-js/cube/commit/65d084ddd81f6cfefe836b224fb9dd7575a62756)) +- **cubesql:** Support decimal math with scalar ([#9742](https://github.com/cube-js/cube/issues/9742)) ([2629d36](https://github.com/cube-js/cube/commit/2629d36572944b0b1f6194970c4a4e6132fd5a8a)) + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **Note:** Version bump only for package @cubejs-backend/native diff --git a/packages/cubejs-backend-native/Cargo.lock b/packages/cubejs-backend-native/Cargo.lock index 3e5153a1234a4..29ac8873f243c 100644 --- a/packages/cubejs-backend-native/Cargo.lock +++ b/packages/cubejs-backend-native/Cargo.lock @@ -714,7 +714,7 @@ dependencies = [ [[package]] name = "cube-ext" version = "1.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "arrow", "chrono", @@ -884,7 +884,7 @@ checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" [[package]] name = "datafusion" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "ahash 0.7.8", "arrow", @@ -917,7 +917,7 @@ dependencies = [ [[package]] name = "datafusion-common" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "arrow", "ordered-float 2.10.1", @@ -928,7 +928,7 @@ dependencies = [ [[package]] name = "datafusion-data-access" version = "1.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "async-trait", "chrono", @@ -941,7 +941,7 @@ dependencies = [ [[package]] name = "datafusion-expr" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "ahash 0.7.8", "arrow", @@ -952,7 +952,7 @@ dependencies = [ [[package]] name = "datafusion-physical-expr" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "ahash 0.7.8", "arrow", diff --git a/packages/cubejs-backend-native/package.json b/packages/cubejs-backend-native/package.json index 6734f7c0ca160..a4bdb17ae5948 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.3.29", + "version": "1.3.30", "author": "Cube Dev, Inc.", "description": "Native module for Cube.js (binding to Rust codebase)", "main": "dist/js/index.js", @@ -34,7 +34,7 @@ "dist/js" ], "devDependencies": { - "@cubejs-backend/linter": "1.3.29", + "@cubejs-backend/linter": "1.3.30", "@types/jest": "^29", "@types/node": "^20", "cargo-cp-artifact": "^0.1.9", @@ -44,8 +44,8 @@ "uuid": "^8.3.2" }, "dependencies": { - "@cubejs-backend/cubesql": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/cubesql": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "@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 11d0ff63b92b6..1aaf89ef7c0f3 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/shared + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 6fb9438ce28e5..4ce13a7ed7793 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.3.29", + "version": "1.3.30", "description": "Shared code for Cube.js backend packages", "main": "dist/src/index.js", "typings": "dist/src/index.d.ts", @@ -22,7 +22,7 @@ "author": "Cube Dev, Inc.", "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.29", + "@cubejs-backend/linter": "1.3.30", "@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 161d38aefcb96..68da72d5d8063 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/base-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 1a3f38161286d..2b5d4b999448b 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.3.29", + "version": "1.3.30", "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.3.29", + "@cubejs-backend/shared": "1.3.30", "@google-cloud/storage": "^7.13.0" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.29", + "@cubejs-backend/linter": "1.3.30", "@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 5d4505af6a594..733c9cb548e71 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/bigquery-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 f92b4bd599c0b..336691bfe201c 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.3.29", + "version": "1.3.30", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -28,15 +28,15 @@ "main": "index.js", "types": "dist/src/index.d.ts", "dependencies": { - "@cubejs-backend/base-driver": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/shared": "1.3.30", "@google-cloud/bigquery": "^7.7.0", "@google-cloud/storage": "^7.13.0", "ramda": "^0.27.2" }, "devDependencies": { - "@cubejs-backend/testing-shared": "1.3.29", + "@cubejs-backend/testing-shared": "1.3.30", "@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 db7a5bf5017bb..e374f8e9e9d74 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package cubejs-cli + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **Note:** Version bump only for package cubejs-cli diff --git a/packages/cubejs-cli/package.json b/packages/cubejs-cli/package.json index 0207b0d8122ae..382bda2856365 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.3.29", + "version": "1.3.30", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -30,10 +30,10 @@ "LICENSE" ], "dependencies": { - "@cubejs-backend/cloud": "1.3.29", + "@cubejs-backend/cloud": "1.3.30", "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/schema-compiler": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/schema-compiler": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "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.3.29", - "@cubejs-backend/server": "1.3.29", + "@cubejs-backend/linter": "1.3.30", + "@cubejs-backend/server": "1.3.30", "@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 d08bcf90032b2..6c043befc8661 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/clickhouse-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 9073395a03273..13a9f5107bc0e 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.3.29", + "version": "1.3.30", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -28,16 +28,16 @@ }, "dependencies": { "@clickhouse/client": "^1.7.0", - "@cubejs-backend/base-driver": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "moment": "^2.24.0", "sqlstring": "^2.3.1", "uuid": "^8.3.2" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.29", - "@cubejs-backend/testing-shared": "1.3.29", + "@cubejs-backend/linter": "1.3.30", + "@cubejs-backend/testing-shared": "1.3.30", "@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 9c8276fe9f9be..307aebf964539 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-client/core + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 7633b5f6ecfb0..98499065db5f7 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.3.29", + "version": "1.3.30", "engines": {}, "repository": { "type": "git", @@ -38,7 +38,7 @@ ], "license": "MIT", "devDependencies": { - "@cubejs-backend/linter": "1.3.29", + "@cubejs-backend/linter": "1.3.30", "@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 e33bff093a036..b38c46354017f 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-client/dx + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 206c14f35705b..c10428297fa04 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.3.29", + "version": "1.3.30", "engines": {}, "repository": { "type": "git", diff --git a/packages/cubejs-client-ngx/CHANGELOG.md b/packages/cubejs-client-ngx/CHANGELOG.md index 44daa685d341b..ee6b21722058e 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-client/ngx + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 5530a5010f8a0..75848c1c7b0ba 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.3.29", + "version": "1.3.30", "author": "Cube Dev, Inc.", "engines": {}, "repository": { diff --git a/packages/cubejs-client-react/CHANGELOG.md b/packages/cubejs-client-react/CHANGELOG.md index 44f956c1a0888..e10a18c0cb4a5 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-client/react + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 775bcc72dd501..b6f93a81ed5c5 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.3.29", + "version": "1.3.30", "author": "Cube Dev, Inc.", "license": "MIT", "engines": {}, @@ -24,7 +24,7 @@ ], "dependencies": { "@babel/runtime": "^7.1.2", - "@cubejs-client/core": "1.3.29", + "@cubejs-client/core": "1.3.30", "core-js": "^3.6.5", "ramda": "^0.27.2" }, diff --git a/packages/cubejs-client-vue/CHANGELOG.md b/packages/cubejs-client-vue/CHANGELOG.md index f625e02436908..83e7f5fac9a6b 100644 --- a/packages/cubejs-client-vue/CHANGELOG.md +++ b/packages/cubejs-client-vue/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.3.30](https://github.com/cube-js/cube.js/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-client/vue + ## [1.3.29](https://github.com/cube-js/cube.js/compare/v1.3.28...v1.3.29) (2025-07-01) **Note:** Version bump only for package @cubejs-client/vue diff --git a/packages/cubejs-client-vue/package.json b/packages/cubejs-client-vue/package.json index c73394959603b..6dfa055e755c7 100644 --- a/packages/cubejs-client-vue/package.json +++ b/packages/cubejs-client-vue/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-client/vue", - "version": "1.3.29", + "version": "1.3.30", "engines": {}, "repository": { "type": "git", @@ -28,7 +28,7 @@ "src" ], "dependencies": { - "@cubejs-client/core": "1.3.29", + "@cubejs-client/core": "1.3.30", "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 3efebfa21f033..e12c114d9b1fb 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.3.30](https://github.com/cube-js/cube.js/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-client/vue3 + ## [1.3.29](https://github.com/cube-js/cube.js/compare/v1.3.28...v1.3.29) (2025-07-01) **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 fc2cce02560ba..2789063d8adf9 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.3.29", + "version": "1.3.30", "engines": {}, "repository": { "type": "git", @@ -28,7 +28,7 @@ "src" ], "dependencies": { - "@cubejs-client/core": "1.3.29", + "@cubejs-client/core": "1.3.30", "@vue/compiler-sfc": "^3.0.11", "core-js": "^3.6.5", "flush-promises": "^1.0.2", diff --git a/packages/cubejs-client-ws-transport/CHANGELOG.md b/packages/cubejs-client-ws-transport/CHANGELOG.md index f5dbc301b6bba..06fbe2df49801 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-client/ws-transport + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 87b5fc2bc16c4..2923c4c402e0f 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.3.29", + "version": "1.3.30", "engines": {}, "repository": { "type": "git", @@ -20,7 +20,7 @@ }, "dependencies": { "@babel/runtime": "^7.1.2", - "@cubejs-client/core": "1.3.29", + "@cubejs-client/core": "1.3.30", "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.3.29", + "@cubejs-backend/linter": "1.3.30", "@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 7caa2b379a257..8b3bccb2645a1 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/crate-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 a9be0fb8ec43f..bcac4640aa637 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.3.29", + "version": "1.3.30", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -28,14 +28,14 @@ "lint:fix": "eslint --fix src/* --ext .ts" }, "dependencies": { - "@cubejs-backend/postgres-driver": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/postgres-driver": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "pg": "^8.7.1" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.29", - "@cubejs-backend/testing-shared": "1.3.29", + "@cubejs-backend/linter": "1.3.30", + "@cubejs-backend/testing-shared": "1.3.30", "testcontainers": "^10.13.0", "typescript": "~5.2.2" }, diff --git a/packages/cubejs-cubestore-driver/CHANGELOG.md b/packages/cubejs-cubestore-driver/CHANGELOG.md index 16f07f1c95354..44bdb37705bdc 100644 --- a/packages/cubejs-cubestore-driver/CHANGELOG.md +++ b/packages/cubejs-cubestore-driver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/cubestore-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **Note:** Version bump only for package @cubejs-backend/cubestore-driver diff --git a/packages/cubejs-cubestore-driver/package.json b/packages/cubejs-cubestore-driver/package.json index 7f8c4fdec1851..304ba60962095 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.3.29", + "version": "1.3.30", "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.3.29", - "@cubejs-backend/cubestore": "1.3.29", - "@cubejs-backend/native": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/cubestore": "1.3.30", + "@cubejs-backend/native": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "csv-write-stream": "^2.0.0", "flatbuffers": "23.3.3", "fs-extra": "^9.1.0", @@ -41,7 +41,7 @@ "ws": "^7.4.3" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.29", + "@cubejs-backend/linter": "1.3.30", "@types/csv-write-stream": "^2.0.0", "@types/generic-pool": "^3.8.2", "@types/jest": "^29", diff --git a/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md b/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md index 589e9df5eef54..b0b1d78e5b9c7 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/databricks-jdbc-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 29bdf22f4e6ac..3b2fb28a9e61c 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.3.29", + "version": "1.3.30", "license": "Apache-2.0", "repository": { "type": "git", @@ -30,17 +30,17 @@ "bin" ], "dependencies": { - "@cubejs-backend/base-driver": "1.3.29", - "@cubejs-backend/jdbc-driver": "1.3.29", - "@cubejs-backend/schema-compiler": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/jdbc-driver": "1.3.30", + "@cubejs-backend/schema-compiler": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "node-fetch": "^2.6.1", "ramda": "^0.27.2", "source-map-support": "^0.5.19", "uuid": "^8.3.2" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.29", + "@cubejs-backend/linter": "1.3.30", "@types/generic-pool": "^3.8.2", "@types/jest": "^29", "@types/node": "^20", diff --git a/packages/cubejs-dbt-schema-extension/CHANGELOG.md b/packages/cubejs-dbt-schema-extension/CHANGELOG.md index 1c9cbeeb909ce..0c31e4f5fedde 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/dbt-schema-extension + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 55060c8bc75a7..2125f3a92584b 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.3.29", + "version": "1.3.30", "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.3.29", + "@cubejs-backend/schema-compiler": "1.3.30", "fs-extra": "^9.1.0", "inflection": "^1.12.0", "node-fetch": "^2.6.1" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.29", - "@cubejs-backend/testing": "1.3.29", + "@cubejs-backend/linter": "1.3.30", + "@cubejs-backend/testing": "1.3.30", "@types/generic-pool": "^3.8.2", "@types/jest": "^29", "jest": "^29", diff --git a/packages/cubejs-docker/CHANGELOG.md b/packages/cubejs-docker/CHANGELOG.md index fb6008a55d38b..cd24e019851bd 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/docker + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **Note:** Version bump only for package @cubejs-backend/docker diff --git a/packages/cubejs-docker/package.json b/packages/cubejs-docker/package.json index e4783df6e3d8c..87e8817237a9a 100644 --- a/packages/cubejs-docker/package.json +++ b/packages/cubejs-docker/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/docker", - "version": "1.3.29", + "version": "1.3.30", "description": "Cube.js In Docker (virtual package)", "author": "Cube Dev, Inc.", "license": "Apache-2.0", @@ -9,35 +9,35 @@ "node": "^14.0.0 || ^16.0.0 || >=17.0.0" }, "dependencies": { - "@cubejs-backend/athena-driver": "1.3.29", - "@cubejs-backend/bigquery-driver": "1.3.29", - "@cubejs-backend/clickhouse-driver": "1.3.29", - "@cubejs-backend/crate-driver": "1.3.29", - "@cubejs-backend/databricks-jdbc-driver": "1.3.29", - "@cubejs-backend/dbt-schema-extension": "1.3.29", - "@cubejs-backend/dremio-driver": "1.3.29", - "@cubejs-backend/druid-driver": "1.3.29", - "@cubejs-backend/duckdb-driver": "1.3.29", - "@cubejs-backend/elasticsearch-driver": "1.3.29", - "@cubejs-backend/firebolt-driver": "1.3.29", - "@cubejs-backend/hive-driver": "1.3.29", - "@cubejs-backend/ksql-driver": "1.3.29", - "@cubejs-backend/materialize-driver": "1.3.29", - "@cubejs-backend/mongobi-driver": "1.3.29", - "@cubejs-backend/mssql-driver": "1.3.29", - "@cubejs-backend/mysql-driver": "1.3.29", - "@cubejs-backend/oracle-driver": "1.3.29", - "@cubejs-backend/pinot-driver": "1.3.29", - "@cubejs-backend/postgres-driver": "1.3.29", - "@cubejs-backend/prestodb-driver": "1.3.29", - "@cubejs-backend/questdb-driver": "1.3.29", - "@cubejs-backend/redshift-driver": "1.3.29", - "@cubejs-backend/server": "1.3.29", - "@cubejs-backend/snowflake-driver": "1.3.29", - "@cubejs-backend/sqlite-driver": "1.3.29", - "@cubejs-backend/trino-driver": "1.3.29", - "@cubejs-backend/vertica-driver": "1.3.29", - "cubejs-cli": "1.3.29", + "@cubejs-backend/athena-driver": "1.3.30", + "@cubejs-backend/bigquery-driver": "1.3.30", + "@cubejs-backend/clickhouse-driver": "1.3.30", + "@cubejs-backend/crate-driver": "1.3.30", + "@cubejs-backend/databricks-jdbc-driver": "1.3.30", + "@cubejs-backend/dbt-schema-extension": "1.3.30", + "@cubejs-backend/dremio-driver": "1.3.30", + "@cubejs-backend/druid-driver": "1.3.30", + "@cubejs-backend/duckdb-driver": "1.3.30", + "@cubejs-backend/elasticsearch-driver": "1.3.30", + "@cubejs-backend/firebolt-driver": "1.3.30", + "@cubejs-backend/hive-driver": "1.3.30", + "@cubejs-backend/ksql-driver": "1.3.30", + "@cubejs-backend/materialize-driver": "1.3.30", + "@cubejs-backend/mongobi-driver": "1.3.30", + "@cubejs-backend/mssql-driver": "1.3.30", + "@cubejs-backend/mysql-driver": "1.3.30", + "@cubejs-backend/oracle-driver": "1.3.30", + "@cubejs-backend/pinot-driver": "1.3.30", + "@cubejs-backend/postgres-driver": "1.3.30", + "@cubejs-backend/prestodb-driver": "1.3.30", + "@cubejs-backend/questdb-driver": "1.3.30", + "@cubejs-backend/redshift-driver": "1.3.30", + "@cubejs-backend/server": "1.3.30", + "@cubejs-backend/snowflake-driver": "1.3.30", + "@cubejs-backend/sqlite-driver": "1.3.30", + "@cubejs-backend/trino-driver": "1.3.30", + "@cubejs-backend/vertica-driver": "1.3.30", + "cubejs-cli": "1.3.30", "typescript": "~5.2.2" }, "resolutions": { diff --git a/packages/cubejs-dremio-driver/CHANGELOG.md b/packages/cubejs-dremio-driver/CHANGELOG.md index 53370e78c3b9d..07c2ab0aadef4 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/dremio-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 7ba0e241f8922..f0438294c0c41 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.3.29", + "version": "1.3.30", "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.3.29", - "@cubejs-backend/schema-compiler": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/schema-compiler": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "axios": "^1.8.3", "sqlstring": "^2.3.1" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.29", - "@cubejs-backend/testing-shared": "1.3.29", + "@cubejs-backend/linter": "1.3.30", + "@cubejs-backend/testing-shared": "1.3.30", "jest": "^29" }, "license": "Apache-2.0", diff --git a/packages/cubejs-druid-driver/CHANGELOG.md b/packages/cubejs-druid-driver/CHANGELOG.md index bfe10e1732f14..f5cb36f26b66a 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/druid-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 03e56c31dd490..355d1e6a9ff79 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.3.29", + "version": "1.3.30", "license": "Apache-2.0", "repository": { "type": "git", @@ -28,13 +28,13 @@ "dist/src/*" ], "dependencies": { - "@cubejs-backend/base-driver": "1.3.29", - "@cubejs-backend/schema-compiler": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/schema-compiler": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "axios": "^1.8.3" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.29", + "@cubejs-backend/linter": "1.3.30", "@types/generic-pool": "^3.8.2", "@types/jest": "^29", "@types/node": "^20", diff --git a/packages/cubejs-duckdb-driver/CHANGELOG.md b/packages/cubejs-duckdb-driver/CHANGELOG.md index 05084a9294583..53769e35e5712 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/duckdb-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 c7e01bbc16642..4ea7f5070e15f 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.3.29", + "version": "1.3.30", "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.3.29", - "@cubejs-backend/schema-compiler": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/schema-compiler": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "duckdb": "^1.3.1" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.29", - "@cubejs-backend/testing-shared": "1.3.29", + "@cubejs-backend/linter": "1.3.30", + "@cubejs-backend/testing-shared": "1.3.30", "@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 508405c02eb36..1cb7fff48d3be 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/elasticsearch-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 ef3827e656315..c126e85468b89 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.3.29", + "version": "1.3.30", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -23,14 +23,14 @@ "driver" ], "dependencies": { - "@cubejs-backend/base-driver": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "@elastic/elasticsearch": "7.12.0", "sqlstring": "^2.3.1" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.29", + "@cubejs-backend/linter": "1.3.30", "@types/jest": "^29", "jest": "^29", "testcontainers": "^10.10.4" diff --git a/packages/cubejs-firebolt-driver/CHANGELOG.md b/packages/cubejs-firebolt-driver/CHANGELOG.md index 9ad44cc14a9c3..582e2d55b81d0 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/firebolt-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 6bfc4de4e46db..80e8604e5d3e8 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.3.29", + "version": "1.3.30", "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.3.29", - "@cubejs-backend/schema-compiler": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/schema-compiler": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "firebolt-sdk": "1.10.0" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.29", - "@cubejs-backend/testing-shared": "1.3.29", + "@cubejs-backend/linter": "1.3.30", + "@cubejs-backend/testing-shared": "1.3.30", "typescript": "~5.2.2" }, "publishConfig": { diff --git a/packages/cubejs-hive-driver/CHANGELOG.md b/packages/cubejs-hive-driver/CHANGELOG.md index 0f2325d67df32..656ee6f48aa00 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/hive-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 8fdccaff3835b..8b72ca3e3f03d 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.3.29", + "version": "1.3.30", "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.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "generic-pool": "^3.8.2", "jshs2": "^0.4.4", "sasl-plain": "^0.1.0", @@ -28,7 +28,7 @@ }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.29" + "@cubejs-backend/linter": "1.3.30" }, "publishConfig": { "access": "public" diff --git a/packages/cubejs-jdbc-driver/CHANGELOG.md b/packages/cubejs-jdbc-driver/CHANGELOG.md index 36084b664b9a4..915dbaf0306bf 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/jdbc-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 21cef1531c317..d697d6ccda1d0 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.3.29", + "version": "1.3.30", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -25,9 +25,9 @@ "index.js" ], "dependencies": { - "@cubejs-backend/base-driver": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", "@cubejs-backend/node-java-maven": "^0.1.3", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/shared": "1.3.30", "generic-pool": "^3.8.2", "sqlstring": "^2.3.0" }, @@ -43,7 +43,7 @@ "testEnvironment": "node" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.29", + "@cubejs-backend/linter": "1.3.30", "@types/generic-pool": "^3.8.2", "@types/node": "^20", "@types/sqlstring": "^2.3.0", diff --git a/packages/cubejs-ksql-driver/CHANGELOG.md b/packages/cubejs-ksql-driver/CHANGELOG.md index dc9ed5ca432bd..151e4494dc204 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/ksql-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 0818a3e866d18..dfa5bd504fd81 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.3.29", + "version": "1.3.30", "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.3.29", - "@cubejs-backend/schema-compiler": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/schema-compiler": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "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.3.29", + "@cubejs-backend/linter": "1.3.30", "typescript": "~5.2.2" } } diff --git a/packages/cubejs-linter/CHANGELOG.md b/packages/cubejs-linter/CHANGELOG.md index 469d60255bea5..473f2ad4f065a 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/linter + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **Note:** Version bump only for package @cubejs-backend/linter diff --git a/packages/cubejs-linter/package.json b/packages/cubejs-linter/package.json index 98d7faa30c5b6..e58a745edc409 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.3.29", + "version": "1.3.30", "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 52040ac05f700..9b6a65787fba8 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/materialize-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 218cb4a60929c..d09cb6db206f5 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.3.29", + "version": "1.3.30", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -27,17 +27,17 @@ "lint:fix": "eslint --fix src/* --ext .ts" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.29", - "@cubejs-backend/postgres-driver": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/postgres-driver": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "@types/pg": "^8.6.0", "pg": "^8.6.0", "semver": "^7.6.3" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.29", - "@cubejs-backend/testing": "1.3.29", + "@cubejs-backend/linter": "1.3.30", + "@cubejs-backend/testing": "1.3.30", "typescript": "~5.2.2" }, "publishConfig": { diff --git a/packages/cubejs-mongobi-driver/CHANGELOG.md b/packages/cubejs-mongobi-driver/CHANGELOG.md index 690c5558dfdf2..ae42dd718ad67 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/mongobi-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 2aa3c47ca5440..21884db44608b 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.3.29", + "version": "1.3.30", "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.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "@types/node": "^20", "generic-pool": "^3.8.2", "moment": "^2.29.1", @@ -39,7 +39,7 @@ "access": "public" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.29", + "@cubejs-backend/linter": "1.3.30", "@types/generic-pool": "^3.8.2", "testcontainers": "^10.13.0", "typescript": "~5.2.2" diff --git a/packages/cubejs-mssql-driver/CHANGELOG.md b/packages/cubejs-mssql-driver/CHANGELOG.md index 5cd8f3f97f5f0..7bae44ba9281d 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/mssql-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 6f989b3ce1fa8..74d965b44b85e 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.3.29", + "version": "1.3.30", "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.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "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 31d59cd7f3b8b..0ac0eb7b1a09a 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/mysql-aurora-serverless-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 12f15d8f792e4..f14936e527651 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.3.29", + "version": "1.3.30", "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.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "@types/mysql": "^2.15.15", "aws-sdk": "^2.787.0", "data-api-client": "^1.1.0" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.29", + "@cubejs-backend/linter": "1.3.30", "@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 cb86c856f2e2d..71fc69d3674ec 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/mysql-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 b61020cb6a0c8..cbc73e7407982 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.3.29", + "version": "1.3.30", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -27,14 +27,14 @@ "lint:fix": "eslint --fix src/* test/* --ext .ts,.js" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "generic-pool": "^3.8.2", "mysql": "^2.18.1" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.29", - "@cubejs-backend/testing-shared": "1.3.29", + "@cubejs-backend/linter": "1.3.30", + "@cubejs-backend/testing-shared": "1.3.30", "@types/generic-pool": "^3.8.2", "@types/jest": "^29", "@types/mysql": "^2.15.21", diff --git a/packages/cubejs-oracle-driver/CHANGELOG.md b/packages/cubejs-oracle-driver/CHANGELOG.md index a24a15b6c08ef..bc5bbf2c76474 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/oracle-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 9de00ebaab138..f256eeb73f0b0 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.3.29", + "version": "1.3.30", "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.3.29", + "@cubejs-backend/base-driver": "1.3.30", "ramda": "^0.27.0" }, "optionalDependencies": { diff --git a/packages/cubejs-pinot-driver/CHANGELOG.md b/packages/cubejs-pinot-driver/CHANGELOG.md index e3a4700d02652..bb979c28d5db3 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/pinot-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 8507f42e32241..205c3282c6615 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.3.29", + "version": "1.3.30", "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.3.29", - "@cubejs-backend/schema-compiler": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/schema-compiler": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "node-fetch": "^2.6.1", "ramda": "^0.27.2", "sqlstring": "^2.3.3" @@ -39,7 +39,7 @@ "access": "public" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.29", + "@cubejs-backend/linter": "1.3.30", "@types/jest": "^29", "jest": "^29", "should": "^13.2.3", diff --git a/packages/cubejs-playground/CHANGELOG.md b/packages/cubejs-playground/CHANGELOG.md index cc52a7c92aac4..ab3e2ba380cd0 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-client/playground + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **Note:** Version bump only for package @cubejs-client/playground diff --git a/packages/cubejs-playground/package.json b/packages/cubejs-playground/package.json index 4709e0527d791..235a3c5978a00 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.3.29", + "version": "1.3.30", "engines": {}, "repository": { "type": "git", @@ -68,8 +68,8 @@ "@ant-design/compatible": "^1.0.1", "@ant-design/icons": "^5.3.5", "@cube-dev/ui-kit": "0.52.3", - "@cubejs-client/core": "1.3.29", - "@cubejs-client/react": "1.3.29", + "@cubejs-client/core": "1.3.30", + "@cubejs-client/react": "1.3.30", "@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 03c26576c8fac..def86e9e57c88 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/postgres-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 0a14632af3b0f..a0442acfd961b 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.3.29", + "version": "1.3.30", "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.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "@types/pg": "^8.6.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.3.29", - "@cubejs-backend/testing-shared": "1.3.29", + "@cubejs-backend/linter": "1.3.30", + "@cubejs-backend/testing-shared": "1.3.30", "testcontainers": "^10.13.0", "typescript": "~5.2.2" }, diff --git a/packages/cubejs-prestodb-driver/CHANGELOG.md b/packages/cubejs-prestodb-driver/CHANGELOG.md index c1524f2e22f04..f3fbe79b5ea88 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/prestodb-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) ### Features diff --git a/packages/cubejs-prestodb-driver/package.json b/packages/cubejs-prestodb-driver/package.json index 8acd7618e1e84..aaacd19650ec9 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.3.29", + "version": "1.3.30", "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.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "presto-client": "^1.1.0", "ramda": "^0.27.0", "sqlstring": "^2.3.1" @@ -38,7 +38,7 @@ "access": "public" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.29", + "@cubejs-backend/linter": "1.3.30", "@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 004f6afc6702e..d448c2d4f521b 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/query-orchestrator + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **Note:** Version bump only for package @cubejs-backend/query-orchestrator diff --git a/packages/cubejs-query-orchestrator/package.json b/packages/cubejs-query-orchestrator/package.json index 7241e59c34011..877f084f9cd08 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.3.29", + "version": "1.3.30", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -29,16 +29,16 @@ "dist/src/*" ], "dependencies": { - "@cubejs-backend/base-driver": "1.3.29", - "@cubejs-backend/cubestore-driver": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/cubestore-driver": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "csv-write-stream": "^2.0.0", "generic-pool": "^3.8.2", "lru-cache": "^11.1.0", "ramda": "^0.27.2" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.29", + "@cubejs-backend/linter": "1.3.30", "@types/generic-pool": "^3.8.2", "@types/jest": "^29", "@types/node": "^20", diff --git a/packages/cubejs-questdb-driver/CHANGELOG.md b/packages/cubejs-questdb-driver/CHANGELOG.md index b31b89135b532..81a2d82b8b060 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/questdb-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 cf9016809999a..856f9b1e6ef9c 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.3.29", + "version": "1.3.30", "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.3.29", - "@cubejs-backend/schema-compiler": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/schema-compiler": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "@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.3.29", - "@cubejs-backend/testing-shared": "1.3.29", + "@cubejs-backend/linter": "1.3.30", + "@cubejs-backend/testing-shared": "1.3.30", "testcontainers": "^10.13.0", "typescript": "~5.2.2" }, diff --git a/packages/cubejs-redshift-driver/CHANGELOG.md b/packages/cubejs-redshift-driver/CHANGELOG.md index 43cd51e78b368..2c26f5ac1c7ff 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/redshift-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 6c0a9397ee31d..e2baa332db2a9 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.3.29", + "version": "1.3.30", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -25,13 +25,13 @@ "lint:fix": "eslint --fix src/* --ext .ts" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.29", - "@cubejs-backend/postgres-driver": "1.3.29", - "@cubejs-backend/shared": "1.3.29" + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/postgres-driver": "1.3.30", + "@cubejs-backend/shared": "1.3.30" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.29", + "@cubejs-backend/linter": "1.3.30", "typescript": "~5.2.2" }, "publishConfig": { diff --git a/packages/cubejs-schema-compiler/CHANGELOG.md b/packages/cubejs-schema-compiler/CHANGELOG.md index 501d23ed0d94e..562b21f333389 100644 --- a/packages/cubejs-schema-compiler/CHANGELOG.md +++ b/packages/cubejs-schema-compiler/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/schema-compiler + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 1c92364026dae..49a02bb22558b 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.3.29", + "version": "1.3.30", "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.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/native": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "antlr4ts": "0.5.0-alpha.4", "camelcase": "^6.2.0", "cron-parser": "^4.9.0", @@ -60,8 +60,8 @@ }, "devDependencies": { "@clickhouse/client": "^1.7.0", - "@cubejs-backend/linter": "1.3.29", - "@cubejs-backend/query-orchestrator": "1.3.29", + "@cubejs-backend/linter": "1.3.30", + "@cubejs-backend/query-orchestrator": "1.3.30", "@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 e49ec3fb2df71..099f8026f6304 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/server-core + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 ff4b8e2a35478..371143bb2bb72 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.3.29", + "version": "1.3.30", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -29,14 +29,14 @@ "unit": "jest --runInBand --forceExit --coverage dist/test" }, "dependencies": { - "@cubejs-backend/api-gateway": "1.3.29", - "@cubejs-backend/cloud": "1.3.29", + "@cubejs-backend/api-gateway": "1.3.30", + "@cubejs-backend/cloud": "1.3.30", "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/native": "1.3.29", - "@cubejs-backend/query-orchestrator": "1.3.29", - "@cubejs-backend/schema-compiler": "1.3.29", - "@cubejs-backend/shared": "1.3.29", - "@cubejs-backend/templates": "1.3.29", + "@cubejs-backend/native": "1.3.30", + "@cubejs-backend/query-orchestrator": "1.3.30", + "@cubejs-backend/schema-compiler": "1.3.30", + "@cubejs-backend/shared": "1.3.30", + "@cubejs-backend/templates": "1.3.30", "codesandbox-import-utils": "^2.1.12", "cross-spawn": "^7.0.1", "fs-extra": "^8.1.0", @@ -59,9 +59,9 @@ "ws": "^7.5.3" }, "devDependencies": { - "@cubejs-backend/cubestore-driver": "1.3.29", - "@cubejs-backend/linter": "1.3.29", - "@cubejs-client/playground": "1.3.29", + "@cubejs-backend/cubestore-driver": "1.3.30", + "@cubejs-backend/linter": "1.3.30", + "@cubejs-client/playground": "1.3.30", "@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 aab74089f4e5d..bd5808cad5a79 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/server + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **Note:** Version bump only for package @cubejs-backend/server diff --git a/packages/cubejs-server/package.json b/packages/cubejs-server/package.json index 17218c37a1f17..bcdaa8039ea99 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.3.29", + "version": "1.3.30", "types": "index.d.ts", "repository": { "type": "git", @@ -40,11 +40,11 @@ "jest:shapshot": "jest --updateSnapshot test" }, "dependencies": { - "@cubejs-backend/cubestore-driver": "1.3.29", + "@cubejs-backend/cubestore-driver": "1.3.30", "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/native": "1.3.29", - "@cubejs-backend/server-core": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/native": "1.3.30", + "@cubejs-backend/server-core": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "@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.3.29", - "@cubejs-backend/query-orchestrator": "1.3.29", + "@cubejs-backend/linter": "1.3.30", + "@cubejs-backend/query-orchestrator": "1.3.30", "@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 2498f78b2e759..7dab221c0da99 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/snowflake-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 514ce009ce117..c92aaba109f8a 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.3.29", + "version": "1.3.30", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -25,8 +25,8 @@ "lint:fix": "eslint --fix src/* --ext .ts" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "date-fns-timezone": "^0.1.4", "snowflake-sdk": "^2.0.3" }, @@ -38,7 +38,7 @@ "extends": "../cubejs-linter" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.29", + "@cubejs-backend/linter": "1.3.30", "typescript": "~5.2.2" } } diff --git a/packages/cubejs-sqlite-driver/CHANGELOG.md b/packages/cubejs-sqlite-driver/CHANGELOG.md index a800165330200..846c932fd36f5 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/sqlite-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 34c906c6d192a..c6e48ad59cfb2 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.3.29", + "version": "1.3.30", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.git", @@ -17,13 +17,13 @@ "lint": "eslint **/*.js" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "sqlite3": "^5.1.7" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.29" + "@cubejs-backend/linter": "1.3.30" }, "publishConfig": { "access": "public" diff --git a/packages/cubejs-templates/CHANGELOG.md b/packages/cubejs-templates/CHANGELOG.md index 819f30f960ed5..5c90cf4bd86ad 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/templates + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **Note:** Version bump only for package @cubejs-backend/templates diff --git a/packages/cubejs-templates/package.json b/packages/cubejs-templates/package.json index 46536dc197ed5..2050ce35cac9c 100644 --- a/packages/cubejs-templates/package.json +++ b/packages/cubejs-templates/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/templates", - "version": "1.3.29", + "version": "1.3.30", "description": "Cube.js Templates helpers", "author": "Cube Dev, Inc.", "license": "Apache-2.0", @@ -26,7 +26,7 @@ "extends": "../cubejs-linter" }, "dependencies": { - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/shared": "1.3.30", "cross-spawn": "^7.0.3", "decompress": "^4.2.1", "decompress-targz": "^4.1.1", @@ -36,7 +36,7 @@ "source-map-support": "^0.5.19" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.29", + "@cubejs-backend/linter": "1.3.30", "typescript": "~5.2.2" } } diff --git a/packages/cubejs-testing-drivers/CHANGELOG.md b/packages/cubejs-testing-drivers/CHANGELOG.md index 21c2236502473..0797e92434fdc 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/testing-drivers + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 d6e2feca883ad..879a55a38ed66 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.3.29", + "version": "1.3.30", "description": "Cube.js drivers test suite", "author": "Cube Dev, Inc.", "license": "MIT", @@ -66,24 +66,24 @@ "dist/src" ], "dependencies": { - "@cubejs-backend/athena-driver": "1.3.29", - "@cubejs-backend/base-driver": "1.3.29", - "@cubejs-backend/bigquery-driver": "1.3.29", - "@cubejs-backend/clickhouse-driver": "1.3.29", - "@cubejs-backend/cubestore-driver": "1.3.29", - "@cubejs-backend/databricks-jdbc-driver": "1.3.29", + "@cubejs-backend/athena-driver": "1.3.30", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/bigquery-driver": "1.3.30", + "@cubejs-backend/clickhouse-driver": "1.3.30", + "@cubejs-backend/cubestore-driver": "1.3.30", + "@cubejs-backend/databricks-jdbc-driver": "1.3.30", "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/linter": "1.3.29", - "@cubejs-backend/mssql-driver": "1.3.29", - "@cubejs-backend/mysql-driver": "1.3.29", - "@cubejs-backend/postgres-driver": "1.3.29", - "@cubejs-backend/query-orchestrator": "1.3.29", - "@cubejs-backend/server-core": "1.3.29", - "@cubejs-backend/shared": "1.3.29", - "@cubejs-backend/snowflake-driver": "1.3.29", - "@cubejs-backend/testing-shared": "1.3.29", - "@cubejs-client/core": "1.3.29", - "@cubejs-client/ws-transport": "1.3.29", + "@cubejs-backend/linter": "1.3.30", + "@cubejs-backend/mssql-driver": "1.3.30", + "@cubejs-backend/mysql-driver": "1.3.30", + "@cubejs-backend/postgres-driver": "1.3.30", + "@cubejs-backend/query-orchestrator": "1.3.30", + "@cubejs-backend/server-core": "1.3.30", + "@cubejs-backend/shared": "1.3.30", + "@cubejs-backend/snowflake-driver": "1.3.30", + "@cubejs-backend/testing-shared": "1.3.30", + "@cubejs-client/core": "1.3.30", + "@cubejs-client/ws-transport": "1.3.30", "@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 92df685aec940..1aa3dab975ad0 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/testing-shared + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 ab760ea60efa4..97765d6c831ec 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.3.29", + "version": "1.3.30", "description": "Cube.js Testing Helpers", "author": "Cube Dev, Inc.", "license": "Apache-2.0", @@ -21,16 +21,16 @@ ], "dependencies": { "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/query-orchestrator": "1.3.29", - "@cubejs-backend/schema-compiler": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/query-orchestrator": "1.3.30", + "@cubejs-backend/schema-compiler": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "@testcontainers/kafka": "~10.13.0", "dedent": "^0.7.0", "node-fetch": "^2.6.7", "testcontainers": "^10.13.0" }, "devDependencies": { - "@cubejs-backend/linter": "1.3.29", + "@cubejs-backend/linter": "1.3.30", "@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 eeb09eac5a162..f48b6138defcf 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/testing + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **Note:** Version bump only for package @cubejs-backend/testing diff --git a/packages/cubejs-testing/package.json b/packages/cubejs-testing/package.json index 39f2be70af722..e98f61d96d6a0 100644 --- a/packages/cubejs-testing/package.json +++ b/packages/cubejs-testing/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/testing", - "version": "1.3.29", + "version": "1.3.30", "description": "Cube.js e2e tests", "author": "Cube Dev, Inc.", "license": "Apache-2.0", @@ -94,15 +94,15 @@ "birdbox-fixtures" ], "dependencies": { - "@cubejs-backend/cubestore-driver": "1.3.29", + "@cubejs-backend/cubestore-driver": "1.3.30", "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/ksql-driver": "1.3.29", - "@cubejs-backend/postgres-driver": "1.3.29", - "@cubejs-backend/query-orchestrator": "1.3.29", - "@cubejs-backend/schema-compiler": "1.3.29", - "@cubejs-backend/shared": "1.3.29", - "@cubejs-backend/testing-shared": "1.3.29", - "@cubejs-client/ws-transport": "1.3.29", + "@cubejs-backend/ksql-driver": "1.3.30", + "@cubejs-backend/postgres-driver": "1.3.30", + "@cubejs-backend/query-orchestrator": "1.3.30", + "@cubejs-backend/schema-compiler": "1.3.30", + "@cubejs-backend/shared": "1.3.30", + "@cubejs-backend/testing-shared": "1.3.30", + "@cubejs-client/ws-transport": "1.3.30", "dedent": "^0.7.0", "fs-extra": "^8.1.0", "http-proxy": "^1.18.1", @@ -113,8 +113,8 @@ }, "devDependencies": { "@4tw/cypress-drag-drop": "^1.6.0", - "@cubejs-backend/linter": "1.3.29", - "@cubejs-client/core": "1.3.29", + "@cubejs-backend/linter": "1.3.30", + "@cubejs-client/core": "1.3.30", "@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 1e75c54f6990a..5ac74885484b9 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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/trino-driver + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) **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 89a39313c5f0d..a361e8b9e2abc 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.3.29", + "version": "1.3.30", "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.3.29", - "@cubejs-backend/prestodb-driver": "1.3.29", - "@cubejs-backend/schema-compiler": "1.3.29", - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/prestodb-driver": "1.3.30", + "@cubejs-backend/schema-compiler": "1.3.30", + "@cubejs-backend/shared": "1.3.30", "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.3.29", + "@cubejs-backend/linter": "1.3.30", "@types/jest": "^29", "jest": "^29", "testcontainers": "^10.13.0", diff --git a/packages/cubejs-vertica-driver/CHANGELOG.md b/packages/cubejs-vertica-driver/CHANGELOG.md index 8efc83245a6bd..40f5d7ae027e3 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.3.30](https://github.com/cube-js/cube.js/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/vertica-driver + ## [1.3.29](https://github.com/cube-js/cube.js/compare/v1.3.28...v1.3.29) (2025-07-01) **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 d45c4c356359a..342efdce6b149 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.3.29", + "version": "1.3.30", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -19,15 +19,15 @@ "lint:fix": "eslint --fix **/*.js" }, "dependencies": { - "@cubejs-backend/base-driver": "1.3.29", - "@cubejs-backend/query-orchestrator": "1.3.29", - "@cubejs-backend/schema-compiler": "1.3.29", + "@cubejs-backend/base-driver": "1.3.30", + "@cubejs-backend/query-orchestrator": "1.3.30", + "@cubejs-backend/schema-compiler": "1.3.30", "vertica-nodejs": "^1.0.3" }, "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.29", - "@cubejs-backend/testing-shared": "1.3.29", + "@cubejs-backend/linter": "1.3.30", + "@cubejs-backend/testing-shared": "1.3.30", "@types/jest": "^29", "jest": "^29", "testcontainers": "^10.13.0" diff --git a/rust/cubenativeutils/Cargo.lock b/rust/cubenativeutils/Cargo.lock index 4e8472c7df783..3ee1a78750ab9 100644 --- a/rust/cubenativeutils/Cargo.lock +++ b/rust/cubenativeutils/Cargo.lock @@ -623,7 +623,7 @@ dependencies = [ [[package]] name = "cube-ext" version = "1.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "arrow", "chrono", @@ -715,7 +715,7 @@ dependencies = [ [[package]] name = "datafusion" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "ahash 0.7.8", "arrow", @@ -748,7 +748,7 @@ dependencies = [ [[package]] name = "datafusion-common" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "arrow", "ordered-float 2.10.1", @@ -759,7 +759,7 @@ dependencies = [ [[package]] name = "datafusion-data-access" version = "1.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "async-trait", "chrono", @@ -772,7 +772,7 @@ dependencies = [ [[package]] name = "datafusion-expr" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "ahash 0.7.8", "arrow", @@ -783,7 +783,7 @@ dependencies = [ [[package]] name = "datafusion-physical-expr" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "ahash 0.7.8", "arrow", diff --git a/rust/cubesql/CHANGELOG.md b/rust/cubesql/CHANGELOG.md index ce9328d98b5b5..8e2887fe55cd1 100644 --- a/rust/cubesql/CHANGELOG.md +++ b/rust/cubesql/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +### Features + +- **cubesql:** Support `AGE` function ([#9734](https://github.com/cube-js/cube/issues/9734)) ([5b2682c](https://github.com/cube-js/cube/commit/5b2682c3569933e94f56f6d998065b9063525d29)) +- **cubesql:** Support `DATE_PART` with intervals ([#9740](https://github.com/cube-js/cube/issues/9740)) ([65d084d](https://github.com/cube-js/cube/commit/65d084ddd81f6cfefe836b224fb9dd7575a62756)) +- **cubesql:** Support decimal math with scalar ([#9742](https://github.com/cube-js/cube/issues/9742)) ([2629d36](https://github.com/cube-js/cube/commit/2629d36572944b0b1f6194970c4a4e6132fd5a8a)) + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) ### Bug Fixes diff --git a/rust/cubesql/Cargo.lock b/rust/cubesql/Cargo.lock index 6877781e5896c..810919a15c1e3 100644 --- a/rust/cubesql/Cargo.lock +++ b/rust/cubesql/Cargo.lock @@ -722,7 +722,7 @@ dependencies = [ [[package]] name = "cube-ext" version = "1.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "arrow", "chrono", @@ -846,7 +846,7 @@ dependencies = [ [[package]] name = "datafusion" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "ahash 0.7.8", "arrow", @@ -879,7 +879,7 @@ dependencies = [ [[package]] name = "datafusion-common" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "arrow", "ordered-float 2.10.0", @@ -890,7 +890,7 @@ dependencies = [ [[package]] name = "datafusion-data-access" version = "1.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "async-trait", "chrono", @@ -903,7 +903,7 @@ dependencies = [ [[package]] name = "datafusion-expr" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "ahash 0.7.8", "arrow", @@ -914,7 +914,7 @@ dependencies = [ [[package]] name = "datafusion-physical-expr" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "ahash 0.7.8", "arrow", diff --git a/rust/cubesql/cubesql/Cargo.toml b/rust/cubesql/cubesql/Cargo.toml index 1a854df8f49d1..4c14f59e877df 100644 --- a/rust/cubesql/cubesql/Cargo.toml +++ b/rust/cubesql/cubesql/Cargo.toml @@ -10,7 +10,7 @@ homepage = "https://cube.dev" [dependencies] arc-swap = "1" -datafusion = { git = 'https://github.com/cube-js/arrow-datafusion.git', rev = "454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5", default-features = false, features = [ +datafusion = { git = 'https://github.com/cube-js/arrow-datafusion.git', rev = "edbe6a8b62c1cc9f1feb0be83f089f155c662298", default-features = false, features = [ "regex_expressions", "unicode_expressions", ] } diff --git a/rust/cubesql/cubesql/src/compile/engine/udf/common.rs b/rust/cubesql/cubesql/src/compile/engine/udf/common.rs index 096ea843f7f0e..e75583b667099 100644 --- a/rust/cubesql/cubesql/src/compile/engine/udf/common.rs +++ b/rust/cubesql/cubesql/src/compile/engine/udf/common.rs @@ -1,10 +1,12 @@ use std::{ any::type_name, + convert::TryInto, + mem::swap, sync::{Arc, LazyLock}, thread, }; -use chrono::{Datelike, Days, Duration, Months, NaiveDate, NaiveDateTime, NaiveTime}; +use chrono::{Datelike, Days, Duration, Months, NaiveDate, NaiveDateTime, NaiveTime, Utc}; use datafusion::{ arrow::{ array::{ @@ -21,6 +23,7 @@ use datafusion::{ IntervalDayTimeType, IntervalMonthDayNanoType, IntervalUnit, IntervalYearMonthType, TimeUnit, TimestampNanosecondType, UInt32Type, }, + temporal_conversions::timestamp_ns_to_datetime, }, error::{DataFusionError, Result}, execution::context::SessionContext, @@ -3752,6 +3755,130 @@ pub fn create_pg_get_indexdef_udf() -> ScalarUDF { ) } +pub fn create_age_udf() -> ScalarUDF { + let fun = make_scalar_function(move |args: &[ArrayRef]| match args.len() { + 1 => { + let older_dates = + downcast_primitive_arg!(args[0], "older_date", TimestampNanosecondType); + let current_date = Utc::now().date_naive().and_time(NaiveTime::default()); + + let result = older_dates + .iter() + .map(|older_date| { + older_date + .map(|older_date| { + let older_date = timestamp_ns_to_datetime(older_date); + timestamp_difference_to_interval_month_day_nano( + current_date, + older_date, + ) + }) + .transpose() + }) + .collect::>()?; + + Ok(Arc::new(result) as ArrayRef) + } + 2 => { + let newer_dates = + downcast_primitive_arg!(args[0], "newer_date", TimestampNanosecondType); + let older_dates = + downcast_primitive_arg!(args[1], "older_date", TimestampNanosecondType); + + let result = newer_dates + .iter() + .zip(older_dates) + .map(|dates| match dates { + (Some(newer_date), Some(older_date)) => { + let newer_date = timestamp_ns_to_datetime(newer_date); + let older_date = timestamp_ns_to_datetime(older_date); + timestamp_difference_to_interval_month_day_nano(newer_date, older_date) + .map(Some) + } + _ => Ok(None), + }) + .collect::>()?; + + Ok(Arc::new(result) as ArrayRef) + } + _ => Err(DataFusionError::Execution( + "AGE function requires 1 or 2 arguments".to_string(), + )), + }); + + let return_type: ReturnTypeFunction = + Arc::new(move |_| Ok(Arc::new(DataType::Interval(IntervalUnit::MonthDayNano)))); + + ScalarUDF::new( + "age", + &Signature::one_of( + vec![ + TypeSignature::Exact(vec![DataType::Timestamp(TimeUnit::Nanosecond, None)]), + TypeSignature::Exact(vec![ + DataType::Timestamp(TimeUnit::Nanosecond, None), + DataType::Timestamp(TimeUnit::Nanosecond, None), + ]), + ], + // NOTE: volatility should be `Stable` but we have no access + // to `query_execution_start_time` + Volatility::Volatile, + ), + &return_type, + &fun, + ) +} + +fn timestamp_difference_to_interval_month_day_nano( + newer_date: NaiveDateTime, + older_date: NaiveDateTime, +) -> Result { + if newer_date == older_date { + return Ok(0); + } + let mut newer_date = newer_date; + let mut older_date = older_date; + let reverse = if older_date > newer_date { + swap(&mut newer_date, &mut older_date); + true + } else { + false + }; + + let years = newer_date.year() - older_date.year(); + let mut months: i32 = (newer_date.month() as i32) - (older_date.month() as i32); + months += years * 12; + if newer_date.day() < older_date.day() + || (newer_date.day() == older_date.day() && newer_date.time() < older_date.time()) + { + months -= 1; + } + + let offset_older_date = older_date + .checked_add_months(Months::new(months as u32)) + .ok_or_else(|| DataFusionError::Execution("Cannot add months to date".to_string()))?; + let duration = newer_date - offset_older_date; + let mut days: i32 = duration + .num_days() + .try_into() + .map_err(|_| DataFusionError::Execution("Cannot convert days to i32".to_string()))?; + + let offset_older_date = offset_older_date + .checked_add_days(Days::new(days as u64)) + .ok_or_else(|| DataFusionError::Execution("Cannot add days to date".to_string()))?; + let duration = newer_date - offset_older_date; + let mut nanos = duration.num_nanoseconds().ok_or_else(|| { + DataFusionError::Execution("Cannot convert duration to nanoseconds".to_string()) + })?; + + if reverse { + months = -months; + days = -days; + nanos = -nanos; + } + let result = IntervalMonthDayNanoType::make_value(months, days, nanos); + Ok(result) +} + pub fn create_udf_stub( name: &'static str, type_signature: TypeSignature, @@ -3987,13 +4114,6 @@ pub fn register_fun_stubs(mut ctx: SessionContext) -> SessionContext { // NOTE: lack of "rettyp" implies "type of first arg" register_fun_stub!(udf, "acosd", tsig = [Float64], rettyp = Float64); register_fun_stub!(udf, "acosh", tsig = [Float64], rettyp = Float64); - register_fun_stub!( - udf, - "age", - tsigs = [[Timestamp], [Timestamp, Timestamp],], - rettyp = Interval, - vol = Stable - ); register_fun_stub!(udf, "asind", tsig = [Float64], rettyp = Float64); register_fun_stub!(udf, "asinh", tsig = [Float64], rettyp = Float64); register_fun_stub!(udf, "atan2", tsig = [Float64, Float64], rettyp = Float64); diff --git a/rust/cubesql/cubesql/src/compile/query_engine.rs b/rust/cubesql/cubesql/src/compile/query_engine.rs index d9dedc0ffe76f..5c43baeebb1a7 100644 --- a/rust/cubesql/cubesql/src/compile/query_engine.rs +++ b/rust/cubesql/cubesql/src/compile/query_engine.rs @@ -512,6 +512,7 @@ impl QueryEngine for SqlQueryEngine { ctx.register_udf(create_to_regtype_udf()); ctx.register_udf(create_pg_get_indexdef_udf()); ctx.register_udf(create_inet_server_addr_udf()); + ctx.register_udf(create_age_udf()); // udaf ctx.register_udaf(create_measure_udaf()); diff --git a/rust/cubesql/cubesql/src/compile/test/snapshots/cubesql__compile__test__test_df_execution__date_part_interval.snap b/rust/cubesql/cubesql/src/compile/test/snapshots/cubesql__compile__test__test_df_execution__date_part_interval.snap new file mode 100644 index 0000000000000..95306e154a33e --- /dev/null +++ b/rust/cubesql/cubesql/src/compile/test/snapshots/cubesql__compile__test__test_df_execution__date_part_interval.snap @@ -0,0 +1,9 @@ +--- +source: cubesql/src/compile/test/test_df_execution.rs +expression: "execute_query(query.to_string(), DatabaseProtocol::PostgreSQL).await.unwrap()" +--- ++---+ +| d | ++---+ +| 3 | ++---+ diff --git a/rust/cubesql/cubesql/src/compile/test/snapshots/cubesql__compile__test__test_df_execution__numeric_math_scalar.snap b/rust/cubesql/cubesql/src/compile/test/snapshots/cubesql__compile__test__test_df_execution__numeric_math_scalar.snap new file mode 100644 index 0000000000000..bfac7dee8efb0 --- /dev/null +++ b/rust/cubesql/cubesql/src/compile/test/snapshots/cubesql__compile__test__test_df_execution__numeric_math_scalar.snap @@ -0,0 +1,10 @@ +--- +source: cubesql/src/compile/test/test_df_execution.rs +expression: "execute_query(query.to_string(), DatabaseProtocol::PostgreSQL).await.unwrap()" +--- ++--------------+ +| m | ++--------------+ +| 1.0000000000 | +| 1.5000000000 | ++--------------+ diff --git a/rust/cubesql/cubesql/src/compile/test/snapshots/cubesql__compile__test__test_udfs__age.snap b/rust/cubesql/cubesql/src/compile/test/snapshots/cubesql__compile__test__test_udfs__age.snap new file mode 100644 index 0000000000000..a62f3b2d3b670 --- /dev/null +++ b/rust/cubesql/cubesql/src/compile/test/snapshots/cubesql__compile__test__test_udfs__age.snap @@ -0,0 +1,9 @@ +--- +source: cubesql/src/compile/test/test_udfs.rs +expression: "execute_query(r#\"SELECT AGE('2025-06-09T10:09:45'::timestamp, DATE '2023-08-10') AS age;\"#.to_string(),\nDatabaseProtocol::PostgreSQL).await?" +--- ++---------------------------------------------------+ +| age | ++---------------------------------------------------+ +| 1 years 9 mons 30 days 10 hours 9 mins 45.00 secs | ++---------------------------------------------------+ diff --git a/rust/cubesql/cubesql/src/compile/test/test_df_execution.rs b/rust/cubesql/cubesql/src/compile/test/test_df_execution.rs index 6c812b63743c6..2420a09b2fe73 100644 --- a/rust/cubesql/cubesql/src/compile/test/test_df_execution.rs +++ b/rust/cubesql/cubesql/src/compile/test/test_df_execution.rs @@ -112,3 +112,44 @@ SELECT .unwrap() ); } + +#[tokio::test] +async fn test_date_part_interval() { + init_testing_logger(); + + // language=PostgreSQL + let query = r#" + SELECT + DATE_PART('day', INTERVAL '1 year 2 month 3 day 4 hour 5 minute 6 second') AS d + "#; + + insta::assert_snapshot!( + execute_query(query.to_string(), DatabaseProtocol::PostgreSQL) + .await + .unwrap() + ); +} + +#[tokio::test] +async fn test_numeric_math_scalar() { + init_testing_logger(); + + // language=PostgreSQL + let query = r#" + SELECT + a % 2::numeric AS m + FROM ( + SELECT + 5::numeric AS a + UNION ALL + SELECT + 3.5::numeric AS a + ) AS t + "#; + + insta::assert_snapshot!( + execute_query(query.to_string(), DatabaseProtocol::PostgreSQL) + .await + .unwrap() + ); +} diff --git a/rust/cubesql/cubesql/src/compile/test/test_udfs.rs b/rust/cubesql/cubesql/src/compile/test/test_udfs.rs index e4e58ca0815af..37e884adef88b 100644 --- a/rust/cubesql/cubesql/src/compile/test/test_udfs.rs +++ b/rust/cubesql/cubesql/src/compile/test/test_udfs.rs @@ -1310,3 +1310,20 @@ async fn test_extension_udf_xirr() -> Result<(), CubeError> { Ok(()) } + +#[tokio::test] +async fn test_age() -> Result<(), CubeError> { + init_testing_logger(); + + insta::assert_snapshot!( + "age", + execute_query( + r#"SELECT AGE('2025-06-09T10:09:45'::timestamp, DATE '2023-08-10') AS age;"# + .to_string(), + DatabaseProtocol::PostgreSQL + ) + .await? + ); + + Ok(()) +} diff --git a/rust/cubesql/package.json b/rust/cubesql/package.json index b80d7277608fd..0353e6c5a4941 100644 --- a/rust/cubesql/package.json +++ b/rust/cubesql/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/cubesql", - "version": "1.3.29", + "version": "1.3.30", "description": "SQL API for Cube as proxy over MySQL protocol.", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" diff --git a/rust/cubesqlplanner/Cargo.lock b/rust/cubesqlplanner/Cargo.lock index 918ab8c207749..33383aae171a6 100644 --- a/rust/cubesqlplanner/Cargo.lock +++ b/rust/cubesqlplanner/Cargo.lock @@ -664,7 +664,7 @@ dependencies = [ [[package]] name = "cube-ext" version = "1.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "arrow", "chrono", @@ -777,7 +777,7 @@ dependencies = [ [[package]] name = "datafusion" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "ahash 0.7.8", "arrow", @@ -810,7 +810,7 @@ dependencies = [ [[package]] name = "datafusion-common" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "arrow", "ordered-float 2.10.1", @@ -821,7 +821,7 @@ dependencies = [ [[package]] name = "datafusion-data-access" version = "1.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "async-trait", "chrono", @@ -834,7 +834,7 @@ dependencies = [ [[package]] name = "datafusion-expr" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "ahash 0.7.8", "arrow", @@ -845,7 +845,7 @@ dependencies = [ [[package]] name = "datafusion-physical-expr" version = "7.0.0" -source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5#454020d6ad0eb5987aa0dbc3a3b4db8c24ccc1b5" +source = "git+https://github.com/cube-js/arrow-datafusion.git?rev=edbe6a8b62c1cc9f1feb0be83f089f155c662298#edbe6a8b62c1cc9f1feb0be83f089f155c662298" dependencies = [ "ahash 0.7.8", "arrow", diff --git a/rust/cubesqlplanner/cubesqlplanner/src/plan/join.rs b/rust/cubesqlplanner/cubesqlplanner/src/plan/join.rs index 93c3bfa3a458c..66171dc9ce231 100644 --- a/rust/cubesqlplanner/cubesqlplanner/src/plan/join.rs +++ b/rust/cubesqlplanner/cubesqlplanner/src/plan/join.rs @@ -146,9 +146,9 @@ impl ToDateRollingWindowJoinCondition { let date_column = self.time_dimension.to_sql(templates, context)?; let date_from = - templates.column_reference(&Some(self.time_series_source.clone()), "date_to")?; - let date_to = templates.column_reference(&Some(self.time_series_source.clone()), "date_from")?; + let date_to = + templates.column_reference(&Some(self.time_series_source.clone()), "date_to")?; let date_from = templates.rolling_window_expr_timestamp_cast(&date_from)?; let date_to = templates.rolling_window_expr_timestamp_cast(&date_to)?; let grouped_from = templates.time_grouped_column(self.granularity.clone(), date_from)?; diff --git a/rust/cubestore/CHANGELOG.md b/rust/cubestore/CHANGELOG.md index 4f19fe5a2e1d9..ecb07fb4e88d8 100644 --- a/rust/cubestore/CHANGELOG.md +++ b/rust/cubestore/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.3.30](https://github.com/cube-js/cube/compare/v1.3.29...v1.3.30) (2025-07-01) + +**Note:** Version bump only for package @cubejs-backend/cubestore + ## [1.3.29](https://github.com/cube-js/cube/compare/v1.3.28...v1.3.29) (2025-07-01) ### Features diff --git a/rust/cubestore/cubestore/src/cachestore/cache_eviction_manager.rs b/rust/cubestore/cubestore/src/cachestore/cache_eviction_manager.rs index aa3603e1595b0..141e7ee4fc83a 100644 --- a/rust/cubestore/cubestore/src/cachestore/cache_eviction_manager.rs +++ b/rust/cubestore/cubestore/src/cachestore/cache_eviction_manager.rs @@ -391,7 +391,7 @@ impl CacheEvictionManager { store: &Arc, ) -> Result { let (deleted_count, deleted_size, skipped) = store - .write_operation(move |db_ref, pipe| { + .write_operation("delete_batch", move |db_ref, pipe| { let cache_schema = CacheItemRocksTable::new(db_ref.clone()); let mut deleted_count: u32 = 0; @@ -951,7 +951,7 @@ impl CacheEvictionManager { app_metrics::CACHESTORE_TTL_BUFFER.report(buffer_len as i64); store - .write_operation(move |db_ref, pipe| { + .write_operation("persist_ttl", move |db_ref, pipe| { let cache_schema = CacheItemRocksTable::new(db_ref.clone()); for (row_id, item) in to_persist.into_iter() { diff --git a/rust/cubestore/cubestore/src/cachestore/cache_rocksstore.rs b/rust/cubestore/cubestore/src/cachestore/cache_rocksstore.rs index c7ffc32a1a98c..08e8045ab8d73 100644 --- a/rust/cubestore/cubestore/src/cachestore/cache_rocksstore.rs +++ b/rust/cubestore/cubestore/src/cachestore/cache_rocksstore.rs @@ -502,7 +502,7 @@ impl RocksCacheStore { impl RocksCacheStore { async fn queue_result_delete_by_id(&self, id: u64) -> Result<(), CubeError> { self.store - .write_operation(move |db_ref, batch_pipe| { + .write_operation("queue_result_delete_by_id", move |db_ref, batch_pipe| { let result_schema = QueueResultRocksTable::new(db_ref.clone()); result_schema.try_delete(id, batch_pipe)?; @@ -514,7 +514,7 @@ impl RocksCacheStore { /// This method should be called when we are sure that we return data to the consumer async fn queue_result_ready_to_delete(&self, id: u64) -> Result<(), CubeError> { self.store - .write_operation(move |db_ref, batch_pipe| { + .write_operation("queue_result_ready_to_delete", move |db_ref, batch_pipe| { let result_schema = QueueResultRocksTable::new(db_ref.clone()); if let Some(row) = result_schema.get_row(id)? { Self::queue_result_ready_to_delete_impl(&result_schema, batch_pipe, row)?; @@ -555,7 +555,7 @@ impl RocksCacheStore { key: QueueKey, ) -> Result, CubeError> { self.store - .write_operation(move |db_ref, batch_pipe| { + .write_operation("lookup_queue_result_by_key", move |db_ref, batch_pipe| { let result_schema = QueueResultRocksTable::new(db_ref.clone()); let query_key_is_path = key.is_path(); let queue_result = result_schema.get_row_by_key(key.clone())?; @@ -866,7 +866,7 @@ impl CacheStore for RocksCacheStore { let (result, inserted) = self .store - .write_operation(move |db_ref, batch_pipe| { + .write_operation("cache_set", move |db_ref, batch_pipe| { let cache_schema = CacheItemRocksTable::new(db_ref.clone()); let index_key = CacheItemIndexKey::ByPath(item.get_path()); let id_row_opt = cache_schema @@ -900,7 +900,7 @@ impl CacheStore for RocksCacheStore { let result = self .store - .write_operation(move |db_ref, batch_pipe| { + .write_operation("cache_truncate", move |db_ref, batch_pipe| { let cache_schema = CacheItemRocksTable::new(db_ref); cache_schema.truncate(batch_pipe)?; @@ -917,7 +917,7 @@ impl CacheStore for RocksCacheStore { async fn cache_delete(&self, key: String) -> Result<(), CubeError> { let result = self .store - .write_operation(move |db_ref, batch_pipe| { + .write_operation("cache_delete", move |db_ref, batch_pipe| { let cache_schema = CacheItemRocksTable::new(db_ref.clone()); let index_key = CacheItemIndexKey::ByPath(key); let row_opt = cache_schema @@ -947,7 +947,7 @@ impl CacheStore for RocksCacheStore { async fn cache_get(&self, key: String) -> Result>, CubeError> { let res = self .store - .read_operation(move |db_ref| { + .read_operation("cache_get", move |db_ref| { let cache_schema = CacheItemRocksTable::new(db_ref.clone()); let index_key = CacheItemIndexKey::ByPath(key); let id_row_opt = cache_schema @@ -966,7 +966,7 @@ impl CacheStore for RocksCacheStore { async fn cache_keys(&self, prefix: String) -> Result>, CubeError> { self.store - .read_operation(move |db_ref| { + .read_operation("cache_keys", move |db_ref| { let cache_schema = CacheItemRocksTable::new(db_ref.clone()); let index_key = CacheItemIndexKey::ByPrefix(CacheItem::parse_path_to_prefix(prefix)); @@ -981,7 +981,7 @@ impl CacheStore for RocksCacheStore { async fn cache_incr(&self, path: String) -> Result, CubeError> { let item = self .store - .write_operation(move |db_ref, batch_pipe| { + .write_operation("cache_incr", move |db_ref, batch_pipe| { let cache_schema = CacheItemRocksTable::new(db_ref.clone()); let index_key = CacheItemIndexKey::ByPath(path.clone()); let id_row_opt = cache_schema @@ -1009,7 +1009,7 @@ impl CacheStore for RocksCacheStore { async fn queue_all(&self, limit: Option) -> Result, CubeError> { self.store - .read_operation(move |db_ref| { + .read_operation("queue_all", move |db_ref| { let queue_schema = QueueItemRocksTable::new(db_ref.clone()); let queue_payload_schema = QueueItemPayloadRocksTable::new(db_ref.clone()); @@ -1041,13 +1041,15 @@ impl CacheStore for RocksCacheStore { limit: Option, ) -> Result>, CubeError> { self.store - .read_operation(move |db_ref| Ok(QueueResultRocksTable::new(db_ref).scan_rows(limit)?)) + .read_operation("queue_results_all", move |db_ref| { + Ok(QueueResultRocksTable::new(db_ref).scan_rows(limit)?) + }) .await } async fn queue_results_multi_delete(&self, ids: Vec) -> Result<(), CubeError> { self.store - .write_operation(move |db_ref, batch_pipe| { + .write_operation("queue_results_multi_delete", move |db_ref, batch_pipe| { let queue_result_schema = QueueResultRocksTable::new(db_ref); for id in ids { @@ -1061,7 +1063,7 @@ impl CacheStore for RocksCacheStore { async fn queue_add(&self, payload: QueueAddPayload) -> Result { self.store - .write_operation(move |db_ref, batch_pipe| { + .write_operation("queue_add", move |db_ref, batch_pipe| { let queue_schema = QueueItemRocksTable::new(db_ref.clone()); let pending = queue_schema.count_rows_by_index( &QueueItemIndexKey::ByPrefixAndStatus( @@ -1113,7 +1115,7 @@ impl CacheStore for RocksCacheStore { async fn queue_truncate(&self) -> Result<(), CubeError> { self.store - .write_operation(move |db_ref, batch_pipe| { + .write_operation("queue_truncate", move |db_ref, batch_pipe| { let queue_item_schema = QueueItemRocksTable::new(db_ref.clone()); queue_item_schema.truncate(batch_pipe)?; @@ -1137,7 +1139,7 @@ impl CacheStore for RocksCacheStore { heartbeat_timeout: Option, ) -> Result>, CubeError> { self.store - .read_operation(move |db_ref| { + .read_operation("queue_to_cancel", move |db_ref| { let queue_schema = QueueItemRocksTable::new(db_ref.clone()); let index_key = QueueItemIndexKey::ByPrefix(prefix); let items = @@ -1161,7 +1163,7 @@ impl CacheStore for RocksCacheStore { with_payload: bool, ) -> Result, CubeError> { self.store - .read_operation(move |db_ref| { + .read_operation("queue_list", move |db_ref| { let queue_schema = QueueItemRocksTable::new(db_ref.clone()); let items = if let Some(status_filter) = status_filter { @@ -1210,7 +1212,7 @@ impl CacheStore for RocksCacheStore { async fn queue_get(&self, key: QueueKey) -> Result, CubeError> { self.store - .read_operation(move |db_ref| { + .read_operation("queue_get", move |db_ref| { let queue_schema = QueueItemRocksTable::new(db_ref.clone()); if let Some(item_row) = queue_schema.get_row_by_key(key)? { @@ -1238,7 +1240,7 @@ impl CacheStore for RocksCacheStore { async fn queue_cancel(&self, key: QueueKey) -> Result, CubeError> { self.store - .write_operation(move |db_ref, batch_pipe| { + .write_operation("queue_cancel", move |db_ref, batch_pipe| { let queue_schema = QueueItemRocksTable::new(db_ref.clone()); let queue_payload_schema = QueueItemPayloadRocksTable::new(db_ref.clone()); @@ -1267,7 +1269,7 @@ impl CacheStore for RocksCacheStore { async fn queue_heartbeat(&self, key: QueueKey) -> Result<(), CubeError> { self.store - .write_operation(move |db_ref, batch_pipe| { + .write_operation("queue_heartbeat", move |db_ref, batch_pipe| { let queue_schema = QueueItemRocksTable::new(db_ref.clone()); let id_row_opt = queue_schema.get_row_by_key(key.clone())?; @@ -1292,7 +1294,7 @@ impl CacheStore for RocksCacheStore { allow_concurrency: u32, ) -> Result { self.store - .write_operation(move |db_ref, batch_pipe| { + .write_operation("queue_retrieve_by_path", move |db_ref, batch_pipe| { let queue_schema = QueueItemRocksTable::new(db_ref.clone()); let prefix = QueueItem::parse_path(path.clone()) .0 @@ -1368,7 +1370,7 @@ impl CacheStore for RocksCacheStore { async fn queue_ack(&self, key: QueueKey, result: Option) -> Result { self.store - .write_operation(move |db_ref, batch_pipe| { + .write_operation("queue_ack", move |db_ref, batch_pipe| { let queue_item_tbl = QueueItemRocksTable::new(db_ref.clone()); let queue_item_payload_tbl = QueueItemPayloadRocksTable::new(db_ref.clone()); @@ -1470,7 +1472,7 @@ impl CacheStore for RocksCacheStore { async fn queue_merge_extra(&self, key: QueueKey, payload: String) -> Result<(), CubeError> { self.store - .write_operation(move |db_ref, batch_pipe| { + .write_operation("queue_merge_extra", move |db_ref, batch_pipe| { let queue_schema = QueueItemRocksTable::new(db_ref.clone()); let id_row_opt = queue_schema.get_row_by_key(key.clone())?; diff --git a/rust/cubestore/cubestore/src/metastore/mod.rs b/rust/cubestore/cubestore/src/metastore/mod.rs index f96848ce16ab6..43fde1e356731 100644 --- a/rust/cubestore/cubestore/src/metastore/mod.rs +++ b/rust/cubestore/cubestore/src/metastore/mod.rs @@ -1487,14 +1487,16 @@ impl RocksMetaStore { RocksStore::check_all_indexes(&self.store).await } - pub async fn read_operation(&self, f: F) -> Result + #[inline(always)] + pub async fn read_operation(&self, op_name: &'static str, f: F) -> Result where F: for<'a> FnOnce(DbTableRef<'a>) -> Result + Send + Sync + 'static, R: Send + Sync + 'static, { - self.store.read_operation(f).await + self.store.read_operation(op_name, f).await } + #[inline(always)] pub async fn read_operation_out_of_queue(&self, f: F) -> Result where F: for<'a> FnOnce(DbTableRef<'a>) -> Result + Send + Sync + 'static, @@ -1503,7 +1505,8 @@ impl RocksMetaStore { self.store.read_operation_out_of_queue(f).await } - pub async fn write_operation(&self, f: F) -> Result + #[inline(always)] + pub async fn write_operation(&self, op_name: &'static str, f: F) -> Result where F: for<'a> FnOnce(DbTableRef<'a>, &'a mut BatchPipe) -> Result + Send @@ -1511,7 +1514,7 @@ impl RocksMetaStore { + 'static, R: Send + Sync + 'static, { - self.store.write_operation(f).await + self.store.write_operation(op_name, f).await } fn drop_table_impl( @@ -1899,7 +1902,7 @@ impl MetaStore for RocksMetaStore { schema_name: String, if_not_exists: bool, ) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("create_schema", move |db_ref, batch_pipe| { batch_pipe.invalidate_tables_cache(); let table = SchemaRocksTable::new(db_ref.clone()); if if_not_exists { @@ -1924,7 +1927,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn get_schema_by_id(&self, schema_id: u64) -> Result, CubeError> { - self.read_operation(move |db_ref| { + self.read_operation("get_schema_by_id", move |db_ref| { let table = SchemaRocksTable::new(db_ref); table.get_row_or_not_found(schema_id) }) @@ -1933,7 +1936,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn get_schema_id(&self, schema_name: String) -> Result { - self.read_operation(move |db_ref| { + self.read_operation("get_schema_id", move |db_ref| { let table = SchemaRocksTable::new(db_ref); let existing_keys = table.get_row_ids_by_index(&schema_name, &SchemaRocksIndex::Name)?; @@ -1945,7 +1948,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn get_schema(&self, schema_name: String) -> Result, CubeError> { - self.read_operation(move |db_ref| { + self.read_operation("get_schema", move |db_ref| { let table = SchemaRocksTable::new(db_ref); Ok(table.get_single_row_by_index(&schema_name, &SchemaRocksIndex::Name)?) }) @@ -1958,7 +1961,7 @@ impl MetaStore for RocksMetaStore { old_schema_name: String, new_schema_name: String, ) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("rename_schema", move |db_ref, batch_pipe| { batch_pipe.invalidate_tables_cache(); let table = SchemaRocksTable::new(db_ref.clone()); let existing_keys = @@ -1982,7 +1985,7 @@ impl MetaStore for RocksMetaStore { schema_id: u64, new_schema_name: String, ) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("rename_schema_by_id", move |db_ref, batch_pipe| { batch_pipe.invalidate_tables_cache(); let table = SchemaRocksTable::new(db_ref.clone()); @@ -1998,7 +2001,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn delete_schema(&self, schema_name: String) -> Result<(), CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("delete_schema", move |db_ref, batch_pipe| { batch_pipe.invalidate_tables_cache(); let table = SchemaRocksTable::new(db_ref.clone()); let existing_keys = @@ -2025,7 +2028,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn delete_schema_by_id(&self, schema_id: u64) -> Result<(), CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("delete_schema_by_id", move |db_ref, batch_pipe| { batch_pipe.invalidate_tables_cache(); let tables = TableRocksTable::new(db_ref.clone()).all_rows()?; if tables @@ -2090,7 +2093,7 @@ impl MetaStore for RocksMetaStore { drop_if_exists: bool, extension: Option, ) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("create_table", move |db_ref, batch_pipe| { batch_pipe.invalidate_tables_cache(); if drop_if_exists { if let Ok(exists_table) = get_table_impl(db_ref.clone(), schema_name.clone(), table_name.clone()) { @@ -2285,7 +2288,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn table_ready(&self, id: u64, is_ready: bool) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("table_ready", move |db_ref, batch_pipe| { batch_pipe.invalidate_tables_cache(); let rocks_table = TableRocksTable::new(db_ref.clone()); Ok(rocks_table.update_with_fn(id, |r| r.update_is_ready(is_ready), batch_pipe)?) @@ -2295,7 +2298,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn seal_table(&self, id: u64) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("seal_table", move |db_ref, batch_pipe| { batch_pipe.invalidate_tables_cache(); let rocks_table = TableRocksTable::new(db_ref.clone()); Ok(rocks_table.update_with_fn(id, |r| r.update_sealed(true), batch_pipe)?) @@ -2304,7 +2307,7 @@ impl MetaStore for RocksMetaStore { } async fn get_trace_obj_by_table_id(&self, table_id: u64) -> Result, CubeError> { - self.read_operation(move |db_ref| { + self.read_operation("get_trace_obj_by_table_id", move |db_ref| { let table = TraceObjectRocksTable::new(db_ref); let trace_object_row = table.get_single_opt_row_by_index( &TraceObjectIndexKey::ByTableId(table_id), @@ -2322,15 +2325,18 @@ impl MetaStore for RocksMetaStore { location: String, download_size: u64, ) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { - batch_pipe.invalidate_tables_cache(); - let rocks_table = TableRocksTable::new(db_ref.clone()); - Ok(rocks_table.update_with_res_fn( - id, - |r| r.update_location_download_size(&location, download_size), - batch_pipe, - )?) - }) + self.write_operation( + "update_location_download_size", + move |db_ref, batch_pipe| { + batch_pipe.invalidate_tables_cache(); + let rocks_table = TableRocksTable::new(db_ref.clone()); + Ok(rocks_table.update_with_res_fn( + id, + |r| r.update_location_download_size(&location, download_size), + batch_pipe, + )?) + }, + ) .await } @@ -2340,13 +2346,15 @@ impl MetaStore for RocksMetaStore { schema_name: String, table_name: String, ) -> Result, CubeError> { - self.read_operation(move |db_ref| get_table_impl(db_ref, schema_name, table_name)) - .await + self.read_operation("get_table", move |db_ref| { + get_table_impl(db_ref, schema_name, table_name) + }) + .await } #[tracing::instrument(level = "trace", skip(self))] async fn get_table_by_id(&self, table_id: u64) -> Result, CubeError> { - self.read_operation(move |db_ref| { + self.read_operation("get_table_by_id", move |db_ref| { TableRocksTable::new(db_ref.clone()).get_row_or_not_found(table_id) }) .await @@ -2386,7 +2394,7 @@ impl MetaStore for RocksMetaStore { let cache = self.store.cached_tables.clone(); // Can't do read_operation_out_of_queue as we need to update cache on the same thread where it's dropped - self.read_operation(move |db_ref| { + self.read_operation("get_tables_with_path", move |db_ref| { let cached_tables = { cache.lock().unwrap().clone() }; if let Some(t) = cached_tables { return Ok(t); @@ -2448,7 +2456,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn drop_table(&self, table_id: u64) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("drop_table", move |db_ref, batch_pipe| { batch_pipe.invalidate_tables_cache(); RocksMetaStore::drop_table_impl(table_id, db_ref, batch_pipe) }) @@ -2463,7 +2471,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn create_partition(&self, partition: Partition) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("create_partition", move |db_ref, batch_pipe| { let table = PartitionRocksTable::new(db_ref.clone()); let row_id = table.insert(partition, batch_pipe)?; Ok(row_id) @@ -2473,7 +2481,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn get_partition(&self, partition_id: u64) -> Result, CubeError> { - self.read_operation(move |db_ref| { + self.read_operation("get_partition", move |db_ref| { PartitionRocksTable::new(db_ref).get_row_or_not_found(partition_id) }) .await @@ -2503,7 +2511,7 @@ impl MetaStore for RocksMetaStore { ), CubeError, > { - self.read_operation(move |db_ref| { + self.read_operation("get_partition_for_compaction", move |db_ref| { let partition = PartitionRocksTable::new(db_ref.clone()) .get_row(partition_id)? .ok_or(CubeError::internal(format!( @@ -2626,7 +2634,7 @@ impl MetaStore for RocksMetaStore { new_chunk: u64, new_chunk_file_size: u64, ) -> Result { - self.write_operation(move |db, pipe| { + self.write_operation("swap_compacted_chunks", move |db, pipe| { let p = PartitionRocksTable::new(db.clone()).get_row_or_not_found(partition_id)?; if let Some(mp) = p.row.multi_partition_id { let mp = MultiPartitionRocksTable::new(db.clone()).get_row_or_not_found(mp)?; @@ -2665,7 +2673,7 @@ impl MetaStore for RocksMetaStore { .join(", "), new_active.iter().map(|(p, _)| p.id).join(", ") ); - self.write_operation(move |db, pipe| { + self.write_operation("swap_active_partitions", move |db, pipe| { swap_active_partitions_impl( db, pipe, @@ -2689,7 +2697,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn delete_partition(&self, partition_id: u64) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("delete_partition", move |db_ref, batch_pipe| { let partitions_table = PartitionRocksTable::new(db_ref.clone()); let chunks_table = ChunkRocksTable::new(db_ref.clone()); @@ -2733,7 +2741,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn mark_partition_warmed_up(&self, partition_id: u64) -> Result<(), CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("mark_partition_warmed_up", move |db_ref, batch_pipe| { let table = PartitionRocksTable::new(db_ref); let partition = table.get_row_or_not_found(partition_id)?; table.update( @@ -2752,7 +2760,7 @@ impl MetaStore for RocksMetaStore { &self, partition_id: u64, ) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("delete_middle_man_partition", move |db_ref, batch_pipe| { let partitions_table = PartitionRocksTable::new(db_ref.clone()); let chunks_table = ChunkRocksTable::new(db_ref.clone()); @@ -3182,7 +3190,7 @@ impl MetaStore for RocksMetaStore { table_name: String, index_def: IndexDef, ) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("create_index", move |db_ref, batch_pipe| { let rocks_index = IndexRocksTable::new(db_ref.clone()); let rocks_partition = PartitionRocksTable::new(db_ref.clone()); let rocks_table = TableRocksTable::new(db_ref.clone()); @@ -3219,13 +3227,15 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn get_default_index(&self, table_id: u64) -> Result, CubeError> { - self.read_operation(move |db_ref| get_default_index_impl(db_ref, table_id)) - .await + self.read_operation("get_default_index", move |db_ref| { + get_default_index_impl(db_ref, table_id) + }) + .await } #[tracing::instrument(level = "trace", skip(self))] async fn get_table_indexes(&self, table_id: u64) -> Result>, CubeError> { - self.read_operation(move |db_ref| { + self.read_operation("get_table_indexes", move |db_ref| { let index_table = IndexRocksTable::new(db_ref); Ok(index_table .get_rows_by_index(&IndexIndexKey::TableId(table_id), &IndexRocksIndex::TableID)?) @@ -3268,7 +3278,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn get_index(&self, index_id: u64) -> Result, CubeError> { - self.read_operation(move |db_ref| { + self.read_operation("get_index", move |db_ref| { IndexRocksTable::new(db_ref).get_row_or_not_found(index_id) }) .await @@ -3304,7 +3314,7 @@ impl MetaStore for RocksMetaStore { key_columns: Vec, if_not_exists: bool, ) -> Result, CubeError> { - self.write_operation(move |db, pipe| { + self.write_operation("create_partitioned_index", move |db, pipe| { let mindexes = MultiIndexRocksTable::new(db.clone()); let mpartitions = MultiPartitionRocksTable::new(db.clone()); let schemas = SchemaRocksTable::new(db.clone()); @@ -3329,7 +3339,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn drop_partitioned_index(&self, schema: String, name: String) -> Result<(), CubeError> { - self.write_operation(move |db, pipe| { + self.write_operation("drop_partitioned_index", move |db, pipe| { let schema_id = SchemaRocksTable::new(db.clone()) .get_single_row_by_index(&schema, &SchemaRocksIndex::Name)? .id; @@ -3483,7 +3493,7 @@ impl MetaStore for RocksMetaStore { max: Option, in_memory: bool, ) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("write_operation", move |db_ref, batch_pipe| { let rocks_chunk = ChunkRocksTable::new(db_ref.clone()); let chunk = Chunk::new(partition_id, row_count, min, max, in_memory); @@ -3496,7 +3506,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self, chunks))] async fn insert_chunks(&self, chunks: Vec) -> Result>, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("insert_chunks", move |db_ref, batch_pipe| { let rocks_chunk = ChunkRocksTable::new(db_ref.clone()); let mut result = Vec::with_capacity(chunks.len()); @@ -3512,7 +3522,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn get_chunk(&self, chunk_id: u64) -> Result, CubeError> { - self.read_operation(move |db_ref| { + self.read_operation("get_chunk", move |db_ref| { ChunkRocksTable::new(db_ref).get_row_or_not_found(chunk_id) }) .await @@ -3554,7 +3564,7 @@ impl MetaStore for RocksMetaStore { partition_id: u64, include_inactive: bool, ) -> Result>, CubeError> { - self.read_operation(move |db| { + self.read_operation("get_chunks_by_partition", move |db| { Self::chunks_by_partition(partition_id, &ChunkRocksTable::new(db), include_inactive) }) .await @@ -3574,7 +3584,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn chunk_uploaded(&self, chunk_id: u64) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("chunk_uploaded", move |db_ref, batch_pipe| { let table = ChunkRocksTable::new(db_ref.clone()); let row = table.get_row_or_not_found(chunk_id)?; let id_row = table.update( @@ -3594,7 +3604,7 @@ impl MetaStore for RocksMetaStore { chunk_ids: Vec, last_inserted_at: Option>, ) -> Result<(), CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("chunk_update_last_inserted", move |db_ref, batch_pipe| { let table = ChunkRocksTable::new(db_ref.clone()); for chunk_id in chunk_ids { let row = table.get_row_or_not_found(chunk_id)?; @@ -3613,7 +3623,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn deactivate_chunk(&self, chunk_id: u64) -> Result<(), CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("deactivate_chunk", move |db_ref, batch_pipe| { ChunkRocksTable::new(db_ref.clone()).update_with_fn( chunk_id, |row| row.deactivate(), @@ -3625,7 +3635,7 @@ impl MetaStore for RocksMetaStore { } #[tracing::instrument(level = "trace", skip(self))] async fn deactivate_chunks(&self, chunk_ids: Vec) -> Result<(), CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("deactivate_chunks", move |db_ref, batch_pipe| { let table = ChunkRocksTable::new(db_ref.clone()); for chunk_id in chunk_ids { table.update_with_fn(chunk_id, |row| row.deactivate(), batch_pipe)?; @@ -3646,7 +3656,7 @@ impl MetaStore for RocksMetaStore { "Activating chunks ({})", uploaded_chunk_ids.iter().map(|(id, _)| id).join(", ") ); - self.write_operation(move |db, pipe| { + self.write_operation("activate_chunks", move |db, pipe| { TableRocksTable::new(db.clone()).update_with_fn( table_id, |t| t.update_has_data(true), @@ -3688,7 +3698,7 @@ impl MetaStore for RocksMetaStore { deactivate_ids, uploaded_ids_and_sizes ))); } - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("swap_chunks", move |db_ref, batch_pipe| { RocksMetaStore::swap_chunks_impl( deactivate_ids, uploaded_ids_and_sizes, @@ -3714,7 +3724,7 @@ impl MetaStore for RocksMetaStore { deactivate_ids, uploaded_ids_and_sizes ))); } - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("swap_chunks_without_check", move |db_ref, batch_pipe| { RocksMetaStore::swap_chunks_impl( deactivate_ids, uploaded_ids_and_sizes, @@ -3732,22 +3742,25 @@ impl MetaStore for RocksMetaStore { &self, deactivate_ids: Vec, ) -> Result<(), CubeError> { - self.write_operation(move |db_ref, batch_pipe| { - RocksMetaStore::swap_chunks_impl( - deactivate_ids, - Vec::new(), - db_ref, - batch_pipe, - false, - None, - ) - }) + self.write_operation( + "deactivate_chunks_without_check", + move |db_ref, batch_pipe| { + RocksMetaStore::swap_chunks_impl( + deactivate_ids, + Vec::new(), + db_ref, + batch_pipe, + false, + None, + ) + }, + ) .await } #[tracing::instrument(level = "trace", skip(self))] async fn delete_chunk(&self, chunk_id: u64) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("delete_chunk", move |db_ref, batch_pipe| { let chunks = ChunkRocksTable::new(db_ref.clone()); let chunk = chunks.get_row_or_not_found(chunk_id)?; @@ -3764,7 +3777,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn delete_chunks_without_checks(&self, chunk_ids: Vec) -> Result<(), CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("delete_chunks_without_checks", move |db_ref, batch_pipe| { let chunks = ChunkRocksTable::new(db_ref.clone()); for id in chunk_ids { chunks.delete(id, batch_pipe)?; @@ -3818,7 +3831,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn create_wal(&self, table_id: u64, row_count: usize) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("create_wal", move |db_ref, batch_pipe| { let rocks_wal = WALRocksTable::new(db_ref.clone()); TableRocksTable::new(db_ref.clone()).update_with_fn( table_id, @@ -3836,13 +3849,15 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn get_wal(&self, wal_id: u64) -> Result, CubeError> { - self.read_operation(move |db_ref| WALRocksTable::new(db_ref).get_row_or_not_found(wal_id)) - .await + self.read_operation("get_wal", move |db_ref| { + WALRocksTable::new(db_ref).get_row_or_not_found(wal_id) + }) + .await } #[tracing::instrument(level = "trace", skip(self))] async fn get_wals_for_table(&self, table_id: u64) -> Result>, CubeError> { - self.read_operation(move |db_ref| { + self.read_operation("get_wals_for_table", move |db_ref| { WALRocksTable::new(db_ref) .get_rows_by_index(&WALIndexKey::ByTable(table_id), &WALRocksIndex::TableID) }) @@ -3851,7 +3866,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn delete_wal(&self, wal_id: u64) -> Result<(), CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("delete_wal", move |db_ref, batch_pipe| { WALRocksTable::new(db_ref.clone()).delete(wal_id, batch_pipe)?; Ok(()) }) @@ -3860,7 +3875,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn wal_uploaded(&self, wal_id: u64) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("wal_uploaded", move |db_ref, batch_pipe| { let table = WALRocksTable::new(db_ref.clone()); let row = table.get_row_or_not_found(wal_id)?; let id_row = table.update( @@ -3883,7 +3898,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn add_job(&self, job: Job) -> Result>, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("add_job", move |db_ref, batch_pipe| { let table = JobRocksTable::new(db_ref.clone()); let result = table.get_row_ids_by_index( @@ -3903,7 +3918,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn get_job(&self, job_id: u64) -> Result, CubeError> { - self.read_operation(move |db_ref| { + self.read_operation("get_job", move |db_ref| { Ok(JobRocksTable::new(db_ref).get_row_or_not_found(job_id)?) }) .await @@ -3915,7 +3930,7 @@ impl MetaStore for RocksMetaStore { row_reference: RowKey, job_type: JobType, ) -> Result>, CubeError> { - self.read_operation(move |db_ref| { + self.read_operation("get_job_by_ref", move |db_ref| { let jobs_table = JobRocksTable::new(db_ref); let result = jobs_table.get_rows_by_index( &JobIndexKey::RowReference(row_reference, job_type), @@ -3981,7 +3996,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn delete_job(&self, job_id: u64) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("delete_job", move |db_ref, batch_pipe| { Ok(JobRocksTable::new(db_ref.clone()).delete(job_id, batch_pipe)?) }) .await @@ -3993,7 +4008,7 @@ impl MetaStore for RocksMetaStore { server_name: String, long_term: bool, ) -> Result>, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("start_processing_job", move |db_ref, batch_pipe| { let table = JobRocksTable::new(db_ref); let next_job = table .get_rows_by_index( @@ -4027,7 +4042,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn update_heart_beat(&self, job_id: u64) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("update_heart_beat", move |db_ref, batch_pipe| { Ok(JobRocksTable::new(db_ref).update_with_fn( job_id, |row| row.update_heart_beat(), @@ -4039,7 +4054,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn update_status(&self, job_id: u64, status: JobStatus) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("update_status", move |db_ref, batch_pipe| { Ok(JobRocksTable::new(db_ref).update_with_fn( job_id, |row| row.update_status(status), @@ -4051,7 +4066,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn delete_all_jobs(&self) -> Result>, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("delete_all_jobs", move |db_ref, batch_pipe| { let jobs_table = JobRocksTable::new(db_ref); let all_jobs = jobs_table.all_rows()?; for job in all_jobs.iter() { @@ -4068,7 +4083,7 @@ impl MetaStore for RocksMetaStore { name: String, credentials: SourceCredentials, ) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("create_or_update_source", move |db_ref, batch_pipe| { let table = SourceRocksTable::new(db_ref.clone()); let source = Source::new(name.to_string(), credentials); @@ -4091,7 +4106,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn get_source(&self, id: u64) -> Result, CubeError> { - self.read_operation(move |db_ref| { + self.read_operation("get_source", move |db_ref| { Ok(SourceRocksTable::new(db_ref).get_row_or_not_found(id)?) }) .await @@ -4099,7 +4114,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn get_source_by_name(&self, name: String) -> Result, CubeError> { - self.read_operation(move |db_ref| { + self.read_operation("get_source_by_name", move |db_ref| { Ok(SourceRocksTable::new(db_ref) .get_single_row_by_index(&SourceIndexKey::Name(name), &SourceRocksIndex::Name)?) }) @@ -4108,7 +4123,7 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn delete_source(&self, id: u64) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("delete_source", move |db_ref, batch_pipe| { Ok(SourceRocksTable::new(db_ref.clone()).delete(id, batch_pipe)?) }) .await @@ -4121,7 +4136,7 @@ impl MetaStore for RocksMetaStore { location_index: usize, seq_pointer: SeqPointer, ) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("create_replay_handle", move |db_ref, batch_pipe| { let tables_table = TableRocksTable::new(db_ref.clone()); let table = tables_table.get_row_or_not_found(table_id)?; let handle = ReplayHandle::new(&table, location_index, seq_pointer)?; @@ -4136,10 +4151,13 @@ impl MetaStore for RocksMetaStore { table_id: u64, seq_pointers: Option>>, ) -> Result, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { - let handle = ReplayHandle::new_from_seq_pointers(table_id, seq_pointers); - Ok(ReplayHandleRocksTable::new(db_ref.clone()).insert(handle, batch_pipe)?) - }) + self.write_operation( + "create_replay_handle_from_seq_pointers", + move |db_ref, batch_pipe| { + let handle = ReplayHandle::new_from_seq_pointers(table_id, seq_pointers); + Ok(ReplayHandleRocksTable::new(db_ref.clone()).insert(handle, batch_pipe)?) + }, + ) .await } @@ -4162,7 +4180,7 @@ impl MetaStore for RocksMetaStore { &self, ids: Vec, ) -> Result>, CubeError> { - self.read_operation(move |db_ref| { + self.read_operation("get_replay_handles_by_ids", move |db_ref| { let table = ReplayHandleRocksTable::new(db_ref); let rows = ids .iter() @@ -4182,14 +4200,21 @@ impl MetaStore for RocksMetaStore { id: u64, failed: bool, ) -> Result<(), CubeError> { - self.write_operation(move |db_ref, batch_pipe| { - let table = ReplayHandleRocksTable::new(db_ref.clone()); - if table.get_row(id)?.is_some() { - table.update_with_fn(id, |h| h.set_failed_to_persist_chunks(failed), batch_pipe)?; - } + self.write_operation( + "update_replay_handle_failed_if_exists", + move |db_ref, batch_pipe| { + let table = ReplayHandleRocksTable::new(db_ref.clone()); + if table.get_row(id)?.is_some() { + table.update_with_fn( + id, + |h| h.set_failed_to_persist_chunks(failed), + batch_pipe, + )?; + } - Ok(()) - }) + Ok(()) + }, + ) .await } @@ -4199,7 +4224,7 @@ impl MetaStore for RocksMetaStore { old_ids: Vec, new_seq_pointer: Option>>, ) -> Result>, CubeError> { - self.write_operation(move |db_ref, batch_pipe| { + self.write_operation("replace_replay_handles", move |db_ref, batch_pipe| { if old_ids.is_empty() { return Err(CubeError::internal("Can't merge empty replay handles list".to_string())); } @@ -4254,8 +4279,10 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn all_replay_handles(&self) -> Result>, CubeError> { - self.read_operation(move |db_ref| ReplayHandleRocksTable::new(db_ref).all_rows()) - .await + self.read_operation("all_replay_handles", move |db_ref| { + ReplayHandleRocksTable::new(db_ref).all_rows() + }) + .await } #[tracing::instrument(level = "trace", skip(self))] @@ -4310,7 +4337,7 @@ impl MetaStore for RocksMetaStore { } async fn debug_dump(&self, out_path: String) -> Result<(), CubeError> { - self.read_operation(|db| { + self.read_operation("debug_dump", |db| { let opts = BackupEngineOptions::new(out_path)?; let mut e = BackupEngine::open(&opts, &Env::new()?)?; Ok(e.create_new_backup_flush(db.db, true)?) @@ -4319,7 +4346,7 @@ impl MetaStore for RocksMetaStore { } async fn compaction(&self) -> Result<(), CubeError> { - self.write_operation(move |db_ref, _batch_pipe| { + self.write_operation("compaction", move |db_ref, _batch_pipe| { let start: Option<&[u8]> = None; let end: Option<&[u8]> = None; @@ -4344,15 +4371,17 @@ impl MetaStore for RocksMetaStore { #[tracing::instrument(level = "trace", skip(self))] async fn get_multi_partition(&self, id: u64) -> Result, CubeError> { - self.read_operation(move |db| MultiPartitionRocksTable::new(db).get_row_or_not_found(id)) - .await + self.read_operation("get_multi_partition", move |db| { + MultiPartitionRocksTable::new(db).get_row_or_not_found(id) + }) + .await } #[tracing::instrument(level = "trace", skip(self))] async fn get_child_multi_partitions( &self, id: u64, ) -> Result>, CubeError> { - self.read_operation(move |db| { + self.read_operation("get_child_multi_partitions", move |db| { MultiPartitionRocksTable::new(db).get_rows_by_index( &MultiPartitionIndexKey::ByParentId(Some(id)), &MultiPartitionRocksIndex::ByParentId, @@ -4397,8 +4426,10 @@ impl MetaStore for RocksMetaStore { &self, p: MultiPartition, ) -> Result, CubeError> { - self.write_operation(move |db, pipe| MultiPartitionRocksTable::new(db).insert(p, pipe)) - .await + self.write_operation("create_multi_partition", move |db, pipe| { + MultiPartitionRocksTable::new(db).insert(p, pipe) + }) + .await } #[tracing::instrument(level = "trace", skip(self))] @@ -4407,7 +4438,7 @@ impl MetaStore for RocksMetaStore { multi_partition_id: u64, ) -> Result<(IdRow, IdRow, Vec), CubeError> { let (mi, mp, pds) = self - .read_operation(move |db| { + .read_operation("prepare_multi_partition_for_split", move |db| { let mindex = MultiIndexRocksTable::new(db.clone()); let mpartition = MultiPartitionRocksTable::new(db.clone()); let index = IndexRocksTable::new(db.clone()); @@ -4445,14 +4476,17 @@ impl MetaStore for RocksMetaStore { .await?; // We try to keep the write operation small. - self.write_operation(move |db, pipe| { - MultiPartitionRocksTable::new(db).update_with_fn( - mp.get_id(), - |p| p.mark_prepared_for_split(), - pipe, - )?; - Ok((mi, mp, pds)) - }) + self.write_operation( + "prepare_multi_partition_for_split->mark_prepared_for_split", + move |db, pipe| { + MultiPartitionRocksTable::new(db).update_with_fn( + mp.get_id(), + |p| p.mark_prepared_for_split(), + pipe, + )?; + Ok((mi, mp, pds)) + }, + ) .await } @@ -4470,7 +4504,8 @@ impl MetaStore for RocksMetaStore { assert_eq!(new_multi_partitions.len(), new_multi_partition_rows.len()); assert_eq!(new_partition_rows.len(), new_partitions.len()); assert!(new_multi_partitions.is_sorted()); - self.write_operation(move |db, pipe| { + + self.write_operation("commit_multi_partition_split", move |db, pipe| { log::trace!( "Committing {} split of multi-partition {} to {:?}. (preliminary counts) {} rows split into {:?}", if initial_split { "initial" } else {"postponed"}, @@ -4545,7 +4580,7 @@ impl MetaStore for RocksMetaStore { &self, multi_partition_id: u64, ) -> Result, CubeError> { - self.read_operation(move |db| { + self.read_operation("find_unsplit_partitions", move |db| { let mparts = MultiPartitionRocksTable::new(db.clone()); if mparts .get_row_or_not_found(multi_partition_id)? @@ -4589,7 +4624,7 @@ impl MetaStore for RocksMetaStore { multi_partition_id: u64, partition_id: u64, ) -> Result<(PartitionData, Vec>), CubeError> { - self.read_operation(move |db| { + self.read_operation("prepare_multi_split_finish", move |db| { log::trace!( "Preparing to finish split of {} (partition {})", multi_partition_id, diff --git a/rust/cubestore/cubestore/src/metastore/rocks_store.rs b/rust/cubestore/cubestore/src/metastore/rocks_store.rs index 60ef3ad56cf02..cd5b212069e12 100644 --- a/rust/cubestore/cubestore/src/metastore/rocks_store.rs +++ b/rust/cubestore/cubestore/src/metastore/rocks_store.rs @@ -706,15 +706,17 @@ macro_rules! meta_store_table_impl { async fn row_by_id_or_not_found(&self, id: u64) -> Result, CubeError> { self.rocks_meta_store - .read_operation(move |db_ref| Ok(Self::table(db_ref).get_row_or_not_found(id)?)) + .read_operation("row_by_id_or_not_found", move |db_ref| { + Ok(Self::table(db_ref).get_row_or_not_found(id)?) + }) .await } async fn delete(&self, id: u64) -> Result, CubeError> { self.rocks_meta_store - .write_operation( - move |db_ref, batch| Ok(Self::table(db_ref).delete(id, batch)?), - ) + .write_operation("delete", move |db_ref, batch| { + Ok(Self::table(db_ref).delete(id, batch)?) + }) .await } } @@ -977,7 +979,7 @@ impl RocksStore { self.listeners.write().await.push(listener); } - pub async fn write_operation(&self, f: F) -> Result + pub async fn write_operation(&self, op_name: &'static str, f: F) -> Result where F: for<'a> FnOnce(DbTableRef<'a>, &'a mut BatchPipe) -> Result + Send @@ -990,12 +992,13 @@ impl RocksStore { let db_to_send = db.clone(); let cached_tables = self.cached_tables.clone(); let store_name = self.details.get_name(); + let span_name = format!("{} write operation {}", store_name, op_name); let rw_loop_sender = self.rw_loop_tx.clone(); let (tx, rx) = oneshot::channel::), CubeError>>(); let res = rw_loop_sender.send(Box::new(move || { - let db_span = warn_long("store write operation", Duration::from_millis(100)); + let db_span = warn_long(&span_name, Duration::from_millis(100)); let mut batch = BatchPipe::new(db_to_send.as_ref()); let snapshot = db_to_send.snapshot(); @@ -1183,7 +1186,7 @@ impl RocksStore { } pub async fn healthcheck(&self) -> Result<(), CubeError> { - self.read_operation(move |_| { + self.read_operation("healthcheck", move |_| { // read_operation will call getSnapshot, which is enough to test that RocksDB works Ok(()) }) @@ -1297,7 +1300,7 @@ impl RocksStore { Ok((remote_path, checkpoint_path)) } - pub async fn read_operation(&self, f: F) -> Result + pub async fn read_operation(&self, op_name: &'static str, f: F) -> Result where F: for<'a> FnOnce(DbTableRef<'a>) -> Result + Send + Sync + 'static, R: Send + Sync + 'static, @@ -1309,8 +1312,10 @@ impl RocksStore { let rw_loop_sender = self.rw_loop_tx.clone(); let (tx, rx) = oneshot::channel::>(); + let span_name = format!("{} read operation {}", store_name, op_name); + let res = rw_loop_sender.send(Box::new(move || { - let db_span = warn_long("store read operation", Duration::from_millis(100)); + let db_span = warn_long(&span_name, Duration::from_millis(100)); let snapshot = db_to_send.snapshot(); let res = f(DbTableRef { @@ -1535,7 +1540,7 @@ mod tests { // read operation { let r = rocks_store - .read_operation(|_| -> Result<(), CubeError> { + .read_operation("unnamed", |_| -> Result<(), CubeError> { panic!("panic - task 1"); }) .await; @@ -1545,7 +1550,7 @@ mod tests { ); let r = rocks_store - .read_operation(|_| -> Result<(), CubeError> { + .read_operation("unnamed", |_| -> Result<(), CubeError> { Err(CubeError::user("error - task 3".to_string())) }) .await; @@ -1558,7 +1563,7 @@ mod tests { // write operation { let r = rocks_store - .write_operation(|_, _| -> Result<(), CubeError> { + .write_operation("unnamed", |_, _| -> Result<(), CubeError> { panic!("panic - task 1"); }) .await; @@ -1568,7 +1573,7 @@ mod tests { ); let r = rocks_store - .write_operation(|_, _| -> Result<(), CubeError> { + .write_operation("unnamed", |_, _| -> Result<(), CubeError> { panic!("panic - task 2"); }) .await; @@ -1578,7 +1583,7 @@ mod tests { ); let r = rocks_store - .write_operation(|_, _| -> Result<(), CubeError> { + .write_operation("unnamed", |_, _| -> Result<(), CubeError> { Err(CubeError::user("error - task 3".to_string())) }) .await; @@ -1596,7 +1601,7 @@ mod tests { async fn write_test_data(rocks_store: &Arc, name: String) { rocks_store - .write_operation(move |db_ref, batch_pipe| { + .write_operation("write_test_data", move |db_ref, batch_pipe| { let table = SchemaRocksTable::new(db_ref.clone()); let schema = Schema { name }; Ok(table.insert(schema, batch_pipe)?) diff --git a/rust/cubestore/cubestore/src/util/time_span.rs b/rust/cubestore/cubestore/src/util/time_span.rs index db4e3a9fcef51..df74ad295e0ac 100644 --- a/rust/cubestore/cubestore/src/util/time_span.rs +++ b/rust/cubestore/cubestore/src/util/time_span.rs @@ -4,7 +4,7 @@ use std::time::{Duration, SystemTime}; /// The returned object will [log::warn] if it is alive longer than [timeout]. /// Be cautious when interpreting results in async code, this function looks at wall time. So future /// that is not running will add to the time. -pub fn warn_long(name: &'static str, timeout: Duration) -> ShortSpan { +pub fn warn_long(name: &str, timeout: Duration) -> ShortSpan { ShortSpan { name, timeout, @@ -12,18 +12,18 @@ pub fn warn_long(name: &'static str, timeout: Duration) -> ShortSpan { } } -pub async fn warn_long_fut(name: &'static str, timeout: Duration, f: F) -> F::Output { +pub async fn warn_long_fut(name: &str, timeout: Duration, f: F) -> F::Output { let _s = warn_long(name, timeout); f.await } -pub struct ShortSpan { - name: &'static str, +pub struct ShortSpan<'r> { + name: &'r str, timeout: Duration, - start: std::time::SystemTime, + start: SystemTime, } -impl Drop for ShortSpan { +impl<'r> Drop for ShortSpan<'r> { fn drop(&mut self) { // We won't report anything in case of error. let elapsed = self.start.elapsed().unwrap_or(Duration::from_secs(0)); diff --git a/rust/cubestore/package.json b/rust/cubestore/package.json index 52152b720db12..7943620f8d33e 100644 --- a/rust/cubestore/package.json +++ b/rust/cubestore/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/cubestore", - "version": "1.3.29", + "version": "1.3.30", "description": "Cube.js pre-aggregation storage layer.", "main": "dist/src/index.js", "typings": "dist/src/index.d.ts", @@ -27,7 +27,7 @@ "author": "Cube Dev, Inc.", "license": "Apache-2.0", "devDependencies": { - "@cubejs-backend/linter": "1.3.29", + "@cubejs-backend/linter": "1.3.30", "@types/jest": "^27", "@types/node": "^18", "jest": "^27", @@ -37,7 +37,7 @@ "access": "public" }, "dependencies": { - "@cubejs-backend/shared": "1.3.29", + "@cubejs-backend/shared": "1.3.30", "@octokit/core": "^3.2.5", "source-map-support": "^0.5.19" }, pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy