Skip to content

Commit 4544010

Browse files
committed
Merge remote-tracking branch 'origin/master' into tach
2 parents f65b7a7 + 1ac5c4a commit 4544010

File tree

116 files changed

+2700
-1078
lines changed

Some content is hidden

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

116 files changed

+2700
-1078
lines changed

.github/workflows/pull_request.yml

Lines changed: 116 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ env:
1111
PYTHONUNBUFFERED: 1
1212
DISABLE_CI_MERGE_COMMIT: ${{ vars.DISABLE_CI_MERGE_COMMIT || '0' }}
1313
DISABLE_CI_CACHE: ${{ vars.DISABLE_CI_CACHE || '0' }}
14-
CHECKOUT_REF: ${{ vars.DISABLE_CI_MERGE_COMMIT == '1' && '' || github.event.pull_request.head.sha }}
14+
CHECKOUT_REF: ${{ vars.DISABLE_CI_MERGE_COMMIT == '1' && github.event.pull_request.head.sha || '' }}
1515

1616
# Allow updating GH commit statuses and PR comments to post an actual job reports link
1717
permissions: write-all
@@ -3817,82 +3817,6 @@ jobs:
38173817
python3 -m praktika run 'Upgrade check (debug)' --workflow "PR" --ci |& tee ./ci/tmp/job.log
38183818
fi
38193819
3820-
clickbench_release:
3821-
runs-on: [self-hosted, func-tester]
3822-
needs: [config_workflow, build_amd_release]
3823-
if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'Q2xpY2tCZW5jaCAocmVsZWFzZSk=') }}
3824-
name: "ClickBench (release)"
3825-
outputs:
3826-
data: ${{ steps.run.outputs.DATA }}
3827-
steps:
3828-
- name: Checkout code
3829-
uses: actions/checkout@v4
3830-
with:
3831-
ref: ${{ env.CHECKOUT_REF }}
3832-
3833-
- name: Prepare env script
3834-
run: |
3835-
rm -rf ./ci/tmp ./ci/tmp ./ci/tmp
3836-
mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp
3837-
cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF'
3838-
export PYTHONPATH=./ci:.:
3839-
cat > ./ci/tmp/workflow_config_pr.json << 'EOF'
3840-
${{ needs.config_workflow.outputs.data }}
3841-
EOF
3842-
cat > ./ci/tmp/workflow_status.json << 'EOF'
3843-
${{ toJson(needs) }}
3844-
EOF
3845-
ENV_SETUP_SCRIPT_EOF
3846-
3847-
- name: Run
3848-
id: run
3849-
run: |
3850-
. ./ci/tmp/praktika_setup_env.sh
3851-
set -o pipefail
3852-
if command -v ts &> /dev/null; then
3853-
python3 -m praktika run 'ClickBench (release)' --workflow "PR" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log
3854-
else
3855-
python3 -m praktika run 'ClickBench (release)' --workflow "PR" --ci |& tee ./ci/tmp/job.log
3856-
fi
3857-
3858-
clickbench_aarch64:
3859-
runs-on: [self-hosted, func-tester-aarch64]
3860-
needs: [config_workflow, build_arm_release]
3861-
if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'Q2xpY2tCZW5jaCAoYWFyY2g2NCk=') }}
3862-
name: "ClickBench (aarch64)"
3863-
outputs:
3864-
data: ${{ steps.run.outputs.DATA }}
3865-
steps:
3866-
- name: Checkout code
3867-
uses: actions/checkout@v4
3868-
with:
3869-
ref: ${{ env.CHECKOUT_REF }}
3870-
3871-
- name: Prepare env script
3872-
run: |
3873-
rm -rf ./ci/tmp ./ci/tmp ./ci/tmp
3874-
mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp
3875-
cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF'
3876-
export PYTHONPATH=./ci:.:
3877-
cat > ./ci/tmp/workflow_config_pr.json << 'EOF'
3878-
${{ needs.config_workflow.outputs.data }}
3879-
EOF
3880-
cat > ./ci/tmp/workflow_status.json << 'EOF'
3881-
${{ toJson(needs) }}
3882-
EOF
3883-
ENV_SETUP_SCRIPT_EOF
3884-
3885-
- name: Run
3886-
id: run
3887-
run: |
3888-
. ./ci/tmp/praktika_setup_env.sh
3889-
set -o pipefail
3890-
if command -v ts &> /dev/null; then
3891-
python3 -m praktika run 'ClickBench (aarch64)' --workflow "PR" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log
3892-
else
3893-
python3 -m praktika run 'ClickBench (aarch64)' --workflow "PR" --ci |& tee ./ci/tmp/job.log
3894-
fi
3895-
38963820
ast_fuzzer_debug:
38973821
runs-on: [self-hosted, func-tester]
38983822
needs: [config_workflow, build_amd_debug]
@@ -4387,9 +4311,123 @@ jobs:
43874311
python3 -m praktika run 'Performance Comparison (release, 3/3)' --workflow "PR" --ci |& tee ./ci/tmp/job.log
43884312
fi
43894313
4314+
performance_comparison_aarch64_1_3:
4315+
runs-on: [self-hosted, func-tester-aarch64]
4316+
needs: [config_workflow, build_arm_release]
4317+
if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'UGVyZm9ybWFuY2UgQ29tcGFyaXNvbiAoYWFyY2g2NCwgMS8zKQ==') }}
4318+
name: "Performance Comparison (aarch64, 1/3)"
4319+
outputs:
4320+
data: ${{ steps.run.outputs.DATA }}
4321+
steps:
4322+
- name: Checkout code
4323+
uses: actions/checkout@v4
4324+
with:
4325+
ref: ${{ env.CHECKOUT_REF }}
4326+
4327+
- name: Prepare env script
4328+
run: |
4329+
rm -rf ./ci/tmp ./ci/tmp ./ci/tmp
4330+
mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp
4331+
cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF'
4332+
export PYTHONPATH=./ci:.:
4333+
cat > ./ci/tmp/workflow_config_pr.json << 'EOF'
4334+
${{ needs.config_workflow.outputs.data }}
4335+
EOF
4336+
cat > ./ci/tmp/workflow_status.json << 'EOF'
4337+
${{ toJson(needs) }}
4338+
EOF
4339+
ENV_SETUP_SCRIPT_EOF
4340+
4341+
- name: Run
4342+
id: run
4343+
run: |
4344+
. ./ci/tmp/praktika_setup_env.sh
4345+
set -o pipefail
4346+
if command -v ts &> /dev/null; then
4347+
python3 -m praktika run 'Performance Comparison (aarch64, 1/3)' --workflow "PR" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log
4348+
else
4349+
python3 -m praktika run 'Performance Comparison (aarch64, 1/3)' --workflow "PR" --ci |& tee ./ci/tmp/job.log
4350+
fi
4351+
4352+
performance_comparison_aarch64_2_3:
4353+
runs-on: [self-hosted, func-tester-aarch64]
4354+
needs: [config_workflow, build_arm_release]
4355+
if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'UGVyZm9ybWFuY2UgQ29tcGFyaXNvbiAoYWFyY2g2NCwgMi8zKQ==') }}
4356+
name: "Performance Comparison (aarch64, 2/3)"
4357+
outputs:
4358+
data: ${{ steps.run.outputs.DATA }}
4359+
steps:
4360+
- name: Checkout code
4361+
uses: actions/checkout@v4
4362+
with:
4363+
ref: ${{ env.CHECKOUT_REF }}
4364+
4365+
- name: Prepare env script
4366+
run: |
4367+
rm -rf ./ci/tmp ./ci/tmp ./ci/tmp
4368+
mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp
4369+
cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF'
4370+
export PYTHONPATH=./ci:.:
4371+
cat > ./ci/tmp/workflow_config_pr.json << 'EOF'
4372+
${{ needs.config_workflow.outputs.data }}
4373+
EOF
4374+
cat > ./ci/tmp/workflow_status.json << 'EOF'
4375+
${{ toJson(needs) }}
4376+
EOF
4377+
ENV_SETUP_SCRIPT_EOF
4378+
4379+
- name: Run
4380+
id: run
4381+
run: |
4382+
. ./ci/tmp/praktika_setup_env.sh
4383+
set -o pipefail
4384+
if command -v ts &> /dev/null; then
4385+
python3 -m praktika run 'Performance Comparison (aarch64, 2/3)' --workflow "PR" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log
4386+
else
4387+
python3 -m praktika run 'Performance Comparison (aarch64, 2/3)' --workflow "PR" --ci |& tee ./ci/tmp/job.log
4388+
fi
4389+
4390+
performance_comparison_aarch64_3_3:
4391+
runs-on: [self-hosted, func-tester-aarch64]
4392+
needs: [config_workflow, build_arm_release]
4393+
if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'UGVyZm9ybWFuY2UgQ29tcGFyaXNvbiAoYWFyY2g2NCwgMy8zKQ==') }}
4394+
name: "Performance Comparison (aarch64, 3/3)"
4395+
outputs:
4396+
data: ${{ steps.run.outputs.DATA }}
4397+
steps:
4398+
- name: Checkout code
4399+
uses: actions/checkout@v4
4400+
with:
4401+
ref: ${{ env.CHECKOUT_REF }}
4402+
4403+
- name: Prepare env script
4404+
run: |
4405+
rm -rf ./ci/tmp ./ci/tmp ./ci/tmp
4406+
mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp
4407+
cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF'
4408+
export PYTHONPATH=./ci:.:
4409+
cat > ./ci/tmp/workflow_config_pr.json << 'EOF'
4410+
${{ needs.config_workflow.outputs.data }}
4411+
EOF
4412+
cat > ./ci/tmp/workflow_status.json << 'EOF'
4413+
${{ toJson(needs) }}
4414+
EOF
4415+
ENV_SETUP_SCRIPT_EOF
4416+
4417+
- name: Run
4418+
id: run
4419+
run: |
4420+
. ./ci/tmp/praktika_setup_env.sh
4421+
set -o pipefail
4422+
if command -v ts &> /dev/null; then
4423+
python3 -m praktika run 'Performance Comparison (aarch64, 3/3)' --workflow "PR" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log
4424+
else
4425+
python3 -m praktika run 'Performance Comparison (aarch64, 3/3)' --workflow "PR" --ci |& tee ./ci/tmp/job.log
4426+
fi
4427+
43904428
finish_workflow:
43914429
runs-on: [self-hosted, style-checker-aarch64]
4392-
needs: [config_workflow, dockers_build_arm, dockers_build_amd, style_check, docs_check, fast_test, build_amd_debug, build_amd_release, build_amd_asan, build_amd_tsan, build_amd_msan, build_amd_ubsan, build_amd_binary, build_arm_release, build_arm_asan, build_amd_coverage, build_arm_binary, build_amd_tidy, build_amd_darwin, build_arm_darwin, build_arm_v80compat, build_amd_freebsd, build_ppc64le, build_amd_compat, build_amd_musl, build_riscv64, build_s390x, build_loongarch64, unit_tests_binary, unit_tests_asan, unit_tests_tsan, unit_tests_msan, unit_tests_ubsan, docker_server_image, docker_keeper_image, install_packages_release, install_packages_aarch64, compatibility_check_release, compatibility_check_aarch64, stateless_tests_asan_1_2, stateless_tests_asan_2_2, stateless_tests_release, stateless_tests_release_old_analyzer_s3_databasereplicated_1_2, stateless_tests_release_old_analyzer_s3_databasereplicated_2_2, stateless_tests_release_parallelreplicas_s3_storage, stateless_tests_debug, stateless_tests_tsan_1_3, stateless_tests_tsan_2_3, stateless_tests_tsan_3_3, stateless_tests_msan_1_4, stateless_tests_msan_2_4, stateless_tests_msan_3_4, stateless_tests_msan_4_4, stateless_tests_ubsan, stateless_tests_coverage_1_6, stateless_tests_coverage_2_6, stateless_tests_coverage_3_6, stateless_tests_coverage_4_6, stateless_tests_coverage_5_6, stateless_tests_coverage_6_6, stateless_tests_debug_s3_storage, stateless_tests_tsan_s3_storage_1_3, stateless_tests_tsan_s3_storage_2_3, stateless_tests_tsan_s3_storage_3_3, stateless_tests_aarch64, stateless_tests_azure_asan_1_3, stateless_tests_azure_asan_2_3, stateless_tests_azure_asan_3_3, bugfix_validation, stateless_tests_asan_flaky_check, integration_tests_asan_old_analyzer_1_6, integration_tests_asan_old_analyzer_2_6, integration_tests_asan_old_analyzer_3_6, integration_tests_asan_old_analyzer_4_6, integration_tests_asan_old_analyzer_5_6, integration_tests_asan_old_analyzer_6_6, integration_tests_release_1_4, integration_tests_release_2_4, integration_tests_release_3_4, integration_tests_release_4_4, integration_tests_aarch64_1_4, integration_tests_aarch64_2_4, integration_tests_aarch64_3_4, integration_tests_aarch64_4_4, integration_tests_tsan_1_6, integration_tests_tsan_2_6, integration_tests_tsan_3_6, integration_tests_tsan_4_6, integration_tests_tsan_5_6, integration_tests_tsan_6_6, integration_tests_asan_flaky_check, stress_test_debug, stress_test_tsan, stress_test_asan, stress_test_ubsan, stress_test_msan, upgrade_check_asan, upgrade_check_tsan, upgrade_check_msan, upgrade_check_debug, clickbench_release, clickbench_aarch64, ast_fuzzer_debug, ast_fuzzer_asan, ast_fuzzer_tsan, ast_fuzzer_msan, ast_fuzzer_ubsan, buzzhouse_debug, buzzhouse_asan, buzzhouse_tsan, buzzhouse_msan, buzzhouse_ubsan, performance_comparison_release_1_3, performance_comparison_release_2_3, performance_comparison_release_3_3]
4430+
needs: [config_workflow, dockers_build_arm, dockers_build_amd, style_check, docs_check, fast_test, build_amd_debug, build_amd_release, build_amd_asan, build_amd_tsan, build_amd_msan, build_amd_ubsan, build_amd_binary, build_arm_release, build_arm_asan, build_amd_coverage, build_arm_binary, build_amd_tidy, build_amd_darwin, build_arm_darwin, build_arm_v80compat, build_amd_freebsd, build_ppc64le, build_amd_compat, build_amd_musl, build_riscv64, build_s390x, build_loongarch64, unit_tests_binary, unit_tests_asan, unit_tests_tsan, unit_tests_msan, unit_tests_ubsan, docker_server_image, docker_keeper_image, install_packages_release, install_packages_aarch64, compatibility_check_release, compatibility_check_aarch64, stateless_tests_asan_1_2, stateless_tests_asan_2_2, stateless_tests_release, stateless_tests_release_old_analyzer_s3_databasereplicated_1_2, stateless_tests_release_old_analyzer_s3_databasereplicated_2_2, stateless_tests_release_parallelreplicas_s3_storage, stateless_tests_debug, stateless_tests_tsan_1_3, stateless_tests_tsan_2_3, stateless_tests_tsan_3_3, stateless_tests_msan_1_4, stateless_tests_msan_2_4, stateless_tests_msan_3_4, stateless_tests_msan_4_4, stateless_tests_ubsan, stateless_tests_coverage_1_6, stateless_tests_coverage_2_6, stateless_tests_coverage_3_6, stateless_tests_coverage_4_6, stateless_tests_coverage_5_6, stateless_tests_coverage_6_6, stateless_tests_debug_s3_storage, stateless_tests_tsan_s3_storage_1_3, stateless_tests_tsan_s3_storage_2_3, stateless_tests_tsan_s3_storage_3_3, stateless_tests_aarch64, stateless_tests_azure_asan_1_3, stateless_tests_azure_asan_2_3, stateless_tests_azure_asan_3_3, bugfix_validation, stateless_tests_asan_flaky_check, integration_tests_asan_old_analyzer_1_6, integration_tests_asan_old_analyzer_2_6, integration_tests_asan_old_analyzer_3_6, integration_tests_asan_old_analyzer_4_6, integration_tests_asan_old_analyzer_5_6, integration_tests_asan_old_analyzer_6_6, integration_tests_release_1_4, integration_tests_release_2_4, integration_tests_release_3_4, integration_tests_release_4_4, integration_tests_aarch64_1_4, integration_tests_aarch64_2_4, integration_tests_aarch64_3_4, integration_tests_aarch64_4_4, integration_tests_tsan_1_6, integration_tests_tsan_2_6, integration_tests_tsan_3_6, integration_tests_tsan_4_6, integration_tests_tsan_5_6, integration_tests_tsan_6_6, integration_tests_asan_flaky_check, stress_test_debug, stress_test_tsan, stress_test_asan, stress_test_ubsan, stress_test_msan, upgrade_check_asan, upgrade_check_tsan, upgrade_check_msan, upgrade_check_debug, ast_fuzzer_debug, ast_fuzzer_asan, ast_fuzzer_tsan, ast_fuzzer_msan, ast_fuzzer_ubsan, buzzhouse_debug, buzzhouse_asan, buzzhouse_tsan, buzzhouse_msan, buzzhouse_ubsan, performance_comparison_release_1_3, performance_comparison_release_2_3, performance_comparison_release_3_3, performance_comparison_aarch64_1_3, performance_comparison_aarch64_2_3, performance_comparison_aarch64_3_3]
43934431
if: ${{ !cancelled() }}
43944432
name: "Finish Workflow"
43954433
outputs:

