diff --git a/.github/workflows/backport_branches.yml b/.github/workflows/backport_branches.yml index 55e4a4087263..149047da7383 100644 --- a/.github/workflows/backport_branches.yml +++ b/.github/workflows/backport_branches.yml @@ -48,7 +48,7 @@ jobs: cd "$GITHUB_WORKSPACE/tests/ci" python3 docker_images_check.py --suffix aarch64 - name: Upload images files to artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: changed_images_aarch64 path: ${{ runner.temp }}/docker_images_check/changed_images_aarch64.json @@ -65,7 +65,7 @@ jobs: cd "$GITHUB_WORKSPACE/tests/ci" python3 docker_images_check.py --suffix amd64 - name: Upload images files to artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: changed_images_amd64 path: ${{ runner.temp }}/docker_images_check/changed_images_amd64.json @@ -94,7 +94,7 @@ jobs: cd "$GITHUB_WORKSPACE/tests/ci" python3 docker_manifests_merge.py --suffix amd64 --suffix aarch64 - name: Upload images files to artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: changed_images path: ${{ runner.temp }}/changed_images.json diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index d1431008450d..7e8867027bb3 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -33,7 +33,7 @@ jobs: cd "$GITHUB_WORKSPACE/tests/ci" python3 docker_images_check.py --suffix aarch64 - name: Upload images files to artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: changed_images_aarch64 path: ${{ runner.temp }}/docker_images_check/changed_images_aarch64.json @@ -49,7 +49,7 @@ jobs: cd "$GITHUB_WORKSPACE/tests/ci" python3 docker_images_check.py --suffix amd64 - name: Upload images files to artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: changed_images_amd64 path: ${{ runner.temp }}/docker_images_check/changed_images_amd64.json @@ -78,7 +78,7 @@ jobs: cd "$GITHUB_WORKSPACE/tests/ci" python3 docker_manifests_merge.py --suffix amd64 --suffix aarch64 - name: Upload images files to artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: changed_images path: ${{ runner.temp }}/changed_images.json diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index 66682ea320e1..f94a41cc1f0a 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -88,9 +88,9 @@ name: Regression test workflow env: # Force the stdout and stderr streams to be unbuffered PYTHONUNBUFFERED: 1 - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_REPORT_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_REPORT_SECRET_ACCESS_KEY }} - AWS_DEFAULT_REGION: ${{ secrets.AWS_REPORT_REGION }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} CHECKS_DATABASE_HOST: ${{ secrets.CHECKS_DATABASE_HOST }} @@ -161,7 +161,7 @@ jobs: SUITE=${{ matrix.SUITE }} EOF - name: Download json reports - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: path: ${{ env.REPORTS_PATH }} name: build_report_package_${{ inputs.arch }} @@ -172,8 +172,8 @@ jobs: - name: Run ${{ env.SUITE }} suite run: python3 -u ${{ env.SUITE }}/regression.py - --clickhouse-binary-path ${{ env.clickhouse_binary_path }} - --attr project="$GITHUB_REPOSITORY" project.id="$GITHUB_REPOSITORY_ID" package="${{ env.clickhouse_binary_path }}" version="${{ env.version }}" user.name="$GITHUB_ACTOR" repository="https://github.com/Altinity/clickhouse-regression" commit.hash="$(git rev-parse HEAD)" job.id="$GITHUB_RUN_ID" job.url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" arch="$(uname -i)" + --clickhouse-binary-path ${{ env.clickhouse_path }} + --attr project="$GITHUB_REPOSITORY" project.id="$GITHUB_REPOSITORY_ID" package="${{ env.clickhouse_path }}" version="${{ env.version }}" user.name="$GITHUB_ACTOR" repository="https://github.com/Altinity/clickhouse-regression" commit.hash="$(git rev-parse HEAD)" job.id="$GITHUB_RUN_ID" job.url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" arch="$(uname -i)" ${{ env.args }} - name: Create and upload logs if: always() @@ -205,7 +205,7 @@ jobs: SUITE=alter EOF - name: Download json reports - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: path: ${{ env.REPORTS_PATH }} name: build_report_package_${{ inputs.arch }} @@ -216,9 +216,9 @@ jobs: - name: Run ${{ env.SUITE }} suite run: python3 -u alter/regression.py - --clickhouse-binary-path ${{ env.clickhouse_binary_path }} + --clickhouse-binary-path ${{ env.clickhouse_path }} --only "/alter/${{ matrix.ONLY }} partition/*" - --attr project="$GITHUB_REPOSITORY" project.id="$GITHUB_REPOSITORY_ID" package="${{ env.clickhouse_binary_path }}" version="${{ env.version }}" user.name="$GITHUB_ACTOR" repository="https://github.com/Altinity/clickhouse-regression" commit.hash="$(git rev-parse HEAD)" job.id="$GITHUB_RUN_ID" job.url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" arch="$(uname -i)" + --attr project="$GITHUB_REPOSITORY" project.id="$GITHUB_REPOSITORY_ID" package="${{ env.clickhouse_path }}" version="${{ env.version }}" user.name="$GITHUB_ACTOR" repository="https://github.com/Altinity/clickhouse-regression" commit.hash="$(git rev-parse HEAD)" job.id="$GITHUB_RUN_ID" job.url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" arch="$(uname -i)" ${{ env.args }} - name: Create and upload logs if: always() @@ -251,7 +251,7 @@ jobs: STORAGE=/${{ matrix.STORAGE }} EOF - name: Download json reports - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: path: ${{ env.REPORTS_PATH }} name: build_report_package_${{ inputs.arch }} @@ -262,7 +262,7 @@ jobs: - name: Run ${{ env.SUITE }} suite run: python3 -u ${{ env.SUITE }}/benchmark.py - --clickhouse-binary-path ${{ env.clickhouse_binary_path }} + --clickhouse-binary-path ${{ env.clickhouse_path }} --storage ${{ matrix.STORAGE }} --gcs-uri ${{ secrets.REGRESSION_GCS_URI }} --gcs-key-id ${{ secrets.REGRESSION_GCS_KEY_ID }} @@ -271,7 +271,7 @@ jobs: --aws-s3-region ${{ secrets.REGRESSION_AWS_S3_REGION }} --aws-s3-key-id ${{ secrets.REGRESSION_AWS_S3_KEY_ID }} --aws-s3-access-key ${{ secrets.REGRESSION_AWS_S3_SECRET_ACCESS_KEY }} - --attr project="$GITHUB_REPOSITORY" project.id="$GITHUB_REPOSITORY_ID" package="${{ env.clickhouse_binary_path }}" version="${{ env.version }}" user.name="$GITHUB_ACTOR" repository="https://github.com/Altinity/clickhouse-regression" commit.hash="$(git rev-parse HEAD)" job.id="$GITHUB_RUN_ID" job.url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" arch="$(uname -i)" + --attr project="$GITHUB_REPOSITORY" project.id="$GITHUB_REPOSITORY_ID" package="${{ env.clickhouse_path }}" version="${{ env.version }}" user.name="$GITHUB_ACTOR" repository="https://github.com/Altinity/clickhouse-regression" commit.hash="$(git rev-parse HEAD)" job.id="$GITHUB_RUN_ID" job.url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" arch="$(uname -i)" ${{ env.args }} - name: Create and upload logs if: always() @@ -300,7 +300,7 @@ jobs: STORAGE=/ssl EOF - name: Download json reports - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: path: ${{ env.REPORTS_PATH }} name: build_report_package_${{ inputs.arch }} @@ -312,8 +312,8 @@ jobs: run: python3 -u ${{ env.SUITE }}/regression.py --ssl - --clickhouse-binary-path ${{ env.clickhouse_binary_path }} - --attr project="$GITHUB_REPOSITORY" project.id="$GITHUB_REPOSITORY_ID" package="${{ env.clickhouse_binary_path }}" version="${{ env.version }}" user.name="$GITHUB_ACTOR" repository="https://github.com/Altinity/clickhouse-regression" commit.hash="$(git rev-parse HEAD)" job.id="$GITHUB_RUN_ID" job.url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" arch="$(uname -i)" + --clickhouse-binary-path ${{ env.clickhouse_path }} + --attr project="$GITHUB_REPOSITORY" project.id="$GITHUB_REPOSITORY_ID" package="${{ env.clickhouse_path }}" version="${{ env.version }}" user.name="$GITHUB_ACTOR" repository="https://github.com/Altinity/clickhouse-regression" commit.hash="$(git rev-parse HEAD)" job.id="$GITHUB_RUN_ID" job.url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" arch="$(uname -i)" ${{ env.args }} - name: Create and upload logs if: always() @@ -345,7 +345,7 @@ jobs: SUITE=ldap/${{ matrix.SUITE }} EOF - name: Download json reports - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: path: ${{ env.REPORTS_PATH }} name: build_report_package_${{ inputs.arch }} @@ -356,8 +356,8 @@ jobs: - name: Run ${{ env.SUITE }} suite run: python3 -u ${{ env.SUITE }}/regression.py - --clickhouse-binary-path ${{ env.clickhouse_binary_path }} - --attr project="$GITHUB_REPOSITORY" project.id="$GITHUB_REPOSITORY_ID" package="${{ env.clickhouse_binary_path }}" version="${{ env.version }}" user.name="$GITHUB_ACTOR" repository="https://github.com/Altinity/clickhouse-regression" commit.hash="$(git rev-parse HEAD)" job.id="$GITHUB_RUN_ID" job.url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" arch="$(uname -i)" + --clickhouse-binary-path ${{ env.clickhouse_path }} + --attr project="$GITHUB_REPOSITORY" project.id="$GITHUB_REPOSITORY_ID" package="${{ env.clickhouse_path }}" version="${{ env.version }}" user.name="$GITHUB_ACTOR" repository="https://github.com/Altinity/clickhouse-regression" commit.hash="$(git rev-parse HEAD)" job.id="$GITHUB_RUN_ID" job.url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" arch="$(uname -i)" ${{ env.args }} - name: Create and upload logs if: always() @@ -385,7 +385,7 @@ jobs: SUITE=parquet EOF - name: Download json reports - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: path: ${{ env.REPORTS_PATH }} name: build_report_package_${{ inputs.arch }} @@ -396,8 +396,8 @@ jobs: - name: Run ${{ env.SUITE }} suite run: python3 -u ${{ env.SUITE }}/regression.py - --clickhouse-binary-path ${{ env.clickhouse_binary_path }} - --attr project="$GITHUB_REPOSITORY" project.id="$GITHUB_REPOSITORY_ID" package="${{ env.clickhouse_binary_path }}" version="${{ env.version }}" user.name="$GITHUB_ACTOR" repository="https://github.com/Altinity/clickhouse-regression" commit.hash="$(git rev-parse HEAD)" job.id="$GITHUB_RUN_ID" job.url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" arch="$(uname -i)" + --clickhouse-binary-path ${{ env.clickhouse_path }} + --attr project="$GITHUB_REPOSITORY" project.id="$GITHUB_REPOSITORY_ID" package="${{ env.clickhouse_path }}" version="${{ env.version }}" user.name="$GITHUB_ACTOR" repository="https://github.com/Altinity/clickhouse-regression" commit.hash="$(git rev-parse HEAD)" job.id="$GITHUB_RUN_ID" job.url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" arch="$(uname -i)" ${{ env.args }} - name: Create and upload logs if: always() @@ -430,7 +430,7 @@ jobs: STORAGE=${{ matrix.STORAGE}} EOF - name: Download json reports - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: path: ${{ env.REPORTS_PATH }} name: build_report_package_${{ inputs.arch }} @@ -441,14 +441,14 @@ jobs: - name: Run ${{ env.SUITE }} suite run: python3 -u ${{ env.SUITE }}/regression.py - --clickhouse-binary-path ${{ env.clickhouse_binary_path }} + --clickhouse-binary-path ${{ env.clickhouse_path }} --only "/parquet/${{ matrix.STORAGE }}/*" --storage ${{ matrix.STORAGE }} --aws-s3-bucket ${{ secrets.REGRESSION_AWS_S3_BUCKET }} --aws-s3-region ${{ secrets.REGRESSION_AWS_S3_REGION }} --aws-s3-key-id ${{ secrets.REGRESSION_AWS_S3_KEY_ID }} --aws-s3-access-key ${{ secrets.REGRESSION_AWS_S3_SECRET_ACCESS_KEY }} - --attr project="$GITHUB_REPOSITORY" project.id="$GITHUB_REPOSITORY_ID" package="${{ env.clickhouse_binary_path }}" version="${{ env.version }}" user.name="$GITHUB_ACTOR" repository="https://github.com/Altinity/clickhouse-regression" commit.hash="$(git rev-parse HEAD)" job.id="$GITHUB_RUN_ID" job.url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" arch="$(uname -i)" + --attr project="$GITHUB_REPOSITORY" project.id="$GITHUB_REPOSITORY_ID" package="${{ env.clickhouse_path }}" version="${{ env.version }}" user.name="$GITHUB_ACTOR" repository="https://github.com/Altinity/clickhouse-regression" commit.hash="$(git rev-parse HEAD)" job.id="$GITHUB_RUN_ID" job.url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" arch="$(uname -i)" ${{ env.args }} - name: Create and upload logs if: always() @@ -481,7 +481,7 @@ jobs: STORAGE=/${{ matrix.STORAGE }} EOF - name: Download json reports - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: path: ${{ env.REPORTS_PATH }} name: build_report_package_${{ inputs.arch }} @@ -492,7 +492,7 @@ jobs: - name: Run ${{ env.SUITE }} suite run: python3 -u ${{ env.SUITE }}/regression.py - --clickhouse-binary-path ${{ env.clickhouse_binary_path }} + --clickhouse-binary-path ${{ env.clickhouse_path }} --storage ${{ matrix.STORAGE }} --gcs-uri ${{ secrets.REGRESSION_GCS_URI }} --gcs-key-id ${{ secrets.REGRESSION_GCS_KEY_ID }} @@ -501,7 +501,7 @@ jobs: --aws-s3-region ${{ secrets.REGRESSION_AWS_S3_REGION }} --aws-s3-key-id ${{ secrets.REGRESSION_AWS_S3_KEY_ID }} --aws-s3-access-key ${{ secrets.REGRESSION_AWS_S3_SECRET_ACCESS_KEY }} - --attr project="$GITHUB_REPOSITORY" project.id="$GITHUB_REPOSITORY_ID" package="${{ env.clickhouse_binary_path }}" version="${{ env.version }}" user.name="$GITHUB_ACTOR" repository="https://github.com/Altinity/clickhouse-regression" commit.hash="$(git rev-parse HEAD)" job.id="$GITHUB_RUN_ID" job.url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" arch="$(uname -i)" + --attr project="$GITHUB_REPOSITORY" project.id="$GITHUB_REPOSITORY_ID" package="${{ env.clickhouse_path }}" version="${{ env.version }}" user.name="$GITHUB_ACTOR" repository="https://github.com/Altinity/clickhouse-regression" commit.hash="$(git rev-parse HEAD)" job.id="$GITHUB_RUN_ID" job.url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" arch="$(uname -i)" ${{ env.args }} - name: Create and upload logs if: always() @@ -534,7 +534,7 @@ jobs: STORAGE=/${{ matrix.STORAGE }} EOF - name: Download json reports - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: path: ${{ env.REPORTS_PATH }} name: build_report_package_${{ inputs.arch }} @@ -545,7 +545,7 @@ jobs: - name: Run ${{ env.SUITE }} suite run: python3 -u ${{ env.SUITE }}/regression.py - --clickhouse-binary-path ${{ env.clickhouse_binary_path }} + --clickhouse-binary-path ${{ env.clickhouse_path }} --aws-s3-access-key ${{ secrets.REGRESSION_AWS_S3_SECRET_ACCESS_KEY }} --aws-s3-key-id ${{ secrets.REGRESSION_AWS_S3_KEY_ID }} --aws-s3-uri https://s3.${{ secrets.REGRESSION_AWS_S3_REGION}}.amazonaws.com/${{ secrets.REGRESSION_AWS_S3_BUCKET }}/data/ @@ -553,7 +553,7 @@ jobs: --gcs-key-secret ${{ secrets.REGRESSION_GCS_KEY_SECRET }} --gcs-uri ${{ secrets.REGRESSION_GCS_URI }} --with-${{ matrix.STORAGE }} - --attr project="$GITHUB_REPOSITORY" project.id="$GITHUB_REPOSITORY_ID" package="${{ env.clickhouse_binary_path }}" version="${{ env.version }}" user.name="$GITHUB_ACTOR" repository="https://github.com/Altinity/clickhouse-regression" commit.hash="$(git rev-parse HEAD)" job.id="$GITHUB_RUN_ID" job.url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" arch="$(uname -i)" + --attr project="$GITHUB_REPOSITORY" project.id="$GITHUB_REPOSITORY_ID" package="${{ env.clickhouse_path }}" version="${{ env.version }}" user.name="$GITHUB_ACTOR" repository="https://github.com/Altinity/clickhouse-regression" commit.hash="$(git rev-parse HEAD)" job.id="$GITHUB_RUN_ID" job.url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" arch="$(uname -i)" ${{ env.args }} - name: Create and upload logs if: always() diff --git a/.github/workflows/release_branches.yml b/.github/workflows/release_branches.yml index dcb462cd6a75..e040cbe20804 100644 --- a/.github/workflows/release_branches.yml +++ b/.github/workflows/release_branches.yml @@ -9,6 +9,10 @@ env: AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + CLICKHOUSE_TEST_STAT_LOGIN: ${{ secrets.CLICKHOUSE_TEST_STAT_LOGIN }} + CLICKHOUSE_TEST_STAT_PASSWORD: ${{ secrets.CLICKHOUSE_TEST_STAT_PASSWORD }} + CLICKHOUSE_TEST_STAT_URL: ${{ secrets.CLICKHOUSE_TEST_STAT_URL }} + ROBOT_TOKEN: ${{ secrets.ROBOT_TOKEN }} on: # yamllint disable-line rule:truthy pull_request: @@ -30,7 +34,7 @@ on: # yamllint disable-line rule:truthy jobs: DockerHubPushAarch64: - runs-on: [self-hosted, altinity-on-demand, altinity-type-cax41, altinity-in-hel1, altinity-image-arm-snapshot-22.04-arm, altinity-startup-snapshot, altinity-setup-none] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester-aarch64] steps: - name: Check out repository code uses: Altinity/checkout@19599efdf36c4f3f30eb55d5bb388896faea69f6 @@ -52,7 +56,7 @@ jobs: path: ${{ runner.temp }}/docker_images_check/changed_images_aarch64.json DockerHubPushAmd64: - runs-on: [self-hosted, altinity-on-demand, altinity-type-cpx51, altinity-in-ash, altinity-image-x86-snapshot-22.04-amd, altinity-startup-snapshot, altinity-setup-none] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] steps: - name: Check out repository code uses: Altinity/checkout@19599efdf36c4f3f30eb55d5bb388896faea69f6 @@ -75,7 +79,7 @@ jobs: DockerHubPush: needs: [DockerHubPushAmd64, DockerHubPushAarch64] - runs-on: [self-hosted, altinity-on-demand, altinity-type-cpx51, altinity-in-ash, altinity-image-x86-snapshot-22.04-amd, altinity-startup-snapshot, altinity-setup-none] + runs-on: [self-hosted, altinity-on-demand, altinity-style-checker] steps: - name: Check out repository code uses: Altinity/checkout@19599efdf36c4f3f30eb55d5bb388896faea69f6 @@ -87,17 +91,17 @@ jobs: - name: Common docker setup uses: ./.github/actions/docker_setup with: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_USERNAME: altinityinfra DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - name: Download changed aarch64 images - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: changed_images_aarch64 path: ${{ runner.temp }} - name: Download changed amd64 images - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: changed_images_amd64 path: ${{ runner.temp }} @@ -119,7 +123,7 @@ jobs: secrets: inherit with: test_name: Compatibility check X86 - runner_type: altinity-on-demand, altinity-type-cpx51, altinity-in-ash, altinity-image-x86-snapshot-22.04-amd, altinity-startup-snapshot, altinity-setup-none + runner_type: altinity-on-demand, altinity-func-tester timeout_minutes: 180 run_command: | cd "$REPO_COPY/tests/ci" @@ -131,7 +135,7 @@ jobs: secrets: inherit with: test_name: Compatibility check Aarch64 - runner_type: altinity-on-demand, altinity-type-cax41, altinity-image-arm-snapshot-22.04-arm, altinity-startup-snapshot, altinity-setup-none + runner_type: altinity-on-demand, altinity-func-tester-aarch64 timeout_minutes: 180 run_command: | cd "$REPO_COPY/tests/ci" @@ -148,7 +152,7 @@ jobs: build_name: package_release checkout_depth: 0 timeout_minutes: 180 - runner_type: altinity-on-demand, altinity-type-ccx53, altinity-in-hil, altinity-image-x86-snapshot-22.04-amd, altinity-startup-snapshot, altinity-setup-none + runner_type: altinity-on-demand, altinity-builder additional_envs: | CLICKHOUSE_STABLE_VERSION_SUFFIX=altinitystable @@ -160,7 +164,7 @@ jobs: build_name: package_aarch64 checkout_depth: 0 timeout_minutes: 180 - runner_type: altinity-on-demand, altinity-type-ccx53, altinity-in-hil, altinity-image-x86-snapshot-22.04-amd, altinity-startup-snapshot, altinity-setup-none + runner_type: altinity-on-demand, altinity-builder additional_envs: | CLICKHOUSE_STABLE_VERSION_SUFFIX=altinitystable @@ -172,7 +176,7 @@ jobs: build_name: package_asan checkout_depth: 0 timeout_minutes: 180 - runner_type: altinity-on-demand, altinity-type-ccx53, altinity-in-hil, altinity-image-x86-snapshot-22.04-amd, altinity-startup-snapshot, altinity-setup-none + runner_type: altinity-on-demand, altinity-builder additional_envs: | CLICKHOUSE_STABLE_VERSION_SUFFIX=altinitystable @@ -184,7 +188,7 @@ jobs: build_name: package_ubsan checkout_depth: 0 timeout_minutes: 180 - runner_type: altinity-on-demand, altinity-type-ccx53, altinity-in-hil, altinity-image-x86-snapshot-22.04-amd, altinity-startup-snapshot, altinity-setup-none + runner_type: altinity-on-demand, altinity-builder additional_envs: | CLICKHOUSE_STABLE_VERSION_SUFFIX=altinitystable @@ -196,7 +200,7 @@ jobs: build_name: package_tsan checkout_depth: 0 timeout_minutes: 180 - runner_type: altinity-on-demand, altinity-type-ccx53, altinity-in-hil, altinity-image-x86-snapshot-22.04-amd, altinity-startup-snapshot, altinity-setup-none + runner_type: altinity-on-demand, altinity-builder additional_envs: | CLICKHOUSE_STABLE_VERSION_SUFFIX=altinitystable @@ -208,7 +212,7 @@ jobs: build_name: package_msan checkout_depth: 0 timeout_minutes: 180 - runner_type: altinity-on-demand, altinity-type-ccx53, altinity-in-hil, altinity-image-x86-snapshot-22.04-amd, altinity-startup-snapshot, altinity-setup-none + runner_type: altinity-on-demand, altinity-builder additional_envs: | CLICKHOUSE_STABLE_VERSION_SUFFIX=altinitystable @@ -220,7 +224,7 @@ jobs: build_name: package_debug checkout_depth: 0 timeout_minutes: 180 - runner_type: altinity-on-demand, altinity-type-ccx53, altinity-in-hil, altinity-image-x86-snapshot-22.04-amd, altinity-startup-snapshot, altinity-setup-none + runner_type: altinity-on-demand, altinity-builder additional_envs: | CLICKHOUSE_STABLE_VERSION_SUFFIX=altinitystable @@ -231,7 +235,7 @@ jobs: needs: - BuilderDebRelease - BuilderDebAarch64 - runs-on: [self-hosted, altinity-on-demand, altinity-type-cpx41, altinity-in-ash, altinity-image-x86-snapshot-22.04-amd, altinity-startup-snapshot, altinity-setup-none] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] timeout-minutes: 180 steps: - name: Check out repository code @@ -267,7 +271,7 @@ jobs: secrets: inherit with: test_name: ClickHouse build check - runner_type: altinity-on-demand, altinity-type-cax11, altinity-in-hel1, altinity-image-arm-snapshot-22.04-arm, altinity-startup-snapshot, altinity-setup-none + runner_type: altinity-on-demand, altinity-style-checker-aarch64 timeout_minutes: 180 additional_envs: | NEEDS_DATA< /etc/timezone ENV NUM_TRIES=1 ENV MAX_RUN_TIME=0 -# Unrelated to vars in setup_minio.sh, but should be the same there -# to have the same binaries for local running scenario -ARG MINIO_SERVER_VERSION=2022-01-03T18-22-58Z -ARG MINIO_CLIENT_VERSION=2022-01-05T23-52-51Z -ARG TARGETARCH - -# Download Minio-related binaries -RUN arch=${TARGETARCH:-amd64} \ - && wget "https://dl.min.io/server/minio/release/linux-${arch}/archive/minio.RELEASE.${MINIO_SERVER_VERSION}" -O ./minio \ - && wget "https://dl.min.io/client/mc/release/linux-${arch}/archive/mc.RELEASE.${MINIO_CLIENT_VERSION}" -O ./mc \ - && chmod +x ./mc ./minio +# MinIO no longer publishes binaries on dl.min.io, take them from the mirror image +COPY --from=clickhouse/minio-minio:RELEASE.2024-07-31T05-46-26Z /usr/bin/minio /usr/bin/mc ./ RUN wget --no-verbose 'https://archive.apache.org/dist/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz' \ @@ -84,8 +75,10 @@ ENV MINIO_ROOT_PASSWORD="clickhouse" ENV EXPORT_S3_STORAGE_POLICIES=1 # TODO: check against 3.29.0, but 23.8.11 had azurite@3.28.0 +# Current azurite dependencies need a newer Node.js than the Ubuntu one RUN npm install -g azurite@3.29.0 \ - && npm install -g tslib@2.6.2 + && npm install -g tslib@2.6.2 \ + && npm install -g node@20.20.2 COPY run.sh / diff --git a/docker/test/stateless/setup_minio.sh b/docker/test/stateless/setup_minio.sh index 269c5055ea4f..ba00df9d692c 100755 --- a/docker/test/stateless/setup_minio.sh +++ b/docker/test/stateless/setup_minio.sh @@ -83,10 +83,10 @@ setup_minio() { local test_type=$1 ./mc alias set clickminio http://localhost:11111 clickhouse clickhouse ./mc admin user add clickminio test testtest - ./mc admin policy set clickminio readwrite user=test + ./mc admin policy attach clickminio readwrite --user=test ./mc mb clickminio/test if [ "$test_type" = "stateless" ]; then - ./mc policy set public clickminio/test + ./mc anonymous set public clickminio/test fi } diff --git a/docker/test/util/Dockerfile b/docker/test/util/Dockerfile index 02e5171a34da..6dfe4155bb6d 100644 --- a/docker/test/util/Dockerfile +++ b/docker/test/util/Dockerfile @@ -20,7 +20,7 @@ RUN apt-get update \ lsb-release='11.1.*' \ wget='1.21.*' \ --yes --no-install-recommends --verbose-versions \ - && export LLVM_PUBKEY_HASH="bda960a8da687a275a2078d43c111d66b1c6a893a3275271beedf266c1ff4a0cdecb429c7a5cccf9f486ea7aa43fd27f" \ + && export LLVM_PUBKEY_HASH="5ffc7c9a9299ce774f81cada703e23ebba5bdfb0345b6c3b667b3ead7aa21c75ef62ccd74f7a8f2aa0cbe158d3068bbe" \ && wget -nv -O /tmp/llvm-snapshot.gpg.key https://apt.llvm.org/llvm-snapshot.gpg.key \ && echo "${LLVM_PUBKEY_HASH} /tmp/llvm-snapshot.gpg.key" | sha384sum -c \ && apt-key add /tmp/llvm-snapshot.gpg.key \ @@ -44,6 +44,7 @@ RUN apt-get update \ clang-${LLVM_VERSION} \ clang-tidy-${LLVM_VERSION} \ cmake='3.*' \ + cmake-data='3.*' \ gdb='12.1*' \ git='1:2.34.*' \ gperf='3.1*' \ diff --git a/rust/CMakeLists.txt b/rust/CMakeLists.txt index 6aa25e956796..a060b14ba366 100644 --- a/rust/CMakeLists.txt +++ b/rust/CMakeLists.txt @@ -81,6 +81,8 @@ function(add_rust_subdirectory src) message(STATUS "Copy ${src} to ${dst}") file(COPY "${src}" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}" PATTERN target EXCLUDE) + # The copied crate is outside of the workspace, give it the workspace lock file to keep dependency versions pinned + file(COPY "Cargo.lock" DESTINATION "${dst}") add_subdirectory("${dst}" "${dst}") # cmake -E copy* do now know how to exclude files diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 81c74234473c..3ec11ec716b0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -600,6 +600,10 @@ if (ENABLE_TESTS) string_utils hilite_comparator) + if (TARGET ch_contrib::brotli) + target_link_libraries(unit_tests_dbms PRIVATE ch_contrib::brotli) + endif() + if (TARGET ch_contrib::simdjson) target_link_libraries(unit_tests_dbms PRIVATE ch_contrib::simdjson) endif() diff --git a/src/Disks/ObjectStorages/S3/S3ObjectStorage.cpp b/src/Disks/ObjectStorages/S3/S3ObjectStorage.cpp index 0d9670efebe1..a2da01873e3e 100644 --- a/src/Disks/ObjectStorages/S3/S3ObjectStorage.cpp +++ b/src/Disks/ObjectStorages/S3/S3ObjectStorage.cpp @@ -272,7 +272,8 @@ void S3ObjectStorage::listObjects(const std::string & path, RelativePathsWithMet S3::ListObjectsV2Request request; request.SetBucket(bucket); - request.SetPrefix(path); + if (path != "/") + request.SetPrefix(path); if (max_keys) request.SetMaxKeys(max_keys); else diff --git a/src/IO/tests/gtest_brotli_decoder.cpp b/src/IO/tests/gtest_brotli_decoder.cpp new file mode 100644 index 000000000000..d7b8ade6a3f3 --- /dev/null +++ b/src/IO/tests/gtest_brotli_decoder.cpp @@ -0,0 +1,58 @@ +#include "config.h" + +#if USE_BROTLI + +#include +#include + +#include +#include +#include +#include +#include + +TEST(BrotliDecoder, RejectInvalidBlockSwitch) +{ + // A block switch is invalid when the stream declares only one block type. + // From https://github.com/nodejs/node/blob/main/test/parallel/test-zlib-invalid-input.js. + constexpr std::array input = { + 0x20, 0x00, 0x10, 0x41, 0x41, 0x41, 0xfc, 0xff, 0xff, 0x07, 0x00, + 0x22, 0x28, 0xf0, 0x0b, 0x60, 0xf7, 0xf4, 0x1f, 0x00, 0x00, 0x00}; + + for (size_t chunk_size : {input.size(), size_t{1}}) + { + std::unique_ptr state( + BrotliDecoderCreateInstance(nullptr, nullptr, nullptr), &BrotliDecoderDestroyInstance); + ASSERT_NE(state.get(), nullptr); + + std::array output{}; + size_t total_output = 0; + BrotliDecoderResult result = BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT; + + for (size_t offset = 0; offset < input.size() && result == BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT;) + { + size_t available_input = std::min(chunk_size, input.size() - offset); + const size_t provided_input = available_input; + const uint8_t * next_input = input.data() + offset; + do + { + uint8_t * next_output = output.data(); + size_t available_output = output.size(); + result = BrotliDecoderDecompressStream( + state.get(), &available_input, &next_input, &available_output, &next_output, nullptr); + total_output += output.size() - available_output; + ASSERT_LT(total_output, 64 * 1024 * 1024); + } + while (result == BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT); + offset += provided_input - available_input; + if (result == BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT) + ASSERT_GT(provided_input - available_input, 0); + } + + EXPECT_EQ(result, BROTLI_DECODER_RESULT_ERROR); + // -17 is the `BROTLI_DECODER_ERROR_FORMAT_BLOCK_SWITCH` code added by the fix. + EXPECT_EQ(BrotliDecoderGetErrorCode(state.get()), static_cast(-17)); + } +} + +#endif diff --git a/tests/analyzer_integration_broken_tests.txt b/tests/analyzer_integration_broken_tests.txt index 20ea31efa70f..080cd3f2677b 100644 --- a/tests/analyzer_integration_broken_tests.txt +++ b/tests/analyzer_integration_broken_tests.txt @@ -95,3 +95,4 @@ test_odbc_interaction/test.py::test_postgres_insert test_zookeeper_config/test.py::test_chroot_with_different_root test_zookeeper_config/test.py::test_chroot_with_same_root test_merge_tree_azure_blob_storage/test.py::test_table_manipulations +test_parallel_replicas_skip_shards/test.py::test_skip_unavailable_shards diff --git a/tests/ci/clickhouse_helper.py b/tests/ci/clickhouse_helper.py index 90a40fbaf737..c38cd56896a7 100644 --- a/tests/ci/clickhouse_helper.py +++ b/tests/ci/clickhouse_helper.py @@ -8,6 +8,11 @@ import requests # type: ignore +from env_helper import ( + CLICKHOUSE_TEST_STAT_LOGIN, + CLICKHOUSE_TEST_STAT_PASSWORD, + CLICKHOUSE_TEST_STAT_URL, +) from get_robot_token import get_parameter_from_ssm from pr_info import PRInfo from report import TestResults @@ -26,12 +31,12 @@ def __init__( self, url: Optional[str] = None, auth: Optional[Dict[str, str]] = None ): if url is None: - url = get_parameter_from_ssm("clickhouse-test-stat-url") + url = CLICKHOUSE_TEST_STAT_URL self.url = url self.auth = auth or { - "X-ClickHouse-User": get_parameter_from_ssm("clickhouse-test-stat-login"), - "X-ClickHouse-Key": get_parameter_from_ssm("clickhouse-test-stat-password"), + "X-ClickHouse-User": CLICKHOUSE_TEST_STAT_LOGIN, + "X-ClickHouse-Key": CLICKHOUSE_TEST_STAT_PASSWORD, } @staticmethod diff --git a/tests/ci/docker_images_check.py b/tests/ci/docker_images_check.py index adab6be672c8..d1428febfbf8 100644 --- a/tests/ci/docker_images_check.py +++ b/tests/ci/docker_images_check.py @@ -13,8 +13,8 @@ from clickhouse_helper import ClickHouseHelper, prepare_tests_results_for_clickhouse from commit_status_helper import format_description, get_commit, post_commit_status -from env_helper import REPO_COPY, RUNNER_TEMP, GITHUB_RUN_URL -from get_robot_token import get_best_robot_token, get_parameter_from_ssm +from env_helper import REPO_COPY, RUNNER_TEMP, GITHUB_RUN_URL, DOCKER_PASSWORD +from get_robot_token import get_best_robot_token from pr_info import PRInfo from report import TestResults, TestResult from s3_helper import S3Helper @@ -250,6 +250,8 @@ def build_and_push_one_image( cmd = ( "docker buildx build --builder default " + # A single image is required by `docker manifest create`, not an index with an attestation + "--provenance=false " f"--label build-url={GITHUB_RUN_URL} " f"{from_tag_arg}" # A hack to invalidate cache, grep for it in docker/ dir @@ -426,7 +428,7 @@ def main(): logging.info('Doing docker login') subprocess.check_output( # pylint: disable=unexpected-keyword-arg "docker login --username 'altinityinfra' --password-stdin", - input=get_parameter_from_ssm("dockerhub-password"), + input=DOCKER_PASSWORD, encoding="utf-8", shell=True, ) diff --git a/tests/ci/docker_manifests_merge.py b/tests/ci/docker_manifests_merge.py index 2692a0da2cb9..a689a59169a3 100644 --- a/tests/ci/docker_manifests_merge.py +++ b/tests/ci/docker_manifests_merge.py @@ -18,8 +18,8 @@ ) from commit_status_helper import format_description, get_commit, post_commit_status from docker_images_helper import IMAGES_FILE_PATH, get_image_names -from env_helper import RUNNER_TEMP, REPO_COPY -from get_robot_token import get_best_robot_token, get_parameter_from_ssm +from env_helper import RUNNER_TEMP, REPO_COPY, DOCKER_PASSWORD +from get_robot_token import get_best_robot_token from git_helper import Runner from pr_info import PRInfo from report import TestResults, TestResult @@ -251,7 +251,7 @@ def main(): if args.push: subprocess.check_output( # pylint: disable=unexpected-keyword-arg "docker login --username 'altinityinfra' --password-stdin", - input=get_parameter_from_ssm("dockerhub-password"), + input=DOCKER_PASSWORD, encoding="utf-8", shell=True, ) diff --git a/tests/ci/docker_server.py b/tests/ci/docker_server.py index 0cec4a8968b8..8e52fbb2a867 100644 --- a/tests/ci/docker_server.py +++ b/tests/ci/docker_server.py @@ -17,8 +17,8 @@ from clickhouse_helper import ClickHouseHelper, prepare_tests_results_for_clickhouse from commit_status_helper import format_description, get_commit, post_commit_status from docker_images_check import DockerImage -from env_helper import CI, GITHUB_RUN_URL, RUNNER_TEMP, S3_BUILDS_BUCKET, S3_DOWNLOAD -from get_robot_token import get_best_robot_token, get_parameter_from_ssm +from env_helper import CI, GITHUB_RUN_URL, RUNNER_TEMP, S3_BUILDS_BUCKET, S3_DOWNLOAD, DOCKER_PASSWORD +from get_robot_token import get_best_robot_token from git_helper import Git from pr_info import PRInfo from report import TestResults, TestResult @@ -342,7 +342,7 @@ def main(): if args.push: subprocess.check_output( # pylint: disable=unexpected-keyword-arg "docker login --username 'altinityinfra' --password-stdin", - input=get_parameter_from_ssm("dockerhub-password"), + input=DOCKER_PASSWORD, encoding="utf-8", shell=True, ) diff --git a/tests/ci/docker_test.py b/tests/ci/docker_test.py index def24a07f836..e4655434048c 100644 --- a/tests/ci/docker_test.py +++ b/tests/ci/docker_test.py @@ -1,7 +1,7 @@ #!/usr/bin/env python import unittest -from unittest.mock import patch, MagicMock +from unittest.mock import patch, MagicMock, mock_open from pathlib import Path from env_helper import GITHUB_RUN_URL @@ -17,8 +17,13 @@ class TestDockerImageCheck(unittest.TestCase): - def test_get_changed_docker_images(self): + @patch("docker_images_check.subprocess") + def test_get_changed_docker_images(self, mock_subprocess): + # A push to an existing PR, where every unchanged image is already built for it + mock_subprocess.run.return_value.returncode = 0 pr_info = PRInfo(PRInfo.default_event.copy()) + pr_info.number = 12345 + pr_info.event = {"action": "synchronize"} pr_info.changed_files = { "docker/test/stateless", "docker/test/base", @@ -58,30 +63,30 @@ def test_get_changed_docker_images(self): False, "altinityinfra/test-base", # type: ignore ), - # di.DockerImage( - # "docker/test/fuzzer", - # "altinityinfra/fuzzer", - # False, - # "altinityinfra/test-base", # type: ignore - # ), - # di.DockerImage( - # # "docker/test/keeper-jepsen", - # # "altinityinfra/keeper-jepsen-test", - # False, - # "altinityinfra/test-base", # type: ignore - # ), - # di.DockerImage( - # "docker/docs/check", - # "altinityinfra/docs-check", - # False, - # "altinityinfra/docs-builder", # type: ignore - # ), - # di.DockerImage( - # "docker/docs/release", - # "altinityinfra/docs-release", - # False, - # "altinityinfra/docs-builder", # type: ignore - # ), + di.DockerImage( + "docker/test/fuzzer", + "altinityinfra/fuzzer", + False, + "altinityinfra/test-base", # type: ignore + ), + di.DockerImage( + "docker/test/keeper-jepsen", + "altinityinfra/keeper-jepsen-test", + False, + "altinityinfra/test-base", # type: ignore + ), + di.DockerImage( + "docker/docs/check", + "altinityinfra/docs-check", + False, + "altinityinfra/docs-builder", # type: ignore + ), + di.DockerImage( + "docker/docs/release", + "altinityinfra/docs-release", + False, + "altinityinfra/docs-builder", # type: ignore + ), di.DockerImage( "docker/test/stateful", "altinityinfra/stateful-test", @@ -122,6 +127,7 @@ def test_gen_version(self): self.assertEqual(versions, ["1", "1-HEAD"]) self.assertEqual(result_version, "1-HEAD") + @patch("docker_images_check.open", mock_open(), create=True) @patch("docker_images_check.TeePopen") @patch("platform.machine") def test_build_and_push_one_image(self, mock_machine, mock_popen): @@ -132,12 +138,13 @@ def test_build_and_push_one_image(self, mock_machine, mock_popen): mock_popen.assert_called_once() mock_machine.assert_not_called() self.assertIn( - f"docker buildx build --builder default --label build-url={GITHUB_RUN_URL} " + "docker buildx build --builder default --provenance=false " + f"--label build-url={GITHUB_RUN_URL} " "--build-arg FROM_TAG=version " f"--build-arg CACHE_INVALIDATOR={GITHUB_RUN_URL} " "--tag name:version --cache-from type=registry,ref=name:version " "--cache-from type=registry,ref=name:latest " - "--cache-to type=inline,mode=max --push --progress plain path", + "--cache-to type=inline,mode=max --tag name:latest --push --progress plain path", mock_popen.call_args.args, ) self.assertTrue(result) @@ -149,12 +156,13 @@ def test_build_and_push_one_image(self, mock_machine, mock_popen): mock_popen.assert_called_once() mock_machine.assert_not_called() self.assertIn( - f"docker buildx build --builder default --label build-url={GITHUB_RUN_URL} " + "docker buildx build --builder default --provenance=false " + f"--label build-url={GITHUB_RUN_URL} " "--build-arg FROM_TAG=version2 " f"--build-arg CACHE_INVALIDATOR={GITHUB_RUN_URL} " "--tag name:version2 --cache-from type=registry,ref=name:version2 " "--cache-from type=registry,ref=name:latest " - "--cache-to type=inline,mode=max --progress plain path", + "--cache-to type=inline,mode=max --tag name:latest --progress plain path", mock_popen.call_args.args, ) self.assertTrue(result) @@ -166,11 +174,12 @@ def test_build_and_push_one_image(self, mock_machine, mock_popen): mock_popen.assert_called_once() mock_machine.assert_not_called() self.assertIn( - f"docker buildx build --builder default --label build-url={GITHUB_RUN_URL} " + "docker buildx build --builder default --provenance=false " + f"--label build-url={GITHUB_RUN_URL} " f"--build-arg CACHE_INVALIDATOR={GITHUB_RUN_URL} " "--tag name:version2 --cache-from type=registry,ref=name:version2 " "--cache-from type=registry,ref=name:latest " - "--cache-to type=inline,mode=max --progress plain path", + "--cache-to type=inline,mode=max --tag name:latest --progress plain path", mock_popen.call_args.args, ) self.assertFalse(result) @@ -184,13 +193,14 @@ def test_build_and_push_one_image(self, mock_machine, mock_popen): mock_popen.assert_called_once() mock_machine.assert_not_called() self.assertIn( - f"docker buildx build --builder default --label build-url={GITHUB_RUN_URL} " + "docker buildx build --builder default --provenance=false " + f"--label build-url={GITHUB_RUN_URL} " f"--build-arg CACHE_INVALIDATOR={GITHUB_RUN_URL} " "--tag name:version2 --cache-from type=registry,ref=name:version2 " "--cache-from type=registry,ref=name:latest " "--cache-from type=registry,ref=name:cached-version " "--cache-from type=registry,ref=name:another-cached " - "--cache-to type=inline,mode=max --progress plain path", + "--cache-to type=inline,mode=max --tag name:latest --progress plain path", mock_popen.call_args.args, ) self.assertFalse(result) diff --git a/tests/ci/env_helper.py b/tests/ci/env_helper.py index 16dd5495d023..70d919779244 100644 --- a/tests/ci/env_helper.py +++ b/tests/ci/env_helper.py @@ -32,6 +32,10 @@ S3_TEST_REPORTS_BUCKET = os.getenv("S3_TEST_REPORTS_BUCKET", "altinity-build-artifacts") S3_URL = os.getenv("S3_URL", "https://s3.amazonaws.com") CLICKHOUSE_STABLE_VERSION_SUFFIX = os.getenv("CLICKHOUSE_STABLE_VERSION_SUFFIX", "stable") +CLICKHOUSE_TEST_STAT_LOGIN = os.getenv("CLICKHOUSE_TEST_STAT_LOGIN") +CLICKHOUSE_TEST_STAT_PASSWORD = os.getenv("CLICKHOUSE_TEST_STAT_PASSWORD") +CLICKHOUSE_TEST_STAT_URL = os.getenv("CLICKHOUSE_TEST_STAT_URL") +DOCKER_PASSWORD = os.getenv("DOCKER_PASSWORD") S3_DOWNLOAD = os.getenv("S3_DOWNLOAD", S3_URL) S3_ARTIFACT_DOWNLOAD_TEMPLATE = ( diff --git a/tests/ci/get_robot_token.py b/tests/ci/get_robot_token.py index b93eea52f700..d2091d511731 100644 --- a/tests/ci/get_robot_token.py +++ b/tests/ci/get_robot_token.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 import logging +import os from dataclasses import dataclass from typing import Any, Dict, List, Optional @@ -57,14 +58,8 @@ def get_parameters_from_ssm( # and the original implementation selects the "best one". To make it simpler and iterate faster, # we are using only one robot and keeping the method signature. In the future we might reconsider # having multiple robot tokens -def get_best_robot_token(token_prefix_env_name="github_robot_token"): - # Re-use already fetched token (same as in get_best_robot_token_original) - # except here we assume it is always a string (since we use only one token and don't do token rotation) - global ROBOT_TOKEN - if ROBOT_TOKEN is not None: - return ROBOT_TOKEN - ROBOT_TOKEN = get_parameter_from_ssm(token_prefix_env_name) - return ROBOT_TOKEN +def get_best_robot_token(): + return os.getenv("ROBOT_TOKEN") def get_best_robot_token_original(token_prefix_env_name: str="github_robot_token_") -> str: global ROBOT_TOKEN diff --git a/tests/ci/integration_test_check.py b/tests/ci/integration_test_check.py index fa0c8a84ae53..3bc0009b38ff 100644 --- a/tests/ci/integration_test_check.py +++ b/tests/ci/integration_test_check.py @@ -51,6 +51,7 @@ "altinityinfra/mysql-php-client", "altinityinfra/nginx-dav", "altinityinfra/postgresql-java-client", + "altinityinfra/python-bottle", ] diff --git a/tests/ci/tests/docker_images_for_tests.json b/tests/ci/tests/docker_images_for_tests.json index 008c60ba6206..e0fead2968d6 100644 --- a/tests/ci/tests/docker_images_for_tests.json +++ b/tests/ci/tests/docker_images_for_tests.json @@ -5,7 +5,9 @@ }, "docker/packager/binary": { "name": "altinityinfra/binary-builder", - "dependent": [] + "dependent": [ + "docker/test/codebrowser" + ] }, "docker/test/compatibility/centos": { "name": "altinityinfra/test-old-centos", @@ -19,6 +21,14 @@ "name": "altinityinfra/integration-test", "dependent": [] }, + "docker/test/fuzzer": { + "name": "altinityinfra/fuzzer", + "dependent": [] + }, + "docker/test/performance-comparison": { + "name": "altinityinfra/performance-comparison", + "dependent": [] + }, "docker/test/util": { "name": "altinityinfra/test-util", "dependent": [ @@ -43,6 +53,14 @@ "name": "altinityinfra/unit-test", "dependent": [] }, + "docker/test/stress": { + "name": "altinityinfra/stress-test", + "dependent": [] + }, + "docker/test/codebrowser": { + "name": "altinityinfra/codebrowser", + "dependent": [] + }, "docker/test/integration/runner": { "name": "altinityinfra/integration-tests-runner", "dependent": [] @@ -51,6 +69,10 @@ "name": "altinityinfra/fasttest", "dependent": [] }, + "docker/test/style": { + "name": "altinityinfra/style-test", + "dependent": [] + }, "docker/test/integration/s3_proxy": { "name": "altinityinfra/s3-proxy", "dependent": [] @@ -92,14 +114,14 @@ "dependent": [] }, "docker/test/base": { - "name": "altinityinfra/test-base", - "dependent": [ + "name": "altinityinfra/test-base", + "dependent": [ "docker/test/stateless", "docker/test/integration/base", "docker/test/fuzzer", "docker/test/keeper-jepsen", "docker/test/sqltest" - ] + ] }, "docker/test/integration/kerberized_hadoop": { "name": "altinityinfra/kerberized-hadoop", @@ -113,6 +135,22 @@ "name": "altinityinfra/keeper-jepsen-test", "dependent": [] }, + "docker/docs/builder": { + "name": "altinityinfra/docs-builder", + "only_amd64": true, + "dependent": [ + "docker/docs/check", + "docker/docs/release" + ] + }, + "docker/docs/check": { + "name": "altinityinfra/docs-check", + "dependent": [] + }, + "docker/docs/release": { + "name": "altinityinfra/docs-release", + "dependent": [] + }, "docker/test/sqllogic": { "name": "altinityinfra/sqllogic-test", "dependent": [] diff --git a/tests/integration/ci-runner.py b/tests/integration/ci-runner.py index 06746fc919d4..aae542f1e598 100755 --- a/tests/integration/ci-runner.py +++ b/tests/integration/ci-runner.py @@ -316,6 +316,7 @@ def get_images_names(): "altinityinfra/mysql-php-client", "altinityinfra/nginx-dav", "altinityinfra/postgresql-java-client", + "altinityinfra/python-bottle", ] def _pre_pull_images(self, repo_path): diff --git a/tests/integration/helpers/mongo_cert.pem b/tests/integration/helpers/mongo_cert.pem index b9c3b83e4733..9444d19a3d2a 100644 --- a/tests/integration/helpers/mongo_cert.pem +++ b/tests/integration/helpers/mongo_cert.pem @@ -1,49 +1,52 @@ -----BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC3uaPiZMfjPBBE -yDEYJsJIoriu0SaC80uTmPM7bFpnOOXOBvbT4wD2q+uVaLQifKtPTgZAkP5Y3rX8 -S5TOzaLsNp68S1Ja/EzxQUolOSgb4A948TTiUTrTjfMxsPRhmxXTjozWV8CFtL9P -Lg6H+55oyQOJedWYe1kSWRJQayXSweBK5qjOPi2qDF/xdFRQuMivpBUar/b/E9GQ -RKpIaoqMYsl/WF/tReb4N658UxkVlFdR8s48UoA9LfJLMPr4N+QDTfvtcT2bYlpT -4a9b6IXa9BQKCw3AKfTqEPO1XunH//iLNkt1bLtqgZNyT/tY0tLY3EKMXIDuRBVn -KCbfVJ1RAgMBAAECggEAJFCjXiqBgB7tMEtJuPZgTK8tRhC9RgEFHUWMPmCqdeC/ -O7wQqc0i8Z8Fz+CESpTN370Sa0y9mZ9b5WSjI0VuQLaDJcDVpHpeUwmOuFDV5ryh -EkzLITjhIdPbECVkCK7433o7yFpMCaGydtopsSNBKoEhG9ljKOKotoG4pwCm10N5 -K9Qepj82OjRhLkpmuiMFb4/vvOm5dglYmkq5+n/fdUYFtrYr3NvMSCTlietPHDgV -Wb3strvk1g9ARWfa2j7Q6moF2sbyob9zVLoRiD9VgmNB60v7QAJxDctVkbOoDgKp -uN2fkxTHwlOPAO6Zhgnie11jnZr1711TFxmEfMkSKQKBgQDqpB8m0hSJsWLKWxQK -yx+5Xgs+Cr8gb0AYHJQ87obj2XqwXLpBSMrkzTn6vIGRv+NMSfiM/755RUm5aJPY -om+7F68JEIL26ZA7bIfjHhV5o9fvpo+6N6cJyR08Q/KkF8Tej9K4qQec0W/jtKeZ -KAJ1k7/BBuN82iTtEJ3GWBaaRwKBgQDIcwQrGlyyXqnBK25gl/E1Ng+V3p/2sy98 -1BpEshxen4KorHEXCJArydELtvK/ll6agil6QebrJN5dtYOOgvcDTu1mQjdUPN3C -VXpSQ0L8XxfyTNYQTWON9wJGL1pzlTiyHvlSrQFsFWMUoxrqndWIIRtrXjap1npp -HDrcqy2/pwKBgB5fHhUlTjlAd7wfq+l1v2Z8ENJ4C6NEIzS7xkhYy6cEiIf5iLZY -mMKi+eVFrzPRdbdzP7Poipwh5tgT/EcnR3UdLK/srjcNpni6pKA2TatQFOxVT/dX -qsxudtVNKkQpO3dfgHQclPqsdWIxCRye/CqB9Gkk3h9UEUGKTBHXZx2TAoGAF0tG -cLvfidr2Xzxs10zQ+x4NMZ1teX3ZRuhfJRyNr3FZ/cAMZGDaYDxTzsiz7Q/Mbqgx -qcN+0lS2gq1VXHpbukaxz/Bh/agVHUBRtr2aSznBzqafOcXEi/roiL94A3aT4B85 -WiJAyA60NPG/bwRojClMxm1sbNA/6XceYAaEioECgYEA3m88G3UwizfJAsfT5H5K -3HXNYzQ1XGrA8shI0kxeqfNP5qmTfH5q/K2VMWeShT3F/9Ytgc+H8c9XP1wKq7Zl -6AtmdDOeLzHkgwVK0p20/Wh2Qjw4ikJLdM+y8wnfMiwCXWQxoh1X905EwNtyBc2Z -9S3G5CXldFHC4NGdx0vetiE= +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCUnkHzBu8XdPpD +3oWJRLBMNEptQwdOUl1QhMyF9wxQ+lya3fHnlsJc2GgWrZHMI/vMr6rJHtNl/92M +KcychYswKiSKCqpeXOWIotsR9UvTxT9Mvi6Ca3vnkM4h8jt97XnnnXhjSdOUptmQ +M43zEO0XYekvoHSDuGNdNokEecq9mk64e7bu15DQo8Ck6jDL80opD9UX7diehAop +vjI2AgrR/+MlxnhCeXqVOLd8ukNtwdmRIWPrKlHcICvabvKHuJpGdUL8GpHPUINd +qMEUg4wQWKz74IV1aZCdiZICk6yACM/bWed3g1RzV21jAKLaL4xJkUqBiEtcs8Jk +PT3cVMGHAgMBAAECggEAAul6qiHchB+uQMCWyC5xTeRqAXR3tAv4Tj4fGJjkXY4Z +OrAjr9Kp38EvX1amgvUWV3FT3NMevDf5xd9OdzAA0g0uJIF+mAhYFW48i1FnQcHQ +mOf0zmiZR7l8o7ROb3JvooXHxW+ba/qjGPVwC801gJvruehgbOCRxh9DTRp7sH5K +BmcddhULhKBEQjWUmYNEM3A2axpdi3g1aYKERRLn8J0DXcItTwbxuxbNcs3erl8W +3yyv/JKmqnWF5sNyX3wEWuQcDEZZy+W7Hn4KPMxyU+WA5el5nJ8kFlxhpInmajwu +8Ytn6IEyThyXutVomosVBuP16QORl2Nad0hnQO9toQKBgQDDgiehXr3k2wfVaVOD +PocW4leXausIU2XcCn6FxTG9vLUDMPANw0MxgenC2nrjaUU9J9UjdRYgMcFGWrl4 +E27wEn5e0nZ/Y7F2cfhuOc9vNmZ+eHm2KQRyfAjIVL5Hpldqk2jXyCnLBNeWGHSw +kPQMU+FLqmrOFUvXlD2my+OSHwKBgQDCmgS9r+xFh4BCB9dY6eyQJF/jYmAQHs26 +80WJ6gAhbUw1O71uDtS9/3PZVXwwNCOHrcc49BPrpJdxGPHGvd2Q5y+j5LDDbQSZ +aLTiCZ2B0RM5Bd2dXD8gEHN4WCX7pJ/o4kDi4zONBmp5mg/tFfer5z5IU/1P7Wak +1Mu0JIHzmQKBgDNaNoqeVgaMuYwGtFbez6DlJtiwzrdLIJAheYYte5k4vdruub8D +sNyKIRp7RJgDCJq9obBEiuE98GRIZDrz78nDMco6QcHIL87KtNRO/vtZMKa7gkyk +jXR8u9nS2H/9YyytN3amLsQSq4XTOqM+D7xFNAIp6w/ibB9d4quzFj1FAoGBAKTE +x/LcO897NWuzO/D6z+QUCGR87R15F3SNenmVedrTskz4ciH3yMW+v5ZrPSWLX/IH +f8GHWD6TM+780eoW5L1GIh5BCjHN4rEJ6O3iekxqfD4x6zzL2F8Lztk8uZxh/Uuw +FoSFHybvIcQoYAe8K+KPfzq6cqb0OY6i5n920dkxAoGAJkw6ADqsJfH3NR+bQfgF +oEA1KqriMxyEJm44Y7E80C+iF4iNALF+Er9TSnr4mDxX5e/dW9d1YeS9o0nOfkpF +MaBmJfxqo4QQJLPRaxYQ2Jhfn7irir4BroxeNXQgNNhgSuKIvkfRyGYwl7P0AT4v +8H8rkZGneMD3gLB5MfnRhGk= -----END PRIVATE KEY----- -----BEGIN CERTIFICATE----- -MIIDazCCAlOgAwIBAgIUO9pfiBMsADdk9nBMHs10n8kaIr8wDQYJKoZIhvcNAQEL -BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM -GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMjA0MTIwOTQxNDVaFw0yNTAx -MDUwOTQxNDVaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw -HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQC3uaPiZMfjPBBEyDEYJsJIoriu0SaC80uTmPM7bFpn -OOXOBvbT4wD2q+uVaLQifKtPTgZAkP5Y3rX8S5TOzaLsNp68S1Ja/EzxQUolOSgb -4A948TTiUTrTjfMxsPRhmxXTjozWV8CFtL9PLg6H+55oyQOJedWYe1kSWRJQayXS -weBK5qjOPi2qDF/xdFRQuMivpBUar/b/E9GQRKpIaoqMYsl/WF/tReb4N658UxkV -lFdR8s48UoA9LfJLMPr4N+QDTfvtcT2bYlpT4a9b6IXa9BQKCw3AKfTqEPO1XunH -//iLNkt1bLtqgZNyT/tY0tLY3EKMXIDuRBVnKCbfVJ1RAgMBAAGjUzBRMB0GA1Ud -DgQWBBSx7Tx8W4c6wjW0qkeG7CAMLY7YkjAfBgNVHSMEGDAWgBSx7Tx8W4c6wjW0 -qkeG7CAMLY7YkjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQAb -/Up/LEIdwhiN/S3HolxY2D2BrTpKHLQuggBN4+gZlK5OksCkM46LYlP/ruHXCxbR -mQoRhmooj4TvkKyBwzvKq76O+OuRtBhXzRipnBbNTqFPLf9enJUrut8lsFrI+pdl -Nn4PSGGbFPpQ5vFRCktczwwYh0zLuZ/1DbFsbRWlDnZdvoWZdfV0qsvcBRK2DXDI -29xSfw897OpITIkaryZigQVsKv8TXhfsaq9PUuH0/z84S82QG5fR6FzULofgkylb -wXvwaSdcu3k4Lo8j77BEAEvlH8Ynja0eojx5Avl9h4iw/IOQKE4GAg56CzcequLv -clPlaBBWoD6yn+q4NhLF +MIIEGzCCAwOgAwIBAgIUaoGlyuJAyvs6yowFXymfu7seEiUwDQYJKoZIhvcNAQEL +BQAwgZwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDbGlja0hvdXNlMRMwEQYDVQQH +DApDbGlja0hvdXNlMREwDwYDVQQKDAhQZXJzb25hbDETMBEGA1UECwwKQ2xpY2tI +b3VzZTEkMCIGCSqGSIb3DQEJARYVY2xpY2tob3VzZUBjbGlja2hvdXNlMRUwEwYD +VQQDDAxtb25nb19zZWN1cmUwHhcNMjQwNTI2MTYwMDMxWhcNMzQwNTI0MTYwMDMx +WjCBnDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNsaWNrSG91c2UxEzARBgNVBAcM +CkNsaWNrSG91c2UxETAPBgNVBAoMCFBlcnNvbmFsMRMwEQYDVQQLDApDbGlja0hv +dXNlMSQwIgYJKoZIhvcNAQkBFhVjbGlja2hvdXNlQGNsaWNraG91c2UxFTATBgNV +BAMMDG1vbmdvX3NlY3VyZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AJSeQfMG7xd0+kPehYlEsEw0Sm1DB05SXVCEzIX3DFD6XJrd8eeWwlzYaBatkcwj ++8yvqske02X/3YwpzJyFizAqJIoKql5c5Yii2xH1S9PFP0y+LoJre+eQziHyO33t +eeedeGNJ05Sm2ZAzjfMQ7Rdh6S+gdIO4Y102iQR5yr2aTrh7tu7XkNCjwKTqMMvz +SikP1Rft2J6ECim+MjYCCtH/4yXGeEJ5epU4t3y6Q23B2ZEhY+sqUdwgK9pu8oe4 +mkZ1Qvwakc9Qg12owRSDjBBYrPvghXVpkJ2JkgKTrIAIz9tZ53eDVHNXbWMAotov +jEmRSoGIS1yzwmQ9PdxUwYcCAwEAAaNTMFEwHQYDVR0OBBYEFJyz3Kt5XBDg5cvI +0v1ioqejqX+CMB8GA1UdIwQYMBaAFJyz3Kt5XBDg5cvI0v1ioqejqX+CMA8GA1Ud +EwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAHAQFA5VMYvaQFnKtKfHg9TF +qfJ4uM3YsGdgsgmGWgflD1S4Z290H6Q2QvyZAEceTrlJxqArlWlVp5DAU6EeXjEh +QMAgdkJHF1Hg2jsZKPtdkb88UtuzwAME357T8NtEJSHzNE5QqYwlVM71JkWpdqvA +UUdOJbWhhJfowIf4tMmL1DUuIy2qYpoP/tEBXEw9uwpmZqb7KELwT3lRyOMaGFN7 +RHVwbvJWlHiu83QDNaWz6ijQkWl3tCN6TWcFD1qc1x8GpMzjbsAAYbCx7fbHM2LD +9kGSCiyv5K0MLNK5u67RtUFfPHtyD8RA0TtxIZ4PEN/eFANKS2/5NEi1ZuZ5/Pk= -----END CERTIFICATE----- diff --git a/tests/integration/runner b/tests/integration/runner index ef00881d3358..8ef5e76d6550 100755 --- a/tests/integration/runner +++ b/tests/integration/runner @@ -353,6 +353,8 @@ if __name__ == "__main__": env_tags += "-e {}={} ".format("DOCKER_NGINX_DAV_TAG", tag) elif image == "altinityinfra/postgresql-java-client": env_tags += "-e {}={} ".format("DOCKER_POSTGRESQL_JAVA_CLIENT_TAG", tag) + elif image == "altinityinfra/python-bottle": + env_tags += "-e {}={} ".format("DOCKER_PYTHON_BOTTLE_TAG", tag) else: logging.info("Unknown image %s" % (image)) diff --git a/tests/integration/test_reload_certificate/configs/WithChain.crt b/tests/integration/test_reload_certificate/configs/WithChain.crt index c75ee533f26f..db522530e6e4 100644 --- a/tests/integration/test_reload_certificate/configs/WithChain.crt +++ b/tests/integration/test_reload_certificate/configs/WithChain.crt @@ -1,43 +1,46 @@ -----BEGIN CERTIFICATE----- -MIIDkzCCAnugAwIBAgIUSChEeHqJus9jzKmD/L3Tw0x4OwcwDQYJKoZIhvcNAQEL -BQAwQTEaMBgGA1UEAwwRZGVtby5tbG9wc2h1Yi5jb20xCzAJBgNVBAYTAlVTMRYw -FAYDVQQHDA1TYW4gRnJhbnNpc2NvMCAXDTI0MDMyMDE5MTE1OVoYDzIxMjQwMjI1 -MTkxMTU5WjBxMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQG -A1UEBwwNU2FuIEZyYW5zaXNjbzEPMA0GA1UECgwGRm9vQmFyMRAwDgYDVQQLDAdG -b28gQmFyMRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IB -DwAwggEKAoIBAQDM//0s6AX988J86HzxX95irGa9cJIfY24UDBXVkO3gREiwj1Uf -bpvpxCcwADMuFdggsJlppWa3q+PNJ/eoVwdl3gG0WXaZp1rcuv6ltxdQAUtgfMAb -5p7HwsO7rCTGJBwa62Jg+E79j+V8rZWfaJRfNtY0p7eauWIrqLA0Gyse+lRayPHI -hsR9+0qedF+qziFpbNxpW8DHrpIrLb8LEao1BCYQ44koBXjkrXeR6OidXw/gek8+ -9M2GLxy6ubQ7hrcYwVWpFOKLLZLmyYDgescM6AIU904o1bN0yJ5rM7a1+f150qp6 -ttZlya0sJH0lm3gzEsqb6Fbh+Dw/9Lsp66sDAgMBAAGjUTBPMB8GA1UdIwQYMBaA -FMjyDUyXujACeQa2G+4I8ic5HVBiMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgTwMBQG -A1UdEQQNMAuCCWxvY2FsaG9zdDANBgkqhkiG9w0BAQsFAAOCAQEABEWEaVDqv9Za -bFpD/JEMIFVqe5ANKAnbbff0/vFJQ7yFmsL8/G4bbdd8uidRgE4WgoeNUscCnfk+ -kjb1vFjvY4/cBYITn41Pz5I7lQMH+BaR5gHb1oJVlJavQ2vsaeMuyDJaNmumejmU -YnoKZRwwb6SCXujS2MKgKl+jL5OkZk60i+nJhIXfxwMNmlvtqADSU5Z3VMagq8hj -DnEsxTz8PptuVaLVT4kcZm9gZpDEW2KPMZhNCv/g7EzQv8r3WnFGqumMGBO82ZE0 -mUh/Chrhss/meVK0FqTTBjOlex7R0GiJBCDfZGYTWIVdND4ICdZ1OpGWid5CXbfQ -sWBrbBaEyw== +MIID3DCCAsSgAwIBAgIUcfGThnHotOeUcs1+YKl6pCRr4cUwDQYJKoZIhvcNAQEL +BQAwcTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM +DVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCE15Um9vdENBMQswCQYDVQQLDAJJVDEV +MBMGA1UEAwwMVGVzdCBSb290IENBMCAXDTI1MDMxMjE0NTQ0MVoYDzMwMjQwNzEz +MTQ1NDQxWjBrMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQG +A1UEBwwNU2FuIEZyYW5jaXNjbzEOMAwGA1UECgwFTXlPcmcxCzAJBgNVBAsMAklU +MRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQCb7I+Bn+8oZdieJk1fhmiQobsGWPgWjsb4BctrOSVMogI8xq6zoY1qb/fv +GmuWFKlQLhTiMxoulms9bj8nodEmvdE//fkhFsKRE4fWNFWuca3Dn7oAI0T3Y6Om +hjloAHyQsrn1Wu67rLbw4dlLho/e1MDQnrvm4GUXDNomKJqpKEYLuwRCHneGZODY +clyBG+e2zJihQ7zTuclWQ5DEMfZv5hZCzMLuN39jhNu0HXsHoV83+0WYUNlsLfIQ +A6VHMFc4nO1hsVgNNOiN8GoIas2mFSNXEgYwtJFUNZryxTKobSqQdTtV/ntTpQcM +edFLOfDQARjEVmG++WcgnWMhiRb7AgMBAAGjcDBuMB8GA1UdIwQYMBaAFJUmSN9Q +1AUhz/cIcj9jbHdI5yjqMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgWgMBQGA1UdEQQN +MAuCCWxvY2FsaG9zdDAdBgNVHQ4EFgQUvAUvWxHDBYAOgKscyfWI5gFK3xQwDQYJ +KoZIhvcNAQELBQADggEBAGLZiE1KNgZtriqCEWyHNCCmJX8KjNsgOh7TP96M+Mhk +s/X/15fkKTuYymYC0r8x+zcAmI5YCqSquyuUvJfdUPJD0or0Ert4pWzs1kT60NAZ +fZcQYVaFVBYAbC3jaHDMP1v5lIWr3rRM4PVNcs/+/1CoLKng4S7qoy0u1wKR4Ctd +XWtURflfBp+xOxj9y3DR6H82M171c8pWNiIXxn0Btm8DweeuMRH2JbyOW+NnQ9v8 +QeLRxzolN97XhCYZkRMowXICfIHfcCFNB9JdVlbQRMB1noZcmxh/+Ah+SEq3orEM +sKe+BPyo1vlIkij+uDyzzSgGG+MV05RTkbMCfkJeTqM= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIDYzCCAkugAwIBAgIUR0PldYYSk3DAifgb600kvqjaCAIwDQYJKoZIhvcNAQEL -BQAwQTEaMBgGA1UEAwwRZGVtby5tbG9wc2h1Yi5jb20xCzAJBgNVBAYTAlVTMRYw -FAYDVQQHDA1TYW4gRnJhbnNpc2NvMB4XDTI0MDMyMDE5MTEzMVoXDTI1MDMxMTE5 -MTEzMVowQTEaMBgGA1UEAwwRZGVtby5tbG9wc2h1Yi5jb20xCzAJBgNVBAYTAlVT -MRYwFAYDVQQHDA1TYW4gRnJhbnNpc2NvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAqL3k6Pexu1KR8fc84fRmu0hYon7+xOPmtFSzspeN+DJNe5oDO6x0 -RzTQkgtDoxTcq32O290r3uURnDmnvNubz5yTpM1Zcz/kuSNpHLJh4yyZsXRsB21v -lb3bhjqyn6rkfoQzIMekt7clPQS0dWdU2T+lwn6XBVShOyB/W7ysP309ofQGXV+T -VFyU+lgZc2WjK6611QDCpTXgRc/UKUfU5460BnTCylP6jzBOWBZb8FX6dYBzS4U2 -yISvOXagxJVruoWjscc35ln6HBQ8bu/fI8Q0n1/ROlm785Bsd/LpVw465kklwQwS -FY3FQkiedD1fyszXO4Yq5PARw54AGKbAyQIDAQABo1MwUTAdBgNVHQ4EFgQUyPIN -TJe6MAJ5BrYb7gjyJzkdUGIwHwYDVR0jBBgwFoAUyPINTJe6MAJ5BrYb7gjyJzkd -UGIwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAYyl27sxwrjz5 -qcqwbLYv2eFIR6VZzvHfknSK1ht1jzMkXxvAOjETbYwqwWquWwMHOD2X4q5d57nu -qYAE9YE27HFzknPQkDdzwJ0u4dKi28PK8tM6dqDK46LSal/MEUxXGuzW3TRyJXrl -lPi+Wh6gZRRiANJ+giEwvQ+8k6eURHrhtL7yZqT+swi+jP4h6S4mmHmsaOj4VoP/ -NCFoRZud5SCd7RZV+fzNfxhLHI9I2c2gFycBDZOEdlrIZHM6EoaDb3i9kDVbnZqG -Zj/+k/NwCKg5UiDap6Z7Xj7w0chSppg3DMcsxGeQ9vQcMtydNu5fSK4CozNqxObb -hGBJrQylAw== +MIIDxTCCAq2gAwIBAgIUT5ZPP1IeTrlIGhlR6AI4aoL6HVcwDQYJKoZIhvcNAQEL +BQAwcTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM +DVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCE15Um9vdENBMQswCQYDVQQLDAJJVDEV +MBMGA1UEAwwMVGVzdCBSb290IENBMCAXDTI1MDMxMjE0NTIwM1oYDzMwMjQwNzEz +MTQ1MjAzWjBxMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQG +A1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwITXlSb290Q0ExCzAJBgNVBAsM +AklUMRUwEwYDVQQDDAxUZXN0IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQD3Ijwg2bnQelc1TdqXg4rLfDcMWZHGHiYB1pN9jF4t6vrhKvgc +SgqCtTbcTHiXNh3CVrrIXhJlHy/tqg6w+kLSKwjTFBIvEqL8xTl4FaqY4LOVvWGl +q7c6xLXZOuEaeXniBZqF8v3G2sQc5m84giSo3F8arXui8eiGJvFSWnXSgjtau0Yx +xcvKoedMcSGYQNKt71qrXAe9d41zumt5L30dxSSLbMT8p7QE2CDSkfiw50p62a4h +o3cqa5Mqgd5Uv+JHgrwhXEQFeJ7652yIGP+bLLNj5cG14lhzuOa3Psw8XUoqp05S +FQdvzmdDJph3CFldN5ZI6UAXA9TIZCdCQGpRAgMBAAGjUzBRMB0GA1UdDgQWBBSV +JkjfUNQFIc/3CHI/Y2x3SOco6jAfBgNVHSMEGDAWgBSVJkjfUNQFIc/3CHI/Y2x3 +SOco6jAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQAhHItkIwHq +HKeAPA4rCPTvqoWXAFL9zgpqdlwEOGJTjriJnCfAxABWbn1oekMdVzxPoO7qP/0K +YNo5ZUu1u7dspQDRumn48NBjBDUL8dIKmksUo3OABHkGPU3q0WjaUbXELTvGqdb5 +7XZFFSp0f0GKFUtxR0ZomzPKDy3yhuHhl4QJiB7xfbtXrNskUKqUeYsRUas9VzhF +KKGRcIKjm5gTmNUMTMzi+QLqlfqaqQh+z7Z3okmLM+4bD2ud9xFOqgZSE83mI5aV +wahcYXHV1b2OhV/nJ4PtLoQHqfG2IZhcXM4EONMfQ5QdhpkMDaead+qHwMqK45+k +l35/AcexkZc+ -----END CERTIFICATE----- diff --git a/tests/integration/test_reload_certificate/configs/WithChain.key b/tests/integration/test_reload_certificate/configs/WithChain.key index eb55458b143f..13d6ac3729f1 100644 --- a/tests/integration/test_reload_certificate/configs/WithChain.key +++ b/tests/integration/test_reload_certificate/configs/WithChain.key @@ -1,27 +1,28 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEpQIBAAKCAQEAzP/9LOgF/fPCfOh88V/eYqxmvXCSH2NuFAwV1ZDt4ERIsI9V -H26b6cQnMAAzLhXYILCZaaVmt6vjzSf3qFcHZd4BtFl2mada3Lr+pbcXUAFLYHzA -G+aex8LDu6wkxiQcGutiYPhO/Y/lfK2Vn2iUXzbWNKe3mrliK6iwNBsrHvpUWsjx -yIbEfftKnnRfqs4haWzcaVvAx66SKy2/CxGqNQQmEOOJKAV45K13kejonV8P4HpP -PvTNhi8curm0O4a3GMFVqRTiiy2S5smA4HrHDOgCFPdOKNWzdMieazO2tfn9edKq -erbWZcmtLCR9JZt4MxLKm+hW4fg8P/S7KeurAwIDAQABAoIBAQDIT6LtzFJ+kT+L -mgjsOocs19UUavj9XsTjJeP36UPnDhIRJB1DN2t2Astf5fIcqA+l8aoWRx6Vfop7 -nwAqJ8/8w+/acEipX5Qzdyz4dG19Kaajw4JcQP8JptBng4/zZLlpvHNG2ZslvQO6 -zksTlrbUStsIXJHVyCubCZwTbjC2dJlc97705DZAk/8L7FkljmyJws2xwQZlxdQG -FZ+8IrAqpWJC55EPfKo6+QsKEc9hh4N/MQW483V5yCuw9dLShcEMDGuxcHGFHif8 -BrwImih0rIwj9tTDY9pw6aJ5+80tVStNLDk+1eQRME6Fy/c7RG/sm/lj+P0YOI7F -jH4wyXVRAoGBAOc+rFNpM/CgRZD4VXQ+gV1+PLdaqUUU3UXAPfNWkrMIr0u4+tmg -OMMkXaM7B/ps7o5+Rcj+tO1VAvl6m7uM376szC3Ex8JA0XBDmJrJKfEQCHkzvkdf -wywVBeAR4f3D2+9Meh1XSNRqGU+Anb48neTyVYzPNIoK8ZmtZID49GfVAoGBAOLy -EX1TT1xwE/VwDy5BeJQzyZ+xwevie/960RIYooLeb31NLhOcX142b8U7XRMtiqdd -wfsT5SbjnrATBponKZELO7LwE+Z4djo2+O6JZjYB5/t/Z6r7qfOaTTlJEl8VJKo4 -F+qAsqKo0Q9EpkRUeNdcOjDzkuEikw9IlhS0VEt3AoGAWLHoRQH4AxZmOGmX1UNY -OTT/MtCaVj3fdS58VIZjNDpjiibESI601txu8fnlYH9BrPPv7l0LpnBR+MC3VON+ -ulLq6a8tc2uLKYUz1kLMTIL6zQo0tImdgZ36p+wUA1KJXCq4N+LPs3GSjbTmTB5R -7Yuplp2vKDd0XZ5tCy7yB5UCgYEA3ppoE1DTSC1bNmSLT2jCuEOv4ic+unw1+lti -lWh6hvldzD8XEf9RAB1PNtvKqNQD67SoX/mczK956OVQlYYSXIXzMcoRCwBfnyxq -sbct/Y2TGXpXmjwt8JcKZkVJcuBPTXOl6cwA7FHAdkR0/hMJUNzS608PZCtAqj4d -kANtp3MCgYEA3plv6RYYDZsUdJmIcdIvr/LxWTSqYf37LQM//k+OXo+zWMxgnUNv -AEqDlNWP+bw3yJlU1bQS2o1Z+hKzDgqDZtaVVVDgdVsUaDSW0EsJpedWXoGqJdrw -yxhB7RYi1tQsXHbR1iyT5hH0ZlV7s0XIKRU4U8MP05av099+++YKhks= ------END RSA PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCb7I+Bn+8oZdie +Jk1fhmiQobsGWPgWjsb4BctrOSVMogI8xq6zoY1qb/fvGmuWFKlQLhTiMxoulms9 +bj8nodEmvdE//fkhFsKRE4fWNFWuca3Dn7oAI0T3Y6OmhjloAHyQsrn1Wu67rLbw +4dlLho/e1MDQnrvm4GUXDNomKJqpKEYLuwRCHneGZODYclyBG+e2zJihQ7zTuclW +Q5DEMfZv5hZCzMLuN39jhNu0HXsHoV83+0WYUNlsLfIQA6VHMFc4nO1hsVgNNOiN +8GoIas2mFSNXEgYwtJFUNZryxTKobSqQdTtV/ntTpQcMedFLOfDQARjEVmG++Wcg +nWMhiRb7AgMBAAECggEAN+av7IEydQFOkCSbSMwfYPsa2kO7bhryKqmpLF/oh3jt +5Gw25h/dW3OZKBgIyl3N9fkPc6lukZVMDVIhQkw5d/JFuvOLBdnrF6gw4xMQROJs +sd3qCXKbnzYRzfoBStAh2J67HMPlI1PgoqvWA8XSfsk395NxOmzo0ULCUzvrdwlx +44oBUp9rOgHves16s9Nk5TNbqAjoQXUdm9p0GkbpWqVhJEJWHh8VpX8OBGuvx0yW +JwAKTRNiWBlmm28KL2VyDPOHUhtqMK8P+jWO145ZdYMMI/UccMzKSfzPmXjTfOcs +LL4iIbDPjakcjvoVhP1v0K6ifTUTSkwZh3HvEseYgQKBgQDSBQhlBsrKnf0Yq3A+ +K0rK5z010zeOyy2wpfF/5sGS7LILuhO75Xx0321bjzigZsPL9Vx/ftlIc2qYsy2H +LZt8QSG5xMc8J+I/A417kNBsHr57leQDH19cYMpTkBkvTfB5VlWKom4K+pTBrenK +3eBUrrIq4D5/Uoa3u5hGJu3oIwKBgQC+D6IYVsZ+WMpZE9ngQqlbpj3g5NWzBQCO +sqxeNwKyd0aQ1el28ojLL2eQ13lV2G2vSbM+PhnfHqN2EvJ4xG0uGEf9bD9O7dnu +6Ll5Q2wsURLS6Vk9qh4V7xIX0A7NgtCeiAXm61Ek98gTP87+2p8G7R02G58R70mW +3OtqgNpXSQKBgDkS6Q8bY2zgtnFH1b7vYOn3IWlJNyX1DTuePRz3Bs/4xwHs1YQQ +f1v7g+qH52mfw8Hfsf1r6XyI8QUCXHMJ7+E6igHD+ijc5d0eCAr2dc2MJVPMjiRT +GEUwgIto848pbRpsXd7I+YK+SkLAEnLxDQ+2UfDY8+MB+F5h+qXF2o1lAoGAJAt4 +9V63pEyYi449Os/JqKz9fUJI2Puw4F84W2HZbBk808kNztYuZUJnRMvoogQ6wQyc +JsjGRU9dNs5fF9JA1oYaWRCHbSOkui9+xWWpBTqW9FL27r/tlsFRUBzQQd92SyqG +3AVyzS0Ez8nBKwoxMLIVYSaZ41/bN/ZL21X2kqkCgYEAnRg1DF33CKxtX0rJDm4d +z6EBBH56+dGe7F1JJNn40KNTZTNIcJJXCL8ZDwDTu4HuVWPicx4lrNqh4kTZAZzM +6m7qtNBmlSRRo4Ncb/GtKHFAqrifveo2wP1WC3u9pqafq5r/Y+PrIBEbnCx+PHoT +AkbNeX65miN+DZiwALMk9k4= +-----END PRIVATE KEY----- diff --git a/tests/integration/test_storage_delta/test.py b/tests/integration/test_storage_delta/test.py index 0cd1208edfad..621d2b89fc5e 100644 --- a/tests/integration/test_storage_delta/test.py +++ b/tests/integration/test_storage_delta/test.py @@ -274,7 +274,7 @@ def test_multiple_log_files(started_cluster): assert len(files) == 2 # 1 metadata files + 1 data file s3_objects = list( - minio_client.list_objects(bucket, f"/{TABLE_NAME}/_delta_log/", recursive=True) + minio_client.list_objects(bucket, f"{TABLE_NAME}/_delta_log/", recursive=True) ) assert len(s3_objects) == 1 @@ -288,7 +288,7 @@ def test_multiple_log_files(started_cluster): assert len(files) == 4 # 2 metadata files + 2 data files s3_objects = list( - minio_client.list_objects(bucket, f"/{TABLE_NAME}/_delta_log/", recursive=True) + minio_client.list_objects(bucket, f"{TABLE_NAME}/_delta_log/", recursive=True) ) assert len(s3_objects) == 2 diff --git a/tests/queries/0_stateless/01710_projection_fix_crash.reference b/tests/queries/0_stateless/01710_projection_fix_crash.reference index 18748286e5b8..573541ac9702 100644 --- a/tests/queries/0_stateless/01710_projection_fix_crash.reference +++ b/tests/queries/0_stateless/01710_projection_fix_crash.reference @@ -1 +1 @@ -0 +0 diff --git a/tests/queries/0_stateless/01710_projection_fix_crash.sql b/tests/queries/0_stateless/01710_projection_fix_crash.sql index 703a773ebcab..b65c8239fe23 100644 --- a/tests/queries/0_stateless/01710_projection_fix_crash.sql +++ b/tests/queries/0_stateless/01710_projection_fix_crash.sql @@ -4,8 +4,8 @@ create table xxxxx (col1 String, col2 String, _time DateTime, projection p (sele create table yyyyyyy (col1 String, col2 String, _time DateTime, projection p (select * order by col2)) engine=MergeTree partition by col1 order by tuple(); -insert into xxxxx (col1, col2, _time) values ('xxx', 'zzzz', now()+1); -insert into yyyyyyy (col1, col2, _time) values ('xxx', 'zzzz', now()); +insert into xxxxx (col1, col2, _time) values ('xxx', 'zzzz', '2100-01-01 00:00:01'); +insert into yyyyyyy (col1, col2, _time) values ('xxx', 'zzzz', '2100-01-01 00:00:00'); SELECT count() FROM xxxxx diff --git a/tests/queries/0_stateless/02888_system_tables_with_inaccsessible_table_function.sql b/tests/queries/0_stateless/02888_system_tables_with_inaccsessible_table_function.sql index adcdeecb9e1e..af093b91d20b 100644 --- a/tests/queries/0_stateless/02888_system_tables_with_inaccsessible_table_function.sql +++ b/tests/queries/0_stateless/02888_system_tables_with_inaccsessible_table_function.sql @@ -14,7 +14,7 @@ CREATE TABLE {CLICKHOUSE_DATABASE:Identifier}.tablefunc06 (a int) AS s3('http:// CREATE TABLE {CLICKHOUSE_DATABASE:Identifier}.tablefunc01_without_schema AS postgresql('127.121.0.1:5432', 'postgres_db', 'postgres_table', 'postgres_user', '124444'); -- { serverError 614 } -CREATE TABLE {CLICKHOUSE_DATABASE:Identifier}.tablefunc02_without_schema AS mysql('127.123.0.1:3306', 'mysql_db', 'mysql_table', 'mysql_user','123123'); -- {serverError 279 } +CREATE TABLE {CLICKHOUSE_DATABASE:Identifier}.tablefunc02_without_schema AS mysql('127.123.0.1:3306', 'mysql_db', 'mysql_table', 'mysql_user','123123'); -- {serverError POCO_EXCEPTION } SELECT name, engine, engine_full, create_table_query, data_paths, notEmpty([metadata_path]), notEmpty([uuid]) FROM system.tables diff --git a/tests/queries/0_stateless/02896_memory_accounting_for_user.reference b/tests/queries/0_stateless/02896_memory_accounting_for_user.reference deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/tests/queries/0_stateless/02896_memory_accounting_for_user.sh b/tests/queries/0_stateless/02896_memory_accounting_for_user.sh deleted file mode 100755 index 72f4be1475df..000000000000 --- a/tests/queries/0_stateless/02896_memory_accounting_for_user.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env bash -# Tags: no-parallel, long - -CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) -# shellcheck source=../shell_config.sh -. "$CUR_DIR"/../shell_config.sh - - -total_iterations=16 -parallelism=32 - -$CLICKHOUSE_CLIENT --query='DROP TABLE IF EXISTS test_inserts' -$CLICKHOUSE_CLIENT --query='CREATE TABLE test_inserts ENGINE=Null AS system.numbers' - -run_query() { - ( $CLICKHOUSE_CLIENT --query='SELECT * FROM numbers_mt(1000000) FORMAT CSV' | $CLICKHOUSE_CLIENT --max_threads 8 --max_memory_usage_for_user 1073741824 -q 'INSERT INTO test_inserts FORMAT CSV' 2>/dev/null ) -} - -for ((i = 1; i <= total_iterations; i++)); do - for ((j = 1; j <= parallelism; j++)); do - run_query & pids+=($!) - done - - EXIT_CODE=0 - new_pids=() - for pid in "${pids[@]:0:parallelism}"; do - CODE=0 - wait "${pid}" || CODE=$? - run_query & new_pids+=($!) - if [[ "${CODE}" != "0" ]]; then - EXIT_CODE=1; - fi - done - for pid in "${pids[@]:parallelism}"; do - CODE=0 - wait "${pid}" || CODE=$? - if [[ "${CODE}" != "0" ]]; then - EXIT_CODE=1; - fi - done - pids=("${new_pids[@]}") - - if [[ $EXIT_CODE -ne 0 ]]; then - exit $EXIT_CODE - fi -done diff --git a/tests/queries/0_stateless/02907_backup_mv_with_no_inner_table.sh b/tests/queries/0_stateless/02907_backup_mv_with_no_inner_table.sh index 30ec50fa20f2..9ae3c6cf5f2d 100755 --- a/tests/queries/0_stateless/02907_backup_mv_with_no_inner_table.sh +++ b/tests/queries/0_stateless/02907_backup_mv_with_no_inner_table.sh @@ -19,12 +19,12 @@ ${CLICKHOUSE_CLIENT} -nm --query "drop table \`$inner_table\` sync" ${CLICKHOUSE_CLIENT} -nm --query " set send_logs_level = 'error'; -backup table ${CLICKHOUSE_DATABASE}.\`mv\` to Disk('backups', '${CLICKHOUSE_TEST_UNIQUE_NAME}'); +backup table ${CLICKHOUSE_DATABASE}.\`mv\` to Disk('default', 'backups/${CLICKHOUSE_TEST_UNIQUE_NAME}'); " | grep -o "BACKUP_CREATED" ${CLICKHOUSE_CLIENT} -nm --query " drop table mv; -restore table ${CLICKHOUSE_DATABASE}.\`mv\` from Disk('backups', '${CLICKHOUSE_TEST_UNIQUE_NAME}'); +restore table ${CLICKHOUSE_DATABASE}.\`mv\` from Disk('default', 'backups/${CLICKHOUSE_TEST_UNIQUE_NAME}'); " | grep -o "RESTORED" ${CLICKHOUSE_CLIENT} --query "select count() from mv;" diff --git a/tests/queries/0_stateless/02920_alter_column_of_projections.sql b/tests/queries/0_stateless/02920_alter_column_of_projections.sql index ab7b79783d77..5ad6a0fef035 100644 --- a/tests/queries/0_stateless/02920_alter_column_of_projections.sql +++ b/tests/queries/0_stateless/02920_alter_column_of_projections.sql @@ -1,6 +1,6 @@ DROP TABLE IF EXISTS t; -CREATE TABLE t (uid Int16, name String, age Nullable(Int8), i Int16, j Int16, projection p1 (select name, age, uniq(i), count(j) group by name, age)) ENGINE=MergeTree order by uid settings index_granularity = 1; +CREATE TABLE t (uid Int16, name String, age Nullable(Int8), i Int16, j Int16, projection p1 (select name, age, uniq(i), count(j) group by name, age)) ENGINE=MergeTree order by uid settings index_granularity = 1, allow_nullable_key = 1; INSERT INTO t VALUES (1231, 'John', 11, 1, 1), (6666, 'Ksenia', 1, 2, 2), (8888, 'Alice', 1, 3, 3), (6667, 'Ksenia', null, 4, 4);