Skip to content

Commit ac75b68

Browse files
authored
Merge branch 'antalya-25.8' into fp_antalya_25_8_list_objects_cache
2 parents 27e5e17 + 67a38d1 commit ac75b68

32 files changed

+408
-30
lines changed

.github/workflows/master.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4173,7 +4173,7 @@ jobs:
41734173

41744174
RegressionTestsRelease:
41754175
needs: [config_workflow, build_amd_binary]
4176-
if: ${{ !failure() && !cancelled() && !contains(github.event.pull_request.body, '[x] <!---ci_exclude_regression')}}
4176+
if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).custom_data.ci_exclude_tags, 'regression')}}
41774177
uses: ./.github/workflows/regression.yml
41784178
secrets: inherit
41794179
with:
@@ -4185,7 +4185,7 @@ jobs:
41854185
workflow_config: ${{ needs.config_workflow.outputs.data }}
41864186
RegressionTestsAarch64:
41874187
needs: [config_workflow, build_arm_binary]
4188-
if: ${{ !failure() && !cancelled() && !contains(github.event.pull_request.body, '[x] <!---ci_exclude_regression') && !contains(github.event.pull_request.body, '[x] <!---ci_exclude_aarch64')}}
4188+
if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).custom_data.ci_exclude_tags, 'regression') && !contains(fromJson(needs.config_workflow.outputs.data).custom_data.ci_exclude_tags, 'aarch64')}}
41894189
uses: ./.github/workflows/regression.yml
41904190
secrets: inherit
41914191
with:

.github/workflows/pull_request.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4129,7 +4129,7 @@ jobs:
41294129

41304130
RegressionTestsRelease:
41314131
needs: [config_workflow, build_amd_binary]
4132-
if: ${{ !failure() && !cancelled() && !contains(github.event.pull_request.body, '[x] <!---ci_exclude_regression')}}
4132+
if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).custom_data.ci_exclude_tags, 'regression')}}
41334133
uses: ./.github/workflows/regression.yml
41344134
secrets: inherit
41354135
with:
@@ -4141,7 +4141,7 @@ jobs:
41414141
workflow_config: ${{ needs.config_workflow.outputs.data }}
41424142
RegressionTestsAarch64:
41434143
needs: [config_workflow, build_arm_binary]
4144-
if: ${{ !failure() && !cancelled() && !contains(github.event.pull_request.body, '[x] <!---ci_exclude_regression') && !contains(github.event.pull_request.body, '[x] <!---ci_exclude_aarch64')}}
4144+
if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).custom_data.ci_exclude_tags, 'regression') && !contains(fromJson(needs.config_workflow.outputs.data).custom_data.ci_exclude_tags, 'aarch64')}}
41454145
uses: ./.github/workflows/regression.yml
41464146
secrets: inherit
41474147
with:

.github/workflows/regression.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ env:
122122
pr_number: ${{ github.event.number }}
123123
event_name: ${{ github.event_name }}
124124
version: ${{ fromJson(inputs.workflow_config).custom_data.version.string }}
125+
SKIP_LIST: ${{ join(fromJson(inputs.workflow_config).custom_data.ci_exclude_tags, '|') || '' }}
125126

126127
jobs:
127128
runner_labels_setup:
@@ -147,6 +148,9 @@ jobs:
147148
input: ${{ inputs.runner_type }}
148149

149150
Common:
151+
if: |
152+
fromJson(inputs.workflow_config).custom_data.ci_regression_jobs[0] == null ||
153+
contains(fromJson(inputs.workflow_config).custom_data.ci_regression_jobs, 'common')
150154
strategy:
151155
fail-fast: false
152156
matrix:
@@ -211,6 +215,9 @@ jobs:
211215
path: ${{ env.artifact_paths}}
212216

