Skip to content

Commit 8b75d55

Browse files
authored
Merge branch 'master' into ph/support-join-inheritance
2 parents e363458 + 09ea671 commit 8b75d55

File tree

290 files changed

+10719
-4310
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

290 files changed

+10719
-4310
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#!/bin/bash
2+
set -eo pipefail
3+
4+
# Debug log for test containers
5+
export DEBUG=testcontainers
6+
7+
echo "::group::Firebolt [cloud]"
8+
yarn lerna run --concurrency 1 --stream --no-prefix integration:firebolt
9+
10+
echo "::endgroup::"

.github/actions/smoke.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,8 @@ echo "::endgroup::"
5555

5656
echo "::group::MongoBI"
5757
yarn lerna run --concurrency 1 --stream --no-prefix smoke:mongobi
58-
echo "::endgroup::"
58+
echo "::endgroup::"
59+
60+
echo "::group::RBAC"
61+
yarn lerna run --concurrency 1 --stream --no-prefix smoke:rbac
62+
echo "::endgroup::"

.github/workflows/publish.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ jobs:
152152
strategy:
153153
matrix:
154154
node-version: [20.x]
155-
os-version: ["macos-12"]
155+
os-version: ["macos-13"]
156156
target: ["x86_64-apple-darwin", "aarch64-apple-darwin"]
157157
python-version: ["3.9", "3.10", "3.11", "3.12", "fallback"]
158158
include:
@@ -677,7 +677,7 @@ jobs:
677677
tar_executable: tar
678678
# Please use minimal possible version of macOS, because it produces constraint on libstdc++
679679
- target: x86_64-apple-darwin
680-
os: macos-12
680+
os: macos-13
681681
executable_name: cubestored
682682
# upx has been disabled because it is crashing for macOS Ventura or above! It was disabled on 2024-09-05.
683683
strip: false

.github/workflows/push.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@ jobs:
319319
node-version: [20.x]
320320
db: [
321321
'clickhouse', 'druid', 'elasticsearch', 'mssql', 'mysql', 'postgres', 'prestodb',
322-
'mysql-aurora-serverless', 'crate', 'mongobi'
322+
'mysql-aurora-serverless', 'crate', 'mongobi', 'firebolt'
323323
]
324324
fail-fast: false
325325

@@ -370,6 +370,13 @@ jobs:
370370
retry_wait_seconds: 15
371371
timeout_minutes: 30
372372
command: ./.github/actions/integration/${{ matrix.db }}.sh
373+
env:
374+
# Firebolt Integration
375+
DRIVERS_TESTS_FIREBOLT_CUBEJS_FIREBOLT_ENGINE_NAME: ${{ secrets.DRIVERS_TESTS_FIREBOLT_CUBEJS_FIREBOLT_ENGINE_NAME }}
376+
DRIVERS_TESTS_FIREBOLT_CUBEJS_DB_NAME: ${{ secrets.DRIVERS_TESTS_FIREBOLT_CUBEJS_DB_NAME }}
377+
DRIVERS_TESTS_FIREBOLT_CUBEJS_FIREBOLT_ACCOUNT: ${{ secrets.DRIVERS_TESTS_FIREBOLT_CUBEJS_FIREBOLT_ACCOUNT }}
378+
DRIVERS_TESTS_FIREBOLT_CUBEJS_DB_USER: ${{ secrets.DRIVERS_TESTS_FIREBOLT_CUBEJS_DB_USER }}
379+
DRIVERS_TESTS_FIREBOLT_CUBEJS_DB_PASS: ${{ secrets.DRIVERS_TESTS_FIREBOLT_CUBEJS_DB_PASS }}
373380

374381
integration-smoke:
375382
needs: [ latest-tag-sha, build-cubestore ]

.github/workflows/rust-cubestore-master.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ jobs:
196196
# cubestored.exe: CantPackException: superfluous data between sections
197197
compress: false
198198
# Please use minimal possible version of macOS, because it produces constraint on libstdc++
199-
- os: macos-12
199+
- os: macos-13
200200
target: x86_64-apple-darwin
201201
executable_name: cubestored
202202
# upx has been disabled because it is crashing for macOS Ventura or above! It was disabled on 2024-09-05.

