Skip to content

Commit 83012cb

Browse files
authored
Merge branch 'antalya-25.8' into frontport/antalya-25.8/optimize_count_in_datalake
2 parents fdfd15b + 1dc8e15 commit 83012cb

31 files changed

+862
-87
lines changed

.github/workflows/master.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4172,25 +4172,25 @@ jobs:
41724172
version: ${{ fromJson(needs.config_workflow.outputs.data).custom_data.version.string }}
41734173

41744174
RegressionTestsRelease:
4175-
needs: [config_workflow, build_amd_release]
4175+
needs: [config_workflow, build_amd_binary]
41764176
if: ${{ !failure() && !cancelled() && !contains(github.event.pull_request.body, '[x] <!---ci_exclude_regression')}}
41774177
uses: ./.github/workflows/regression.yml
41784178
secrets: inherit
41794179
with:
41804180
runner_type: altinity-on-demand, altinity-regression-tester
4181-
commit: 4a3f046ac47b1f1286c82d734251541711314645
4181+
commit: 3fbe58a0ebe8fa5f97b7f36c45a2a69b1d3b6568
41824182
arch: release
41834183
build_sha: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
41844184
timeout_minutes: 300
41854185
workflow_config: ${{ needs.config_workflow.outputs.data }}
41864186
RegressionTestsAarch64:
4187-
needs: [config_workflow, build_arm_release]
4187+
needs: [config_workflow, build_arm_binary]
41884188
if: ${{ !failure() && !cancelled() && !contains(github.event.pull_request.body, '[x] <!---ci_exclude_regression') && !contains(github.event.pull_request.body, '[x] <!---ci_exclude_aarch64')}}
41894189
uses: ./.github/workflows/regression.yml
41904190
secrets: inherit
41914191
with:
41924192
runner_type: altinity-on-demand, altinity-regression-tester-aarch64
4193-
commit: 4a3f046ac47b1f1286c82d734251541711314645
4193+
commit: 3fbe58a0ebe8fa5f97b7f36c45a2a69b1d3b6568
41944194
arch: aarch64
41954195
build_sha: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
41964196
timeout_minutes: 300

.github/workflows/pull_request.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4128,25 +4128,25 @@ jobs:
41284128
version: ${{ fromJson(needs.config_workflow.outputs.data).custom_data.version.string }}
41294129

41304130
RegressionTestsRelease:
4131-
needs: [config_workflow, build_amd_release]
4131+
needs: [config_workflow, build_amd_binary]
41324132
if: ${{ !failure() && !cancelled() && !contains(github.event.pull_request.body, '[x] <!---ci_exclude_regression')}}
41334133
uses: ./.github/workflows/regression.yml
41344134
secrets: inherit
41354135
with:
41364136
runner_type: altinity-on-demand, altinity-regression-tester
4137-
commit: 4a3f046ac47b1f1286c82d734251541711314645
4137+
commit: 3fbe58a0ebe8fa5f97b7f36c45a2a69b1d3b6568
41384138
arch: release
41394139
build_sha: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
41404140
timeout_minutes: 300
41414141
workflow_config: ${{ needs.config_workflow.outputs.data }}
41424142
RegressionTestsAarch64:
4143-
needs: [config_workflow, build_arm_release]
4143+
needs: [config_workflow, build_arm_binary]
41444144
if: ${{ !failure() && !cancelled() && !contains(github.event.pull_request.body, '[x] <!---ci_exclude_regression') && !contains(github.event.pull_request.body, '[x] <!---ci_exclude_aarch64')}}
41454145
uses: ./.github/workflows/regression.yml
41464146
secrets: inherit
41474147
with:
41484148
runner_type: altinity-on-demand, altinity-regression-tester-aarch64
4149-
commit: 4a3f046ac47b1f1286c82d734251541711314645
4149+
commit: 3fbe58a0ebe8fa5f97b7f36c45a2a69b1d3b6568
41504150
arch: aarch64
41514151
build_sha: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
41524152
timeout_minutes: 300

.github/workflows/regression.yml

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ env:
121121
build_sha: ${{ inputs.build_sha }}
122122
pr_number: ${{ github.event.number }}
123123
event_name: ${{ github.event_name }}
124+
version: ${{ fromJson(inputs.workflow_config).custom_data.version.string }}
124125

