diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index b546077..0f9e029 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1 @@ -* @ChuckHend @ianstanton @ryw @sjmiller609 @nhudson +* @ChuckHend diff --git a/.github/actions/build-and-push-to-quay/action.yml b/.github/actions/build-and-push-to-quay/action.yml deleted file mode 100644 index 56a449a..0000000 --- a/.github/actions/build-and-push-to-quay/action.yml +++ /dev/null @@ -1,124 +0,0 @@ -name: 'Build and push to Quay' -description: 'Builds a container image and pushes it to our Quay organization' -inputs: - image_name: - description: 'The name of the image, not including the registry or the tag, for example "postgres"' - required: true - registry: - description: 'The name of the image, not including the registry or the tag, for example "postgres"' - required: false - default: "quay.io/tembo" - docker_directory: - description: 'The relative path to a directory in which there is a Dockerfile' - required: false - default: '.' - quay_user: - required: true - description: "Quay 'robot user' user name" - quay_password: - required: true - description: "Quay 'robot user' access token" - publish_calver: - description: 'Should we tag with calendar versioning?' - required: false - default: false - calver_suffix: - description: 'Optional suffix to the calendar version' - required: false - default: "" - publish_latest: - description: "Should we tag with 'latest'?" - required: false - default: false - tag_cargo_version_if_present: - description: "Should we tag with the version found in Cargo.toml, if found?" - required: false - default: false - tags: - description: "Whitespace-separated tags, not including the registry, for example 'v1' or 'v1 release-1.0'. There are also some default tags provided, please see the other options of this action." - required: false - default: "" -outputs: {} -runs: - using: "composite" - steps: - - name: Install TOML parser - shell: bash - run: | - set -xe - wget https://github.com/freshautomations/stoml/releases/download/v0.7.1/stoml_linux_amd64 - mv stoml_linux_amd64 stoml - chmod +x stoml - sudo mv stoml /usr/local/bin/ - - name: Create whitespace-separated tags list - shell: bash - id: tags - run: | - set -e - - # input tags - TAGS='${{ inputs.tags }}' - SHORT_SHA=$(git rev-parse --short HEAD) - - cd ${{ inputs.docker_directory }} - - if [ "${{ inputs.tag_cargo_version_if_present }}" == "true" ] && test -f "Cargo.toml"; then - echo "Cargo file detected, adding to tags" - VERSION=$(stoml Cargo.toml package.version)-${SHORT_SHA} - TAGS="$TAGS $VERSION" - fi - - # Calendar version - if [ "${{ inputs.publish_calver }}" == "true" ]; then - # A date without leading zeros, for example: - # 2023.1.26 - CAL_VER=$(date '+%Y.%-m.%-d') - TAGS="$TAGS ${CAL_VER}${{ inputs.calver_suffix }}" - fi - - # latest - if [ "${{ inputs.publish_latest }}" == "true" ]; then - TAGS="$TAGS latest" - fi - - # Short Git hash - TAGS="$TAGS ${SHORT_SHA}" - - echo "TAGS=$TAGS" >> $GITHUB_OUTPUT - - name: Run pre-build hooks - shell: bash - run: | - cd ${{ inputs.docker_directory }} - if [[ -f pre-build-hook.sh ]]; then - echo "detected pre-build hook, running" - /bin/bash pre-build-hook.sh - else - echo "no pre build hook detected" - fi - - name: Build image and tag - shell: bash - run: | - set -xe - # Build the image - docker build -t ${{ inputs.image_name }} ${{ inputs.docker_directory }} - # Tag with each tag in the comma-separate list - IFS=' ' read -ra TAG_ARRAY <<< "${{ steps.tags.outputs.TAGS }}" - for tag in "${TAG_ARRAY[@]}"; do - docker tag ${{ inputs.image_name }} ${{ inputs.image_name }}:$tag - done - - name: Login to Quay - uses: docker/login-action@v2 - with: - registry: ${{ inputs.registry }} - username: ${{ inputs.quay_user }} - password: ${{ inputs.quay_password }} - - name: Push to Quay - if: inputs.image_name != 'tembo-pg-cnpg' - shell: bash - run: | - set -xe - IFS=' ' read -ra TAG_ARRAY <<< "${{ steps.tags.outputs.TAGS }}" - for tag in "${TAG_ARRAY[@]}"; do - docker tag ${{ inputs.image_name }}:$tag ${{ inputs.registry}}/${{ inputs.image_name }}:$tag - docker push ${{ inputs.registry}}/${{ inputs.image_name }}:$tag - done diff --git a/.github/actions/find-changed-directories/action.yml b/.github/actions/find-changed-directories/action.yml deleted file mode 100644 index 49b5452..0000000 --- a/.github/actions/find-changed-directories/action.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: 'Find changed directories' -description: 'Finds directories containing a specific filename in the root of that directory, filtering out directories that are unchanged relative to a given branch name' -inputs: - contains_the_file: - description: 'Look for directories with this file in the root of that directory. For example, Dockerfile or Cargo.toml' - required: true - fetch_branch_to_compare: - description: 'The branch to fetch when looking to compare a ref, typically main' - default: "main" - required: true - changed_relative_to_ref: - description: 'The ref on the fetched branch to compare with to determine if this directory has changed. For example "origin/main" or a git commit hash.' - required: true - ignore_dirs: - description: A list of directories to ignore. - required: false - default: '' -outputs: - build_matrix: - description: "Input this output to your matrix build in a following job, like this 'fromJson(needs.find_directories.outputs.build_matrix)'" - value: ${{ steps.find_directories.outputs.build_matrix }} -runs: - using: "composite" - steps: - - name: Find directories with a given file name - shell: bash - id: find_directories - run: | - set -xe - git fetch origin ${{ inputs.fetch_branch_to_compare }} || true - # Get directories with a Dockerfile that have not changed - # relative to the branch we are pulling into - echo "${{inputs.ignore_dirs}}" - IFS=', ' read -r -a array <<< "${{inputs.ignore_dirs}}" - EXCLUDE_OPTS=() - for exclude_dir in "${array[@]}"; do - EXCLUDE_OPTS+=("-not" "-path" "*/$exclude_dir/*") - done - directories=$( - find . -name ${{ inputs.contains_the_file }} -not -path "*/target/*" -not -path "*/.github/*" "${EXCLUDE_OPTS[@]}" -exec dirname {} \; | while read dir; do - # This will check if the directory has changed relative to the branch we are PRing - # into, and if it's not a PR, in the case of main or release/**, then it will - # build all docker directories - if git diff --quiet HEAD ${{ inputs.changed_relative_to_ref }} -- "$dir"; then - echo "" - else - echo "$dir" - fi - done) - # Format directories into a build matrix - matrix_include=$(echo "${directories}" | awk 'NF{print $NF};' | while read dir; do dir_without_dot=$(basename ${dir}); echo "{\"path\": \"$dir\", \"name\": \"$dir_without_dot\"}"; done | jq -scM '{"include": .}') - echo "${matrix_include}" - echo "build_matrix=${matrix_include}" >> $GITHUB_OUTPUT diff --git a/.github/actions/pgx-init/action.yml b/.github/actions/pgx-init/action.yml index a5644af..7ab9477 100644 --- a/.github/actions/pgx-init/action.yml +++ b/.github/actions/pgx-init/action.yml @@ -8,6 +8,11 @@ outputs: {} runs: using: "composite" steps: + - name: OS dependencies + shell: bash + run: | + sudo apt-get update + sudo apt-get install -y build-essential libreadline-dev zlib1g-dev flex bison libxml2-dev libxslt-dev libssl-dev libxml2-utils xsltproc ccache pkg-config - name: Install TOML parser shell: bash run: | diff --git a/.github/workflows/pg-image-build.yml b/.github/workflows/pg-image-build.yml new file mode 100644 index 0000000..645c7a3 --- /dev/null +++ b/.github/workflows/pg-image-build.yml @@ -0,0 +1,207 @@ +name: Build Postgres with pg_later + +defaults: + run: + shell: bash + +on: + pull_request: + branches: + - main + push: + branches: + - main + tags: ['v[0-9]+.[0-9]+.[0-9]+'] +jobs: + build_and_push_amd64: + name: Build and push AMD64 images + if: github.repository_owner == 'ChuckHend' + runs-on: + - ubuntu-latest + outputs: + short_sha: ${{ steps.versions.outputs.SHORT_SHA }} + steps: + - name: Checkout + uses: actions/checkout@v5 + + - name: Install stoml + shell: bash + run: | + set -xe + sudo apt-get update + sudo apt-get install -y wget + wget https://github.com/freshautomations/stoml/releases/download/v0.7.1/stoml_linux_amd64 &> /dev/null + mv stoml_linux_amd64 stoml + chmod +x stoml + sudo mv stoml /usr/local/bin/ + - name: Set version strings + id: versions + run: | + echo "SHORT_SHA=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT + echo "TAG_VER=$(/usr/local/bin/stoml Cargo.toml package.version)" >> $GITHUB_OUTPUT + echo "PGRX_VER=$(/usr/local/bin/stoml Cargo.toml dependencies.pgrx | tr -d '="')" >> $GITHUB_OUTPUT + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push -- Commit + # push commit build when not a release + if: github.event_name != 'release' + run: | + docker build \ + --build-arg PGRX_VER=${{ steps.versions.outputs.PGRX_VER }} \ + -f ./images/pglater-pg/Dockerfile \ + -t ghcr.io/chuckhend/pglater-pg:${{ steps.versions.outputs.SHORT_SHA }}-amd64 . + docker push ghcr.io/chuckhend/pglater-pg:${{ steps.versions.outputs.SHORT_SHA }}-amd64 + + - name: Build and push -- Release + if: github.event_name == 'release' + run: | + docker build \ + --build-arg PGRX_VER=${{ steps.versions.outputs.PGRX_VER }} \ + -f ./images/pglater-pg/Dockerfile \ + -t ghcr.io/chuckhend/pglater-pg:v${{ steps.versions.outputs.TAG_VER }}-amd64 \ + -t ghcr.io/chuckhend/pglater-pg:latest-amd64 . + docker push ghcr.io/chuckhend/pglater-pg:v${{ steps.versions.outputs.TAG_VER }}-amd64 + docker push ghcr.io/chuckhend/pglater-pg:latest-amd64 + + build_and_push_arm64: + name: Build and push ARM64 images + if: github.repository_owner == 'ChuckHend' + runs-on: + - ubicloud-standard-2-arm-ubuntu-2204 + outputs: + short_sha: ${{ steps.versions.outputs.SHORT_SHA }} + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Install stoml + shell: bash + run: | + set -xe + sudo apt-get update + sudo apt-get install -y wget + wget https://github.com/freshautomations/stoml/releases/download/v0.7.1/stoml_linux_armv7 &> /dev/null + mv stoml_linux_armv7 stoml + chmod +x stoml + sudo mv stoml /usr/local/bin/ + - name: Set version strings + id: versions + run: | + echo "SHORT_SHA=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT + echo "TAG_VER=$(/usr/local/bin/stoml Cargo.toml package.version)" >> $GITHUB_OUTPUT + echo "PGRX_VER=$(/usr/local/bin/stoml Cargo.toml dependencies.pgrx | tr -d '="')" >> $GITHUB_OUTPUT + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push -- Commit + # push commit build when not a release + if: github.event_name != 'release' + run: | + docker build \ + --build-arg PGRX_VER=${{ steps.versions.outputs.PGRX_VER }} \ + -f ./images/pglater-pg/Dockerfile \ + --platform linux/arm64 \ + -t ghcr.io/chuckhend/pglater-pg:${{ steps.versions.outputs.SHORT_SHA }}-arm64 . + docker push ghcr.io/chuckhend/pglater-pg:${{ steps.versions.outputs.SHORT_SHA }}-arm64 + + - name: Build and push -- Release + if: github.event_name == 'release' + run: | + docker build \ + --build-arg PGRX_VER=${{ steps.versions.outputs.PGRX_VER }} \ + -f ./images/pglater-pg/Dockerfile \ + --platform linux/arm64 \ + -t ghcr.io/chuckhend/pglater-pg:v${{ steps.versions.outputs.TAG_VER }}-arm64 \ + -t ghcr.io/chuckhend/pglater-pg:latest-arm64 . + docker push ghcr.io/chuckhend/pglater-pg:v${{ steps.versions.outputs.TAG_VER }}-arm64 + docker push ghcr.io/chuckhend/pglater-pg:latest-arm64 + + create_manifest: + name: Create and Push Manifest + runs-on: ubuntu-latest + needs: [build_and_push_arm64, build_and_push_amd64] + outputs: + short_sha: ${{ steps.versions.outputs.SHORT_SHA }} + + steps: + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Install stoml + shell: bash + run: | + set -xe + sudo apt-get update + sudo apt-get install -y wget + wget https://github.com/freshautomations/stoml/releases/download/v0.7.1/stoml_linux_amd64 &> /dev/null + mv stoml_linux_amd64 stoml + chmod +x stoml + sudo mv stoml /usr/local/bin/ + - name: Set version strings + id: versions + run: | + echo "SHORT_SHA=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT + echo "TAG_VER=$(/usr/local/bin/stoml Cargo.toml package.version)" >> $GITHUB_OUTPUT + + - name: Create and push Docker manifest -- Commit + if: github.event_name != 'release' + run: | + docker manifest create ghcr.io/chuckhend/pglater-pg:${{ steps.versions.outputs.SHORT_SHA }} \ + ghcr.io/chuckhend/pglater-pg:${{ steps.versions.outputs.SHORT_SHA }}-arm64 \ + ghcr.io/chuckhend/pglater-pg:${{ steps.versions.outputs.SHORT_SHA }}-amd64 + + docker manifest annotate ghcr.io/chuckhend/pglater-pg:${{ steps.versions.outputs.SHORT_SHA }} ghcr.io/chuckhend/pglater-pg:${{ steps.versions.outputs.SHORT_SHA }}-arm64 --arch arm64 --os linux + docker manifest annotate ghcr.io/chuckhend/pglater-pg:${{ steps.versions.outputs.SHORT_SHA }} ghcr.io/chuckhend/pglater-pg:${{ steps.versions.outputs.SHORT_SHA }}-amd64 --arch amd64 --os linux + docker manifest push ghcr.io/chuckhend/pglater-pg:${{ steps.versions.outputs.SHORT_SHA }} + + - name: Create and push Docker manifest -- Release + if: github.event_name == 'release' + run: | + docker manifest create ghcr.io/chuckhend/pglater-pg:latest \ + ghcr.io/chuckhend/pglater-pg:latest-arm64 \ + ghcr.io/chuckhend/pglater-pg:latest-amd64 + + docker manifest annotate ghcr.io/chuckhend/pglater-pg:latest ghcr.io/chuckhend/pglater-pg:latest-arm64 --arch arm64 --os linux + docker manifest annotate ghcr.io/chuckhend/pglater-pg:latest ghcr.io/chuckhend/pglater-pg:latest-amd64 --arch amd64 --os linux + docker manifest push ghcr.io/chuckhend/pglater-pg:latest + + docker manifest create ghcr.io/chuckhend/pglater-pg:v${{ steps.versions.outputs.TAG_VER }} \ + ghcr.io/chuckhend/pglater-pg:v${{ steps.versions.outputs.TAG_VER }}-arm64 \ + ghcr.io/chuckhend/pglater-pg:v${{ steps.versions.outputs.TAG_VER }}-amd64 + + docker manifest annotate ghcr.io/chuckhend/pglater-pg:v${{ steps.versions.outputs.TAG_VER }} ghcr.io/chuckhend/pglater-pg:v${{ steps.versions.outputs.TAG_VER }}-arm64 --arch arm64 --os linux + docker manifest annotate ghcr.io/chuckhend/pglater-pg:v${{ steps.versions.outputs.TAG_VER }} ghcr.io/chuckhend/pglater-pg:v${{ steps.versions.outputs.TAG_VER }}-amd64 --arch amd64 --os linux + docker manifest push ghcr.io/chuckhend/pglater-pg:v${{ steps.versions.outputs.TAG_VER }} diff --git a/.github/workflows/pg_later_ext.yml b/.github/workflows/pg_later_ext.yml index 4c01b5b..0aad79f 100644 --- a/.github/workflows/pg_later_ext.yml +++ b/.github/workflows/pg_later_ext.yml @@ -22,47 +22,14 @@ on: - created jobs: - dependencies: - name: Install dependencies - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v2 - - # rust needed to install trunk - - name: Install Rust stable toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - cache-directories: /home/runner/.pgrx - - - name: Install stoml and pg-trunk - shell: bash - run: | - set -xe - wget https://github.com/freshautomations/stoml/releases/download/v0.7.1/stoml_linux_amd64 &> /dev/null - mv stoml_linux_amd64 stoml - chmod +x stoml - sudo mv stoml /usr/local/bin/ - cargo install pg-trunk - - name: Cache binaries - uses: actions/cache@v2 - with: - path: | - /usr/local/bin/stoml - ~/.cargo/bin/trunk - key: ${{ runner.os }}-bins-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-bins- lint: name: Run linters - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v5 - name: Install Rust minimal nightly with clippy and rustfmt - uses: actions-rs/toolchain@v1 + uses: dtolnay/rust-toolchain@stable with: - profile: minimal - toolchain: nightly components: rustfmt, clippy - uses: Swatinem/rust-cache@v2 with: @@ -76,20 +43,19 @@ jobs: with: working-directory: ./ - name: Cargo format - run: cargo +nightly fmt --all --check + run: cargo fmt --all --check - name: Clippy run: cargo clippy test: name: Run tests - needs: dependencies - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v5 - name: Install Rust stable toolchain - uses: actions-rs/toolchain@v1 + uses: dtolnay/rust-toolchain@stable with: - toolchain: stable + components: clippy,rustfmt - uses: Swatinem/rust-cache@v2 with: prefix-key: "pg_later-extension-test" @@ -101,15 +67,6 @@ jobs: - uses: ./.github/actions/pgx-init with: working-directory: ./ - - name: Restore cached binaries - uses: actions/cache@v2 - with: - path: | - /usr/local/bin/stoml - ~/.cargo/bin/trunk - key: ${{ runner.os }}-bins-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-bins- - name: test run: | make setup @@ -120,92 +77,9 @@ jobs: run: | set +e set -x - echo "==== pg17 logs ======" - cat ~/.pgrx/17.log - echo "==== pg17 conf ======" - tail -10 ~/.pgrx/data-17/postgresql.conf + echo "==== pg18 logs ======" + cat ~/.pgrx/18.log + echo "==== pg18 conf ======" + tail -10 ~/.pgrx/data-18/postgresql.conf echo "==== .pgrx dir ======" ls -alh ~/.pgrx - - publish: - if: github.event_name == 'release' - name: trunk publish - needs: dependencies - runs-on: ubuntu-22.04 - strategy: - matrix: - pg-version: [14, 15, 16, 17] - steps: - - uses: actions/checkout@v2 - - name: Install Rust stable toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - - uses: Swatinem/rust-cache@v2 - with: - prefix-key: "pg_later-extension-test" - workspaces: | - pg_later/extension - # Additional directories to cache - cache-directories: | - /home/runner/.pgrx - - name: Restore cached binaries - uses: actions/cache@v2 - with: - path: | - /usr/local/bin/stoml - ~/.cargo/bin/trunk - key: ${{ runner.os }}-bins-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-bins- - - name: trunk build - working-directory: ./ - run: | - cargo install pg-trunk --force - ~/.cargo/bin/trunk --version - ~/.cargo/bin/trunk build --pg-version ${{ matrix.pg-version }} - - name: trunk publish - working-directory: ./ - env: - TRUNK_API_TOKEN: ${{ secrets.TRUNK_AUTH_TOKEN }} - run: ~/.cargo/bin/trunk publish - build_and_push: - if: github.event_name == 'release' - name: Build and push images - needs: - - dependencies - runs-on: ubuntu-22.04 - outputs: - short_sha: ${{ steps.versions.outputs.SHORT_SHA }} - steps: - - name: Check out the repo - uses: actions/checkout@v3 - - name: Install stoml and pg-trunk - shell: bash - run: | - set -xe - wget https://github.com/freshautomations/stoml/releases/download/v0.7.1/stoml_linux_amd64 &> /dev/null - mv stoml_linux_amd64 stoml - chmod +x stoml - sudo mv stoml /usr/local/bin/ - - name: Set version strings - id: versions - run: | - echo "SHORT_SHA=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - echo "TAG_VER=$(/usr/local/bin/stoml Trunk.toml extension.version)" >> $GITHUB_OUTPUT - echo "PGRX_VER=$(/usr/local/bin/stoml Cargo.toml dependencies.pgrx)" >> $GITHUB_OUTPUT - - name: Build and upload image - run: | - docker build --build-arg="PGRX_VER=${{ steps.versions.outputs.PGRX_VER }}" -t pglater-pg -f images/pglater-pg/Dockerfile . - docker tag pglater-pg quay.io/tembo/pglater-pg:v${{ steps.versions.outputs.TAG_VER }} - docker tag pglater-pg quay.io/tembo/pglater-pg:latest - - name: Login to Quay - uses: docker/login-action@v2 - with: - registry: quay.io/tembo - username: ${{ secrets.QUAY_USER_TEMBO }} - password: ${{ secrets.QUAY_PASSWORD_TEMBO }} - - name: Push image - run: | - docker push quay.io/tembo/pglater-pg:v${{ steps.versions.outputs.TAG_VER }} - docker push quay.io/tembo/pglater-pg:latest diff --git a/.github/workflows/pgxn-release.yml b/.github/workflows/pgxn-release.yml index d6e59bb..3b2c7d6 100644 --- a/.github/workflows/pgxn-release.yml +++ b/.github/workflows/pgxn-release.yml @@ -10,7 +10,7 @@ jobs: container: pgxn/pgxn-tools steps: - name: Check out the repo - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Bundle the Release env: { GIT_BUNDLE_OPTS: --add-file META.json } run: make META.json && pgxn-bundle diff --git a/Cargo.lock b/Cargo.lock index cd39fd7..c977b99 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" @@ -61,12 +61,12 @@ dependencies = [ [[package]] name = "annotate-snippets" -version = "0.9.2" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccaf7e9dfbb6ab22c82e473cd1a8a7bd313c19a5b7e40970f3d89ef5a5c9e81e" +checksum = "710e8eae58854cdc1790fcb56cca04d712a17be849eeb81da2a724bf4bae2bc4" dependencies = [ + "anstyle", "unicode-width", - "yansi-term", ] [[package]] @@ -101,16 +101,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "atomic-traits" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b29ec3788e96fb4fdb275ccb9d62811f2fa903d76c5eb4dd6fe7d09a7ed5871f" -dependencies = [ - "cfg-if", - "rustc_version", -] - [[package]] name = "autocfg" version = "1.4.0" @@ -146,9 +136,9 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "bindgen" -version = "0.70.1" +version = "0.71.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" +checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" dependencies = [ "annotate-snippets", "bitflags", @@ -180,11 +170,11 @@ checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" [[package]] name = "bitflags" -version = "2.6.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -252,7 +242,7 @@ checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" dependencies = [ "camino", "cargo-platform", - "semver 1.0.24", + "semver", "serde", "serde_json", "thiserror 1.0.69", @@ -260,9 +250,9 @@ dependencies = [ [[package]] name = "cargo_toml" -version = "0.19.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a98356df42a2eb1bd8f1793ae4ee4de48e384dd974ce5eac8eee802edb7492be" +checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" dependencies = [ "serde", "toml", @@ -377,6 +367,15 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" +[[package]] +name = "codepage" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48f68d061bc2828ae826206326e61251aca94c1e4a5305cf52d9138639c918b4" +dependencies = [ + "encoding_rs", +] + [[package]] name = "concurrent-queue" version = "2.5.0" @@ -394,9 +393,9 @@ checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "convert_case" -version = "0.6.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +checksum = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f" dependencies = [ "unicode-segmentation", ] @@ -431,25 +430,6 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" -[[package]] -name = "crossbeam-deque" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - [[package]] name = "crossbeam-queue" version = "0.3.12" @@ -524,6 +504,15 @@ dependencies = [ "serde", ] +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + [[package]] name = "enum-map" version = "2.7.3" @@ -606,9 +595,9 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fixedbitset" -version = "0.4.2" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[package]] name = "flume" @@ -627,6 +616,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + [[package]] name = "form_urlencoded" version = "1.2.1" @@ -686,17 +681,6 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" -[[package]] -name = "futures-macro" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "futures-sink" version = "0.3.31" @@ -717,7 +701,6 @@ checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-core", "futures-io", - "futures-macro", "futures-sink", "futures-task", "memchr", @@ -747,6 +730,18 @@ dependencies = [ "wasi", ] +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", +] + [[package]] name = "gimli" version = "0.31.1" @@ -765,15 +760,6 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b43ede17f21864e81be2fa654110bf1e793774238d86ef8555c37e6519c0403" -[[package]] -name = "hash32" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" -dependencies = [ - "byteorder", -] - [[package]] name = "hashbrown" version = "0.14.5" @@ -789,6 +775,15 @@ name = "hashbrown" version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" [[package]] name = "hashlink" @@ -799,28 +794,12 @@ dependencies = [ "hashbrown 0.14.5", ] -[[package]] -name = "heapless" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" -dependencies = [ - "hash32", - "stable_deref_trait", -] - [[package]] name = "heck" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" - [[package]] name = "hex" version = "0.4.3" @@ -865,7 +844,7 @@ dependencies = [ "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core", + "windows-core 0.52.0", ] [[package]] @@ -1024,23 +1003,12 @@ checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" [[package]] name = "indexmap" -version = "2.7.0" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" +checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" dependencies = [ "equivalent", - "hashbrown 0.15.2", -] - -[[package]] -name = "is-terminal" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.52.0", + "hashbrown 0.16.0", ] [[package]] @@ -1066,9 +1034,9 @@ checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "js-sys" -version = "0.3.76" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" +checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" dependencies = [ "once_cell", "wasm-bindgen", @@ -1085,9 +1053,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.168" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaeb2981e0606ca11d79718f8bb01164f1d6ed75080182d3abf017e6d244b6d" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "libloading" @@ -1118,9 +1086,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.14" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "litemap" @@ -1217,7 +1185,7 @@ dependencies = [ "num-integer", "num-iter", "num-traits", - "rand", + "rand 0.8.5", "smallvec", "zeroize", ] @@ -1252,6 +1220,15 @@ dependencies = [ "libm", ] +[[package]] +name = "objc2-core-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" +dependencies = [ + "bitflags", +] + [[package]] name = "object" version = "0.36.5" @@ -1269,12 +1246,11 @@ checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "owo-colors" -version = "4.1.0" +version = "4.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb37767f6569cd834a413442455e0f066d0d522de8630436e2a1761d9726ba56" +checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52" dependencies = [ - "supports-color 2.1.0", - "supports-color 3.0.2", + "supports-color", ] [[package]] @@ -1337,30 +1313,21 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" -[[package]] -name = "pest" -version = "2.7.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" -dependencies = [ - "memchr", - "thiserror 2.0.7", - "ucd-trie", -] - [[package]] name = "petgraph" -version = "0.6.5" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" dependencies = [ "fixedbitset", + "hashbrown 0.15.2", "indexmap", + "serde", ] [[package]] name = "pg_later" -version = "0.3.0" +version = "0.4.0" dependencies = [ "anyhow", "chrono", @@ -1369,7 +1336,7 @@ dependencies = [ "pgrx", "pgrx-tests", "postgres-types", - "rand", + "rand 0.8.5", "serde", "serde_json", "sqlparser", @@ -1396,17 +1363,14 @@ dependencies = [ [[package]] name = "pgrx" -version = "0.12.5" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39464992d5b3cdda6b390efe51c27e849d2e93c1811e7610cf88f82d5b6a1a23" +checksum = "fdcfb88f7fa9ba42b4ea9d1f85a1d968bbb407cc30308b35f73bdfe6c966f64b" dependencies = [ - "atomic-traits", "bitflags", "bitvec", "enum-map", - "heapless", "libc", - "once_cell", "pgrx-macros", "pgrx-pg-sys", "pgrx-sql-entity-graph", @@ -1414,15 +1378,15 @@ dependencies = [ "serde", "serde_cbor", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.7", "uuid", ] [[package]] name = "pgrx-bindgen" -version = "0.12.5" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b03b74332a89c852486c0a53c33e049fb56d7911e251ddd05b7820b2963592" +checksum = "00e35193b7e71e2f612d336cecd00db0f049f4cc609f2b1c9a34755b5ec559d7" dependencies = [ "bindgen", "cc", @@ -1431,6 +1395,7 @@ dependencies = [ "pgrx-pg-config", "proc-macro2", "quote", + "regex", "shlex", "syn", "walkdir", @@ -1438,9 +1403,9 @@ dependencies = [ [[package]] name = "pgrx-macros" -version = "0.12.5" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "822e16af0dfc820dbd407b19538fde0def27c7d1913dea47a42c040c8bcf8b56" +checksum = "dab542dd4041773874f90cd8e3448195749548dc3fb1daf501e7e11ebfb1dd22" dependencies = [ "pgrx-sql-entity-graph", "proc-macro2", @@ -1450,27 +1415,29 @@ dependencies = [ [[package]] name = "pgrx-pg-config" -version = "0.12.5" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31061cc1a9f860d1302ba952ccf3b3d0eec59be94f0a32bcc8ba858fdd44a824" +checksum = "eff9b29df94c3f9fcb0cde220f92eea6975ed05962784a98fb557754ad663501" dependencies = [ "cargo_toml", + "codepage", + "encoding_rs", "eyre", - "home", "owo-colors", "pathsearch", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.7", "toml", "url", + "winapi", ] [[package]] name = "pgrx-pg-sys" -version = "0.12.5" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0225f2eeacf00702a705cbeb50252f4279169cd08501f73889b479d23a4250e1" +checksum = "934f2536953ccb6722bef2cfdfb1f8d6d3cd4a4f2c508d56ec85b649c5680c2b" dependencies = [ "cee-scape", "libc", @@ -1478,14 +1445,13 @@ dependencies = [ "pgrx-macros", "pgrx-sql-entity-graph", "serde", - "sptr", ] [[package]] name = "pgrx-sql-entity-graph" -version = "0.12.5" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9c9dfdc4b31b381405b9735b7d674680b42584ea2ef89f3668a21be57a39310" +checksum = "07a767cb9faa612f1ba7f13718136d4006950d6f253b414ef487a03e85c47a94" dependencies = [ "convert_case", "eyre", @@ -1493,15 +1459,15 @@ dependencies = [ "proc-macro2", "quote", "syn", - "thiserror 1.0.69", + "thiserror 2.0.7", "unescape", ] [[package]] name = "pgrx-tests" -version = "0.12.5" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "992bb74e9cd178a55eab23f7a4b890a5427a411bbaf9588c86d435a3664eb4d2" +checksum = "e0d5d5f614a32310af2cc1b9587c69e041d97e8ab812d8d31fdcd3d33d27325c" dependencies = [ "clap-cargo", "eyre", @@ -1513,28 +1479,32 @@ dependencies = [ "pgrx-pg-config", "postgres", "proptest", - "rand", + "rand 0.9.2", "regex", "serde", "serde_json", + "shlex", "sysinfo", - "thiserror 1.0.69", + "tempfile", + "thiserror 2.0.7", + "winapi", ] [[package]] name = "phf" -version = "0.11.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" dependencies = [ "phf_shared", + "serde", ] [[package]] name = "phf_shared" -version = "0.11.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" dependencies = [ "siphasher", ] @@ -1580,9 +1550,9 @@ checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "postgres" -version = "0.19.9" +version = "0.19.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95c918733159f4d55d2ceb262950f00b0aebd6af4aa97b5a47bb0655120475ed" +checksum = "e7c48ece1c6cda0db61b058c1721378da76855140e9214339fa1317decacb176" dependencies = [ "bytes", "fallible-iterator", @@ -1594,9 +1564,9 @@ dependencies = [ [[package]] name = "postgres-protocol" -version = "0.6.7" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acda0ebdebc28befa84bee35e651e4c5f09073d668c7aed4cf7e23c3cda84b23" +checksum = "fbef655056b916eb868048276cfd5d6a7dea4f81560dfd047f97c8c6fe3fcfd4" dependencies = [ "base64", "byteorder", @@ -1605,16 +1575,16 @@ dependencies = [ "hmac", "md-5", "memchr", - "rand", + "rand 0.9.2", "sha2", "stringprep", ] [[package]] name = "postgres-types" -version = "0.2.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f66ea23a2d0e5734297357705193335e0a957696f34bed2f2faefacb2fec336f" +checksum = "ef4605b7c057056dd35baeb6ac0c0338e4975b1f2bef0f65da953285eb007095" dependencies = [ "bytes", "fallible-iterator", @@ -1632,9 +1602,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.92" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" dependencies = [ "unicode-ident", ] @@ -1650,8 +1620,8 @@ dependencies = [ "bitflags", "lazy_static", "num-traits", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "rand_xorshift", "regex-syntax", "rusty-fork", @@ -1667,13 +1637,19 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" -version = "1.0.37" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + [[package]] name = "radium" version = "0.7.0" @@ -1687,8 +1663,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.3", ] [[package]] @@ -1698,45 +1684,44 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", ] [[package]] -name = "rand_core" -version = "0.6.4" +name = "rand_chacha" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ - "getrandom", + "ppv-lite86", + "rand_core 0.9.3", ] [[package]] -name = "rand_xorshift" -version = "0.3.0" +name = "rand_core" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "rand_core", + "getrandom 0.2.15", ] [[package]] -name = "rayon" -version = "1.10.0" +name = "rand_core" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "either", - "rayon-core", + "getrandom 0.3.4", ] [[package]] -name = "rayon-core" -version = "1.12.1" +name = "rand_xorshift" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" dependencies = [ - "crossbeam-deque", - "crossbeam-utils", + "rand_core 0.6.4", ] [[package]] @@ -1790,7 +1775,7 @@ dependencies = [ "num-traits", "pkcs1", "pkcs8", - "rand_core", + "rand_core 0.6.4", "signature", "spki", "subtle", @@ -1805,24 +1790,15 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" -version = "1.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver 0.11.0", -] +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] name = "rustix" -version = "0.38.42" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ "bitflags", "errno", @@ -1831,6 +1807,12 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + [[package]] name = "rusty-fork" version = "0.3.0" @@ -1870,15 +1852,6 @@ version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - [[package]] name = "semver" version = "1.0.24" @@ -1888,21 +1861,13 @@ dependencies = [ "serde", ] -[[package]] -name = "semver-parser" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" -dependencies = [ - "pest", -] - [[package]] name = "serde" -version = "1.0.216" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" dependencies = [ + "serde_core", "serde_derive", ] @@ -1916,11 +1881,20 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + [[package]] name = "serde_derive" -version = "1.0.216" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -1941,11 +1915,11 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.8" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -1995,14 +1969,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest", - "rand_core", + "rand_core 0.6.4", ] [[package]] name = "siphasher" -version = "0.3.11" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "slab" @@ -2032,6 +2006,16 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "socket2" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + [[package]] name = "spin" version = "0.9.8" @@ -2051,12 +2035,6 @@ dependencies = [ "der", ] -[[package]] -name = "sptr" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a" - [[package]] name = "sqlformat" version = "0.2.6" @@ -2198,7 +2176,7 @@ dependencies = [ "memchr", "once_cell", "percent-encoding", - "rand", + "rand 0.8.5", "rsa", "serde", "sha1", @@ -2238,7 +2216,7 @@ dependencies = [ "md-5", "memchr", "once_cell", - "rand", + "rand 0.8.5", "serde", "serde_json", "sha2", @@ -2297,16 +2275,6 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" -[[package]] -name = "supports-color" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6398cde53adc3c4557306a96ce67b302968513830a77a95b2b17305d9719a89" -dependencies = [ - "is-terminal", - "is_ci", -] - [[package]] name = "supports-color" version = "3.0.2" @@ -2340,16 +2308,14 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.30.13" +version = "0.34.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3" +checksum = "a4b93974b3d3aeaa036504b8eefd4c039dced109171c1ae973f1dc63b2c7e4b2" dependencies = [ - "cfg-if", - "core-foundation-sys", "libc", + "memchr", "ntapi", - "once_cell", - "rayon", + "objc2-core-foundation", "windows", ] @@ -2361,12 +2327,12 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.14.0" +version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" dependencies = [ - "cfg-if", "fastrand", + "getrandom 0.3.4", "once_cell", "rustix", "windows-sys 0.59.0", @@ -2448,7 +2414,7 @@ dependencies = [ "libc", "mio", "pin-project-lite", - "socket2", + "socket2 0.5.8", "tokio-macros", "windows-sys 0.52.0", ] @@ -2466,9 +2432,9 @@ dependencies = [ [[package]] name = "tokio-postgres" -version = "0.7.12" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b5d3742945bc7d7f210693b0c58ae542c6fd47b17adbbda0885f3dcb34a6bdb" +checksum = "2b40d66d9b2cfe04b628173409368e58247e8eddbbd3b0e6c6ba1d09f20f6c9e" dependencies = [ "async-trait", "byteorder", @@ -2483,8 +2449,8 @@ dependencies = [ "pin-project-lite", "postgres-protocol", "postgres-types", - "rand", - "socket2", + "rand 0.9.2", + "socket2 0.6.1", "tokio", "tokio-util", "whoami", @@ -2516,38 +2482,43 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.19" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" dependencies = [ - "serde", + "indexmap", + "serde_core", "serde_spanned", "toml_datetime", - "toml_edit", + "toml_parser", + "toml_writer", + "winnow", ] [[package]] name = "toml_datetime" -version = "0.6.8" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" dependencies = [ - "serde", + "serde_core", ] [[package]] -name = "toml_edit" -version = "0.22.22" +name = "toml_parser" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" dependencies = [ - "indexmap", - "serde", - "serde_spanned", - "toml_datetime", "winnow", ] +[[package]] +name = "toml_writer" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" + [[package]] name = "tracing" version = "0.1.41" @@ -2586,12 +2557,6 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" -[[package]] -name = "ucd-trie" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" - [[package]] name = "unarray" version = "0.1.4" @@ -2639,9 +2604,9 @@ checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.1.14" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" [[package]] name = "unicode_categories" @@ -2674,11 +2639,13 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" -version = "1.11.0" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" +checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" dependencies = [ - "getrandom", + "getrandom 0.3.4", + "js-sys", + "wasm-bindgen", ] [[package]] @@ -2718,6 +2685,15 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasip2" +version = "1.0.1+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +dependencies = [ + "wit-bindgen", +] + [[package]] name = "wasite" version = "0.1.0" @@ -2726,34 +2702,22 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" [[package]] name = "wasm-bindgen" -version = "0.2.99" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" +checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" dependencies = [ "cfg-if", "once_cell", + "rustversion", "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.99" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" +checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2761,28 +2725,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.99" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" +checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" dependencies = [ + "bumpalo", "proc-macro2", "quote", "syn", - "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.99" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" +checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" +dependencies = [ + "unicode-ident", +] [[package]] name = "web-sys" -version = "0.3.76" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" +checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" dependencies = [ "js-sys", "wasm-bindgen", @@ -2832,11 +2799,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.52.0" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" dependencies = [ - "windows-core", + "windows-core 0.57.0", "windows-targets 0.52.6", ] @@ -2849,6 +2816,55 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-core" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-result", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-implement" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-result" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-sys" version = "0.48.0" @@ -2876,6 +2892,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + [[package]] name = "windows-targets" version = "0.48.5" @@ -2900,13 +2925,30 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "windows_i686_gnullvm 0.52.6", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -2919,6 +2961,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -2931,6 +2979,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -2943,12 +2997,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -2961,6 +3027,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -2973,6 +3045,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -2985,6 +3063,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -2997,14 +3081,23 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + [[package]] name = "winnow" -version = "0.6.20" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" -dependencies = [ - "memchr", -] +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" + +[[package]] +name = "wit-bindgen" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "write16" @@ -3027,15 +3120,6 @@ dependencies = [ "tap", ] -[[package]] -name = "yansi-term" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe5c30ade05e61656247b2e334a031dfd0cc466fadef865bdcdea8d537951bf1" -dependencies = [ - "winapi", -] - [[package]] name = "yoke" version = "0.7.5" diff --git a/Cargo.toml b/Cargo.toml index 8290691..3ec4b80 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pg_later" -version = "0.3.0" +version = "0.4.0" edition = "2021" publish = false @@ -12,12 +12,13 @@ name = "pgrx_embed_pg_later" path = "./src/bin/pgrx_embed.rs" [features] -default = ["pg17"] +default = ["pg18"] pg13 = ["pgrx/pg13", "pgrx-tests/pg13"] pg14 = ["pgrx/pg14", "pgrx-tests/pg14"] pg15 = ["pgrx/pg15", "pgrx-tests/pg15"] pg16 = ["pgrx/pg16", "pgrx-tests/pg16"] pg17 = ["pgrx/pg17", "pgrx-tests/pg17"] +pg18 = ["pgrx/pg18", "pgrx-tests/pg18"] pg_test = [] [dependencies] @@ -25,14 +26,13 @@ anyhow = "1.0.72" chrono = {version = "0.4.26", features = ["serde"] } log = "0.4.19" pgmq = "0.29" -pgrx = "=0.12.5" +pgrx = "=0.16.1" serde = "1.0.164" serde_json = "1.0.99" sqlparser = "0.47" -sqlx = { version = "0.8.2", features = [ +sqlx = { version = "0.8", features = [ "postgres", "chrono", - "postgres", "json" ] } tokio = "1.29.1" @@ -40,7 +40,7 @@ url = "2.4.0" postgres-types = "0.2.5" [dev-dependencies] -pgrx-tests = "=0.12.5" +pgrx-tests = "=0.16.1" rand = "0.8.5" tokio = { version = "1", features = ["macros"] } diff --git a/Makefile b/Makefile index 7d95b67..3c2e588 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ DISTNAME = $(shell grep -m 1 '^name' Trunk.toml | sed -e 's/[^"]*"\([^"]*\)",\{0,1\}/\1/') DISTVERSION = $(shell grep -m 1 '^version' Cargo.toml | sed -e 's/[^"]*"\([^"]*\)",\{0,1\}/\1/') -PG_VERSION:=17 +PG_VERSION:=18 PGRX_PG_CONFIG =$(shell cargo pgrx info pg-config pg${PG_VERSION}) PGLATER_SOCKET_URL:='postgresql:///postgres?host=${HOME}/.pgrx&user=${USER}&dbname=postgres&port=288${PG_VERSION}' DATABASE_URL:=postgres://${USER}:${USER}@localhost:288${PG_VERSION}/postgres diff --git a/images/pglater-pg/Dockerfile b/images/pglater-pg/Dockerfile index 0bfa957..682f008 100644 --- a/images/pglater-pg/Dockerfile +++ b/images/pglater-pg/Dockerfile @@ -1,4 +1,4 @@ -FROM postgres:17-bookworm as builder +FROM postgres:18-bookworm as builder RUN apt-get update \ && apt-get install -y \ @@ -10,7 +10,7 @@ RUN apt-get update \ libssl-dev \ make \ pkg-config \ - postgresql-server-dev-17 + postgresql-server-dev-18 COPY . . # install pgmq @@ -21,22 +21,22 @@ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y RUN $HOME/.cargo/bin/rustup default stable # install pgrx -ARG PGRX_VER=0.12.5 +ARG PGRX_VER=0.16.1 RUN $HOME/.cargo/bin/cargo install cargo-pgrx --version=$PGRX_VER --locked -RUN $HOME/.cargo/bin/cargo pgrx init --pg17 $(which pg_config) +RUN $HOME/.cargo/bin/cargo pgrx init --pg18 $(which pg_config) # install pglater RUN $HOME/.cargo/bin/cargo pgrx install --pg-config=$(which pg_config) -FROM postgres:17-bookworm +FROM postgres:18-bookworm -COPY --from=builder /usr/share/postgresql/17/extension /usr/share/postgresql/17/extension -COPY --from=builder /usr/lib/postgresql/17/lib /usr/lib/postgresql/17/lib +COPY --from=builder /usr/share/postgresql/18/extension /usr/share/postgresql/18/extension +COPY --from=builder /usr/lib/postgresql/18/lib /usr/lib/postgresql/18/lib RUN apt-get update \ && apt-get install -y ca-certificates -COPY images/pglater-pg/postgresql.conf /usr/share/postgresql/17/postgresql.conf.sample +COPY images/pglater-pg/postgresql.conf /usr/share/postgresql/18/postgresql.conf.sample USER postgres CMD ["postgres"] diff --git a/sql/pg_later--0.3.0--0.4.0.sql b/sql/pg_later--0.3.0--0.4.0.sql new file mode 100644 index 0000000..e69de29 diff --git a/src/api.rs b/src/api.rs index cb7ee51..7f75631 100644 --- a/src/api.rs +++ b/src/api.rs @@ -12,8 +12,8 @@ fn init() -> Result { "select pgmq.create_non_partitioned('pg_later_results')", ]; for q in setup_queries { - let ran: Result<_, spi::Error> = Spi::connect(|mut c| { - let _ = c.update(q, None, None)?; + let ran: Result<_, spi::Error> = Spi::connect_mut(|c| { + let _ = c.update(q, None, &[])?; Ok(()) }); @@ -53,8 +53,8 @@ fn fetch_results(job_id: i64) -> Result, spi::Error> { where message->>'job_id' = '{job_id}' " ); - let results: Result, spi::Error> = Spi::connect(|mut client| { - let mut tup_table: SpiTupleTable = client.update(&query, None, None)?; + let results: Result, spi::Error> = Spi::connect_mut(|client| { + let mut tup_table: SpiTupleTable = client.update(&query, None, &[])?; if let Some(row) = tup_table.next() { let message = row["message"].value::()?.expect("no message"); return Ok(Some(message)); diff --git a/src/bgw.rs b/src/bgw.rs index 52efde3..158453e 100644 --- a/src/bgw.rs +++ b/src/bgw.rs @@ -13,7 +13,7 @@ use anyhow::Result; pub const PGMQ_QUEUE_NAME: &str = "pg_later_jobs"; #[pg_guard] -pub unsafe extern "C" fn _PG_init() { +pub unsafe extern "C-unwind" fn _PG_init() { if !pg_sys::process_shared_preload_libraries_in_progress { error!("pg_later must be loaded via shared_preload_libraries. Add 'pg_later' to shared_preload_libraries and restart Postgres."); } @@ -27,7 +27,7 @@ pub unsafe extern "C" fn _PG_init() { #[pg_guard] #[no_mangle] -pub extern "C" fn background_worker_main(_arg: pg_sys::Datum) { +pub extern "C-unwind" fn background_worker_main(_arg: pg_sys::Datum) { BackgroundWorker::attach_signal_handlers(SignalWakeFlags::SIGHUP | SignalWakeFlags::SIGTERM); let runtime = tokio::runtime::Builder::new_current_thread() diff --git a/src/clf.rs b/src/clf.rs index 8e730ec..63d4d9f 100644 --- a/src/clf.rs +++ b/src/clf.rs @@ -3,7 +3,6 @@ /// "RELEASE", "GRANT", "REVOKE", "SET", "RESET", "SHOW", "LISTEN", "NOTIFY", /// "VACUUM", "ANALYZE", "EXPLAIN", "CLUSTER", "CHECKPOINT", "REINDEX", /// "PG_TRY_ADVISORY", "PREPARE", "EXECUTE", "DEALLOCATE", "$BODY$"] - /// naive classifier of SQL statements /// /// diff --git a/src/guc.rs b/src/guc.rs index 635ec95..5095d65 100644 --- a/src/guc.rs +++ b/src/guc.rs @@ -1,15 +1,16 @@ +use crate::guc::ffi::CString; use anyhow::Result; -use core::ffi::CStr; use pgrx::*; -pub static PGLATER_SOCKET_URL: GucSetting> = GucSetting::>::new(None); +pub static PGLATER_SOCKET_URL: GucSetting> = + GucSetting::>::new(None); // initialize GUCs pub fn init_guc() { GucRegistry::define_string_guc( - "pglater.host", - "unix socket url for Postgres", - "unix socket path to the Postgres instance. Optional. Can also be set in environment variable PGLATER_SOCKET_URL.", + c"pglater.host", + c"unix socket url for Postgres", + c"unix socket path to the Postgres instance. Optional. Can also be set in environment variable PGLATER_SOCKET_URL.", &PGLATER_SOCKET_URL, GucContext::Suset, GucFlags::default()); } @@ -38,7 +39,7 @@ pub fn get_guc(guc: PglaterGUC) -> Option { } #[allow(dead_code)] -fn handle_cstr(cstr: &CStr) -> Result { +fn handle_cstr(cstr: CString) -> Result { if let Ok(s) = cstr.to_str() { Ok(s.to_owned()) } else {