.github/workflows/rust-cubestore.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ jobs:
127127
# cubestored.exe: CantPackException: superfluous data between sections
128128
compress: false
129129
# Please use minimal possible version of macOS, because it produces constraint on libstdc++
130-
- os: macos-12
130+
- os: macos-13
131131
target: x86_64-apple-darwin
132132
executable_name: cubestored
133133
# upx has been disabled because it is crashing for macOS Ventura or above! It was disabled on 2024-09-05.

CHANGELOG.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,83 @@
33
All notable changes to this project will be documented in this file.
44
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
55

6+
## [1.1.9](https://github.com/cube-js/cube/compare/v1.1.8...v1.1.9) (2024-12-08)
7+
8+
9+
### Bug Fixes
10+
11+
* **cubesql:** Allow aggregation pushdown only for unlimited CubeScan ([#8929](https://github.com/cube-js/cube/issues/8929)) ([5b10a68](https://github.com/cube-js/cube/commit/5b10a68b4aca8e5050291fa3ca85dd5f3edc6614))
12+
* **ksql-driver:** Select queries for ksql allowed only from Cube Store. In order to query ksql create pre-aggregation first if Kafka download isn't enabled ([0c2f701](https://github.com/cube-js/cube/commit/0c2f7015d7b2949009fd4aa5c0974547f7463748))
13+
14+
15+
### Features
16+
17+
* **schema-compiler:** folders support, hierarchies improvements ([#9018](https://github.com/cube-js/cube/issues/9018)) ([2012281](https://github.com/cube-js/cube/commit/20122810f508d978921b56f8d9b8a4e479290d56))
18+
19+
20+
21+
22+
23+
## [1.1.8](https://github.com/cube-js/cube/compare/v1.1.7...v1.1.8) (2024-12-05)
24+
25+
26+
### Bug Fixes
27+
28+
* **clickhouse-driver:** Replace error cause with string formatting ([#8977](https://github.com/cube-js/cube/issues/8977)) ([e948856](https://github.com/cube-js/cube/commit/e94885674cf046e9b7188c1b0a6dc4420415a234))
29+
* **clickhouse-driver:** Tune ClickHouse errors: remove SQL, catch ping failure ([#8983](https://github.com/cube-js/cube/issues/8983)) ([811a7ce](https://github.com/cube-js/cube/commit/811a7ce2e5957de5e619ab9d22342580f22dc366))
30+
* **cubesql:** fix unhandled timestamp unwrapping in df/transform_response ([#8952](https://github.com/cube-js/cube/issues/8952)) ([4ea0740](https://github.com/cube-js/cube/commit/4ea0740a4001767ab1863c21c062a7e1487fc4e6))
31+
* **cubestore:** Disable writing cachestore logs by default to reduce use of disk space ([#9003](https://github.com/cube-js/cube/issues/9003)) ([7ccd607](https://github.com/cube-js/cube/commit/7ccd607027d948e867578767a8c3d54604da68da))
32+
* **dev_env_setup:** Fix incorrect arguments processing and make console output more user-friendly ([#8999](https://github.com/cube-js/cube/issues/8999)) ([ead97b4](https://github.com/cube-js/cube/commit/ead97b41130a87fa6cb963790fad8e7ddac6cdce))
33+
* **dev_env_setup:** use relative packages everywhere ([#8910](https://github.com/cube-js/cube/issues/8910)) ([ae823c9](https://github.com/cube-js/cube/commit/ae823c9bb09c893b5601d94fea4dfb33eaf426d7))
34+
* ensure public is in sync with isVisible when using DAP ([#8980](https://github.com/cube-js/cube/issues/8980)) ([a3ed6ea](https://github.com/cube-js/cube/commit/a3ed6ea0d88e644cb4e7506e857a9d4e29c86759))
35+
* fix data access policies condition logic ([#8976](https://github.com/cube-js/cube/issues/8976)) ([47e7897](https://github.com/cube-js/cube/commit/47e7897f7d16b9e24f350234c093d81f0b599dca))
36+
* **ksql-driver:** Kafka, list of brokers ([#9009](https://github.com/cube-js/cube/issues/9009)) ([31d4b46](https://github.com/cube-js/cube/commit/31d4b46a0f84e1095924219f4c34eb56b0efc23c))
37+
* **schema-compiler:** fix FILTER_PARAMS to populate set and notSet filters in cube's SQL query ([#8937](https://github.com/cube-js/cube/issues/8937)) ([6d82f18](https://github.com/cube-js/cube/commit/6d82f18c59f92cae2bb94fe754aa3c0431c24949)), closes [#9009](https://github.com/cube-js/cube/issues/9009) [#8793](https://github.com/cube-js/cube/issues/8793)
38+
* **schema-compiler:** Fix incorrect sql generation for view queries referencing measures from joined cubes ([#8991](https://github.com/cube-js/cube/issues/8991)) ([cd7490e](https://github.com/cube-js/cube/commit/cd7490ef0d5bf3fa1b81b7bf1d820b12a04b1e99))
39+
* **schema-compiler:** Fix ungrouped cumulative queries incorrect sql generation ([#8981](https://github.com/cube-js/cube/issues/8981)) ([82ba01a](https://github.com/cube-js/cube/commit/82ba01ae3695dc7469e76dd8bced1c532bea0865))
40+
* **schema-compiler:** Undefined columns for lambda pre-aggregation queries referencing dimensions from joined cubes ([#8946](https://github.com/cube-js/cube/issues/8946)) ([41b49f4](https://github.com/cube-js/cube/commit/41b49f4fc00f30da7c30d59f522970a24b0e1426))
41+
* **schema-compiler:** use query timezone for time granularity origin ([#8936](https://github.com/cube-js/cube/issues/8936)) ([1beba2d](https://github.com/cube-js/cube/commit/1beba2d3fa6e9a7d95c8c18b448e42fd1562a7e6))
42+
* **server-core:** fix improper requestId retrieval in DAP ([#9017](https://github.com/cube-js/cube/issues/9017)) ([4e366d3](https://github.com/cube-js/cube/commit/4e366d3375cbc8f2d8fc731a644b2310a41edfc0))
43+
* **server-core:** fix member level access policy evaluation ([#8992](https://github.com/cube-js/cube/issues/8992)) ([ff89d65](https://github.com/cube-js/cube/commit/ff89d65e74894a5310fa391db50d0147a9510946))
44+
45+
46+
### Features
47+
48+
* **cubejs-api-gateway:** alternative auth headers ([#8987](https://github.com/cube-js/cube/issues/8987)) ([eb33d1a](https://github.com/cube-js/cube/commit/eb33d1aa6614945f4a73e6c1ef2200abc1917220))
49+
* **databricks-driver:** Support for intervals and CURRENT_DATE for sql push down ([#9000](https://github.com/cube-js/cube/issues/9000)) ([f61afc3](https://github.com/cube-js/cube/commit/f61afc306b225768f741171a8be9c4c82ec83145))
50+
* **duckdb-driver:** remove unnecessary installing and loading HttpFS extension ([#8375](https://github.com/cube-js/cube/issues/8375)) ([0aee4fc](https://github.com/cube-js/cube/commit/0aee4fc9b8563e663030cc2aa0f8805114e746e6))
51+
* **firebolt:** Automatically start the engine after connection ([#9001](https://github.com/cube-js/cube/issues/9001)) ([8f45afa](https://github.com/cube-js/cube/commit/8f45afa28d568ad48b52b44a167f945b61a6e5eb))
52+
* **pinot-driver:** add optional oAuth headers ([#8953](https://github.com/cube-js/cube/issues/8953)) ([7b1f797](https://github.com/cube-js/cube/commit/7b1f7975102d204c8ca5cf08d91acb9352d63a08))
53+
* **sqlplanner:** Extract alias logic from the symbols ([#8919](https://github.com/cube-js/cube/issues/8919)) ([d1b07f1](https://github.com/cube-js/cube/commit/d1b07f1029aa50bd391ba9e52bd1b575c3659da9))
54+
55+
56+
### Performance Improvements
57+
58+
* **cubestore:** ProjectionAboveLimit query optimization ([#8984](https://github.com/cube-js/cube/issues/8984)) ([8a53481](https://github.com/cube-js/cube/commit/8a534817b48b3646439ce2a60dc357ce98e529f2))
59+
* **cubestore:** Update DataFusion pointer to new GroupsAccumulator changes ([#8985](https://github.com/cube-js/cube/issues/8985)) ([4613628](https://github.com/cube-js/cube/commit/46136282d02573d420afc40fdb3767c9d037c067))
60+
61+
62+
63+
64+
65+
## [1.1.7](https://github.com/cube-js/cube/compare/v1.1.6...v1.1.7) (2024-11-20)
66+
67+
68+
### Bug Fixes
69+
70+
* **cubesql:** Support explicit UTC as timezone in pushdown SQL generation ([#8971](https://github.com/cube-js/cube/issues/8971)) ([85eaa29](https://github.com/cube-js/cube/commit/85eaa29a3e8df520fbdc8b2df0ece4a131c39cdc)), closes [/github.com/cube-js/arrow-datafusion/blob/dcf3e4aa26fd112043ef26fa4a78db5dbd443c86/datafusion/physical-expr/src/datetime_expressions.rs#L357-L367](https://github.com//github.com/cube-js/arrow-datafusion/blob/dcf3e4aa26fd112043ef26fa4a78db5dbd443c86/datafusion/physical-expr/src/datetime_expressions.rs/issues/L357-L367)
71+
* **databricks-driver:** fix databricks bucket URL parsing. Now driver supports both (legacy and modern urls) ([#8968](https://github.com/cube-js/cube/issues/8968)) ([137de67](https://github.com/cube-js/cube/commit/137de6725b8150cb418b03aa59443525039380c0))
72+
* **jdbc-driver:** Log errors from connection pool factory ([#8903](https://github.com/cube-js/cube/issues/8903)) ([cfdc2a2](https://github.com/cube-js/cube/commit/cfdc2a28cd9706dc91557f499e3412bab9ff9a07))
73+
74+
75+
### Features
76+
77+
* **clickhouse-driver:** Switch from apla-clickhouse to @clickhouse/client ([#8928](https://github.com/cube-js/cube/issues/8928)) ([e25e65f](https://github.com/cube-js/cube/commit/e25e65fd578bef099c351393ae32da751be351dc))
78+
79+
80+
81+
82+
683
## [1.1.6](https://github.com/cube-js/cube/compare/v1.1.5...v1.1.6) (2024-11-17)
784

885

dev-env.sh

Lines changed: 203 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,203 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
CURRENT_DIR=$(pwd)
6+
SCRIPT_DIR=$(dirname "$(realpath "$0")")
7+
8+
# Function to install dependencies in root
9+
install_root_dependencies() {
10+
echo "Running 'yarn install' in the root directory..."
11+
cd "$SCRIPT_DIR"
12+
yarn install
13+
}
14+
15+
# Function to build all packages
16+
build_packages() {
17+
echo "Building all packages..."
18+
cd "$SCRIPT_DIR"
19+
for package in packages/*; do
20+
if [ -d "$package" ]; then
21+
echo "Building $package..."
22+
cd "$package"
23+
if ! yarn build 2>/dev/null; then
24+
#echo "yarn build failed for $package, trying yarn tsc..."
25+
yarn tsc 2>/dev/null || true
26+
fi
27+
cd "$SCRIPT_DIR"
28+
fi
29+
done
30+
}
31+
32+
# Function to create yarn links for all packages
33+
link_packages() {
34+
echo "Linking all packages..."
35+
cd "$SCRIPT_DIR"
36+
for package in packages/*; do
37+
if [ -d "$package" ]; then
38+
echo "Linking $package..."
39+
cd "$package"
40+
yarn link
41+
cd "$SCRIPT_DIR"
42+
fi
43+
done
44+
}
45+
46+
# Function to get available database types
47+
get_db_types() {
48+
cd "$SCRIPT_DIR"
49+
db_types=()
50+
for package in packages/cubejs-*-driver; do
51+
if [ -d "$package" ]; then
52+
db_name=$(basename "$package" | sed 's/cubejs-\(.*\)-driver/\1/')
53+
if [ "$db_name" != "base" ]; then
54+
db_types+=("$db_name")
55+
fi
56+
fi
57+
done
58+
printf "%s\n" "${db_types[@]}"
59+
}
60+
61+
# Function to create new project
62+
create_project() {
63+
local app_name=$1
64+
local db_type=$2
65+
66+
# If app_name is not provided, ask for it
67+
if [ -z "$app_name" ]; then
68+
read -r -p "Enter the application name: " app_name
69+
fi
70+
71+
# If db_type is not provided, show selection menu
72+
if [ -z "$db_type" ]; then
73+
# Get available database types
74+
db_types=()
75+
while IFS= read -r line; do
76+
db_types+=("$line")
77+
done < <(get_db_types)
78+
79+
echo "Available database types:"
80+
PS3='Please select the database type: '
81+
select DB_TYPE in "${db_types[@]}"
82+
do
83+
if [[ -n "$DB_TYPE" ]]; then
84+
db_type=$DB_TYPE
85+
break
86+
else
87+
echo "Invalid selection. Please try again."
88+
fi
89+
done
90+
fi
91+
92+
cd "$CURRENT_DIR"
93+
echo "Creating new project with name $app_name and database type $db_type..."
94+
node "$SCRIPT_DIR/packages/cubejs-cli/dist/src/index.js" create "$app_name" -d "$db_type"
95+
link_project_packages "$app_name"
96+
97+
echo "Project setup completed!"
98+
echo "You can now run 'yarn dev' in the $app_name directory to start your project."
99+
}
100+
101+
# Function to link packages to new project
102+
link_project_packages() {
103+
local app_name=$1
104+
105+
echo "Linking packages in the new project..."
106+
cd "$CURRENT_DIR/$app_name"
107+
for package in "$SCRIPT_DIR"/packages/*; do
108+
if [ -d "$package" ]; then
109+
package_name=$(node -p "require('$package/package.json').name")
110+
echo "Linking $package_name..."
111+
yarn link "$package_name"
112+
fi
113+
done
114+
}
115+
116+
# Main execution function
117+
setup() {
118+
local app_name=$1
119+
local db_type=$2
120+
121+
install_root_dependencies
122+
build_packages
123+
link_packages
124+
create_project "$app_name" "$db_type"
125+
}
126+
127+
# Function to show help
128+
show_help() {
129+
echo "Development environment setup script for Cube"
130+
echo ""
131+
echo "Usage: ./dev-env.sh <command> [arguments]"
132+
echo ""
133+
echo "Commands:"
134+
echo " install Install dependencies in root directory"
135+
echo " Usage: ./dev-env.sh install"
136+
echo ""
137+
echo " build Build all packages"
138+
echo " Usage: ./dev-env.sh build"
139+
echo ""
140+
echo " drivers List available database drivers"
141+
echo " Usage: ./dev-env.sh drivers"
142+
echo ""
143+
echo " create Create a new project"
144+
echo " Usage: ./dev-env.sh create [app_name] [db_type]"
145+
echo " If arguments are omitted, will ask interactively"
146+
echo ""
147+
echo " link Link all packages and link them to a project"
148+
echo " Usage: ./dev-env.sh link [app_name]"
149+
echo ""
150+
echo " setup Run all steps (install, build, link, create project)"
151+
echo " Usage: ./dev-env.sh setup [app_name] [db_type]"
152+
echo " If arguments are omitted, will ask interactively"
153+
echo ""
154+
echo "Options:"
155+
echo " -h, --help Show this help message"
156+
echo ""
157+
echo "Examples:"
158+
echo " ./dev-env.sh create my-app postgres"
159+
echo " ./dev-env.sh setup my-app"
160+
echo " ./dev-env.sh link my-app"
161+
}
162+
163+
command=$1
164+
165+
# Show help if no command provided
166+
if [ -z "$command" ]; then
167+
show_help
168+
exit 0
169+
fi
170+
171+
case "$command" in
172+
"install")
173+
install_root_dependencies
174+
;;
175+
"build")
176+
build_packages
177+
;;
178+
"link")
179+
link_packages
180+
link_project_packages "$2"
181+
;;
182+
"drivers")
183+
get_db_types
184+
;;
185+
"create")
186+
create_project "$2" "$3"
187+
;;
188+
"setup")
189+
setup "$2" "$3"
190+
;;
191+
"-h"|"--help"|"help")
192+
show_help
193+
;;
194+
*)
195+
echo "Error: Unknown command '$command'"
196+
echo ""
197+
show_help
198+
exit 1
199+
;;
200+
esac
201+
202+
cd "$CURRENT_DIR"
203+

0 commit comments

Comments
 (0)