125126
jobs:
126127
runner_labels_setup:
@@ -177,7 +178,7 @@ jobs:
177178
${{ inputs.workflow_config }}
178179
EOF
179180
180-
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }}
181+
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }} --binary
181182
182183
- name: Run ${{ env.SUITE }} suite
183184
id: run_suite
@@ -242,7 +243,7 @@ jobs:
242243
${{ inputs.workflow_config }}
243244
EOF
244245
245-
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }}
246+
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }} --binary
246247
247248
- name: Run ${{ env.SUITE }} suite
248249
id: run_suite
@@ -313,7 +314,7 @@ jobs:
313314
${{ inputs.workflow_config }}
314315
EOF
315316
316-
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }}
317+
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }} --binary
317318
318319
- name: Run ${{ env.SUITE }} suite
319320
id: run_suite
@@ -379,7 +380,7 @@ jobs:
379380
${{ inputs.workflow_config }}
380381
EOF
381382
382-
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }}
383+
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }} --binary
383384
384385
- name: Run ${{ env.SUITE }} suite
385386
id: run_suite
@@ -455,7 +456,7 @@ jobs:
455456
${{ inputs.workflow_config }}
456457
EOF
457458
458-
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }}
459+
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }} --binary
459460
460461
- name: Run ${{ env.SUITE }} suite
461462
id: run_suite
@@ -527,7 +528,7 @@ jobs:
527528
${{ inputs.workflow_config }}
528529
EOF
529530
530-
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }}
531+
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }} --binary
531532
532533
- name: Run ${{ env.SUITE }} suite
533534
id: run_suite
@@ -591,7 +592,7 @@ jobs:
591592
${{ inputs.workflow_config }}
592593
EOF
593594
594-
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }}
595+
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }} --binary
595596
596597
- name: Run ${{ env.SUITE }} suite
597598
id: run_suite
@@ -651,7 +652,7 @@ jobs:
651652
${{ inputs.workflow_config }}
652653
EOF
653654
654-
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }}
655+
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }} --binary
655656
656657
- name: Run ${{ env.SUITE }} suite
657658
id: run_suite
@@ -716,7 +717,7 @@ jobs:
716717
${{ inputs.workflow_config }}
717718
EOF
718719
719-
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }}
720+
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }} --binary
720721
721722
- name: Run ${{ env.SUITE }} suite
722723
id: run_suite
@@ -787,7 +788,7 @@ jobs:
787788
${{ inputs.workflow_config }}
788789
EOF
789790
790-
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }}
791+
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }} --binary
791792
792793
- name: Run ${{ env.SUITE }} suite
793794
id: run_suite
@@ -852,7 +853,7 @@ jobs:
852853
${{ inputs.workflow_config }}
853854
EOF
854855
855-
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }}
856+
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }} --binary
856857
857858
- name: Run ${{ env.SUITE }} suite
858859
id: run_suite
@@ -923,7 +924,7 @@ jobs:
923924
${{ inputs.workflow_config }}
924925
EOF
925926
926-
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }}
927+
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }} --binary
927928
928929
- name: Run ${{ env.SUITE }} suite
929930
id: run_suite
@@ -1000,7 +1001,7 @@ jobs:
10001001
${{ inputs.workflow_config }}
10011002
EOF
10021003
1003-
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }}
1004+
python3 .github/get-deb-url.py --github-env $GITHUB_ENV --workflow-config $REPORTS_PATH/workflow_config.json --s3-base-url $S3_BASE_URL --pr-number $PR_NUMBER --branch-name ${{ github.ref_name }} --commit-hash ${{ inputs.build_sha }} --binary
10041005
10051006
- name: Run ${{ env.SUITE }} suite
10061007
id: run_suite

ci/praktika/yaml_additional_templates.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class AltinityWorkflowTemplates:
3535
echo "Workflow Run Report: [View Report]($REPORT_LINK)" >> $GITHUB_STEP_SUMMARY
3636
"""
3737
# Additional jobs
38-
REGRESSION_HASH = "4a3f046ac47b1f1286c82d734251541711314645"
38+
REGRESSION_HASH = "3fbe58a0ebe8fa5f97b7f36c45a2a69b1d3b6568"
3939
ALTINITY_JOBS = {
4040
"GrypeScan": r"""
4141
GrypeScanServer:
@@ -62,7 +62,7 @@ class AltinityWorkflowTemplates:
6262
""",
6363
"Regression": r"""
6464
RegressionTestsRelease:
65-
needs: [config_workflow, build_amd_release]
65+
needs: [config_workflow, build_amd_binary]
6666
if: ${{ !failure() && !cancelled() && !contains(github.event.pull_request.body, '[x] <!---ci_exclude_regression')}}
6767
uses: ./.github/workflows/regression.yml
6868
secrets: inherit
@@ -74,7 +74,7 @@ class AltinityWorkflowTemplates:
7474
timeout_minutes: 300
7575
workflow_config: ${{ needs.config_workflow.outputs.data }}
7676
RegressionTestsAarch64:
77-
needs: [config_workflow, build_arm_release]
77+
needs: [config_workflow, build_arm_binary]
7878
if: ${{ !failure() && !cancelled() && !contains(github.event.pull_request.body, '[x] <!---ci_exclude_regression') && !contains(github.event.pull_request.body, '[x] <!---ci_exclude_aarch64')}}
7979
uses: ./.github/workflows/regression.yml
8080
secrets: inherit