213217
AggregateFunctions:
218+
if: |
219+
fromJson(inputs.workflow_config).custom_data.ci_regression_jobs[0] == null ||
220+
contains(fromJson(inputs.workflow_config).custom_data.ci_regression_jobs, 'aggregate_functions')
214221
strategy:
215222
fail-fast: false
216223
matrix:
@@ -276,6 +283,9 @@ jobs:
276283
name: ${{ env.SUITE }}-${{ matrix.PART }}-${{ inputs.arch }}-artifacts
277284
path: ${{ env.artifact_paths}}
278285
Alter:
286+
if: |
287+
fromJson(inputs.workflow_config).custom_data.ci_regression_jobs[0] == null ||
288+
contains(fromJson(inputs.workflow_config).custom_data.ci_regression_jobs, 'alter')
279289
strategy:
280290
fail-fast: false
281291
matrix:
@@ -348,6 +358,9 @@ jobs:
348358
path: ${{ env.artifact_paths}}
349359

350360
Benchmark:
361+
if: |
362+
fromJson(inputs.workflow_config).custom_data.ci_regression_jobs[0] == null ||
363+
contains(fromJson(inputs.workflow_config).custom_data.ci_regression_jobs, 'benchmark')
351364
strategy:
352365
fail-fast: false
353366
matrix:
@@ -421,6 +434,9 @@ jobs:
421434
path: ${{ env.artifact_paths }}
422435

423436
ClickHouseKeeper:
437+
if: |
438+
fromJson(inputs.workflow_config).custom_data.ci_regression_jobs[0] == null ||
439+
contains(fromJson(inputs.workflow_config).custom_data.ci_regression_jobs, 'clickhouse_keeper')
424440
strategy:
425441
fail-fast: false
426442
matrix:
@@ -490,6 +506,9 @@ jobs:
490506
path: ${{ env.artifact_paths }}
491507

492508
Iceberg:
509+
if: |
510+
fromJson(inputs.workflow_config).custom_data.ci_regression_jobs[0] == null ||
511+
contains(fromJson(inputs.workflow_config).custom_data.ci_regression_jobs, 'iceberg')
493512
strategy:
494513
fail-fast: false
495514
matrix:
@@ -561,6 +580,9 @@ jobs:
561580
name: ${{ env.SUITE }}-${{ matrix.PART }}-${{ inputs.arch }}-artifacts
562581
path: ${{ env.artifact_paths}}
563582
LDAP:
583+
if: |
584+
fromJson(inputs.workflow_config).custom_data.ci_regression_jobs[0] == null ||
585+
contains(fromJson(inputs.workflow_config).custom_data.ci_regression_jobs, 'ldap')
564586
strategy:
565587
fail-fast: false
566588
matrix:
@@ -625,6 +647,9 @@ jobs:
625647
path: ${{ env.artifact_paths }}
626648

627649
Parquet:
650+
if: |
651+
fromJson(inputs.workflow_config).custom_data.ci_regression_jobs[0] == null ||
652+
contains(fromJson(inputs.workflow_config).custom_data.ci_regression_jobs, 'parquet')
628653
needs: [runner_labels_setup]
629654
runs-on: ${{ fromJson(needs.runner_labels_setup.outputs.runner_labels) }}
630655
timeout-minutes: ${{ inputs.timeout_minutes }}
@@ -685,6 +710,9 @@ jobs:
685710
path: ${{ env.artifact_paths }}
686711

687712
ParquetS3:
713+
if: |
714+
fromJson(inputs.workflow_config).custom_data.ci_regression_jobs[0] == null ||
715+
contains(fromJson(inputs.workflow_config).custom_data.ci_regression_jobs, 'parquet')
688716
strategy:
689717
fail-fast: false
690718
matrix:
@@ -756,6 +784,9 @@ jobs:
756784

757785

758786
RBAC:
787+
if: |
788+
fromJson(inputs.workflow_config).custom_data.ci_regression_jobs[0] == null ||
789+
contains(fromJson(inputs.workflow_config).custom_data.ci_regression_jobs, 'rbac')
759790
strategy:
760791
fail-fast: false
761792
matrix:
@@ -821,6 +852,9 @@ jobs:
821852
name: ${{ env.SUITE }}-${{ matrix.PART }}-${{ inputs.arch }}-artifacts
822853
path: ${{ env.artifact_paths}}
823854
SSLServer:
855+
if: |
856+
fromJson(inputs.workflow_config).custom_data.ci_regression_jobs[0] == null ||
857+
contains(fromJson(inputs.workflow_config).custom_data.ci_regression_jobs, 'ssl_server')
824858
strategy:
825859
fail-fast: false
826860
matrix:
@@ -887,6 +921,9 @@ jobs:
887921
path: ${{ env.artifact_paths}}
888922

