Add test case for binding hugeint as UUID #73
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Main | |
| on: | |
| workflow_dispatch: | |
| repository_dispatch: | |
| push: | |
| branches-ignore: | |
| - 'main' | |
| - 'feature' | |
| - 'v*.*-*' | |
| paths-ignore: | |
| - '**.md' | |
| - 'tools/**' | |
| - '!tools/shell/**' | |
| - '.github/patches/duckdb-wasm/**' | |
| - '.github/workflows/**' | |
| - '!.github/workflows/Main.yml' | |
| - '.github/config/out_of_tree_extensions.cmake' | |
| merge_group: | |
| pull_request: | |
| types: [opened, reopened, ready_for_review, converted_to_draft] | |
| paths-ignore: | |
| - '**.md' | |
| - 'tools/**' | |
| - '!tools/shell/**' | |
| - '.github/patches/duckdb-wasm/**' | |
| - '.github/workflows/**' | |
| - '!.github/workflows/Main.yml' | |
| - '.github/config/out_of_tree_extensions.cmake' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || '' }}-${{ github.base_ref || '' }}-${{ github.ref != 'refs/heads/main' || github.sha }} | |
| cancel-in-progress: true | |
| env: | |
| GH_TOKEN: ${{ secrets.GH_TOKEN }} | |
| jobs: | |
| check-draft: | |
| # We run all other jobs on PRs only if they are not draft PR | |
| if: github.event_name != 'pull_request' || github.event.pull_request.draft == false | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Preliminary checks on CI | |
| run: echo "Event name is ${{ github.event_name }}" | |
| linux-debug: | |
| name: Linux Debug | |
| # This tests release build while enabling slow verifiers (masked by #ifdef DEBUG) and sanitizers | |
| needs: check-draft | |
| runs-on: ubuntu-22.04 | |
| env: | |
| CC: gcc-10 | |
| CXX: g++-10 | |
| TREAT_WARNINGS_AS_ERRORS: 1 | |
| GEN: ninja | |
| CRASH_ON_ASSERT: 1 | |
| CMAKE_CXX_FLAGS: '-DDEBUG' | |
| FORCE_ASSERT: 1 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - id: describe_step | |
| run: echo "git_describe=$(git describe --tags --long)" >> "$GITHUB_OUTPUT" | |
| - name: Install | |
| shell: bash | |
| run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build | |
| - name: Setup Ccache | |
| uses: hendrikmuhs/ccache-action@main | |
| with: | |
| key: ${{ github.job }} | |
| save: ${{ vars.BRANCHES_TO_BE_CACHED == '' || contains(vars.BRANCHES_TO_BE_CACHED, github.ref) }} | |
| - name: Build | |
| shell: bash | |
| run: make release | |
| - name: Output version info | |
| shell: bash | |
| run: ./build/release/duckdb -c "PRAGMA version;" | |
| - name: Set DUCKDB_INSTALL_LIB for ADBC tests | |
| shell: bash | |
| run: echo "DUCKDB_INSTALL_LIB=$(find `pwd` -name "libduck*.so" | head -n 1)" >> $GITHUB_ENV | |
| - name: Test DUCKDB_INSTALL_LIB variable | |
| run: echo $DUCKDB_INSTALL_LIB | |
| - name: Test | |
| shell: bash | |
| run: | | |
| python3 scripts/run_tests_one_by_one.py build/release/test/unittest --tests-per-invocation 100 | |
| linux-release: | |
| name: Linux Release (full suite) | |
| needs: check-draft | |
| runs-on: ubuntu-24.04 | |
| env: | |
| GEN: ninja | |
| BUILD_JEMALLOC: 1 | |
| CORE_EXTENSIONS: "icu;tpch;tpcds;fts;json;inet" | |
| DISABLE_SANITIZER: 1 | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Install | |
| shell: bash | |
| run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build | |
| - name: Setup Ccache | |
| uses: hendrikmuhs/ccache-action@main | |
| with: | |
| key: ${{ github.job }} | |
| save: ${{ vars.BRANCHES_TO_BE_CACHED == '' || contains(vars.BRANCHES_TO_BE_CACHED, github.ref) }} | |
| - name: Build | |
| shell: bash | |
| run: make release | |
| - name: Test | |
| shell: bash | |
| run: make allunit | |
| no-string-inline: | |
| name: No String Inline / Destroy Unpinned Blocks | |
| runs-on: ubuntu-24.04 | |
| needs: linux-configs | |
| env: | |
| GEN: ninja | |
| CORE_EXTENSIONS: "icu;parquet;tpch;tpcds;fts;json;inet" | |
| DISABLE_STRING_INLINE: 1 | |
| DESTROY_UNPINNED_BLOCKS: 1 | |
| ALTERNATIVE_VERIFY: 1 | |
| DISABLE_POINTER_SALT: 1 | |
| LSAN_OPTIONS: suppressions=${{ github.workspace }}/.sanitizer-leak-suppressions.txt | |
| DUCKDB_TEST_DESCRIPTION: 'Compiled with ALTERNATIVE_VERIFY=1 DISABLE_STRING_INLINE=1 DESTROY_UNPINNED_BLOCKS=1 DISABLE_POINTER_SALT=1. Use require no_alternative_verify to skip.' | |
| steps: | |
| - uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| - name: Install | |
| shell: bash | |
| run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build | |
| - name: Setup Ccache | |
| uses: hendrikmuhs/ccache-action@main | |
| with: | |
| key: ${{ github.job }} | |
| save: ${{ vars.BRANCHES_TO_BE_CACHED == '' || contains(vars.BRANCHES_TO_BE_CACHED, github.ref) }} | |
| - name: Build | |
| shell: bash | |
| run: make relassert | |
| - name: Test | |
| shell: bash | |
| run: build/relassert/test/unittest | |
| vector-sizes: | |
| name: Vector Sizes | |
| runs-on: ubuntu-22.04 | |
| needs: linux-configs | |
| env: | |
| CC: gcc-10 | |
| CXX: g++-10 | |
| GEN: ninja | |
| DUCKDB_TEST_DESCRIPTION: 'Compiled with STANDARD_VECTOR_SIZE=2. Use require vector_size 2048 to skip tests.' | |
| steps: | |
| - name: Clean up the disc space | |
| shell: bash | |
| run: | | |
| echo "Disk usage before clean up:" | |
| df -h | |
| rm -rf /opt/hostedtoolcache/CodeQL Java* Pypy Ruby go node | |
| echo "Disk usage after clean up:" | |
| df -h | |
| - uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| - name: Install | |
| shell: bash | |
| run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build | |
| - name: Setup Ccache | |
| uses: hendrikmuhs/ccache-action@main | |
| with: | |
| key: ${{ github.job }} | |
| save: ${{ vars.BRANCHES_TO_BE_CACHED == '' || contains(vars.BRANCHES_TO_BE_CACHED, github.ref) }} | |
| - name: Build | |
| shell: bash | |
| run: STANDARD_VECTOR_SIZE=2 make reldebug | |
| - name: Test | |
| shell: bash | |
| run: | | |
| python3 scripts/run_tests_one_by_one.py build/reldebug/test/unittest --no-exit --time_execution | |
| valgrind: | |
| name: Valgrind | |
| if: ${{ !startsWith(github.ref, 'refs/tags/v') }} | |
| runs-on: ubuntu-24.04 | |
| needs: linux-configs | |
| env: | |
| CC: clang | |
| CXX: clang++ | |
| DISABLE_SANITIZER: 1 | |
| BUILD_JEMALLOC: 1 | |
| CORE_EXTENSIONS: 'icu;json;parquet;tpch' | |
| GEN: ninja | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install | |
| shell: bash | |
| run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build valgrind clang | |
| - name: Setup Ccache | |
| uses: hendrikmuhs/ccache-action@main | |
| with: | |
| key: ${{ github.job }} | |
| save: ${{ vars.BRANCHES_TO_BE_CACHED == '' || contains(vars.BRANCHES_TO_BE_CACHED, github.ref) }} | |
| - name: Build | |
| shell: bash | |
| run: make relassert | |
| - name: Output version info | |
| shell: bash | |
| run: ./build/relassert/duckdb -c "PRAGMA version;" | |
| - name: Test | |
| shell: bash | |
| run: valgrind ./build/relassert/test/unittest test/sql/tpch/tpch_sf001.test_slow | |
| threadsan: | |
| name: Thread Sanitizer | |
| needs: linux-configs | |
| runs-on: ubuntu-24.04 | |
| env: | |
| CC: clang | |
| CXX: clang++ | |
| GEN: ninja | |
| BUILD_JEMALLOC: 1 | |
| CORE_EXTENSIONS: "icu;tpch;tpcds;fts;json;inet" | |
| TSAN_OPTIONS: suppressions=${{ github.workspace }}/.sanitizer-thread-suppressions.txt | |
| DUCKDB_TEST_DESCRIPTION: 'Tests run with thread sanitizer.' | |
| steps: | |
| - uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| - name: Install | |
| shell: bash | |
| run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build clang | |
| - name: Setup Ccache | |
| uses: hendrikmuhs/ccache-action@main | |
| with: | |
| key: ${{ github.job }} | |
| save: ${{ vars.BRANCHES_TO_BE_CACHED == '' || contains(vars.BRANCHES_TO_BE_CACHED, github.ref) }} | |
| - name: Build | |
| shell: bash | |
| run: THREADSAN=1 make reldebug | |
| - name: Test | |
| shell: bash | |
| run: | | |
| python3 scripts/run_tests_one_by_one.py build/reldebug/test/unittest --no-exit --timeout 600 | |
| python3 scripts/run_tests_one_by_one.py build/reldebug/test/unittest "[intraquery]" --no-exit --timeout 600 | |
| python3 scripts/run_tests_one_by_one.py build/reldebug/test/unittest "[interquery]" --no-exit --timeout 1800 | |
| python3 scripts/run_tests_one_by_one.py build/reldebug/test/unittest "[interquery]" --no-exit --timeout 1800 --force-storage | |
| python3 scripts/run_tests_one_by_one.py build/reldebug/test/unittest "[interquery]" --no-exit --timeout 1800 --force-storage --force-reload | |
| python3 scripts/run_tests_one_by_one.py build/reldebug/test/unittest "[detailed_profiler]" --no-exit --timeout 600 | |
| python3 scripts/run_tests_one_by_one.py build/reldebug/test/unittest test/sql/tpch/tpch_sf01.test_slow --no-exit --timeout 600 | |
| amalgamation-tests: | |
| name: Amalgamation Tests | |
| runs-on: ubuntu-22.04 | |
| needs: check-draft | |
| env: | |
| CC: clang | |
| CXX: clang++ | |
| steps: | |
| - uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| ref: ${{ github.ref }} | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install LLVM and Clang | |
| uses: KyleMayes/install-llvm-action@v1 | |
| with: | |
| version: "14.0" | |
| - name: Generate Amalgamation | |
| shell: bash | |
| run: | | |
| python scripts/amalgamation.py --extended | |
| clang++ -std=c++17 -Isrc/amalgamation src/amalgamation/duckdb.cpp -emit-llvm -S -O0 | |
| # TODO: Bring back BLOCK_VERIFICATION: 1, and consider bringing back fts | |
| # TODO: DEBUG_STACKTRACE: 1 + reldebug ? | |
| linux-configs: | |
| name: Tests a release build with different configurations | |
| runs-on: ubuntu-24.04 | |
| needs: check-draft | |
| env: | |
| BASE_BRANCH: ${{ github.base_ref || 'main' }} | |
| steps: | |
| - uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install Ninja | |
| shell: bash | |
| run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build | |
| - name: Setup Ccache | |
| uses: hendrikmuhs/ccache-action@main | |
| with: | |
| key: ${{ github.job }} | |
| save: ${{ vars.BRANCHES_TO_BE_CACHED == '' || contains(vars.BRANCHES_TO_BE_CACHED, github.ref) }} | |
| - name: Build | |
| id: build | |
| shell: bash | |
| env: | |
| CORE_EXTENSIONS: "json;parquet;icu;tpch;tpcds" | |
| GEN: ninja | |
| run: make | |
| - name: test/configs/encryption.json | |
| if: (success() || failure()) && steps.build.conclusion == 'success' | |
| shell: bash | |
| run: | | |
| ./build/release/test/unittest --test-config test/configs/encryption.json | |
| - name: test/configs/force_storage.json | |
| if: (success() || failure()) && steps.build.conclusion == 'success' | |
| shell: bash | |
| run: | | |
| ./build/release/test/unittest --test-config test/configs/force_storage.json | |
| - name: test/configs/force_storage_restart.json | |
| if: (success() || failure()) && steps.build.conclusion == 'success' | |
| shell: bash | |
| run: | | |
| ./build/release/test/unittest --test-config test/configs/force_storage_restart.json | |
| - name: test/configs/latest_storage.json | |
| if: (success() || failure()) && steps.build.conclusion == 'success' | |
| shell: bash | |
| run: | | |
| ./build/release/test/unittest --test-config test/configs/latest_storage.json | |
| - name: test/configs/verify_fetch_row.json | |
| if: (success() || failure()) && steps.build.conclusion == 'success' | |
| shell: bash | |
| run: | | |
| ./build/release/test/unittest --test-config test/configs/verify_fetch_row.json | |
| - name: test/configs/wal_verification.json | |
| if: (success() || failure()) && steps.build.conclusion == 'success' | |
| shell: bash | |
| run: | | |
| ./build/release/test/unittest --test-config test/configs/wal_verification.json | |
| - name: test/configs/prefetch_all_parquet_files.json | |
| if: (success() || failure()) && steps.build.conclusion == 'success' | |
| shell: bash | |
| run: | | |
| ./build/release/test/unittest --test-config test/configs/prefetch_all_parquet_files.json | |
| - name: test/configs/no_local_filesystem.json | |
| if: (success() || failure()) && steps.build.conclusion == 'success' | |
| shell: bash | |
| run: | | |
| ./build/release/test/unittest --test-config test/configs/no_local_filesystem.json | |
| - name: test/configs/block_size_16kB.json | |
| if: (success() || failure()) && steps.build.conclusion == 'success' | |
| shell: bash | |
| run: | | |
| ./build/release/test/unittest --test-config test/configs/block_size_16kB.json | |
| - name: test/configs/latest_storage_block_size_16kB.json | |
| if: (success() || failure()) && steps.build.conclusion == 'success' | |
| shell: bash | |
| run: | | |
| ./build/release/test/unittest --test-config test/configs/latest_storage_block_size_16kB.json | |
| - name: test/configs/enable_verification.json | |
| if: (success() || failure()) && steps.build.conclusion == 'success' | |
| shell: bash | |
| run: | | |
| ./build/release/test/unittest --test-config test/configs/enable_verification.json | |
| - name: Test dictionary_expression | |
| if: (success() || failure()) && steps.build.conclusion == 'success' | |
| shell: bash | |
| run: | | |
| ./build/release/test/unittest --verify-vector dictionary_expression --skip-compiled | |
| - name: Test dictionary_operator | |
| if: (success() || failure()) && steps.build.conclusion == 'success' | |
| shell: bash | |
| run: | | |
| ./build/release/test/unittest --verify-vector dictionary_operator --skip-compiled | |
| - name: Test constant_operator | |
| if: (success() || failure()) && steps.build.conclusion == 'success' | |
| shell: bash | |
| run: | | |
| ./build/release/test/unittest --verify-vector constant_operator --skip-compiled | |
| - name: Test sequence_operator | |
| if: (success() || failure()) && steps.build.conclusion == 'success' | |
| shell: bash | |
| run: | | |
| ./build/release/test/unittest --verify-vector sequence_operator --skip-compiled | |
| - name: Test nested_shuffle | |
| if: (success() || failure()) && steps.build.conclusion == 'success' | |
| shell: bash | |
| run: | | |
| ./build/release/test/unittest --verify-vector nested_shuffle --skip-compiled | |
| - name: Test variant_vector | |
| if: (success() || failure()) && steps.build.conclusion == 'success' | |
| shell: bash | |
| run: | | |
| ./build/release/test/unittest --test-config test/configs/variant_vector.json | |
| - name: Test variant_vector | |
| if: (success() || failure()) && steps.build.conclusion == 'success' | |
| shell: bash | |
| run: | | |
| ./build/release/test/unittest --test-config test/configs/compressed_in_memory.json | |
| - name: Test block prefetching | |
| if: (success() || failure()) && steps.build.conclusion == 'success' | |
| shell: bash | |
| run: | | |
| ./build/release/test/unittest --test-config test/configs/prefetch_all_storage.json | |
| - name: Test peg_parser | |
| if: (success() || failure()) && steps.build.conclusion == 'success' | |
| shell: bash | |
| run: | | |
| ./build/release/test/unittest --test-config test/configs/peg_parser.json |