src/Core/Settings.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1760,6 +1760,22 @@ Possible values:
17601760
- `global` — Replaces the `IN`/`JOIN` query with `GLOBAL IN`/`GLOBAL JOIN.`
17611761
- `allow` — Allows the use of these types of subqueries.
17621762
)", IMPORTANT) \
1763+
DECLARE(ObjectStorageClusterJoinMode, object_storage_cluster_join_mode, ObjectStorageClusterJoinMode::ALLOW, R"(
1764+
Changes the behaviour of object storage cluster function or table.
1765+
1766+
ClickHouse applies this setting when the query contains the product of object storage cluster function ot table, i.e. when the query for a object storage cluster function ot table contains a non-GLOBAL subquery for the object storage cluster function ot table.
1767+
1768+
Restrictions:
1769+
1770+
- Only applied for JOIN subqueries.
1771+
- Only if the FROM section uses a object storage cluster function ot table.
1772+
1773+
Possible values:
1774+
1775+
- `local` — Replaces the database and table in the subquery with local ones for the destination server (shard), leaving the normal `IN`/`JOIN.`
1776+
- `global` — Unsupported for now. Replaces the `IN`/`JOIN` query with `GLOBAL IN`/`GLOBAL JOIN.`
1777+
- `allow` — Default value. Allows the use of these types of subqueries.
1778+
)", 0) \
17631779
\
17641780
DECLARE(UInt64, max_concurrent_queries_for_all_users, 0, R"(
17651781
Throw exception if the value of this setting is less or equal than the current number of simultaneously processed queries.

src/Core/Settings.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ class WriteBuffer;
5858
M(CLASS_NAME, DistributedCachePoolBehaviourOnLimit) /* Cloud only */ \
5959
M(CLASS_NAME, DistributedDDLOutputMode) \
6060
M(CLASS_NAME, DistributedProductMode) \
61+
M(CLASS_NAME, ObjectStorageClusterJoinMode) \
6162
M(CLASS_NAME, Double) \
6263
M(CLASS_NAME, EscapingRule) \
6364
M(CLASS_NAME, Float) \

src/Core/SettingsChangesHistory.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,11 @@ const VersionToSettingsChangesMap & getSettingsChangesHistory()
4242
addSettingsChanges(settings_changes_history, "25.8.9.2000",
4343
{
4444
{"allow_experimental_iceberg_read_optimization", true, true, "New setting."},
45+
{"object_storage_cluster_join_mode", "allow", "allow", "New setting"},
4546
{"lock_object_storage_task_distribution_ms", 500, 500, "Raised the value to 500 to avoid hoping tasks between executors."},
46-
{"object_storage_cluster", "", "", "Antalya: New setting"},
47-
{"object_storage_max_nodes", 0, 0, "Antalya: New setting"},
48-
{"allow_retries_in_cluster_requests", false, false, "Antalya: New setting"},
47+
{"object_storage_cluster", "", "", "New setting"},
48+
{"object_storage_max_nodes", 0, 0, "New setting"},
49+
{"allow_retries_in_cluster_requests", false, false, "New setting"},
4950
});
5051
addSettingsChanges(settings_changes_history, "25.8",
5152
{

src/Core/SettingsEnums.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,11 @@ IMPLEMENT_SETTING_ENUM(DistributedProductMode, ErrorCodes::UNKNOWN_DISTRIBUTED_P
9090
{"global", DistributedProductMode::GLOBAL},
9191
{"allow", DistributedProductMode::ALLOW}})
9292

93+
IMPLEMENT_SETTING_ENUM(ObjectStorageClusterJoinMode, ErrorCodes::BAD_ARGUMENTS,
94+
{{"local", ObjectStorageClusterJoinMode::LOCAL},
95+
{"global", ObjectStorageClusterJoinMode::GLOBAL},
96+
{"allow", ObjectStorageClusterJoinMode::ALLOW}})
97+
9398

9499
IMPLEMENT_SETTING_ENUM(QueryResultCacheNondeterministicFunctionHandling, ErrorCodes::BAD_ARGUMENTS,
95100
{{"throw", QueryResultCacheNondeterministicFunctionHandling::Throw},

src/Core/SettingsEnums.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,16 @@ enum class DistributedProductMode : uint8_t
163163

164164
DECLARE_SETTING_ENUM(DistributedProductMode)
165165

166+
/// The setting for executing object storage cluster function ot table JOIN sections.
167+
enum class ObjectStorageClusterJoinMode : uint8_t
168+
{
169+
LOCAL, /// Convert to local query
170+
GLOBAL, /// Convert to global query
171+
ALLOW /// Enable
172+
};
173+
174+
DECLARE_SETTING_ENUM(ObjectStorageClusterJoinMode)
175+
166176
/// How the query result cache handles queries with non-deterministic functions, e.g. now()
167177
enum class QueryResultCacheNondeterministicFunctionHandling : uint8_t
168178
{

src/Interpreters/ClusterProxy/executeQuery.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,7 @@ void executeQuery(
464464
not_optimized_cluster->getName());
465465

466466
read_from_remote->setStepDescription("Read from remote replica");
467+
read_from_remote->setIsRemoteFunction(is_remote_function);
467468
plan->addStep(std::move(read_from_remote));
468469
plan->addInterpreterContext(new_context);
469470
plans.emplace_back(std::move(plan));

0 commit comments

Comments
 (0)