From 504e164d4f205c001f1daf008b880d0f70c1607a Mon Sep 17 00:00:00 2001 From: sundyli <543950155@qq.com> Date: Tue, 24 Mar 2026 20:26:06 +0800 Subject: [PATCH 1/3] fix(ci): wire stage matrix size into runtime (#19598) --- .../actions/test_sqllogic_stage/action.yml | 5 +++ .../check_sqllogic_stage_size_wiring.py | 37 +++++++++++++++++++ .github/workflows/reuse.sqllogic.yml | 1 + Makefile | 1 + 4 files changed, 44 insertions(+) create mode 100644 .github/scripts/check_sqllogic_stage_size_wiring.py diff --git a/.github/actions/test_sqllogic_stage/action.yml b/.github/actions/test_sqllogic_stage/action.yml index 3619fd9bf43a0..0b3812f178f59 100644 --- a/.github/actions/test_sqllogic_stage/action.yml +++ b/.github/actions/test_sqllogic_stage/action.yml @@ -17,6 +17,10 @@ inputs: description: "path type for dedup when copy, choices: full_path,sub_path" required: true default: "" + size: + description: "stage parquet read size mode, choices: small,large" + required: true + default: "" runs: using: "composite" steps: @@ -34,4 +38,5 @@ runs: TEST_HANDLERS: ${{ inputs.handlers }} TEST_STAGE_STORAGE: ${{ inputs.storage }} TEST_STAGE_DEDUP: ${{ inputs.dedup}} + TEST_STAGE_SIZE: ${{ inputs.size }} run: bash ./scripts/ci/ci-run-sqllogic-tests-without-sandbox.sh ${{ inputs.dirs }} diff --git a/.github/scripts/check_sqllogic_stage_size_wiring.py b/.github/scripts/check_sqllogic_stage_size_wiring.py new file mode 100644 index 0000000000000..04441914e7ba6 --- /dev/null +++ b/.github/scripts/check_sqllogic_stage_size_wiring.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 + +from pathlib import Path +import sys + + +REPO_ROOT = Path(__file__).resolve().parents[2] +WORKFLOW_FILE = REPO_ROOT / ".github/workflows/reuse.sqllogic.yml" +ACTION_FILE = REPO_ROOT / ".github/actions/test_sqllogic_stage/action.yml" + + +def main() -> int: + workflow = WORKFLOW_FILE.read_text(encoding="utf-8") + action = ACTION_FILE.read_text(encoding="utf-8") + + checks = { + "stage workflow passes matrix.size to test_sqllogic_stage": ( + "size: ${{ matrix.size }}" in workflow + ), + "test_sqllogic_stage action declares a size input": ("\n size:\n" in action), + "test_sqllogic_stage action exports TEST_STAGE_SIZE": ( + "TEST_STAGE_SIZE: ${{ inputs.size }}" in action + ), + } + + failures = [name for name, ok in checks.items() if not ok] + if failures: + for failure in failures: + print(f"missing check: {failure}", file=sys.stderr) + return 1 + + print("sqllogic stage size wiring checks passed") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/.github/workflows/reuse.sqllogic.yml b/.github/workflows/reuse.sqllogic.yml index f7c7da0fd4ca5..d04d4e82d8a4f 100644 --- a/.github/workflows/reuse.sqllogic.yml +++ b/.github/workflows/reuse.sqllogic.yml @@ -323,6 +323,7 @@ jobs: dirs: stage handlers: ${{ matrix.handler }} dedup: ${{ matrix.dedup }} + size: ${{ matrix.size }} - name: Upload failure if: failure() uses: ./.github/actions/artifact_failure diff --git a/Makefile b/Makefile index 37ee5d3606395..9196c0d483e43 100644 --- a/Makefile +++ b/Makefile @@ -26,6 +26,7 @@ lint: lint-yaml: yamllint -f auto . + python3 .github/scripts/check_sqllogic_stage_size_wiring.py check-license: docker run -it --rm -v $(CURDIR):/github/workspace ghcr.io/korandoru/hawkeye-native:v2 check --config licenserc.toml && \ From 3ca9cc60676d4c0045aeccb68234a3a97f400f26 Mon Sep 17 00:00:00 2001 From: sundyli <543950155@qq.com> Date: Thu, 16 Apr 2026 09:49:27 +0000 Subject: [PATCH 2/3] test: fix sqllogic stage large expectations --- .../check_sqllogic_stage_size_wiring.py | 37 ------------------- Makefile | 1 - .../formats/parquet/parquet_metadata.test | 6 +-- .../formats/parquet/parquet_to_variant.test | 6 +-- 4 files changed, 6 insertions(+), 44 deletions(-) delete mode 100644 .github/scripts/check_sqllogic_stage_size_wiring.py diff --git a/.github/scripts/check_sqllogic_stage_size_wiring.py b/.github/scripts/check_sqllogic_stage_size_wiring.py deleted file mode 100644 index 04441914e7ba6..0000000000000 --- a/.github/scripts/check_sqllogic_stage_size_wiring.py +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env python3 - -from pathlib import Path -import sys - - -REPO_ROOT = Path(__file__).resolve().parents[2] -WORKFLOW_FILE = REPO_ROOT / ".github/workflows/reuse.sqllogic.yml" -ACTION_FILE = REPO_ROOT / ".github/actions/test_sqllogic_stage/action.yml" - - -def main() -> int: - workflow = WORKFLOW_FILE.read_text(encoding="utf-8") - action = ACTION_FILE.read_text(encoding="utf-8") - - checks = { - "stage workflow passes matrix.size to test_sqllogic_stage": ( - "size: ${{ matrix.size }}" in workflow - ), - "test_sqllogic_stage action declares a size input": ("\n size:\n" in action), - "test_sqllogic_stage action exports TEST_STAGE_SIZE": ( - "TEST_STAGE_SIZE: ${{ inputs.size }}" in action - ), - } - - failures = [name for name, ok in checks.items() if not ok] - if failures: - for failure in failures: - print(f"missing check: {failure}", file=sys.stderr) - return 1 - - print("sqllogic stage size wiring checks passed") - return 0 - - -if __name__ == "__main__": - sys.exit(main()) diff --git a/Makefile b/Makefile index 9196c0d483e43..37ee5d3606395 100644 --- a/Makefile +++ b/Makefile @@ -26,7 +26,6 @@ lint: lint-yaml: yamllint -f auto . - python3 .github/scripts/check_sqllogic_stage_size_wiring.py check-license: docker run -it --rm -v $(CURDIR):/github/workspace ghcr.io/korandoru/hawkeye-native:v2 check --config licenserc.toml && \ diff --git a/tests/sqllogictests/suites/stage/formats/parquet/parquet_metadata.test b/tests/sqllogictests/suites/stage/formats/parquet/parquet_metadata.test index 58218063f3e9f..c900985eee307 100644 --- a/tests/sqllogictests/suites/stage/formats/parquet/parquet_metadata.test +++ b/tests/sqllogictests/suites/stage/formats/parquet/parquet_metadata.test @@ -1,9 +1,9 @@ query TIII select metadata$filename, c1, metadata$file_row_number, id from @data_s3/parquet/ii/ order by metadata$filename, c1 limit 3; ---- -parquet/ii/f1.parquet 1 0 1 -parquet/ii/f1.parquet 2 1 2 -parquet/ii/f2.parquet 3 0 3 +parquet/ii/f1.parquet 1 2 1 +parquet/ii/f1.parquet 2 3 2 +parquet/ii/f2.parquet 3 2 3 query TIII diff --git a/tests/sqllogictests/suites/stage/formats/parquet/parquet_to_variant.test b/tests/sqllogictests/suites/stage/formats/parquet/parquet_to_variant.test index 28c6cc4a05bd4..664a265189e33 100644 --- a/tests/sqllogictests/suites/stage/formats/parquet/parquet_to_variant.test +++ b/tests/sqllogictests/suites/stage/formats/parquet/parquet_to_variant.test @@ -9,9 +9,9 @@ parquet/tuple.parquet 3 0 NULL NULL query ??? select * from t order by b; ---- -{"id":1,"t":{"A":1,"B":"a"}} 0 parquet/tuple.parquet -{"id":2,"t":{"A":3,"B":"b"}} 1 parquet/tuple.parquet -{"id":3,"t":{"A":3,"B":"c"}} 2 parquet/tuple.parquet +{"id":1,"t":{"A":1,"B":"a"}} 3 parquet/tuple.parquet +{"id":2,"t":{"A":3,"B":"b"}} 4 parquet/tuple.parquet +{"id":3,"t":{"A":3,"B":"c"}} 5 parquet/tuple.parquet statement ok create or replace stage s1; From 0349c2fb819fbcbd920503c906bde53660aeed94 Mon Sep 17 00:00:00 2001 From: sundyli <543950155@qq.com> Date: Thu, 16 Apr 2026 22:11:52 +0000 Subject: [PATCH 3/3] test: revert incorrect parquet metadata expectations --- .../suites/stage/formats/parquet/parquet_metadata.test | 6 +++--- .../suites/stage/formats/parquet/parquet_to_variant.test | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/sqllogictests/suites/stage/formats/parquet/parquet_metadata.test b/tests/sqllogictests/suites/stage/formats/parquet/parquet_metadata.test index c900985eee307..58218063f3e9f 100644 --- a/tests/sqllogictests/suites/stage/formats/parquet/parquet_metadata.test +++ b/tests/sqllogictests/suites/stage/formats/parquet/parquet_metadata.test @@ -1,9 +1,9 @@ query TIII select metadata$filename, c1, metadata$file_row_number, id from @data_s3/parquet/ii/ order by metadata$filename, c1 limit 3; ---- -parquet/ii/f1.parquet 1 2 1 -parquet/ii/f1.parquet 2 3 2 -parquet/ii/f2.parquet 3 2 3 +parquet/ii/f1.parquet 1 0 1 +parquet/ii/f1.parquet 2 1 2 +parquet/ii/f2.parquet 3 0 3 query TIII diff --git a/tests/sqllogictests/suites/stage/formats/parquet/parquet_to_variant.test b/tests/sqllogictests/suites/stage/formats/parquet/parquet_to_variant.test index 664a265189e33..28c6cc4a05bd4 100644 --- a/tests/sqllogictests/suites/stage/formats/parquet/parquet_to_variant.test +++ b/tests/sqllogictests/suites/stage/formats/parquet/parquet_to_variant.test @@ -9,9 +9,9 @@ parquet/tuple.parquet 3 0 NULL NULL query ??? select * from t order by b; ---- -{"id":1,"t":{"A":1,"B":"a"}} 3 parquet/tuple.parquet -{"id":2,"t":{"A":3,"B":"b"}} 4 parquet/tuple.parquet -{"id":3,"t":{"A":3,"B":"c"}} 5 parquet/tuple.parquet +{"id":1,"t":{"A":1,"B":"a"}} 0 parquet/tuple.parquet +{"id":2,"t":{"A":3,"B":"b"}} 1 parquet/tuple.parquet +{"id":3,"t":{"A":3,"B":"c"}} 2 parquet/tuple.parquet statement ok create or replace stage s1;