889923
S3:
924+
if: |
925+
fromJson(inputs.workflow_config).custom_data.ci_regression_jobs[0] == null ||
926+
contains(fromJson(inputs.workflow_config).custom_data.ci_regression_jobs, 's3')
890927
strategy:
891928
fail-fast: false
892929
matrix:
@@ -969,6 +1006,9 @@ jobs:
9691006
path: ${{ env.artifact_paths}}
9701007

9711008
TieredStorage:
1009+
if: |
1010+
fromJson(inputs.workflow_config).custom_data.ci_regression_jobs[0] == null ||
1011+
contains(fromJson(inputs.workflow_config).custom_data.ci_regression_jobs, 'tiered_storage')
9721012
strategy:
9731013
fail-fast: false
9741014
matrix:

ci/jobs/scripts/workflow_hooks/filter_job.py

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
import re
2-
from functools import lru_cache
3-
41
from ci.defs.defs import JobNames
52
from ci.defs.job_configs import JobConfigs
63
from ci.jobs.scripts.workflow_hooks.new_tests_check import (
@@ -52,15 +49,6 @@ def only_docs(changed_files):
5249
_info_cache = None
5350

5451

55-
@lru_cache
56-
def get_ci_exclude_tags(pr_body):
57-
pattern = r"(#|- \[x\] +<!---ci_exclude_)([|\w]+)"
58-
matches = []
59-
for match in re.findall(pattern, pr_body):
60-
matches.extend(match[-1].split("|"))
61-
return matches
62-
63-
6452
def should_skip_job(job_name):
6553
global _info_cache
6654
if _info_cache is None:
@@ -179,7 +167,7 @@ def should_skip_job(job_name):
179167
return False, ""
180168
return True, "Skipped, not labeled with 'pr-performance'"
181169

182-
ci_exclude_tags = get_ci_exclude_tags(_info_cache.pr_body)
170+
ci_exclude_tags = _info_cache.get_kv_data("ci_exclude_tags") or []
183171
for tag in ci_exclude_tags:
184172
if tag in job_name:
185173
return True, f"Skipped, job name includes excluded tag '{tag}'"
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import re
2+
3+
from ci.praktika.info import Info
4+
5+
6+
def get_ci_tags(pr_body, tag_prefix):
7+
pattern = rf"(- \[x\] +<!---{tag_prefix}_)([|\w]+)"
8+
matches = []
9+
for match in re.findall(pattern, pr_body):
10+
matches.extend(match[-1].split("|"))
11+
return matches
12+
13+
14+
if __name__ == "__main__":
15+
info = Info()
16+
17+
info.store_kv_data("ci_exclude_tags", get_ci_tags(info.pr_body, "ci_exclude"))
18+
info.store_kv_data("ci_regression_jobs", get_ci_tags(info.pr_body, "ci_regression"))

ci/praktika/native_jobs.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -398,9 +398,23 @@ def check_affected_jobs():
398398

399399
affected_artifacts = []
400400
unaffected_jobs_with_artifacts = {}
401-
# NOTE (strtgbb): We always want the build artifacts for our report and regression tests.
401+
all_required_artifacts = set()
402+
403+
# NOTE (strtgbb): We always want these build artifacts for our report and regression tests.
402404
# If we make FinishCIReport and regression tests into praktika jobs, we can remove this.
403-
all_required_artifacts = set(["CH_AMD_RELEASE", "CH_ARM_RELEASE"])
405+
if "CIReport" in workflow.additional_jobs:
406+
all_required_artifacts.update(["CH_AMD_RELEASE", "CH_ARM_RELEASE"])
407+
if (
408+
"Regression" in workflow.additional_jobs
409+
and "regression"
410+
not in workflow_config.custom_data.get("ci_exclude_tags", [])
411+
):
412+
all_required_artifacts.update(["CH_AMD_BINARY"])
413+
if "aarch64" not in workflow_config.custom_data.get(
414+
"ci_exclude_tags", []
415+
):
416+
all_required_artifacts.update(["CH_ARM_BINARY"])
417+
print(f"Including artifacts for custom jobs [{all_required_artifacts}]")
404418

405419
for job in workflow.jobs:
406420
# Skip native Praktika jobs

ci/praktika/yaml_additional_templates.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class AltinityWorkflowTemplates:
6363
"Regression": r"""
6464
RegressionTestsRelease:
6565
needs: [config_workflow, build_amd_binary]
66-
if: ${{ !failure() && !cancelled() && !contains(github.event.pull_request.body, '[x] <!---ci_exclude_regression')}}
66+
if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).custom_data.ci_exclude_tags, 'regression')}}
6767
uses: ./.github/workflows/regression.yml
6868
secrets: inherit
6969
with:
@@ -75,7 +75,7 @@ class AltinityWorkflowTemplates:
7575
workflow_config: ${{ needs.config_workflow.outputs.data }}
7676
RegressionTestsAarch64:
7777
needs: [config_workflow, build_arm_binary]
78-
if: ${{ !failure() && !cancelled() && !contains(github.event.pull_request.body, '[x] <!---ci_exclude_regression') && !contains(github.event.pull_request.body, '[x] <!---ci_exclude_aarch64')}}
78+
if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).custom_data.ci_exclude_tags, 'regression') && !contains(fromJson(needs.config_workflow.outputs.data).custom_data.ci_exclude_tags, 'aarch64')}}
7979
uses: ./.github/workflows/regression.yml
8080
secrets: inherit
8181
with:

ci/workflows/master.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
pre_hooks=[
6464
"python3 ./ci/jobs/scripts/workflow_hooks/store_data.py",
6565
"python3 ./ci/jobs/scripts/workflow_hooks/version_log.py",
66+
"python3 ./ci/jobs/scripts/workflow_hooks/parse_ci_tags.py",
6667
# "python3 ./ci/jobs/scripts/workflow_hooks/merge_sync_pr.py", # NOTE (strtgbb): we don't do this
6768
],
6869
workflow_filter_hooks=[should_skip_job],

ci/workflows/pull_request.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@
133133
"python3 ./ci/jobs/scripts/workflow_hooks/version_log.py",
134134
# "python3 ./ci/jobs/scripts/workflow_hooks/quick_sync.py", # NOTE (strtgbb): we don't do this
135135
# "python3 ./ci/jobs/scripts/workflow_hooks/team_notifications.py",
136+
"python3 ./ci/jobs/scripts/workflow_hooks/parse_ci_tags.py",
136137
],
137138
workflow_filter_hooks=[should_skip_job],
138139
post_hooks=[

programs/server/Server.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,10 @@
158158
# include <azure/core/diagnostics/logger.hpp>
159159
#endif
160160

161+
#if USE_PARQUET
162+
# include <Processors/Formats/Impl/ParquetFileMetaDataCache.h>
163+
#endif
164+
161165

162166
#include <incbin.h>
163167
/// A minimal file used when the server is run without installation
@@ -342,6 +346,7 @@ namespace ServerSetting
342346
extern const ServerSettingsUInt64 object_storage_list_objects_cache_ttl;
343347
extern const ServerSettingsUInt64 object_storage_list_objects_cache_size;
344348
extern const ServerSettingsUInt64 object_storage_list_objects_cache_max_entries;
349+
extern const ServerSettingsUInt64 input_format_parquet_metadata_cache_max_size;
345350
}
346351

347352
namespace ErrorCodes
@@ -2535,6 +2540,10 @@ try
25352540

25362541
auto replicas_reconnector = ReplicasReconnector::init(global_context);
25372542

2543+
#if USE_PARQUET
2544+
ParquetFileMetaDataCache::instance()->setMaxSizeInBytes(server_settings[ServerSetting::input_format_parquet_metadata_cache_max_size]);
2545+
#endif
2546+
25382547
/// Set current database name before loading tables and databases because
25392548
/// system logs may copy global context.
25402549
std::string default_database = server_settings[ServerSetting::default_database];

0 commit comments

Comments
 (0)