base/poco/JSON/src/ParserImpl.cpp

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,9 @@ void ParserImpl::handleObject()
157157
while (tok != JSON_OBJECT_END && checkError())
158158
{
159159
json_next(_pJSON);
160-
if (_pHandler) _pHandler->key(std::string(json_get_string(_pJSON, NULL)));
160+
size_t length;
161+
const char * bytes = json_get_string(_pJSON, &length);
162+
if (_pHandler) _pHandler->key(std::string(bytes, length));
161163
handle();
162164
tok = json_peek(_pJSON);
163165
}
@@ -187,7 +189,9 @@ void ParserImpl::handle()
187189
{
188190
if (_pHandler)
189191
{
190-
std::string str(json_get_string(_pJSON, NULL));
192+
size_t length;
193+
const char * bytes = json_get_string(_pJSON, &length);
194+
std::string str(bytes, length);
191195
if (str.find(_decimalPoint) != str.npos || str.find('e') != str.npos || str.find('E') != str.npos)
192196
{
193197
_pHandler->value(NumberParser::parseFloat(str));
@@ -204,8 +208,12 @@ void ParserImpl::handle()
204208
break;
205209
}
206210
case JSON_STRING:
207-
if (_pHandler) _pHandler->value(std::string(json_get_string(_pJSON, NULL)));
211+
{
212+
size_t length;
213+
const char * bytes = json_get_string(_pJSON, &length);
214+
if (_pHandler) _pHandler->value(std::string(bytes, length));
208215
break;
216+
}
209217
case JSON_OBJECT:
210218
if (_pHandler) _pHandler->startObject();
211219
handleObject();

0 commit comments

Comments
 (0)